Hello,

I have an event timing problem when using OSG with wxWidgets. I'm building
my application on top of osgViewer and wxWidgets, and using
CameraManipulators.

The problem is that, when I started using wxWidgets, mouse move event time
stamps became delayed about 0.8 seconds from frame time stamps.

When there is a mouse move event, the OSGCanvas class (from the wxWidgets
sample) does:
_graphics_window->getEventQueue()->mouseMotion(event.GetX(), event.GetY());
This adds an event with a time stamp that comes from:
osg::Timer::instance()->delta_s(_startTick, osg::Timer::instance()->tick());

When there is a frame event, osgViewer::Viewer::eventTraversal does:
_eventQueue->frame( getFrameStamp()->getReferenceTime() );

The mouse move time stamps that come from wxWidgets are approximately 0.8
seconds later than the frame time stamps. This messes up the event system at
the osgGA level. I'm planning to abandon the osgGA method of storing a queue
of 2 mouse events. I can use a mouse_move() handler that just updates the
mouse position variables, and a frame() handler that actually performs the
movement. This way the timings in the eventAdapters can be ignored.

However I'm still curious. What could be happening? Is there any other way
around it? Has anyone experienced this problem while using wxWdgets and
osgGA matrix manipulators?

Thank you
Eduardo
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to