Lumiera  0.pre.03
»edit your freedom«
calc-stream.hpp File Reference

Go to the source code of this file.

Description

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
engine-service.hpp
Todo:

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 "steam/play/timings.hpp"
#include "steam/play/output-slot.hpp"
#include "steam/engine/render-drive.hpp"
#include <vector>
#include <memory>

Classes

class  CalcStream
 A calculation stream groups and abstracts a series of calculation jobs, delivering frames into the configured OutputSlot in a timely fashion. More...
 

Typedefs

typedef std::vector< CalcStream > CalcStreams
 

Namespaces

 steam
 Steam-Layer implementation namespace root.
 
 steam::engine
 Lumiera's render engine core and operational control.