We are using the OSG along with JOGL to provide and manage contexts.  In
general, this has worked well, and we have seen others reporting the
same thing on this mailing list.  (We're not yet using the embedded
graphics window, however, but have our own SceneView, etc.)

One thing that we had to be careful to do was manage context IDs
correctly.  We use multiple windows, and windows can be removed and
return, so that their contexts can be removed and remade.  We discovered
that if we were removing a window and creating it again, we could use
JOGL and some fancy footwork to tell the OSG to clean up a context
(releaseAllGLObjects() and flushAllDeletedGLObjects()) and stop drawing
in it until the context is initialized again.  We seem to be doing
alright with that, since it seems we're getting notified about the
context going away (removeNotify() in Java).

However, in some cases, as with the JOGL lightweight canvas, which uses
a PBuffer, a context can be recreated when the object is resized.  We
don't seem to be getting any messages in time to clean up OSG's OpenGL
objects while the context is current.

Is there a way, or would it make sense, to allow us to clean up all of
the OpenGL objects associated with a context, without that context being
current?  I don't know what happens to OpenGL objects when their context
goes away, and I'm wondering whether, in this case, we can tell OSG to
clean up its stuff but it doesn't need to tell OpenGL anything.

thanks,
andy

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

Reply via email to