HI Paul, Which version of the OSG are you using? There was a bug in OSG-3.2.0 that caused event handling problems with some combination of CompositeView usage.
A fix for this issue was merged with svn/trunk and the OSG-3.2 branch, so OSG-3.2.1 shouldn't exhibit this problem. Robert. On 9 September 2014 21:51, Paul <[email protected]> wrote: > I'm using the CompositeViewer to create a window of a scene. I then add a > viewport of another scene on top. I'm having problems with events. > > If I created the the viewport window first, mouse events work for both, > but keyboard events only only work for the mainwindow. > > Code: > > osgViewer::CompositeViewer* viewer = new osgViewer::CompositeViewer; > > osg::ref_ptr<osg::GraphicsContext::Traits> traits = new > osg::GraphicsContext::Traits; > traits->x = 100; > traits->y = 100; > traits->width = 1000; > traits->height = 800; > traits->windowDecoration = true; > traits->doubleBuffer = true; > > osg::ref_ptr<osg::GraphicsContext> gc = > osg::GraphicsContext::createGraphicsContext(traits.get()); > > //PIP window > { > osgViewer::View* view = new osgViewer::View; > view->getCamera()->setRenderOrder(osg::Camera::POST_RENDER,1); > viewer->addView(view); > view->setSceneData(osgDB::readNodeFile("cessnafire.osgt")); > view->getCamera()->setViewport(new osg::Viewport(traits->width/2,0, > traits->width/2, traits->height/2)); > view->getCamera()->setGraphicsContext(gc.get()); > view->setCameraManipulator(new osgGA::TrackballManipulator); > } > > //Main window > { > osgViewer::View* view = new osgViewer::View; > viewer->addView(view); > view->setSceneData(osgDB::readNodeFile("cessnafire.osgt")); > view->getCamera()->setViewport(new osg::Viewport(0, 0, traits->width, > traits->height)); > view->getCamera()->setGraphicsContext(gc.get()); > view->setCameraManipulator(new osgGA::TrackballManipulator); > } > > return viewer->run(); > > > > > > If i create the mainwindow first, keyboard events work for both, but mouse > events only work on the mainwindow. > > Code: > > //Main window > { > osgViewer::View* view = new osgViewer::View; > viewer->addView(view); > view->setSceneData(osgDB::readNodeFile("cessnafire.osgt")); > view->getCamera()->setViewport(new osg::Viewport(0, 0, traits->width, > traits->height)); > view->getCamera()->setGraphicsContext(gc.get()); > view->setCameraManipulator(new osgGA::TrackballManipulator); > } > > //PIP window > { > osgViewer::View* view = new osgViewer::View; > viewer->addView(view); > view->setSceneData(osgDB::readNodeFile("cessnafire.osgt")); > view->getCamera()->setViewport(new osg::Viewport(traits->width/2,0, > traits->width/2, traits->height/2)); > view->getCamera()->setGraphicsContext(gc.get()); > view->setCameraManipulator(new osgGA::TrackballManipulator); > } > > > > > ------------------ > Read this topic online here: > http://forum.openscenegraph.org/viewtopic.php?p=60995#60995 > > > > > > _______________________________________________ > osg-users mailing list > [email protected] > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org >
_______________________________________________ osg-users mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

