Lumiera
0.pre.03
»edit your freedom«
|
#include "steam/engine/render-drive.hpp"
The active drive to keep the render process going – implemented as a job planning job, that repeatedly triggers itself again for the next planning chunk.
The RenderDrive is created and owned by the corresponding CalcStream, and operates the job planning pipeline, backed by the dispatcher.
Definition at line 91 of file render-drive.hpp.
Public Member Functions | |
RenderDrive (RenderEnvironment &renderEnvironment, ModelPort port, uint chan) | |
play::Timings const & | getTimings () const |
Job | prepareRenderPlanningFrom (FrameCnt startFrame) |
create the "start trigger job" Scheduling this job will effectively get a calculation stream into active processing, since it causes the first chunk of job planning plus the automated scheduling of follow-up planning jobs. More... | |
Public Member Functions inherited from JobClosure | |
virtual | ~JobClosure () |
this is an interface More... | |
lib::HashVal | hash_value (JobParameter) const |
virtual void | invokeJobOperation (JobParameter parameter)=0 |
Public Member Functions inherited from JobFunctor | |
virtual | ~JobFunctor () |
this is an interface More... | |
virtual std::string | diagnostic () const |
operator std::string () const | |
Private Member Functions | |
Job | buildFollowUpJobFrom (Time refPoint) |
InvocationInstanceID | buildInstanceID (HashVal) const override |
JobKind | getJobKind () const |
size_t | hashOfInstance (InvocationInstanceID) const override |
void | invokeJobOperation (JobParameter) override |
entry point (interface JobClosure): invoke the concrete job operation. More... | |
void | performJobPlanningChunk (FrameCnt nextStartFrame) |
Private Attributes | |
RenderEnvironment & | engine_ |
|
inline |
Definition at line 121 of file render-drive.hpp.
|
overrideprivate |
entry point (interface JobClosure): invoke the concrete job operation.
In this case, the job operation is responsible for planning a chunk of actual render jobs.
Definition at line 46 of file render-drive.cpp.
Job prepareRenderPlanningFrom | ( | FrameCnt | startFrame | ) |
create the "start trigger job" Scheduling this job will effectively get a calculation stream into active processing, since it causes the first chunk of job planning plus the automated scheduling of follow-up planning jobs.
The relation to real (wall clock) time will be established when the returned job is actually invoked
startFrame | where to begin rendering, relative to the nominal time grid implicitly given by the ModelPort to be pulled |
Definition at line 72 of file render-drive.cpp.