Lumiera 0.pre.04~rc.1
»edit your freedom«
Loading...
Searching...
No Matches
turnout.hpp File Reference

Fixed standard setup used in each Port of the Render Node to generate data. More...

Go to the source code of this file.

Description

Fixed standard setup used in each Port of the Render Node to generate data.

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 local state to be maintained, especially a collection of buffers used to hold data for computation. Furthermore, getting the input buffers filled with prerequisite data leads to the issuance of recursive weave() calls, together creating a stack-like assembly of local invocation state.

The actual steps to be carried out for a weave() call are broken down into a fixed arrangement of steps, in accordance to the weaving metaphor:

  • mount() establish the framework of operation
  • pull() recurse into predecessors to retrieve input data
  • shed() allocate output buffers and spread out all connections
  • weft() pass invocation to the processing operation
  • fix() detach from input, mark and commit results and pas output As arranged in the Turnout template, the necessary interconnections are prepared and this standard sequence of operations is issued, while delegating the actual implementation of these steps into a Weaving Pattern, integrated as mix-in base template. Notably an implementation data scheme is expected as a definition nested into the weaving pattern, designated as PAT::Feed, and created on the stack for each invocation by the mount() call. »The Feed« is conceived both as an Invocation Adapter and a Pipe Manifold:
  • embedding an adapted processing-functor and a parameter-functor
  • providing storage slots for BuffHandle management entries
    Note
    typically, a MediaWeavingPattern is used as default implementation.
    Remarks
    The name »Turnout« plays upon the overlay of several metaphors, notably the Railroad Turnout. A »Turnout System« may thus imply either a system for generating and collecting turnout, or the complex interwoven system of tracks and switches found in large railway stations.
    See also
    Overview of Render Node structures
    turnout-system.hpp
    media-weaving-pattern.hpp
    weaving-pattern-builder.hpp

Definition in file turnout.hpp.

#include "steam/common.hpp"
#include "steam/engine/proc-node.hpp"
#include "steam/engine/turnout-system.hpp"
#include <utility>

Namespaces

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

Classes

class  Turnout< PAT >
 Processing structure to activate a Render Node and produce result data. More...
 
class  _TurnoutDiagnostic< PAT >
 

Functions

template<class ADA >
constexpr bool _verify_usable_as_InvocationAdapter ()
 Definition to emulate a Concept for the Invocation Adapter.
 
template<class PAT >
constexpr bool _verify_usable_as_WeavingPattern ()