[osg-users] VBO possible leakage

2010-12-13 Thread George Sarkisyan
Hi,

Using the gDEBugger I found some VBO leaks on application exit.
For example the leak could be easily seen if we add useVertexBufferObjects 
TRUE into cessna.osg and will try to render it via standard osgviewer.

OSG calls releaseGLObjects before exit for the loaded tree and for Geometry it 
calls releaseGLObjects for ArrayList and DrawElementsList.
For DrawElementsList everything is ok. But for Array there is no special 
releaseGLObjects implementation and the 
empty Object::releaseGLObjects is called. 
So should something like
virtual void releaseGLObjects(State* state=0) const
{
if (_vbo.valid()) _vbo-releaseGLObjects(state);
}
be added to Array header?

Thank you!

Cheers,
George

--
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=34783#34783





___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] VBO possible leakage

2010-12-13 Thread Robert Osfield
Hi George,

I have just reviewed the relevant code Array's are no implementing the
releaseGLObjects(State*) as they should be.  The solution is to add a
resizeGLObjectBuffers(uint) and releaseGLObjects(State*) to BufferData
and this automatically call the appropriate method on
osg::BufferObject if one is attached to the BufferData.

I have now checked in these changes.  Could you please try our
svn/trunk to see how things perform.

Thanks,
Robert.

On Mon, Dec 13, 2010 at 3:58 PM, George Sarkisyan
george.sarkis...@kongsberg.com wrote:
 Hi,

 Using the gDEBugger I found some VBO leaks on application exit.
 For example the leak could be easily seen if we add useVertexBufferObjects 
 TRUE into cessna.osg and will try to render it via standard osgviewer.

 OSG calls releaseGLObjects before exit for the loaded tree and for Geometry 
 it calls releaseGLObjects for ArrayList and DrawElementsList.
 For DrawElementsList everything is ok. But for Array there is no special 
 releaseGLObjects implementation and the
 empty Object::releaseGLObjects is called.
 So should something like
        virtual void releaseGLObjects(State* state=0) const
        {
            if (_vbo.valid()) _vbo-releaseGLObjects(state);
        }
 be added to Array header?

 Thank you!

 Cheers,
 George

 --
 Read this topic online here:
 http://forum.openscenegraph.org/viewtopic.php?p=34783#34783





 ___
 osg-users mailing list
 osg-users@lists.openscenegraph.org
 http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org