![]() |
Lumiera 0.pre.04~rc.1
»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 | |
| namespace | anonymous_namespace{buffer-metadata.hpp} |
| namespace | anonymous_namespace{buffer-provider.cpp} |
| namespace | anonymous_namespace{buffer-proxy-provider.cpp} |
| namespace | anonymous_namespace{engine-ctx-facilities.cpp} |
| namespace | anonymous_namespace{engine-service.cpp} |
| namespace | anonymous_namespace{exit-node.hpp} |
| namespace | anonymous_namespace{feed-manifold.hpp} |
| namespace | anonymous_namespace{job-ticket.cpp} |
| namespace | anonymous_namespace{node-builder.hpp} |
| namespace | anonymous_namespace{node-factory.cpp} |
| namespace | anonymous_namespace{render-invocation.cpp} |
| namespace | anonymous_namespace{tracking-heap-block-provider.cpp} |
| namespace | anonymous_namespace{turnout-system.cpp} |
| namespace | anonymous_namespace{type-handler.hpp} |
| namespace | 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. | |
| namespace | diagn |
| namespace | metadata |
| namespace | test |
Typedefs | |
| using | CalcStreams = std::vector< CalcStream > |
| using | OutputConnection = steam::play::OutputSlot::Allocation |
| using | ExitNodes = std::deque< engine::ExitNode > |
| template<class POL , class I , class E = I> | |
| using | DataBuilder = lib::SeveralBuilder< I, E, POL::template Policy > |
| A builder to collect working data. | |
| using | StrView = std::string_view |
| using | ProcNodeRef = std::reference_wrapper< ProcNode > |
| using | OptionalBuff = std::optional< BuffHandle > |
| using | PortRef = std::reference_wrapper< Port > |
| using | Buff = StreamType::ImplFacade::DataBuffer |
| using | ProcessKey = uint64_t |
| template<uint siz> | |
| using | SizMark = std::integral_constant< uint, siz > |
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 | _ConCheck |
| Helper for connectivity-checks in tests. More... | |
| struct | _StorageSetup |
| Configuration context for a FeedManifold. More... | |
| class | _TurnoutDiagnostic |
| 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 | BufferProxyProvider |
| Adapter to expose access to data blocks via BuffHandle and the BufferProvider protocol. 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 | CalcStream |
| A calculation stream groups and abstracts a series of calculation jobs, delivering frames into the configured OutputSlot in a timely fashion. More... | |
| 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... | |
| 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 | ExitNode |
| A top-level point in the render node network where data generation can be driven. More... | |
| struct | FeedManifold |
| Adapter to connect input/output buffers to a processing functor backed by an external library. More... | |
| class | FeedPrototype |
| Builder-Prototype to create FeedManifold instances. 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... | |
| struct | MediaWeavingPattern |
| Standard implementation for a Weaving Pattern to connect the input and output data feeds (buffers) into a processing function. More... | |
| class | NodeBuilder |
| Top-level builder to create a single Render Node. More... | |
| class | NodeFactory |
| Create processing nodes based on given objects of the high-level model. More... | |
| class | ParamAgentBuilder |
| Nested sub-Builder analogous to PortBuilder, but for building a »Param Agent Node«. More... | |
| struct | ParamBuildSpec |
| Specification record for the setup of a »Param Agent Node«. More... | |
| struct | ParamWeavingPattern |
| Implementation for a Weaving Pattern to conduct extended parameter evaluation. More... | |
| 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 |
| Nested DSL-Builder context to define a regular media processing Port. More... | |
| class | PortBuilderRoot |
| Nested DSL builder scope to define a single Port for the enclosing Node. More... | |
| class | PortDiagnostic |
| class | PriorityQoS |
| struct | ProcAttrib |
| Extended Attributes for ProcID metadata. More... | |
| class | ProcBuilder |
| class | ProcID |
| Metadata to qualify a Port (and implicitly the enclosing Node). More... | |
| class | ProcNode |
| 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 | 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... | |
| 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... | |
Functions | |
| LUMIERA_ERROR_DEFINE (BUFFER_MANAGEMENT, "Problem providing working buffers") | |
| LUMIERA_ERROR_DECLARE (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) | |
| auto | retrieve (void *streamType) |
| Entrance point for defining data flows and processing steps. | |
| auto | buildParamSpec () |
| ProcNodeDiagnostic | watch (ProcNode &theNode) |
| PortDiagnostic | watch (Port &thePort) |
| _ConCheck | is_linked (ProcNode &n) |
| start a DSL expression to verify node connectivity. | |
| template<class ADA > | |
| constexpr bool | _verify_usable_as_InvocationAdapter () |
| Definition to emulate a Concept for the Invocation Adapter. | |
| template<class PAT > | |
| constexpr bool | _verify_usable_as_WeavingPattern () |
Variables | |
| const size_t | MAX_NODE_ARG = LUMIERA_MAX_ORDINAL_NUMBER / 2 |
| arbitrary safety limit on fain-in / fan-out | |
| using CalcStreams = std::vector<CalcStream> |
Definition at line 120 of file calc-stream.hpp.
Definition at line 76 of file engine-service.hpp.
| using ExitNodes = std::deque<engine::ExitNode> |
Definition at line 43 of file exit-node.hpp.
| 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 164 of file node-builder.hpp.
| typedef std::string_view StrView |
Definition at line 82 of file proc-id.hpp.
| using ProcNodeRef = std::reference_wrapper<ProcNode> |
Definition at line 127 of file proc-node.hpp.
| using OptionalBuff = std::optional<BuffHandle> |
Definition at line 128 of file proc-node.hpp.
| using PortRef = std::reference_wrapper<Port> |
Definition at line 153 of file proc-node.hpp.
Definition at line 41 of file tracking-heap-block-provider.cpp.
| using ProcessKey = uint64_t |
Definition at line 51 of file turnout-system.hpp.
Definition at line 171 of file weaving-pattern-builder.hpp.
| enum BufferState |
Buffer states usable within BufferProvider and stored within the metadata.
Definition at line 86 of file buffer-metadata.hpp.
| enum CalcType |
| Enumerator | |
|---|---|
| PLAYBACK | |
| RENDER | |
| BACKGROUND | |
Definition at line 179 of file engine-service.cpp.
| LUMIERA_ERROR_DEFINE | ( | BUFFER_MANAGEMENT | , |
| "Problem providing working buffers" | |||
| ) |
| LUMIERA_ERROR_DECLARE | ( | BUFFER_MANAGEMENT | ) |
Problem providing working buffers.
| NodeBuilder | ( | NodeBuilder< POL, D0 > && | , |
| SizMark< siz > | , | ||
| BUILD && | |||
| ) | -> NodeBuilder< POL, PatternData< D0, BUILD, siz > > |
Deduction Guide: help the compiler with deducing follow-up NodeBuilder parameters.
|
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 802 of file node-builder.hpp.
Referenced by NodeLink_test::build_connected_nodes(), NodeBuilder_test::build_connectedNodes(), NodeBuilder_test::build_Node_adaptedParam(), NodeBuilder_test::build_Node_closedParam(), NodeBuilder_test::build_Node_dynamicParam(), NodeBuilder_test::build_Node_fixedParam(), NodeBuilder_test::build_ParamNode(), NodeLink_test::build_simple_node(), NodeBuilder_test::build_simpleNode(), NodeFeed_test::feedParamNode(), NodeDevel_test::makeSrcNode(), NodeDevel_test::testRand_buildFilterNode(), NodeDevel_test::testRand_buildMixNode(), NodeDevel_test::testRand_simpleUsage(), NodeLink_test::trigger_node_port_invocation(), and NodeMeta_test::verify_ID_connectivity().
Here is the caller graph for this function:
|
inline |
Entrance point for defining data flows and processing steps.
Definition at line 862 of file node-builder.hpp.
|
inline |
Definition at line 266 of file param-weaving-pattern.hpp.
Referenced by NodeBuilder_test::build_ParamNode(), NodeFeed_test::feedParamNode(), NodeLink_test::trigger_node_port_invocation(), and NodeBase_test::verify_TurnoutSystem().
Here is the caller graph for this function:
|
inline |
Definition at line 283 of file proc-node.hpp.
Referenced by NodeLink_test::build_connected_nodes(), NodeLink_test::build_simple_node(), NodeBuilder_test::build_simpleNode(), NodeDevel_test::testRand_buildFilterNode(), NodeDevel_test::testRand_buildMixNode(), NodeDevel_test::testRand_simpleUsage(), NodeMeta_test::verify_ID_connectivity(), and NodeBase_test::verify_NodeStructure().
Here is the caller graph for this function:
|
inline |
Definition at line 315 of file proc-node.hpp.
start a DSL expression to verify node connectivity.
Definition at line 357 of file proc-node.hpp.
Referenced by NodeLink_test::build_connected_nodes(), NodeBuilder_test::build_connectedNodes(), and NodeMeta_test::verify_ID_connectivity().
Here is the caller graph for this function:
|
constexpr |
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 80 of file turnout.hpp.
References ASSERT_MEMBER_FUNCTOR.
|
constexpr |
Definition at line 92 of file turnout.hpp.
References ASSERT_MEMBER_FUNCTOR.
| const size_t MAX_NODE_ARG = LUMIERA_MAX_ORDINAL_NUMBER / 2 |
arbitrary safety limit on fain-in / fan-out
Definition at line 133 of file proc-node.hpp.