Fixed issue with events having a negative delta of time between them.
This commit is contained in:
@@ -584,6 +584,11 @@ void Viewer::advance(double simulationTime)
|
||||
_frameStamp->setSimulationTime(simulationTime);
|
||||
}
|
||||
|
||||
if (_eventQueue.valid())
|
||||
{
|
||||
_eventQueue->frame( getFrameStamp()->getReferenceTime() );
|
||||
}
|
||||
|
||||
if (getViewerStats() && getViewerStats()->collectStats("frame_rate"))
|
||||
{
|
||||
// update previous frame stats
|
||||
@@ -595,6 +600,7 @@ void Viewer::advance(double simulationTime)
|
||||
getViewerStats()->setAttribute(_frameStamp->getFrameNumber(), "Reference time", _frameStamp->getReferenceTime());
|
||||
}
|
||||
|
||||
|
||||
if (osg::Referenced::getDeleteHandler())
|
||||
{
|
||||
osg::Referenced::getDeleteHandler()->flush();
|
||||
@@ -607,6 +613,7 @@ void Viewer::eventTraversal()
|
||||
{
|
||||
if (_done) return;
|
||||
|
||||
double cutOffTime = _frameStamp->getReferenceTime();
|
||||
double beginEventTraversal = osg::Timer::instance()->delta_s(_startTick, osg::Timer::instance()->tick());
|
||||
|
||||
// OSG_NOTICE<<"Viewer::frameEventTraversal()."<<std::endl;
|
||||
@@ -645,7 +652,7 @@ void Viewer::eventTraversal()
|
||||
gw->checkEvents();
|
||||
|
||||
osgGA::EventQueue::Events gw_events;
|
||||
gw->getEventQueue()->takeEvents(gw_events);
|
||||
gw->getEventQueue()->takeEvents(gw_events, cutOffTime);
|
||||
|
||||
osgGA::EventQueue::Events::iterator itr;
|
||||
for(itr = gw_events.begin();
|
||||
@@ -791,9 +798,7 @@ void Viewer::eventTraversal()
|
||||
|
||||
// OSG_NOTICE<<"mouseEventState Xmin = "<<eventState->getXmin()<<" Ymin="<<eventState->getYmin()<<" xMax="<<eventState->getXmax()<<" Ymax="<<eventState->getYmax()<<std::endl;
|
||||
|
||||
|
||||
_eventQueue->frame( getFrameStamp()->getReferenceTime() );
|
||||
_eventQueue->takeEvents(events);
|
||||
_eventQueue->takeEvents(events, cutOffTime);
|
||||
|
||||
|
||||
#if 0
|
||||
|
||||
Reference in New Issue
Block a user