Introduced new scheme for handling mouse events with osgViewer. The new scheme enables robust event handling even when using distortion correction render to texture Cameras.
This commit is contained in:
@@ -132,6 +132,11 @@ bool EventQueue::copyEvents(Events& events) const
|
||||
}
|
||||
}
|
||||
|
||||
void EventQueue::syncWindowRectangleWithGraphcisContext()
|
||||
{
|
||||
const osg::GraphicsContext::Traits* traits = (getGraphicsContext()!=0) ? getGraphicsContext()->getTraits() : 0;
|
||||
if (traits) _accumulateEventState->setWindowRectangle(traits->x, traits->y, traits->width, traits->height, !_useFixedMouseInputRange);
|
||||
}
|
||||
|
||||
void EventQueue::windowResize(int x, int y, int width, int height, double time)
|
||||
{
|
||||
@@ -490,6 +495,8 @@ void EventQueue::frame(double time)
|
||||
GUIEventAdapter* event = new GUIEventAdapter(*_accumulateEventState);
|
||||
event->setEventType(GUIEventAdapter::FRAME);
|
||||
event->setTime(time);
|
||||
|
||||
OSG_NOTICE<<"frame("<<time<<"), event->getX()="<<event->getX()<<", event->getY()="<<event->getY()<<", event->getXmin()="<<event->getXmin()<<", event->getYmin()="<<event->getYmin()<<", event->getXmax()="<<event->getXmax()<<", event->getYmax()="<<event->getYmax()<<std::endl;
|
||||
|
||||
addEvent(event);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user