Hi Rafa, I'm afraid I can't really spot what might be up from these code fragments or your explanation. Is it possible to create a small example that glues Java and the OSG together. I don't use Java myself so don't really know where to start, but from a complete example I might be able to work out what's going on.
W.r.t the HUD Camera you have the option of placing this as a Slave camera rather than a main Camera, or just using CompositeViewer. For an example of using CompositeViewer with GraphicsWindowEmbedded you could look at the latest incarnations of the osgviewerGLUT and osgviewerQT examples as they now have both Viewer and COmpositeViewer paths. Robert. On 6/5/07, Rafa Gaitan <[EMAIL PROTECTED]> wrote:
Hi Robert, Sorry about the late response, I was busy in other tasks. > This is probably the Camera's being resized relative to the original > size, and the original projection and viewport is done relative to the > defined window size. This is done to allow for multiple cameras to > share a single window. SimpleViewer just hardwired the aspect ratios > and viewports to exactly that of the window size so can probably get > away with more. I would however, with Viewer expect a camera filling > the whole window to still remain filling the whole window after > resize. > > Could you post how you are wiring things up? Yes, I have made two tests, one inheriting from osgViewer::Viewer and other one wrapping it on a class, both the same result. I need to subclass or to wrap because I need a way to manage things from Java. This is the way I make things up: MyViewer::MyViewer():osgViewer::Viewer() { _gw = setUpViewerAsEmbeddedInWindow(0,0,800,600); _root = new osg::Group(); setSceneData(_root.get()); _cameraHUD = createHUD(); _root->addChild(new osg::Group()); _root->addChild(_cameraHUD.get()); setCameraManipulator(new osgGA::TrackballManipulator); getCamera()->setPostDrawCallback(new SnapImageDrawCallback()); } Doing things on constructor could be a problem? I'm not sure, but it's possible that the rendering context is not created yet, when I call the constructor. The way I'm passing events is: myViewer->getGraphicsWindow()->getEventQueue()->.... and in the resize event I also call: myViewer->getGraphicsWindow()->resized(x,y,w,h); Doing some more tests I've realized that the events do not arrive to the Manipulator. Looks like there isn't manipulator on the viewer.. but I'm setting it. Resize event arrives but the camera projection is incorrect just starting the viewer. > > This suggests that the viewer is being destructed after the graphics > context has been destroyed. Try destroying the viewer first then your > own window. Yes, that was the problem! Thanks!. Thanks! Rafa. -- Rafael Gaitán Linares Instituto de Automática e Informática Industrial http://www.ai2.upv.es Ciudad Politécnica de la Innovación Universidad Politécnica de Valencia _______________________________________________ osg-users mailing list osg-users@openscenegraph.net http://openscenegraph.net/mailman/listinfo/osg-users http://www.openscenegraph.org/
_______________________________________________ osg-users mailing list osg-users@openscenegraph.net http://openscenegraph.net/mailman/listinfo/osg-users http://www.openscenegraph.org/