diff --git a/src/osgProducer/OsgCameraGroup.cpp b/src/osgProducer/OsgCameraGroup.cpp index 4ead79ee9..aaf4b0bc7 100644 --- a/src/osgProducer/OsgCameraGroup.cpp +++ b/src/osgProducer/OsgCameraGroup.cpp @@ -379,6 +379,26 @@ bool OsgCameraGroup::realize() osg::notify(osg::INFO)<<" to avoid threading problems in osgParticle."< renderSurfaceSet; + for( unsigned int i = 0; i < _cfg->getNumberOfCameras(); i++ ) + { + Producer::Camera *cam = _cfg->getCamera(i); + renderSurfaceSet.insert(cam->getRenderSurface()); + } + if (renderSurfaceSet.size()!=_cfg->getNumberOfCameras()) + { + // camera's must be sharing a RenderSurface, so we need to ensure that we're + // running single threaded, to avoid OpenGL threading issues. + osg::notify(osg::INFO)<<"Warning: disabling multi-threading of cull and draw to avoid"<