Lumiera 0.pre.04
»edit your freedom«
Loading...
Searching...
No Matches
NodeBuilder_test Class Reference

Description

Test:
creating and configuring various kinds of Render Nodes.

Definition at line 55 of file node-builder-test.cpp.

Private Member Functions

virtual void run (Arg)
 
void build_simpleNode ()
 
uint invokeRenderNode (ProcNode &theNode, Time nomTime=Time::ZERO)
 
void build_Node_fixedParam ()
 
void build_Node_dynamicParam ()
 
void build_Node_adaptedParam ()
 
void build_Node_closedParam ()
 
void build_connectedNodes ()
 
void build_ParamNode ()
 

Member Function Documentation

◆ run()

virtual void run ( Arg  )
inlineprivatevirtual

◆ build_simpleNode()

void build_simpleNode ( )
inlineprivate
Test:
build a simple output-only Render Node
Todo:
12/24 ✔ define ⟶ ✔ implement

Definition at line 77 of file node-builder-test.cpp.

References NodeBuilder_test::invokeRenderNode(), LIFE_AND_UNIVERSE_4EVER, steam::engine::prepareNode(), and steam::engine::watch().

Referenced by NodeBuilder_test::run().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ invokeRenderNode()

uint invokeRenderNode ( ProcNode theNode,
Time  nomTime = Time::ZERO 
)
inlineprivate

Helper for Render Node invocation

  • use a DiagnosticBufferProvider to allocate a result buffer
  • assuming that the Node internally does not allocate further buffers
  • pull from Port #0 of the given node, passing the nomTime as argument
  • expect the buffer to hold a single uint value after invocation

Definition at line 101 of file node-builder-test.cpp.

References BuffHandle::accessAs(), DiagnosticBufferProvider::build(), BufferProvider::lockBufferFor(), ProcNode::pull(), and BuffHandle::release().

Referenced by 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(), and NodeBuilder_test::build_simpleNode().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ build_Node_fixedParam()

void build_Node_fixedParam ( )
inlineprivate
Test:
build a Node with a fixed invocation parameter
Todo:
12/24 ✔ define ⟶ ✔ implement

Definition at line 123 of file node-builder-test.cpp.

References NodeBuilder_test::invokeRenderNode(), LIFE_AND_UNIVERSE_4EVER, and steam::engine::prepareNode().

Referenced by NodeBuilder_test::run().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ build_Node_dynamicParam()

void build_Node_dynamicParam ( )
inlineprivate
Test:
build a Node with dynamically generated parameter
  • use a processing function which takes a parameter
  • use an automation functor, which just quantises the time into an implicitly defined grid
  • install both into a render node
  • set a random nominal time for invocation
Todo:
12/24 ✔ define ⟶ ✔ implement

Definition at line 147 of file node-builder-test.cpp.

References NodeBuilder_test::invokeRenderNode(), steam::engine::prepareNode(), and FrameNr::quant().

Referenced by NodeBuilder_test::run().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ build_Node_adaptedParam()

void build_Node_adaptedParam ( )
inlineprivate
Test:
build a node and adapt the parameters for invocation.
  • again use a processing function which takes a parameter
  • but then decorate this functor, so that it takes different arguments
  • attach parameter handling to supply these adapted arguments
Todo:
2/25 ✔ define ⟶ ✔ implement

Definition at line 179 of file node-builder-test.cpp.

References NodeBuilder_test::invokeRenderNode(), and steam::engine::prepareNode().

Referenced by NodeBuilder_test::run().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ build_Node_closedParam()

void build_Node_closedParam ( )
inlineprivate
Test:
build a node and partially close (≙ predefine) some parameters, while leaving other parameters open to be set on invocation through a parameter-functor.
  • define a processing-function which takes an array of parameters, which will be handled similar as a tuple with uniform types.
  • demonstrate that several partial-closures can be cascaded; first close one parameter given by index, then close staring from the front and then aligned to the end
  • now a single param «slot» remains open, which can be wired to receive automation data (note: 1-tuple generated automatically)
Remarks
it is quite common that processing functionality provided by an external library exposes both technical and artistic parameters, which leads to the situation that technical parameters can be predetermined and configured to a fixed value, while artistic parameters remain open for control by the user, either as a fixed setting (e.g. colour balance) or even a dynamic control by an automation function).

Definition at line 214 of file node-builder-test.cpp.

References NodeBuilder_test::invokeRenderNode(), steam::engine::prepareNode(), and FrameNr::quant().

Referenced by NodeBuilder_test::run().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ build_connectedNodes()

void build_connectedNodes ( )
inlineprivate
Test:
build a chain with three connected Nodes
  • have two source nodes, which accept a parameter
  • but configure them differently: one gets a constant, while the other draws a random number
  • the third node takes two input buffers and and one output; it retrieves the input values, and sums them together
  • use the »simplified 1:1 wiring«, which connects consecutively each input slot to the next given node on the same port number; here we only use port#0 on all three nodes.
Todo:
12/24 ✔ define ⟶ ✔ implement

Definition at line 247 of file node-builder-test.cpp.

References NodeBuilder_test::invokeRenderNode(), steam::engine::is_linked(), LIFE_AND_UNIVERSE_4EVER, and steam::engine::prepareNode().

Referenced by NodeBuilder_test::run().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ build_ParamNode()

void build_ParamNode ( )
inlineprivate
Test:
demonstrate the setup of a »Param Agent Node«
  • perform effectively the same computation as the preceding test
  • but use two new custom parameters in the Param Agent Node
  • pick them up from the nested source nodes by accessor-functors
Todo:
12/24 ✔ define ⟶ ✔ implement

Definition at line 295 of file node-builder-test.cpp.

References steam::engine::buildParamSpec(), NodeBuilder_test::invokeRenderNode(), LIFE_AND_UNIVERSE_4EVER, and steam::engine::prepareNode().

Referenced by NodeBuilder_test::run().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:
+ Inheritance diagram for NodeBuilder_test:
+ Collaboration diagram for NodeBuilder_test:

The documentation for this class was generated from the following file: