Lumiera  0.pre.03
calc-stream.hpp File Reference

Go to the source code of this file.


A core abstraction within the render engine to represent an ongoing calculation.

Within the Lumiera render engine, the rendering process is modelled in a functional way, as a stream of calculations – which eventually result in a stream of data frames. Typically, streams in this context are conceived as unlimited and open-ended, and can be represented by a generator or continuation function. Moreover, the invocation of this "continue-the-stream"-function is embedded into the other rendering calculations as a series of planning jobs. Whose purpose is, to create further future calculation jobs, including future planning jobs.

All of this structure thus exists only dynamically, always in ongoing evaluation. For the interface level we thus create a symbolic placeholder, the CalcStream object

See also

this draft was created in 2013 just to the point of defining the skeleton of the engine.

as of 2016, this is considered the way to go and will be completed eventually

Definition in file calc-stream.hpp.

#include "lib/error.hpp"
#include "proc/play/timings.hpp"
#include "proc/play/output-slot.hpp"
#include "proc/engine/calc-plan-continuation.hpp"
#include <vector>


class  CalcStream
 A calculation stream groups and abstracts a series of calculation jobs, delivering frames into the configured OutputSlot in a timely fashion. More...
class  RenderEnvironmentClosure
 Abstract definition of the environment hosting a given render activity (CalcStream). More...


typedef std::vector< CalcStream > CalcStreams


 Proc-Layer implementation namespace root.
 Render engine code as part of the Proc-Layer.