Lumiera
0.pre.03
»edit your freedom«
|
Go to the source code of this file.
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.
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.
Definition in file nodeinvocation.hpp.
#include "steam/state.hpp"
#include "steam/engine/procnode.hpp"
#include "steam/engine/channel-descriptor.hpp"
#include "steam/engine/bufftable-obsolete.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. | |