From a47a6f03102aacafde18e3f61ec26a237ea8acf8 Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Thu, 3 Apr 2003 14:12:09 +0000 Subject: [PATCH] Fixes to the multipipe initialization. --- src/osg/DisplaySettings.cpp | 2 +- src/osgProducer/OsgCameraGroup.cpp | 12 +++++++++++- src/osgUtil/SceneView.cpp | 10 +++++++--- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/src/osg/DisplaySettings.cpp b/src/osg/DisplaySettings.cpp index 93d22e2e2..8c0f3687c 100644 --- a/src/osg/DisplaySettings.cpp +++ b/src/osg/DisplaySettings.cpp @@ -99,7 +99,7 @@ void DisplaySettings::setDefaults() _minimumNumberAlphaBits = 0; _minimumNumberStencilBits = 0; - _maxNumOfGraphicsContexts = 1; + _maxNumOfGraphicsContexts = 3; } static ApplicationUsageProxy DisplaySetting_e0(ApplicationUsage::ENVIRONMENTAL_VARIABLE,"OSG_STEREO_MODE ","QUAD_BUFFER | ANAGLYPHIC | HORIZONTAL_SPLIT | VERTICAL_SPLIT | LEFT_EYE | RIGHT_EYE"); diff --git a/src/osgProducer/OsgCameraGroup.cpp b/src/osgProducer/OsgCameraGroup.cpp index f253a20dc..a7f98e711 100644 --- a/src/osgProducer/OsgCameraGroup.cpp +++ b/src/osgProducer/OsgCameraGroup.cpp @@ -73,7 +73,15 @@ std::string extractCameraConfigFile(osg::ArgumentParser& arguments) } std::string filename; - if (arguments.read("-c",filename)) return filename; + if (arguments.read("-c",filename)) return findCameraConfigFile(filename); + + char *ptr; + if( (ptr = getenv( "PRODUCE_CAMERA_CONFIG_FILE" )) ) + { + osg::notify(osg::DEBUG_INFO) << "PRODUCE_CAMERA_CONFIG_FILE("<setDefaults(); + sh->getState()->setContextID(i); + _shvec.push_back( sh ); cam->setSceneHandler( sh ); diff --git a/src/osgUtil/SceneView.cpp b/src/osgUtil/SceneView.cpp index 052f5c571..6b144b1e3 100644 --- a/src/osgUtil/SceneView.cpp +++ b/src/osgUtil/SceneView.cpp @@ -81,16 +81,20 @@ void SceneView::setDefaults() _renderStage = new RenderStage; -#ifndef __sgi + DisplayListVisitor::Mode dlvMode = DisplayListVisitor::COMPILE_DISPLAY_LISTS|DisplayListVisitor::COMPILE_STATE_ATTRIBUTES; + +#ifdef __sgi + dlvMode = DisplayListVisitor::COMPILE_STATE_ATTRIBUTES; +#endif + // sgi's IR graphics has a problem with lighting and display lists, as it seems to store // lighting state with the display list, and the display list visitor doesn't currently apply // state before creating display lists. So will disable the init visitor default, this won't // affect functionality since the display lists will be created as and when needed. - DisplayListVisitor* dlv = new DisplayListVisitor(); + DisplayListVisitor* dlv = new DisplayListVisitor(dlvMode); dlv->setState(_state.get()); dlv->setNodeMaskOverride(0xffffffff); _initVisitor = dlv; -#endif _updateVisitor = new UpdateVisitor;