Lumiera  0.pre.03
proc::engine Namespace Reference


Render engine code as part of the Proc-Layer.

Backbone of the engine, render nodes base and cooperation. A good deal of the active engine code is outside the scope of the Proc-Layer, e.g. code located in backend services and plugins.


 Policies, definitions and tweaks to control the actual setup and behaviour of the render engine, and the way, render nodes are wired and instantiated.


typedef std::vector< CalcStreamCalcStreams
typedef JobPlanningChunkStartPoint::FlatMapped< SIG_expandPrerequisites >::Type ExpandedPlanningSequence
typedef lib::IterExplorer< PlanningStepGenerator,lib::iter_explorer::RecursiveSelfIntegrationJobPlanningChunkStartPoint
typedef proc::play::OutputSlot::Allocation OutputConnection
typedef ProcNodePNode
typedef Trafo * PTrafo
typedef EngineService::Quality Quality
typedef PlanningState(* SIG_expandPrerequisites) (JobPlanning const &)


enum  BufferState {
 Buffer states usable within BufferProvider and stored within the metadata. More...
enum  CalcType {


class  ActualInvocationProcess
 The real invocation context state implementation. More...
struct  AllocBufferFromCache
 < using the global current State, which will delegate to Cache More...
struct  AllocBufferFromParent
 < using the parent StateAdapter for buffer allocations More...
class  BufferDescriptor
 An opaque descriptor to identify the type and further properties of a data buffer. More...
class  BufferMetadata
 Registry for managing buffer metadata. More...
class  BufferProvider
 Interface: a facility providing and managing working buffers for media calculations. More...
class  BuffHandle
 Handle for a buffer for processing data, abstracting away the actual implementation. More...
struct  BuffTable
 Obsolete, to be rewritten /////TICKET #826. More...
class  BuffTableChunk
 Obsolete, to be rewritten /////TICKET #826 to be allocated on the stack while evaluating a ProcNode::pull() call. More...
class  BuffTableStorage
 Obsolete, to be rewritten /////TICKET #826. More...
class  CalcPlanContinuation
 Special job to perform the job planning. More...
class  CalcStream
 A calculation stream groups and abstracts a series of calculation jobs, delivering frames into the configured OutputSlot in a timely fashion. More...
struct  ChannelDescriptor
class  Compromise
class  DefaultQoS
class  DiagnosticBufferProvider
 Helper for unit tests: Buffer provider reference implementation. More...
class  Dispatcher
 Internal abstraction: a service within the engine for translating a logical calculation stream (corresponding to a PlayProcess) into a sequence of individual RenderJob entries for calculations and data access. More...
class  DispatchTable
class  EngineDiagnostics
 Render engine diagnostic facility. More...
class  EngineService
 A service to schedule series of calculations, delivering the rendered data into an external output sink in a timely fashion. More...
class  EngineServiceMock
 Variant of the render engine, reconfigured for mock operation. More...
struct  FrameCoord
 effective coordinates of a frame to be calculated. More...
class  FrameJobClosure
class  FrameLocator
 Abstraction: a Facility to establish frame coordinates and identify and access the execution plan for this frame. More...
class  FrameSequencer
 Facility for producing a sequence of FrameCoord. More...
struct  InChanDescriptor
struct  Invocation
 Invocation context state. More...
class  JobPlanning
 View on the execution planning for a single calculation step. More...
class  JobPlanningSequence
 This iterator represents a pipeline to pull planned jobs from. More...
class  JobTicket
 execution plan for pulling a specific exit node. More...
class  LocalKey
 an opaque ID to be used by the BufferProvider implementation. More...
class  Mask
class  NodeFactory
 Create processing nodes based on given objects of the high-level model. More...
class  NodeWiring
 Actual implementation of the link between nodes, also acting as "track switch" for the execution path chosen while operating the node network for rendering. More...
class  PlanningState
 iterator, exposing a sequence of JobPlanning elements More...
class  PlanningStepGenerator
 Generate a sequence of starting points for Job planning, based on the underlying frame grid. More...
class  PriorityQoS
class  ProcNode
 Key abstraction of the Render Engine: A Data processing Node. More...
class  RenderEngine
class  RenderEnvironmentClosure
 Abstract definition of the environment hosting a given render activity (CalcStream). More...
class  RenderGraph
class  RenderInvocation
class  Source
 Source Node: represents a media source to pull data from. More...
class  State
 Abstraction to access the state of a currently ongoing render/calculation process, as it is tied to the supporting facilities of the backend. More...
class  StateAdapter
 Adapter to shield the ProcNode from the actual buffer management, allowing the processing function within ProcNode to use logical buffer IDs. More...
class  StateProxy
class  TimeAnchor
 The process of playback or rendering is a continued series of exploration and evaluation. More...
class  TrackingHeapBlockProvider
 simple BufferProvider implementation with additional allocation tracking. More...
struct  TypeHandler
 A pair of functors to maintain a datastructure within a buffer. More...
class  WiringDescriptor
 Interface: Description of the input and output ports, processing function and predecessor nodes for a given ProcNode. More...
class  WiringFactory
class  WiringSituation
 Finding out about a concrete way of wiring up a ProcNode about to be built. More...


PlanningState expandPrerequisites (JobPlanning const &calculationStep)
 this is the core operation to drive planning ahead: discover the prerequisites of some operation – here "prerequisites" are those operations to be performed within separate Jobs beforehand. More...
 Problem providing working buffers. More...
 LUMIERA_ERROR_DEFINE (BUFFER_MANAGEMENT, "Problem providing working buffers")

Typedef Documentation

◆ CalcStreams

typedef std::vector<CalcStream> CalcStreams

Definition at line 153 of file calc-stream.hpp.

◆ PNode

typedef ProcNode * PNode

Definition at line 58 of file channel-descriptor.hpp.

◆ Quality

Definition at line 69 of file engine-service-mock.hpp.

◆ OutputConnection

◆ SIG_expandPrerequisites

typedef PlanningState(* SIG_expandPrerequisites) (JobPlanning const &)

Definition at line 401 of file job-planning.hpp.

◆ JobPlanningChunkStartPoint

◆ ExpandedPlanningSequence

◆ PTrafo

typedef Trafo* PTrafo
ProcNode is handled by pointer and bulk allocated/deallocated

Definition at line 62 of file nodefactory.hpp.

Enumeration Type Documentation

◆ BufferState

Buffer states usable within BufferProvider and stored within the metadata.


abstract entry, not yet allocated


allocated buffer, no longer in use


allocated buffer actively in use


allocated buffer, returned from client


allocated buffer blocked by protocol failure

Definition at line 92 of file buffer-metadata.hpp.

◆ CalcType

enum CalcType

Definition at line 187 of file engine-service.cpp.

Function Documentation


"Problem providing working buffers"   



Problem providing working buffers.

◆ expandPrerequisites()

PlanningState proc::engine::expandPrerequisites ( JobPlanning const &  calculationStep)

this is the core operation to drive planning ahead: discover the prerequisites of some operation – here "prerequisites" are those operations to be performed within separate Jobs beforehand.

this function is intended to be flat-mapped (">>=") onto a tree-like monad representing the evaluation process.

Definition at line 276 of file job-planning.hpp.

References JobPlanning::discoverPrerequisites().

+ Here is the call graph for this function: