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
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to