Hello,
I'm having some trouble trying to set some slave cameras, acting as HUDs. I
have written a small program showing how I'm setting the graph. When running
with 2.4.0, none of the slave views are shown. When compiling against SVN,
the two are shown, but a crash happens when pressing 's' several times, so I
have to be doing something wrong to get such different behaviours with
several versions of the library. Currently osgWidget is not an option for me
as I'm tied to 2.4.0 for this project. Here is the tiny code:
#include <osgViewer/Viewer>
#include <osgViewer/ViewerEventHandlers>
#include <osgDB/ReadFile>
void prepareCamera(osg::Camera *c, osgViewer::Viewer &v)
{
c->setGraphicsContext(v.getCamera()->getGraphicsContext());
c->setProjectionMatrix(osg::Matrix::ortho2D(0,1024,0,768));
c->setReferenceFrame(osg::Transform::ABSOLUTE_RF);
c->setViewMatrix(osg::Matrix::identity());
c->setAllowEventFocus(false);
v.addSlave(c, false);
}
int main()
{
osg::Camera *c1, *c2;
c1 = new osg::Camera;
c2 = new osg::Camera;
osgViewer::Viewer v;
v.addEventHandler(new osgViewer::StatsHandler());
v.realize();
prepareCamera(c1, v);
c1->setViewport(200,100,1024+200,768+100);
c1->setClearColor(osg::Vec4(1.0,0.0,0.0,1.0));
c1->setRenderOrder(osg::Camera::POST_RENDER);
prepareCamera(c2, v);
c2->setViewport(0,0,1024,768);
c2->setClearColor(osg::Vec4(0.0,1.0,0.0,1.0));
c2->setRenderOrder(osg::Camera::POST_RENDER);
v.getCamera()->setClearColor(osg::Vec4(0.3,0.3,0.3,0.0));
v.getCamera()->setRenderOrder(osg::Camera::PRE_RENDER);
v.run();
return 0;
}
Thanks,
Alberto
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org