Lumiera  0.pre.03
»edit your freedom«
proc-node.hpp File Reference

Go to the source code of this file.

Description

Interface to the processing nodes and the render nodes network.

Actually, there are three different interfaces to consider

  • the ProcNode::pull is the invocation interface. It is function-call style
  • the builder interface, comprised by the NodeFactory and the WiringFactory.
  • the actual processing function is supposed to be a C function and will be hooked up within a thin wrapper.

By using the builder interface, concrete node and wiring descriptor classes are created, based on some templates. These concrete classes form the "glue" to tie the node network together and contain much of the operation behaviour in a hard wired fashion.

Todo:
WIP-WIP-WIP 2024 Node-Invocation is reworked from ground up for the »Playback Vertical Slice«
See also
nodefactory.hpp
operationpoint.hpp

Definition in file proc-node.hpp.

#include "lib/error.hpp"
#include "lib/nocopy.hpp"
#include "lib/hash-value.h"
#include "steam/engine/buffhandle.hpp"
#include "steam/engine/turnout-system.hpp"
#include "lib/ref-array.hpp"
#include "lib/format-string.hpp"
#include "lib/several.hpp"
#include <string>
#include <vector>
#include <optional>

Classes

class  Connectivity
 Interface: Description of the input and output ports, processing function and predecessor nodes for a given ProcNode. More...
 
class  Port
 
class  ProcNode
 Key abstraction of the Render Engine: A Data processing Node. More...
 
class  ProcNodeDiagnostic
 

Typedefs

using OptionalBuff = std::optional< BuffHandle >
 
using PortRef = std::reference_wrapper< Port >
 
using ProcNodeRef = std::reference_wrapper< ProcNode >
 

Functions

ProcNodeDiagnostic watch (ProcNode &theNode)
 

Namespaces

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