Lumiera  0.pre.03
»edit your freedom«
steam::engine Namespace Reference

Description

Lumiera's render engine core and operational control.

Backbone of the engine, render nodes base and cooperation. A good deal of the active engine code is outside the scope of the Steam-Layer, e.g. code located in vault 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.
 

Typedefs

typedef std::vector< CalcStreamCalcStreams
 
using ExitNodes = std::deque< engine::ExitNode >
 
typedef steam::play::OutputSlot::Allocation OutputConnection
 
typedef ProcNodePNode
 
typedef Trafo * PTrafo
 
typedef EngineService::Quality Quality
 

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  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...
 
class  ExitNode
 A top-level point in the render node network where data generation can be driven. More...
 
struct  InChanDescriptor
 
struct  Invocation
 Invocation context state. More...
 
class  JobPlanning
 View on the execution planning for a single calculation step. 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  PriorityQoS
 
class  ProcNode
 Key abstraction of the Render Engine: A Data processing Node. More...
 
class  RenderDrive
 The active drive to keep the render process going – implemented as a job planning job, that repeatedly triggers itself again for the next planning chunk. More...
 
class  RenderEngine
 
class  RenderEnvironment
 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 vault layer. 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  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

 LUMIERA_ERROR_DECLARE (BUFFER_MANAGEMENT)
 Problem providing working buffers.
 
 LUMIERA_ERROR_DEFINE (BUFFER_MANAGEMENT, "Problem providing working buffers")
 

Typedef Documentation

◆ PTrafo

typedef Trafo* PTrafo
Note
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.

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.