diff --git a/src/osgViewer/Viewer.cpp b/src/osgViewer/Viewer.cpp index f952021f2..bd20dd4bc 100644 --- a/src/osgViewer/Viewer.cpp +++ b/src/osgViewer/Viewer.cpp @@ -447,13 +447,15 @@ void Viewer::setUpRenderingSupport() (*citr)->removeAllOperations(); } + osg::DisplaySettings* ds = _displaySettings.valid() ? _displaySettings.get() : osg::DisplaySettings::instance(); + if (_camera.valid() && _camera->getGraphicsContext()) { osgUtil::SceneView* sceneView = new osgUtil::SceneView; _cameraSceneViewMap[_camera] = sceneView; sceneView->setDefaults(); - sceneView->setDisplaySettings(_displaySettings.get()); + sceneView->setDisplaySettings(ds); sceneView->setCamera(_camera.get()); sceneView->setState(_camera->getGraphicsContext()->getState()); sceneView->setSceneData(getSceneData()); @@ -472,7 +474,7 @@ void Viewer::setUpRenderingSupport() sceneView->setDefaults(); sceneView->setCamera(slave._camera.get()); - sceneView->setDisplaySettings(_displaySettings.get()); + sceneView->setDisplaySettings(ds); sceneView->setState(slave._camera->getGraphicsContext()->getState()); sceneView->setSceneData(getSceneData()); sceneView->setFrameStamp(frameStamp);