HI Thomas, I'm not the author of this particular code so can't straight away see the motivation for this particular structure. Have you been able to resolve this bug?
Robert. On 7 December 2011 23:38, Thomas Lerman <[email protected]> wrote: > If I setRunMaxFrameRate() when using GraphicsWindowQt and setViewer(), > frame() never gets called in GraphicsWindowQt's HeartBeat::timerEvent(). The > code for this method follows: > Code: > if( viewer->getRunMaxFrameRate() > 0.0) > { > double dt = _lastFrameStartTime.time_s(); > double minFrameTime = 1.0 / viewer->getRunMaxFrameRate(); > if (dt < minFrameTime) > OpenThreads::Thread::microSleep(static_cast<unsigned > int>(1000000.0*(minFrameTime-dt))); > } > else > { > // avoid excessive CPU loading when no frame is required in ON_DEMAND > mode > if( viewer->getRunFrameScheme() == osgViewer::ViewerBase::ON_DEMAND ) > { > double dt = _lastFrameStartTime.time_s(); > if (dt < 0.01) > OpenThreads::Thread::microSleep(static_cast<unsigned > int>(1000000.0*(0.01-dt))); > } > > // record start frame time > _lastFrameStartTime.setStartTick(); > > // make frame > if( viewer->getRunFrameScheme() == osgViewer::ViewerBase::ON_DEMAND ) > { > if( viewer->checkNeedToDoFrame() ) > { > viewer->frame(); > } > } > else > { > viewer->frame(); > } > } > > Notice that if the first if-statement is true, frame() can never be called! > > ------------------ > Read this topic online here: > http://forum.openscenegraph.org/viewtopic.php?p=44281#44281 > > > > > > _______________________________________________ > osg-users mailing list > [email protected] > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org _______________________________________________ osg-users mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

