Lumiera
0.pre.03
»edit your freedom«
|
#include "steam/engine/engine-service.hpp"
A service to schedule series of calculations, delivering the rendered data into an external output sink in a timely fashion.
Actually the CalculationStream instances provided through this (facade) interface are backed by jobs executed through the scheduler in the vault layer. The implementation of this service is responsible for creating the right job entries in the correct order and to enqueue these into the scheduler.
Definition at line 93 of file engine-service.hpp.
Public Types | |
typedef lib::polyvalue::CloneValueSupport< Quality > | _Clonable_QoS_Strategy |
typedef lib::PolymorphicValue< Quality, QoS_IMPL_SIZE, _Clonable_QoS_Strategy > | QoS_Definition |
Public Member Functions | |
CalcStreams | calculate (ModelPort mPort, Timings nominalTimings, OutputConnection &output, Quality serviceQuality=QoS_DEFAULT) |
core operation: activate the Lumiera Render Engine. More... | |
CalcStreams | calculateBackground (ModelPort mPort, Timings nominalTimings, Quality serviceQuality=QoS_BACKGROUND) |
Static Public Attributes | |
static lib::Depend< EngineService > | instance |
access point to the Engine Interface. More... | |
static QoS_Definition | QoS_BACKGROUND = QoS_Definition::build<DefaultQoS> (BACKGROUND) |
static QoS_Definition | QoS_COMPROMISE = QoS_Definition::build<Compromise> (PLAYBACK) |
static QoS_Definition | QoS_DEFAULT = QoS_Definition::build<DefaultQoS> (PLAYBACK) |
static QoS_Definition | QoS_PERFECT_RESULT = QoS_Definition::build<DefaultQoS> (RENDER) |
static QoS_Definition | QoS_SYNC_PRIORITY = QoS_Definition::build<PriorityQoS>() |
Classes | |
class | Quality |
Quality-of-Service definition for an Render Engine usage. More... | |
Friends | |
class | EngineDiagnostics |
Protected Member Functions | |
void | activateTracing () |
Switch the complete engine into diagnostics mode. More... | |
virtual RenderEnvironment & | configureCalculation (ModelPort, Timings, Quality) |
void | disableTracing () |
EX_FREE. | |
Private Types | |
enum | { QoS_IMPL_SIZE = sizeof(size_t) } |
Static Private Member Functions | |
static CalcStream | activateCalculation (play::DataSink, RenderEnvironment &) |
Additional Inherited Members | |
Private Member Functions inherited from NonCopyable | |
NonCopyable (NonCopyable const &)=delete | |
NonCopyable & | operator= (NonCopyable const &)=delete |
CalcStreams calculate | ( | ModelPort | mPort, |
Timings | nominalTimings, | ||
OutputConnection & | output, | ||
Quality | serviceQuality = QoS_DEFAULT |
||
) |
core operation: activate the Lumiera Render Engine.
Invoking this service effectively hooks up each channel of the given model exit point to deliver into the corresponding output sink on the given OutputConnection (which is assumed to be already allocated for active use by this connection). The generated calculation streams represent actively ongoing calculations within the engine, started right away, according to the given timing constraints and service quality.
Definition at line 71 of file engine-service.cpp.
References EngineService::activateCalculation(), and EngineService::configureCalculation().
|
protectedvirtual |
extension point Create the environment for rendering a connected and related set of output streams. Configure and prepare all the internal components, pre-allocate resources and add entries to the registration tables necessary to get the related render activities into "running" state. The created setup will typically be used to generate all the individual channel streams linked together for playback or rendering; they all share the same media type and quality settings.
Reimplemented in EngineServiceMock.
Definition at line 139 of file engine-service.cpp.
Referenced by EngineService::calculate().
|
protected |
Switch the complete engine into diagnostics mode.
This activates additional logging and reporting facilities, allowing to verify some specific operations within the engine did indeed happen. Activating this mode incurs a performance hit.
Definition at line 160 of file engine-service.cpp.
|
staticprivate |
build a representation of a single, ongoing calculation effort. This "CalcStream" is tied to the actual engine implementation, but only through an opaque link, representing this concrete engine as an engine::RenderEnvironment closure. This enables the created CalcStream to be re-configured and adjusted while running.
Definition at line 110 of file engine-service.cpp.
Referenced by EngineService::calculate().
|
static |
access point to the Engine Interface.
storage for the EngineService interface object
this is an facade interface for internal use by the player. Client code should use the Player.
Definition at line 134 of file engine-service.hpp.
Referenced by LumieraRenderProcessBuilder::buildCalculationStreams().