Hello,
When a node with VBO's enabled outlives the lifetime of it's renderer, I get
an access violation in GLBufferObjectSet::orphan when I try to destroy the
node. I tried to write down the scenario:
using namespace osg;
ref_ptr<Node> node(new Node);
ref_ptr<Geometry> geom(new osg::Geometry);
// ... fill geom
geom->setUseVertexBufferObjects(true);
node->addDrawable(geom.get());
{
ref_ptr<osgViewer::Viewer> viewer(new osgViewer::Viewer());
viewer->setSceneData(node);
viewer->frame();
// render for a while
viewer = NULL; // The viewer is destroyed here
}
node = NULL; // This gives the access violation.
Now if I don't set "geom->setUseVertexBufferObjects(true);" everything works
fine. Do you still need a valid render context or a valid viewer to be able
to clean up the VBO's?
Nico
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org