complilation fixes
This commit is contained in:
parent
86e76bf7fe
commit
f9cd80560c
8 changed files with 71 additions and 77 deletions
|
|
@ -131,7 +131,7 @@ namespace engine {
|
||||||
invoKey.frameNumber = startFrame;
|
invoKey.frameNumber = startFrame;
|
||||||
Time nominalPlanningStartTime = timings_.getFrameStartAt (startFrame);
|
Time nominalPlanningStartTime = timings_.getFrameStartAt (startFrame);
|
||||||
|
|
||||||
return Job(this, invoKey, nominalPlanningStartTime);
|
return Job(*this, invoKey, nominalPlanningStartTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -44,7 +44,7 @@ namespace engine {
|
||||||
|
|
||||||
/** */
|
/** */
|
||||||
FrameCoord
|
FrameCoord
|
||||||
Dispatcher::JobBuilder::relativeFrameLocation (TimeAnchor refPoint, uint frameCountOffset)
|
Dispatcher::JobBuilder::relativeFrameLocation (TimeAnchor& refPoint, uint frameCountOffset)
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED ("build coordinates of frame to render");
|
UNIMPLEMENTED ("build coordinates of frame to render");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -83,7 +83,7 @@ namespace engine {
|
||||||
establishNextJobs (TimeAnchor& refPoint)
|
establishNextJobs (TimeAnchor& refPoint)
|
||||||
{
|
{
|
||||||
return JobPlanningSequence(
|
return JobPlanningSequence(
|
||||||
relativeFrameLocation(refPoint_),
|
relativeFrameLocation(refPoint),
|
||||||
dispatcher_);
|
dispatcher_);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -74,14 +74,14 @@ namespace engine {
|
||||||
void
|
void
|
||||||
Job::triggerJob() const
|
Job::triggerJob() const
|
||||||
{
|
{
|
||||||
myClosure(this).invokeJobOperation (parameter, currentTime);
|
myClosure(this).invokeJobOperation (parameter);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
Job::signalFailure() const
|
Job::signalFailure() const
|
||||||
{
|
{
|
||||||
myClosure(this).signalFailure (parameter, now);
|
myClosure(this).signalFailure (parameter);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -106,7 +106,6 @@ namespace engine {
|
||||||
Job::isValid() const
|
Job::isValid() const
|
||||||
{
|
{
|
||||||
return this->jobClosure
|
return this->jobClosure
|
||||||
&& this->parameter.invoKey > 0
|
|
||||||
&& myClosure(this).verify (getNominalTime());
|
&& myClosure(this).verify (getNominalTime());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -143,62 +143,6 @@ namespace engine {
|
||||||
|
|
||||||
typedef lumiera_jobParameter const& JobParameter;
|
typedef lumiera_jobParameter const& JobParameter;
|
||||||
|
|
||||||
class JobClosure;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Individual frame rendering task, forwarding to a closure.
|
|
||||||
* This functor encodes all information necessary to trigger
|
|
||||||
* and invoke the actual rendering operation. It will be embedded
|
|
||||||
* by value into a job descriptor and then enqueued with the scheduler
|
|
||||||
* for invocation just in time. The job interface exposes everything necessary
|
|
||||||
* to plan, handle, schedule and abort jobs. The implementation refers to the
|
|
||||||
* concrete "execution plan" encoded into the corresponding engine::JobTicket.
|
|
||||||
* The latter is embedded into the storage for one segment of the low-level model
|
|
||||||
* and thus is shared for all frames and channels within this part of the timeline.
|
|
||||||
* Thus, the lumiera_jobParameter struct contains the "moving parts"
|
|
||||||
* different for each \em individual job.
|
|
||||||
*
|
|
||||||
* @todo 2/12 WIP-WIP-WIP defining the invocation sequence and render jobs
|
|
||||||
*/
|
|
||||||
class Job
|
|
||||||
: public lumiera_jobDefinition
|
|
||||||
{
|
|
||||||
|
|
||||||
public:
|
|
||||||
|
|
||||||
Job (JobClosure& specificJobDefinition
|
|
||||||
,InvocationInstanceID invoKey
|
|
||||||
,Time nominalFrameTime)
|
|
||||||
{
|
|
||||||
this->jobClosure = &specificJobDefinition;
|
|
||||||
this->parameter = {_raw(nominalFrameTime), invoKey };
|
|
||||||
}
|
|
||||||
|
|
||||||
// using standard copy operations
|
|
||||||
|
|
||||||
|
|
||||||
void triggerJob() const;
|
|
||||||
void signalFailure() const;
|
|
||||||
|
|
||||||
|
|
||||||
Time
|
|
||||||
getNominalTime() const
|
|
||||||
{
|
|
||||||
return Time (TimeValue(parameter.nominalTime));
|
|
||||||
}
|
|
||||||
|
|
||||||
InvocationInstanceID
|
|
||||||
getInvocationInstanceID() const
|
|
||||||
{
|
|
||||||
return this->parameter.invoKey;
|
|
||||||
}
|
|
||||||
|
|
||||||
JobKind getKind() const;
|
|
||||||
bool isValid() const;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Interface of the closure for frame rendering jobs.
|
* Interface of the closure for frame rendering jobs.
|
||||||
* Hidden behind this interface resides all of the context re-building
|
* Hidden behind this interface resides all of the context re-building
|
||||||
|
|
@ -229,6 +173,60 @@ namespace engine {
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Individual frame rendering task, forwarding to a closure.
|
||||||
|
* This functor encodes all information necessary to trigger
|
||||||
|
* and invoke the actual rendering operation. It will be embedded
|
||||||
|
* by value into a job descriptor and then enqueued with the scheduler
|
||||||
|
* for invocation just in time. The job interface exposes everything necessary
|
||||||
|
* to plan, handle, schedule and abort jobs. The implementation refers to the
|
||||||
|
* concrete "execution plan" encoded into the corresponding engine::JobTicket.
|
||||||
|
* The latter is embedded into the storage for one segment of the low-level model
|
||||||
|
* and thus is shared for all frames and channels within this part of the timeline.
|
||||||
|
* Thus, the lumiera_jobParameter struct contains the "moving parts"
|
||||||
|
* different for each \em individual job.
|
||||||
|
*/
|
||||||
|
class Job
|
||||||
|
: public lumiera_jobDefinition
|
||||||
|
{
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
Job (JobClosure& specificJobDefinition
|
||||||
|
,InvocationInstanceID invoKey
|
||||||
|
,Time nominalFrameTime)
|
||||||
|
{
|
||||||
|
this->jobClosure = &specificJobDefinition;
|
||||||
|
this->parameter.nominalTime = _raw(nominalFrameTime);
|
||||||
|
this->parameter.invoKey = invoKey;
|
||||||
|
}
|
||||||
|
|
||||||
|
// using standard copy operations
|
||||||
|
|
||||||
|
|
||||||
|
void triggerJob() const;
|
||||||
|
void signalFailure() const;
|
||||||
|
|
||||||
|
|
||||||
|
Time
|
||||||
|
getNominalTime() const
|
||||||
|
{
|
||||||
|
return Time (TimeValue(parameter.nominalTime));
|
||||||
|
}
|
||||||
|
|
||||||
|
InvocationInstanceID
|
||||||
|
getInvocationInstanceID() const
|
||||||
|
{
|
||||||
|
return this->parameter.invoKey;
|
||||||
|
}
|
||||||
|
|
||||||
|
JobKind getKind() const;
|
||||||
|
bool isValid() const;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
}} // namespace proc::engine
|
}} // namespace proc::engine
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -77,17 +77,17 @@ namespace play {
|
||||||
Timings Timings::DISABLED(FrameRate::HALTED);
|
Timings Timings::DISABLED(FrameRate::HALTED);
|
||||||
|
|
||||||
|
|
||||||
TimeValue
|
Time
|
||||||
Timings::getOrigin() const
|
Timings::getOrigin() const
|
||||||
{
|
{
|
||||||
return grid_->timeOf(0);
|
return Time(grid_->timeOf(0));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
TimeValue
|
Time
|
||||||
Timings::getFrameStartAt (int64_t frameNr) const
|
Timings::getFrameStartAt (int64_t frameNr) const
|
||||||
{
|
{
|
||||||
return grid_->timeOf(frameNr);
|
return Time(grid_->timeOf(frameNr));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -113,9 +113,9 @@ namespace play {
|
||||||
/** marker for halted output */
|
/** marker for halted output */
|
||||||
static Timings DISABLED;
|
static Timings DISABLED;
|
||||||
|
|
||||||
TimeValue getOrigin() const;
|
Time getOrigin() const;
|
||||||
|
|
||||||
TimeValue getFrameStartAt (int64_t frameNr) const;
|
Time getFrameStartAt (int64_t frameNr) const;
|
||||||
Offset getFrameOffsetAt (TimeValue refPoint) const;
|
Offset getFrameOffsetAt (TimeValue refPoint) const;
|
||||||
Duration getFrameDurationAt (TimeValue refPoint) const;
|
Duration getFrameDurationAt (TimeValue refPoint) const;
|
||||||
Duration getFrameDurationAt (int64_t refFrameNr) const;
|
Duration getFrameDurationAt (int64_t refFrameNr) const;
|
||||||
|
|
|
||||||
|
|
@ -174,7 +174,7 @@ namespace test {
|
||||||
Timings timings (FrameRate::PAL);
|
Timings timings (FrameRate::PAL);
|
||||||
ENSURE (START_FRAME == 10);
|
ENSURE (START_FRAME == 10);
|
||||||
|
|
||||||
TimeAnchor refPoint = TimeAnchor::build (timings, START_FRAME);
|
TimeAnchor refPoint(timings, START_FRAME);
|
||||||
CHECK (refPoint == Time::ZERO + Duration(10, FrameRate::PAL));
|
CHECK (refPoint == Time::ZERO + Duration(10, FrameRate::PAL));
|
||||||
|
|
||||||
FrameCoord coordinates = dispatcher.onCalcStream (modelPort,CHANNEL)
|
FrameCoord coordinates = dispatcher.onCalcStream (modelPort,CHANNEL)
|
||||||
|
|
@ -191,7 +191,6 @@ namespace test {
|
||||||
|
|
||||||
Job frameJob = executionPlan.createJobFor (coordinates);
|
Job frameJob = executionPlan.createJobFor (coordinates);
|
||||||
CHECK (frameJob.getNominalTime() == coordinates.absoluteNominalTime);
|
CHECK (frameJob.getNominalTime() == coordinates.absoluteNominalTime);
|
||||||
CHECK (0 < frameJob.getInvocationInstanceID());
|
|
||||||
#if false /////////////////////////////////////////////////////////////////////////////////////////////////////////////UNIMPLEMENTED :: TICKET #880
|
#if false /////////////////////////////////////////////////////////////////////////////////////////////////////////////UNIMPLEMENTED :: TICKET #880
|
||||||
#endif /////////////////////////////////////////////////////////////////////////////////////////////////////////////UNIMPLEMENTED :: TICKET #880
|
#endif /////////////////////////////////////////////////////////////////////////////////////////////////////////////UNIMPLEMENTED :: TICKET #880
|
||||||
}
|
}
|
||||||
|
|
@ -209,7 +208,7 @@ namespace test {
|
||||||
ModelPort modelPort (getTestPort());
|
ModelPort modelPort (getTestPort());
|
||||||
Timings timings (FrameRate::PAL);
|
Timings timings (FrameRate::PAL);
|
||||||
|
|
||||||
TimeAnchor refPoint = TimeAnchor::build (timings, START_FRAME);
|
TimeAnchor refPoint = TimeAnchor(timings, START_FRAME);
|
||||||
|
|
||||||
JobPlanningSequence jobs = dispatcher.onCalcStream(modelPort,CHANNEL)
|
JobPlanningSequence jobs = dispatcher.onCalcStream(modelPort,CHANNEL)
|
||||||
.establishNextJobs(refPoint);
|
.establishNextJobs(refPoint);
|
||||||
|
|
@ -226,9 +225,8 @@ namespace test {
|
||||||
///TODO nachfolgendes muß komplett umgeschrieben werden
|
///TODO nachfolgendes muß komplett umgeschrieben werden
|
||||||
///TODO definieren, wie das scheduler-interface angesprochen wird
|
///TODO definieren, wie das scheduler-interface angesprochen wird
|
||||||
///TODO dann stub dafür bauen
|
///TODO dann stub dafür bauen
|
||||||
///TODO Idee/Frage: kann man nach den Prerequisites nochmal zum Job *zurückkehren* ?
|
|
||||||
/////////////////// Antwort: nein man kann nicht.
|
|
||||||
|
|
||||||
|
#if false /////////////////////////////////////////////////////////////////////////////////////////////////////////////UNIMPLEMENTED :: TICKET #880
|
||||||
TimeVar frameStart (refPoint);
|
TimeVar frameStart (refPoint);
|
||||||
InvocationInstanceID prevInvocationID(0);
|
InvocationInstanceID prevInvocationID(0);
|
||||||
Offset expectedTimeIncrement (1, FrameRate::PAL);
|
Offset expectedTimeIncrement (1, FrameRate::PAL);
|
||||||
|
|
@ -248,7 +246,6 @@ namespace test {
|
||||||
CHECK (frameStart == Time(refPoint) + coveredTime);
|
CHECK (frameStart == Time(refPoint) + coveredTime);
|
||||||
CHECK (frameStart >= Time(refPoint) + timings.getPlanningChunkDuration());
|
CHECK (frameStart >= Time(refPoint) + timings.getPlanningChunkDuration());
|
||||||
CHECK (frameStart + expectedTimeIncrement > Time(refPoint) + timings.getPlanningChunkDuration());
|
CHECK (frameStart + expectedTimeIncrement > Time(refPoint) + timings.getPlanningChunkDuration());
|
||||||
#if false /////////////////////////////////////////////////////////////////////////////////////////////////////////////UNIMPLEMENTED :: TICKET #880
|
|
||||||
#endif /////////////////////////////////////////////////////////////////////////////////////////////////////////////UNIMPLEMENTED :: TICKET #880
|
#endif /////////////////////////////////////////////////////////////////////////////////////////////////////////////UNIMPLEMENTED :: TICKET #880
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue