Lumiera
0.pre.03
»edit your freedom«
|
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 | |
using | Buff = StreamType::ImplFacade::DataBuffer |
typedef std::vector< CalcStream > | CalcStreams |
template<class POL , class I , class E = I> | |
using | DataBuilder = lib::SeveralBuilder< I, E, POL::template Policy > |
A builder to collect working data. More... | |
using | ExitNodes = std::deque< engine::ExitNode > |
using | OptionalBuff = std::optional< BuffHandle > |
typedef steam::play::OutputSlot::Allocation | OutputConnection |
typedef ProcNode_Obsolete * | PNode |
using | PortRef = std::reference_wrapper< Port > |
using | ProcNodeRef = std::reference_wrapper< ProcNode > |
typedef EngineService::Quality | Quality |
template<uint N, class FUN > | |
using | SimpleDirectInvoke = SimpleWeavingPattern< DirectFunctionInvocation< N, FUN > > |
template<uint siz> | |
using | SizMark = std::integral_constant< uint, siz > |
using | StrView = std::string_view |
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 StateClosure, which will delegate to Cache More... | |
struct | AllocBufferFromParent |
< using the parent StateAdapter for buffer allocations More... | |
class | BuffDescr |
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 |
Tables of buffer handles and corresponding dereferenced buffer pointers. 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 | Connectivity |
Interface: Description of the input and output ports, processing function and predecessor nodes for a given ProcNode. More... | |
class | DefaultQoS |
class | DiagnosticBufferProvider |
Helper for unit tests: Buffer provider reference implementation. More... | |
struct | DirectFunctionInvocation |
Typical base configuration for a Weaving-Pattern chain: 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 | EngineCtx |
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 | FeedManifold |
Obsolete, to be rewritten /////TICKET #826. 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 | LinkBuilder |
class | LocalTag |
an opaque mark to be used by the BufferProvider implementation. More... | |
class | NodeBuilder |
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 | ParamStorageFrame |
struct | PatternData |
Recursive functional data structure to collect weaving pattern data and finally to emplace a Turnout instance into the data storage for each port, as specified by preceding builder-API invocations. More... | |
struct | PatternDataAnchor |
Data recursion end: prime the port data storage by reserving appropriate storage to hold all known Turnout elements. More... | |
class | Port |
class | PortBuilder |
class | PortBuilderRoot |
class | PriorityQoS |
class | ProcBuilder |
class | ProcID |
class | ProcNode |
Key abstraction of the Render Engine: A Data processing Node. More... | |
class | ProcNode_Obsolete |
Key abstraction of the Render Engine: A Data processing Node. More... | |
class | ProcNodeDiagnostic |
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 |
A concrete JobFunctor with the ability to activate the »Render Node Network«. More... | |
struct | SimpleFunctionInvocationAdapter |
Adapter to handle a simple yet common setup for media processing. More... | |
struct | SimpleWeavingPattern |
Standard implementation for a Weaving Pattern to connect the input and output data feeds (buffers) into a processing function. 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 | StateClosure_OBSOLETE |
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 | TrackingHeapBlockProvider |
simple BufferProvider implementation with additional allocation tracking. More... | |
class | Turnout |
Processing structure to activate a Render Node and produce result data. More... | |
class | TurnoutSystem |
Communication hub to coordinate and activate the »Render Node Network« performance. More... | |
struct | TypeHandler |
A pair of functors to maintain a datastructure within a buffer. More... | |
struct | WeavingBuilder |
A low-level Builder to prepare and adapt for a specific node invocation. More... | |
class | WiringFactory |
class | WiringSituation |
Finding out about a concrete way of wiring up a ProcNode about to be built. More... | |
Functions | |
template<class ADA > | |
constexpr bool | _verify_usable_as_InvocationAdapter () |
Definition to emulate a Concept for the Invocation Adapter. More... | |
HashVal | hash_value (ProcID const &procID) |
generate registry hash value based on the distinct data in ProcID. More... | |
LUMIERA_ERROR_DECLARE (BUFFER_MANAGEMENT) | |
Problem providing working buffers. | |
LUMIERA_ERROR_DEFINE (BUFFER_MANAGEMENT, "Problem providing working buffers") | |
template<class POL , class D0 , uint siz, class BUILD > | |
NodeBuilder (NodeBuilder< POL, D0 > &&, SizMark< siz >, BUILD &&) -> NodeBuilder< POL, PatternData< D0, BUILD, siz >> | |
Deduction Guide: help the compiler with deducing follow-up NodeBuilder parameters. | |
auto | prepareNode (StrView nodeSymbol) |
Entrance point for building actual Render Node Connectivity (Level-2) More... | |
auto | retrieve (void *streamType) |
Entrance point for defining data flows and processing steps. | |
ProcNodeDiagnostic | watch (ProcNode &theNode) |
using DataBuilder = lib::SeveralBuilder<I,E, POL::template Policy> |
A builder to collect working data.
Implemented through a suitable configuration of lib::SeveralBuilder, with a policy configuration parameter to define the allocator to use.
Definition at line 129 of file node-builder.hpp.
enum BufferState |
Buffer states usable within BufferProvider and stored within the metadata.
Definition at line 86 of file buffer-metadata.hpp.
|
inline |
Entrance point for building actual Render Node Connectivity (Level-2)
withAllocator<ALO>(args...)
, prior to adding any further specifications and data elements. Definition at line 428 of file node-builder.hpp.
Referenced by NodeLink_test::build_connected_nodes().
HashVal steam::engine::hash_value | ( | ProcID const & | procID | ) |
generate registry hash value based on the distinct data in ProcID.
This function is intended to be picked up by ADL, and should be usable both with std::hash
and <boost/functional/hash.hpp>
.
Definition at line 105 of file proc-node.cpp.
Referenced by JobTicket::timeHash().
constexpr bool steam::engine::_verify_usable_as_InvocationAdapter | ( | ) |
Definition to emulate a Concept for the Invocation Adapter.
For each Proc-Asset, the corresponding Library Adapter must provide such adapters to access the input and result buffers and finally to invoke the processing functions from this library.
connect(fanIn,fanOut)
access the Feed Manifold and link the buffersinvoke()
invoke the processing function, passing the connected buffers Definition at line 92 of file turnout.hpp.
References ASSERT_MEMBER_FUNCTOR.