Lumiera  0.pre.03
»edit your freedom«
nodeinvocation.hpp File Reference

Go to the source code of this file.

Description

Organise the state related to the invocation of s single ProcNode::pull() call This header defines part of the "glue" which holds together the render node network and enables to pull result frames from the nodes.

Doing so requires some invocation local state to be maintained, especially a table of buffers used to carry out the calculations. Further, getting the input buffers filled requires to issue recursive pull() calls, which on the whole creates a stack-like assembly of local invocation state. The actual steps to be carried out for a pull() call are dependent on the configuration of the node to pull. Each node has been preconfigured by the builder with a WiringDescriptor and a concrete type of a StateAdapter. The actual sequence of steps is defined in the header nodeoperation.hpp out of a set of basic operation steps. These steps all use the passed in Invocation object (a sub-interface of StateAdapter) to access the various aspects of the invocation state.

composition of the Invocation State

For each individual ProcNode::pull() call, the WiringAdapter::callDown() builds an StateAdapter instance directly on the stack, managing the actual buffer pointers and state references. Using this StateAdapter, the predecessor nodes are pulled. The way these operations are carried out is encoded in the actual StateAdapter type known to the NodeWiring (WiringAdapter) instance. All of these actual StateAdapter types are built as implementing the engine::State interface.

Todo:
relies still on an obsoleted implementation draft
See also
engine::ProcNode
engine::StateProxy
engine::BuffTable
nodewiring.hpp interface for building/wiring the nodes

Definition in file nodeinvocation.hpp.

Classes

class  ActualInvocationProcess< Strategy, BufferProvider >
 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...
 
struct  Invocation
 Invocation context state. 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...
 

Namespaces

 steam
 Steam-Layer implementation namespace root.
 
 steam::engine
 Lumiera's render engine core and operational control.