diff --git a/src/osg/ColorMatrix.cpp b/src/osg/ColorMatrix.cpp index 6756d33d6..aa45962a6 100644 --- a/src/osg/ColorMatrix.cpp +++ b/src/osg/ColorMatrix.cpp @@ -17,10 +17,10 @@ void ColorMatrix::apply(State&) const { // std::cout<<"applying matrix"<<_matrix<setMask(true,false,false,true); + green->setMask(false,true,true,true); + + // draw right eye. + _globalState->setAttribute(red); _renderStage->setColorMask(red); _renderStage->setCamera(left_camera.get()); _renderStage->draw(*_state,previous); - green->setMask(false,true,true,true); - _renderStage->setColorMask(green); + // need to tell the rendering stage that it can be + // called again in this frame. _renderStage->_stageDrawnThisFrame = false; + + // draw left eye. + _globalState->setAttribute(green); + _renderStage->setColorMask(green); _renderStage->setCamera(right_camera.get()); _renderStage->draw(*_state,previous);