Moved the frame() event into the event traversal after then events and their state have been accumulated.

This commit is contained in:
Robert Osfield
2012-06-15 09:04:32 +00:00
parent 1dc215a1da
commit 59133b43d3

View File

@@ -596,22 +596,6 @@ void Viewer::advance(double simulationTime)
_frameStamp->setSimulationTime(simulationTime);
}
if (_eventQueue.valid())
{
osgGA::GUIEventAdapter* eventState = getEventQueue()->getCurrentEventState();
if (getCamera()->getViewport())
{
osg::Viewport* viewport = getCamera()->getViewport();
eventState->setInputRange( viewport->x(), viewport->y(), viewport->x() + viewport->width(), viewport->y() + viewport->height());
}
else
{
eventState->setInputRange(-1.0, -1.0, 1.0, 1.0);
}
_eventQueue->frame( getFrameStamp()->getReferenceTime() );
}
if (getViewerStats() && getViewerStats()->collectStats("frame_rate"))
{
// update previous frame stats
@@ -814,6 +798,7 @@ void Viewer::eventTraversal()
}
}
_eventQueue->frame( getFrameStamp()->getReferenceTime() );
// OSG_NOTICE<<"mouseEventState Xmin = "<<eventState->getXmin()<<" Ymin="<<eventState->getYmin()<<" xMax="<<eventState->getXmax()<<" Ymax="<<eventState->getYmax()<<std::endl;