Lumiera
0.pre.03
»edit your freedom«
|
Go to the source code of this file.
Abstraction to represent buffer management and lifecycle within the render engine.
It turns out that – throughout the render engine implementation – we never need direct access to the buffers holding media data. Buffers are just some entity to be managed, i.e. "allocated", "locked" and "released"; the actual meaning of these operations is an implementation detail. The code within the render engine just pushes around BufferHandle objects, which act as a front-end, being created by and linked to a BufferProvider implementation. There is no need to manage the lifecycle of buffers automatically, because the use of buffers is embedded into the render calculation cycle, which follows a rather strict protocol anyway. Relying on the capabilities of the scheduler, the sequence of individual jobs in the engine ensures...
Definition in file buffer-provider.hpp.
#include "lib/error.hpp"
#include "lib/symbol.hpp"
#include "lib/hash-value.h"
#include "steam/engine/buffhandle.hpp"
#include "steam/engine/type-handler.hpp"
#include "steam/engine/buffer-local-tag.hpp"
#include "lib/nocopy.hpp"
#include <utility>
#include <memory>
Classes | |
class | BufferProvider |
Interface: a facility providing and managing working buffers for media calculations. More... | |
Functions | |
LUMIERA_ERROR_DECLARE (BUFFER_MANAGEMENT) | |
Problem providing working buffers. | |
Namespaces | |
steam | |
Steam-Layer implementation namespace root. | |
steam::engine | |
Lumiera's render engine core and operational control. | |