26 #ifndef STEAM_ENGINE_DISPATCHER_H 27 #define STEAM_ENGINE_DISPATCHER_H 49 using mobject::ModelPort;
165 return currPoint < stopPoint;
178 currPoint = timings.getFrameStartAt (frameNr);
187 currPoint = timings.getFrameStartAt (frameNr);
214 SRC::activate (start,after);
227 size_t portIDX = SRC::dispatcher->resolveModelPort(port);
228 return buildPipeline (
247 return buildPipeline (
269 return terminatePipeline (
300 terminatePipeline(PIP&& pipelineIterator)
323 isBefore (
Time breakPoint)
const 325 return currFrameNr() < PIP::timings.getBreakPointAfter(breakPoint);
331 return PIP::operator->()->buildJob();
337 return PIP::operator->()->determineDeadline (PIP::timings);
a mutable time value, behaving like a plain number, allowing copy and re-accessing ...
auto pullFrom(mobject::ModelPort port)
Builder: connect to the JobTicket defining the actual processing for the nominal time of this frame a...
FrameCnt getBreakPointAfter(TimeValue refPoint) const
the next grid point at or after the given reference time
Organising the output data calculation possibilities.
An (abstract) capability to send media data to an external output.
Basic set of definitions and includes commonly used together.
Aggregation of planning data to generate actual frame calculation jobs.
Execution plan to generate render jobs within a specific render process.
auto explore(IT &&srcSeq)
start building a IterExplorer by suitably wrapping the given iterable source.
Generic frame timing specification.
Any copy and copy construction prohibited.
auto timeRange(Time start, Time after)
Builder: start frame sequence.
virtual size_t resolveModelPort(ModelPort)=0
translate a generic ModelPort spec into the specific index number applicable at the Timeline referred...
auto feedTo(play::DataSink &sink)
Terminal builder: setup processing feed to the given DataSink.
virtual JobTicket & getJobTicketFor(size_t portIDX, TimeValue nominalTime)=0
Core Dispatcher operation: locate the appropriate Segment and retrieve/derive a »blueprint« for rende...
Internal abstraction: a service within the engine for translating a logical calculation stream (corre...
denotes an opened connection ready to receive media data for output.
PipelineBuilder< PIP > buildPipeline(PIP &&treeExplorer)
Steam-Layer implementation namespace root.
Lumiera's internal time value datatype.
virtual ~Dispatcher()
this is an interface
PipelineBuilder< PipeFrameTick > forCalcStream(Timings timings)
Start a builder sequence to assemble a job-planning pipeline, backed by this Dispatcher.
Mix-Ins to allow or prohibit various degrees of copying and cloning.
A complete job-planning pipeline: this »Lumiera Forward Iterator« drives the actual job-planning proc...
boost::rational< int64_t > FSecs
rational representation of fractional seconds
A Builder wrapper, allowing to build a Job-planning pipeline step by step, while supplying contextual...
Handle designating a point within the model, where actually output data can be pulled.
static const Time NEVER
border condition marker value. NEVER >= any time value
Job-planning Step-1: establish a sequence of frame start times.
How to define a timing specification or constraint.
View on the execution planning for a single calculation step.
Job createJobFor(size_t portIDX, TimeValue nominalTime)
Convenience shortcut for tests: JobTicket ⟼ Job.
A time interval anchored at a specific point in time.
Building tree expanding and backtracking evaluations within hierarchical scopes.
int64_t FrameCnt
relative framecount or frame number.
Individual frame rendering task, forwarding to a closure.
a family of time value like entities and their relationships.
basic constant internal time value.
auto buildDependencyPlanning()
Build a sequence of dependent JobPlanning scopes for all prerequisites of this current JobPlanning...
execution plan for pulling a specific exit node.
Job createJobFor(Time nominalTime)
Core operation: build a concrete render job based on this blueprint.
auto expandPrerequisites()
Builder: cause a exhaustive depth-first search to recursively discover all prerequisites of each top-...