Lumiera  0.pre.03
»edit your freedom«
RenderDrive Class Reference

#include "steam/engine/render-drive.hpp"

Description

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.

Todo:
4/23 early DRAFT – find out what this does and write type comment

Definition at line 82 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

RenderEnvironmentengine_
 

Constructor & Destructor Documentation

◆ RenderDrive()

RenderDrive ( RenderEnvironment renderEnvironment,
ModelPort  port,
uint  chan 
)
inline
Todo:

Definition at line 112 of file render-drive.hpp.

Member Function Documentation

◆ invokeJobOperation()

void invokeJobOperation ( JobParameter  parameter)
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 37 of file render-drive.cpp.

◆ prepareRenderPlanningFrom()

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

Parameters
startFramewhere to begin rendering, relative to the nominal time grid implicitly given by the ModelPort to be pulled

Definition at line 63 of file render-drive.cpp.

+ Inheritance diagram for RenderDrive:
+ Collaboration diagram for RenderDrive:

The documentation for this class was generated from the following files: