33 #ifndef STEAM_ENGINE_PROC_NODE_H 34 #define STEAM_ENGINE_PROC_NODE_H 64 class ProcNodeDiagnostic;
67 using OptionalBuff = std::optional<BuffHandle>;
173 getPort (uint portIdx)
175 if (portIdx >= wiring_.ports.size())
176 throw err::Logic{
_Fmt{
"Accessing node-port #%d, while only %d ports are defined."}
177 % portIdx % wiring_.ports.size()
180 return wiring_.ports[portIdx];
199 return this->wiringConfig_.callDown (currentProcess, requestedOutputNr);
220 auto& leads() {
return n_.wiring_.leads; }
221 auto& ports() {
return n_.wiring_.ports; }
223 bool isSrc() {
return n_.wiring_.leads.empty(); }
228 return 0 < ports().size();
232 string getNodeSpec();
235 string getPortSpec (uint portIdx);
236 HashVal getPortHash (uint portIdx);
virtual ~Port()
this is an interface
Any copy and copy construction prohibited.
Types marked with this mix-in may be moved but not copied.
Communication hub to coordinate and activate the »Render Node Network« performance.
Steam-Layer implementation namespace root.
A front-end for using printf-style formatting.
Abstraction interface: array-like random access by subscript.
Derived specific exceptions within Lumiera's exception hierarchy.
Abstraction to access the state of a currently ongoing render/calculation process, as it is tied to the supporting facilities of the vault layer.
Mix-Ins to allow or prohibit various degrees of copying and cloning.
Abstraction interface: array-like access by subscript.
A front-end to support the buffer management within the render nodes.
Lumiera error handling (C++ interface).
Hash value types and utilities.
Handle for a buffer for processing data, abstracting away the actual implementation.
size_t HashVal
a STL compatible hash value
Interface: Description of the input and output ports, processing function and predecessor nodes for a...
Key abstraction of the Render Engine: A Data processing Node.
THe actual state of a frame rendering evaluation parametrised for a single job.