From 6a73dfc193d9fadb64f46f0e52b91d8eb6d3adc4 Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Tue, 20 Apr 2010 11:13:27 +0000 Subject: [PATCH] From Farshid Lashkari, "Anaglyphic stereo does not seem to work properly when performing pre-render stages. I believe the reason is that the pre-render stages are performed with the last applied color mask, which is cyan. I've fixed this by resetting the color mask before performing the pre-render stages." --- src/osgUtil/SceneView.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/osgUtil/SceneView.cpp b/src/osgUtil/SceneView.cpp index ce977a3a4..39e133c8f 100644 --- a/src/osgUtil/SceneView.cpp +++ b/src/osgUtil/SceneView.cpp @@ -1112,6 +1112,20 @@ void SceneView::draw() _renderStageRight->setDrawBuffer(_camera->getDrawBuffer()); _renderStageRight->setReadBuffer(_camera->getDrawBuffer()); } + + // ensure that all color planes are active. + osg::ColorMask* cmask = static_cast(_localStateSet->getAttribute(osg::StateAttribute::COLORMASK)); + if (cmask) + { + cmask->setMask(true,true,true,true); + } + else + { + cmask = new osg::ColorMask(true,true,true,true); + _localStateSet->setAttribute(cmask); + } + _renderStageLeft->setColorMask(cmask); + _renderStageRight->setColorMask(cmask); _localStateSet->setAttribute(getViewport());