Lumiera  0.pre.03
»edit your freedom«
RenderConfigurator Class Referenceabstract

#include "steam/play/render-configurator.hpp"

Description

Strategy for configuring the render process.

Definition at line 76 of file render-configurator.hpp.

Public Types

using ConnectFunction = function< Feed(ModelPort)>
 

Public Member Functions

virtual ~RenderConfigurator ()
 this is an interface
 
Feed buildActiveFeed (ModelPort)
 Template Method: how to build an active render feed, pulling from the given exit point of the model and feeding the OutputSlot established appropriately to deliver media data of suitable type.
 

Protected Member Functions

virtual engine::CalcStreams buildCalculationStreams (ModelPort, OutputSlot &)=0
 build active rendering connections, thereby delivering each channel of the given model port into the corresponding output sink. More...
 
virtual OutputSlotgetOutputFor (ModelPort port)=0
 retrieve a suitable output sink for the data to be produced at the given model exit point. More...
 

Additional Inherited Members

- Private Member Functions inherited from NonCopyable
 NonCopyable (NonCopyable const &)=delete
 
NonCopyableoperator= (NonCopyable const &)=delete
 

Member Function Documentation

◆ getOutputFor()

virtual OutputSlot& getOutputFor ( ModelPort  port)
protectedpure virtual

retrieve a suitable output sink for the data to be produced at the given model exit point.

While the port already defines the necessary StreamType, this strategy still has to decide what concrete output sink to use accordingly.

Implemented in LumieraRenderProcessBuilder.

◆ buildCalculationStreams()

virtual engine::CalcStreams buildCalculationStreams ( ModelPort  ,
OutputSlot  
)
protectedpure virtual

build active rendering connections, thereby delivering each channel of the given model port into the corresponding output sink.

This strategy will try to allocate the output slot for output (may fail). Moreover, a suitable combination of output timings and service quality will be picked

Returns
List of active CalcStream descriptors, created and registered with the EngineFacade, one for each channel connection.
Note
when this strategy function returns, the corresponding render activities are already up and running.
Todo:
get rid of the multiple channel connections /////////////////////////////////////////TICKET #1297 : retract differentiation into channels here (instead use ModelPorts in the Segment)

Implemented in LumieraRenderProcessBuilder.

+ Inheritance diagram for RenderConfigurator:
+ Collaboration diagram for RenderConfigurator:

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