![]() |
Lumiera 0.pre.04~rc.1
»edit your freedom«
|
Abstraction to represent buffer management and lifecycle within the render engine. More...
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>Namespaces | |
| namespace | steam |
| Steam-Layer implementation namespace root. | |
| namespace | steam::engine |
| Lumiera's render engine core and operational control. | |
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. | |