Added releaseAllGLObjects() convinience method.
This commit is contained in:
@@ -12,6 +12,7 @@
|
||||
*/
|
||||
#include <osgUtil/GLObjectsVisitor>
|
||||
#include <osg/Drawable>
|
||||
#include <osg/Notify>
|
||||
|
||||
using namespace osg;
|
||||
using namespace osgUtil;
|
||||
@@ -88,6 +89,7 @@ void GLObjectsVisitor::apply(osg::StateSet& stateset)
|
||||
}
|
||||
if (_mode&RELEASE_STATE_ATTRIBUTES)
|
||||
{
|
||||
osg::notify(osg::NOTICE)<<"GLObjectsVisitor::apply"<<std::endl;
|
||||
stateset.releaseGLObjects(_state.get());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -614,6 +614,16 @@ void SceneView::cullStage(const osg::Matrixd& projection,const osg::Matrixd& mod
|
||||
rendergraph->prune();
|
||||
}
|
||||
|
||||
void SceneView::releaseAllGLObjects()
|
||||
{
|
||||
if (!_sceneData) return;
|
||||
|
||||
GLObjectsVisitor globjv(GLObjectsVisitor::RELEASE_DISPLAY_LISTS|GLObjectsVisitor::RELEASE_STATE_ATTRIBUTES);
|
||||
globjv.setNodeMaskOverride(0xffffffff);
|
||||
globjv.setState(_state.get());
|
||||
_sceneData->accept(globjv);
|
||||
}
|
||||
|
||||
|
||||
void SceneView::flushAllDeletedGLObjects()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user