[osg-users] Removing objects with shared GL state from scene graph

Robert Osfield robert.osfield at gmail.com
Fri Jul 26 02:24:43 PDT 2019

Hi Chris,

On Fri, 26 Jul 2019 at 00:38, Chris Djali <krizdjali at gmail.com> wrote:

> I have more information. The GraphicsContext is only referenced by the
> camera when the camera is destroyed. The camera detaches itself from the
> graphics context in its destructor, then the camera's ref_ptr to the
> graphics context is destroyed, triggering the destruction of the graphics
> context. The graphics context calls its own close in its destructor, but by
> then the camera has already detached itself, so it's not helpful.

I don't recall the reason for the current form of the Camera destructor,
it's current incarnation is:


    if (_graphicsContext.valid()) _graphicsContext->removeCamera(this);

So if the GraphicsContext hasn't already been closed then the removeCamera
above would prevent the releaseGLObjects() being called on the Camera.

So... would change the destructor to:


    if (_graphicsContext.valid())


Work for your usage case?

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openscenegraph.org/pipermail/osg-users-openscenegraph.org/attachments/20190726/874a1ec8/attachment.html>

More information about the osg-users mailing list