Hi,

When I use the FlightManipulator, I have a lot of warning messages: "Manipulator warning: eventTimeDelta = -0.004".
The messages are displayed only using ON_DEMAND rendering.

The GraphicsWindow has an event queue. The window related event (mouse move, ...) are appended in this queue.

The osgViewer::View has also an event queue (not shared with the window). A FRAME event is pushed in this queue in the advance method.

A frame is made of:
    advance
    {
        push FRAME event time = reference time = delta_s(view start tick, now)
    }

    eventTraversal
    {
        gw->checkEvents => fill the GraphicsWindow event queue time = delta_s(event queue start tick, now) > FRAME event time
        append gw events to a local event queue
        append view events to the local event queue

        here, the local event queue contains:
            gw event (time = T)
            gw event (time = T+1)
            gw event (time = T+2)
            ...
            FRAME event (time = T-1)

        the local event queue is not sorted (by event time) and the FlightManipulator doesn't like it.
    }

The warnings are not printed in the CONTINUOUS rendering mode because the takeEvents method (used to takes the events from the graphics window event queue and the view event queue) uses a cutoff time (reference time). The window events are processed by the manipulator during the frame N+1.

These messages are quite annoying. They exist in OSG 2.x but they are notified as info (most of the time not printed).

I don't know how to correct this issue:
  • sort the local event queue (using the event times) before the event dispatch
  • always set cutoff time = reference time
  • make the manipulators more flexible
  • ...

Any ideas ?

_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to