41 using std::shared_ptr;
43 using std::placeholders::_1;
44 using engine::EngineService;
68 REQUIRE (outputResolver_);
69 OutputSlot& slot = outputResolver_->getOutputFor (port);
71 throw error::State{
"unable to acquire a suitable output slot"
84 return activateEngine (port, nominalTimings, activeOutputConnection, renderQuality_);
91 return EngineService::instance().calculate (port, timings, activeOutputConnection, quality);
97 : outputResolver_(outputManager)
98 , playbackTimings_(playbackSpeed)
154 shared_ptr<RenderConfigurator> specialConfig{how_to_render (outputPossibilities,playTimings)};
Template to build polymorphic value objects.
A service to schedule series of calculations, delivering the rendered data into an external output si...
Handle designating a point within the model, where actually output data can be pulled.
Rendering data feed, corresponding to a single global pipe and to be delivered into a single OutputSl...
virtual Timings getTimingConstraints()=0
Interface: Generic output sink.
Allocation & allocate()
claim this slot for exclusive use
Strategy for configuring the render process.
function< Feed(ModelPort)> ConnectFunction
Feed buildActiveFeed(ModelPort)
Template Method: how to build an active render feed, pulling from the given exit point of the model a...
virtual OutputSlot & getOutputFor(ModelPort port)=0
retrieve a suitable output sink for the data to be produced at the given model exit point.
virtual ~RenderConfigurator()
this is an interface
virtual engine::CalcStreams buildCalculationStreams(ModelPort, OutputSlot &)=0
build active rendering connections, thereby delivering each channel of the given model port into the ...
Generic frame timing specification.
Timings constrainedBy(Timings additionalConditions)
POutputManager outputResolver_
LumieraRenderProcessBuilder(POutputManager outputManager, Timings playbackSpeed)
RenderQuality renderQuality_
engine::CalcStreams buildCalculationStreams(ModelPort port, OutputSlot &output)
build active rendering connections, thereby delivering each channel of the given model port into the ...
engine::CalcStreams activateEngine(ModelPort port, Timings timings, OutputSlot::Allocation &activeOutputConnection, RenderQuality quality)
OutputSlot & getOutputFor(ModelPort port)
retrieve a suitable output sink for the data to be produced at the given model exit point.
Access point for the (core) calculation service of the render engine.
Lumiera error handling (C++ interface).
LumieraError< LERR_(STATE)> State
std::vector< CalcStream > CalcStreams
RenderConfigurator * how_to_render(POutputManager outputPossibilities, Timings playTimings)
RenderConfigurator::ConnectFunction buildRenderConfiguration(POutputManager outputPossibilities, Timings playTimings)
Factory function to build a RenderConfigurator specifically tailored for a PlayProcess,...
EngineService::QoS_Definition RenderQuality
shared_ptr< OutputManager > POutputManager
Steam-Layer implementation namespace root.
A global service to handle all external output connections.
Strategy to hold all the detail knowledge necessary to establish a running render CalculationStream.