50 using mobject::ModelPort;
51 using lumiera::error::LUMIERA_ERROR_LOGIC;
107 .attrib(
"start",
Time{0,10})
108 .attrib(
"after",
Time{0,20})
112 .attrib(
"start",
Time{0,20})
117 JobTicket& ticket0 = dispatcher.getJobTicketFor (portIDX, -
Time{0,5});
118 JobTicket& ticket1 = dispatcher.getJobTicketFor (portIDX,
Time{0,15});
119 JobTicket& ticket2 = dispatcher.getJobTicketFor (portIDX,
Time{0,25});
121 CHECK ( ticket0.empty());
122 CHECK (not ticket1.empty());
123 CHECK (not ticket2.empty());
131 CHECK (
Time(0,15) == job1.parameter.nominalTime);
132 CHECK (23 == job1.parameter.invoKey.part.a);
134 CHECK (
Time(0,25) == job2.parameter.nominalTime);
135 CHECK (45 == job2.parameter.invoKey.part.a);
153 auto [port,sink] = dispatcher.getDummyConnection(1);
156 auto pipeline = dispatcher.forCalcStream (timings)
157 .timeRange(
Time{200,0},
Time{300,0})
161 CHECK (not isnil (pipeline));
162 CHECK (5 == pipeline.currFrameNr());
164 Job job = pipeline.buildJob();
165 CHECK (
Time(200,0) == job.parameter.nominalTime);
166 CHECK (555 == job.parameter.invoKey.part.a);
169 CHECK (not isnil (pipeline));
170 CHECK (6 == pipeline.currFrameNr());
171 job = pipeline.buildJob();
172 CHECK (
Time(240,0) == job.parameter.nominalTime);
173 CHECK (555 == job.parameter.invoKey.part.a);
176 CHECK (7 == pipeline.currFrameNr());
177 job = pipeline.buildJob();
178 CHECK (
Time(280,0) == job.parameter.nominalTime);
181 CHECK (isnil (pipeline));
size_t resolveModelPort(ModelPort modelPort) override
translate a generic ModelPort spec into the specific index number applicable at the Timeline referred...
Mock data structures to support implementation testing of render job planning and frame dispatch...
Framerate specified as frames per second.
Generic frame timing specification.
A mocked frame Dispatcher setup without any backing model.
#define VERIFY_ERROR(ERROR_ID, ERRONEOUS_STATEMENT)
Macro to verify that a statement indeed raises an exception.
play::test::DummyOutputLink getDummyConnection(uint index)
The faked builder/playback setup provides some preconfigured ModelPort and corresponding DataSink han...
Steam-Layer implementation namespace root.
structural asset corresponding to the part of the model forming a processing pipe for generating medi...
Lumiera's internal time value datatype.
Abstract Base Class for all testcases.
Simple test class runner.
Tiny helper functions and shortcuts to be used everywhere Consider this header to be effectively incl...
static PPipe query(string const &properties)
convenience shortcut for retrieving default configured pipes
Handle designating a point within the model, where actually output data can be pulled.
static bool isNopJob(Job const &)
Offset measures a distance in time.
How to define a timing specification or constraint.
Individual frame rendering task, forwarding to a closure.
a family of time value like entities and their relationships.
static const FrameRate PAL
predefined constant for PAL framerate
execution plan for pulling a specific exit node.
Job createJobFor(Time nominalTime)
Core operation: build a concrete render job based on this blueprint.