Am 17.05.11 14:44, schrieb Fred Smith:
> Hi Robert,
>
> I am a bit puzzled as the second problem I am having at the moment yields a
> very different behavior when isolated out in a small repro.
>
> This time I get an assertion.
>
> Attached is a modified osggeometry.cpp file that triggers the assertion I'm
> talking about. The assertion is raised when addSlave() is called.
>
> This issue might be by design, though. Not sure.
>
>
> Code:
> osg::Camera *createRTTCamera(osgViewer::Viewer& viewer)
> {
> osg::ref_ptr<osg::Camera> slaveCamera = new osg::Camera();
>
> slaveCamera->setClearColor(osg::Vec4(0, 0, 0, 1)); // initialize alpha
> to 1
> slaveCamera->setClearMask(GL_COLOR_BUFFER_BIT);
>
> osg::Matrixd projMatrix;
> projMatrix.makeOrtho(0.0, (double)1, 0.0, (double)1, -1.0, 1.0);
> slaveCamera->setProjectionMatrix(projMatrix);
>
> slaveCamera->setReferenceFrame(osg::Transform::ABSOLUTE_RF);
>
> osg::ref_ptr<osg::Viewport> viewport = new osg::Viewport(0, 0, 64, 64);
> slaveCamera->setViewport(viewport.get());
>
> osg::Matrixd viewMatrix;
> slaveCamera->setViewMatrix(viewMatrix);
>
> slaveCamera->setRenderOrder(osg::Camera::PRE_RENDER);
> slaveCamera->setAllowEventFocus(false);
>
> slaveCamera->setRenderTargetImplementation(osg::Camera::FRAME_BUFFER_OBJECT);
> slaveCamera->setCullingMode(osg::CullSettings::NO_CULLING);
>
> osg::ref_ptr<osg::Camera> masterCamera = viewer.getCamera();
> slaveCamera->setGraphicsContext(masterCamera->getGraphicsContext());
>
> return slaveCamera;
This will certainly lead to a crash, as slaveCamera gets deconstructed,
as the correpsonding ref_ptr goes out of scope. Try
return slaveCamera.release()
or change the signature of the function to
osg::ref_ptr<osg::Camera> createRTTCamera(osgViewer::Viewer& viewer)
instead.
Can't comment much on the memory-leak issue, though.
cheers,
Stephan
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org