Lumiera  0.pre.03
»edityourfreedom«
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
proc::engine Namespace Reference

Description

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.

Namespaces

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

Typedefs

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

Enumerations

enum  BufferState {
  NIL,
  FREE,
  LOCKED,
  EMITTED,
  BLOCKED
}
 Buffer states usable within BufferProvider and stored within the metadata. More...
 
enum  CalcType {
  PLAYBACK,
  RENDER,
  BACKGROUND
}
 

Classes

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...
 

Functions

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...
 
 LUMIERA_ERROR_DECLARE (BUFFER_MANAGEMENT)
 Problem providing working buffers. More...
 
 LUMIERA_ERROR_DEFINE (BUFFER_MANAGEMENT,"Problem providing working buffers")
 

Typedef Documentation

typedef std::vector<CalcStream> CalcStreams

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

typedef ProcNode * PNode

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

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

typedef PlanningState(* SIG_expandPrerequisites)(JobPlanning const &)

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

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

Definition at line 62 of file nodefactory.hpp.

Enumeration Type Documentation

Buffer states usable within BufferProvider and stored within the metadata.

Enumerator
NIL 

abstract entry, not yet allocated

FREE 

allocated buffer, no longer in use

LOCKED 

allocated buffer actively in use

EMITTED 

allocated buffer, returned from client

BLOCKED 

allocated buffer blocked by protocol failure

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

enum CalcType
Enumerator
PLAYBACK 
RENDER 
BACKGROUND 

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

Function Documentation

proc::engine::LUMIERA_ERROR_DEFINE ( BUFFER_MANAGEMENT  ,
"Problem providing working buffers"   
)
proc::engine::LUMIERA_ERROR_DECLARE ( BUFFER_MANAGEMENT  )

Problem providing working buffers.

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

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.

Note
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: