Lumiera
0.pre.03
»edit your freedom«
|
#include "steam/play/timings.hpp"
Generic frame timing specification.
Defines the expected delivery interval, optionally also the expected quality-of-service (urgency).
Definition at line 86 of file timings.hpp.
Public Member Functions | |
Timings (FrameRate fps) | |
Create a default initialised Timing constraint record. More... | |
Timings (FrameRate fps, Time realTimeAnchor) | |
Duration | constantFrameTimingsInterval (TimeValue startPoint) const |
the frame spacing and duration remains constant for some time... More... | |
Timings | constrainedBy (Timings additionalConditions) |
FrameCnt | establishNextPlanningChunkStart (FrameCnt anchorFrame) const |
establish the time point to anchor the next planning chunk, in accordance with getPlanningChunkDuration More... | |
FrameCnt | getBreakPointAfter (TimeValue refPoint) const |
the next grid point at or after the given reference time | |
Duration | getFrameDurationAt (TimeValue refPoint) const |
Duration | getFrameDurationAt (FrameCnt refFrameNr) const |
Time | getFrameStartAt (FrameCnt frameNr) const |
Time | getOrigin () const |
Duration | getPlanningChunkDuration () const |
the minimum time span to be covered by frame calculation jobs planned in one sway. More... | |
Offset | getRealOffset (FrameCnt frameOffset) const |
calculate the given frame's distance from origin, but do so using the real time scale, including any playback speed factor and similar corrections. More... | |
Time | getTimeDue (FrameCnt frameOffset) const |
real time deadline for the given frame, without any latency. More... | |
bool | isOriginalSpeed () const |
bool | isTimebound () const |
bool | isValid () const |
Consistency self-check. More... | |
Static Public Attributes | |
static Timings | DISABLED |
marker for halted output More... | |
Public Attributes | |
Duration | engineLatency |
reasonable guess at the scheduling and dispatch-delay of the render engine | |
Duration | outputLatency |
boost::rational< FrameCnt > | playbackSpeed |
PlaybackUrgency | playbackUrgency |
Time | scheduledDelivery |
a wall clock time corresponding to the Grid's origin. Can be Time::Never (=not time bound) | |
Private Attributes | |
lib::time::PQuant | grid_ |
Create a default initialised Timing constraint record.
Using the standard optimistic settings for most values, no latency, no special requirements. The frame grid is rooted at the "natural" time origin; it is not related in any way to the current session.
Definition at line 69 of file timings.cpp.
the frame spacing and duration remains constant for some time...
startPoint | looking from that time point into future |
Definition at line 159 of file timings.cpp.
References Time::MAX.
Offset getRealOffset | ( | FrameCnt | frameOffset | ) | const |
calculate the given frame's distance from origin, but do so using the real time scale, including any playback speed factor and similar corrections.
frameOffset | frame number relative to the implicit grid |
Definition at line 180 of file timings.cpp.
Referenced by Timings::getTimeDue().
Time getTimeDue | ( | FrameCnt | frameOffset | ) | const |
real time deadline for the given frame, without any latency.
This value is provided in case of scheduled time of delivery, which is signalled by playbackUrgency == TIMEBOUND
Time::NEVER
is returnedDefinition at line 166 of file timings.cpp.
References Timings::getRealOffset(), Time::NEVER, and Timings::scheduledDelivery.
Referenced by JobPlanning::JobPlanning().
Duration getPlanningChunkDuration | ( | ) | const |
the minimum time span to be covered by frame calculation jobs planned in one sway.
The ongoing planning of additional jobs proceeds in chunks of jobs added at once to the schedule. This setting defines the minimum time to plan ahead; after covering at least this time span with new jobs, the frame dispatcher concludes "enough for now" and emits a continuation job for the next planning chunk.
Definition at line 190 of file timings.cpp.
Referenced by Timings::establishNextPlanningChunkStart().
FrameCnt establishNextPlanningChunkStart | ( | FrameCnt | anchorFrame | ) | const |
establish the time point to anchor the next planning chunk, in accordance with getPlanningChunkDuration
anchorFrame | frame number where the current planning chunk started |
Definition at line 197 of file timings.cpp.
References Timings::getPlanningChunkDuration().
bool isValid | ( | ) | const |
Consistency self-check.
typically invoked from assertions
Definition at line 102 of file timings.cpp.
References Time::MAX, Time::NEVER, and Timings::scheduledDelivery.
|
static |
marker for halted output
a special marker Timings record, indicating disabled or halted output
Definition at line 106 of file timings.hpp.