Hi,

on my project I have to know, which time was elapsed since last frame - and 
this time should be constant on each node, which implement an callback. Because 
of this I have implemented an GameTimer, on which you can call "nextFrame" and 
between each call of "nextFrame", the return value of "elapsedTime" is constant.

But I ask me: Why I have implemented this? Because osg calculate currently all 
values I need - but don't save them.

So my suggestion is to extent the frameStamp class by a method 
setDeltaFrameTime(...) (+getDeltaFrameTime) and set the value in 
Viewer::advance. So you write instead of:


Code:
    if (getViewerStats() && getViewerStats()->collectStats("frame_rate"))
    {
        // update previous frame stats
        double deltaFrameTime = _frameStamp->getReferenceTime() - 
prevousReferenceTime;
        getViewerStats()->setAttribute(previousFrameNumber, "Frame duration", 
deltaFrameTime);
        getViewerStats()->setAttribute(previousFrameNumber, "Frame rate", 
1.0/deltaFrameTime);

        // update current frames stats
        getViewerStats()->setAttribute(_frameStamp->getFrameNumber(), 
"Reference time", _frameStamp->getReferenceTime());
    }




Code:
    _frameStamp->setDeltaFrameTime(_frameStamp->getReferenceTime() - 
previousReferenceTime);
    if (getViewerStats() && getViewerStats()->collectStats("frame_rate"))
    {
        // update previous frame stats
        double deltaFrameTime = _frameStamp->getDeltaFrameTime();
        getViewerStats()->setAttribute(previousFrameNumber, "Frame duration", 
deltaFrameTime);
        getViewerStats()->setAttribute(previousFrameNumber, "Frame rate", 
1.0/deltaFrameTime);

        // update current frames stats
        getViewerStats()->setAttribute(_frameStamp->getFrameNumber(), 
"Reference time", _frameStamp->getReferenceTime());
    }




Btw: In this method is a typo: "prevousReferenceTime" instead of 
"prev_i_ousReferenceTime"

Thank you!

Cheers,
Heiko

------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=36607#36607





_______________________________________________
osg-submissions mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org

Reply via email to