Hello,

I've got a Java program which during an object's finalizer deletes an osg Viewer object. From what I understand, this may be occurring a different thread than the thread the viewer was originally created in. Upon deletion of the viewer, I get the following error:

Windows Error #170: [Screen #1] GraphicsWindowWin32::makeCurrentImplementation() - Unable to set current OpenGL rendering context. Reason: The requested resource is in use.

The callstack is:
osgViewer::Viewer::~Viewer -> osg::GraphicsContext::close -> osg::GraphicsContext::makeCurrent -> osgViewer::GraphicsWindowWin32::makeCurrentImplementation

From the look of it, another thread must currently has the opengl context current. However, the main thread isn't calling 'update' or something like that at this point, and is basically complete.

I'd like to know if there is a way to do this properly with multiple threads? Is OpenSceneGraph careful with how it uses an OpenGL context such that it can be shared by multiple threads, or is it just assumed that all such work is in a single thread?

- Eron


_______________________________________________
osg-users mailing list
osg-users@openscenegraph.net
http://openscenegraph.net/mailman/listinfo/osg-users
http://www.openscenegraph.org/

Reply via email to