Set the double buffer off when setting up pbuffers.

This commit is contained in:
Robert Osfield
2005-08-06 19:16:53 +00:00
parent 81dab87154
commit 64fbb477fe

View File

@@ -1036,6 +1036,11 @@ void CullVisitor::apply(osg::CameraNode& camera)
StateSet* node_state = camera.getStateSet();
if (node_state) pushStateSet(node_state);
// set the compute near far mode.
ComputeNearFarMode saved_compute_near_far_mode = getComputeNearFarMode();
setComputeNearFarMode( camera.getComputeNearFarMode());
osg::RefMatrix& originalModelView = getModelViewMatrix();
if (camera.getReferenceFrame()==osg::Transform::ABSOLUTE_RF)
@@ -1054,6 +1059,7 @@ void CullVisitor::apply(osg::CameraNode& camera)
pushModelViewMatrix(createOrReuseMatrix(camera.getViewMatrix()*getModelViewMatrix()));
}
if (camera.getRenderOrder()==osg::CameraNode::NESTED_RENDER)
{
handle_cull_callbacks_and_traverse(camera);
@@ -1080,9 +1086,6 @@ void CullVisitor::apply(osg::CameraNode& camera)
// will do later.
osgUtil::RenderStage* previous_stage = getCurrentRenderBin()->getStage();
// set the compute near far mode.
ComputeNearFarMode saved_compute_near_far_mode = getComputeNearFarMode();
setComputeNearFarMode( camera.getComputeNearFarMode());
// set up the background color and clear mask.
rtts->setClearColor(camera.getClearColor());
@@ -1131,8 +1134,6 @@ void CullVisitor::apply(osg::CameraNode& camera)
// restore the previous renderbin.
setCurrentRenderBin(previousRenderBin);
// restore the previous compute near far mode
setComputeNearFarMode(saved_compute_near_far_mode);
if (rtts->getRenderGraphList().size()==0 && rtts->getRenderBinList().size()==0)
@@ -1233,6 +1234,7 @@ void CullVisitor::apply(osg::CameraNode& camera)
traits->_height = viewport->height();
traits->_pbuffer = (camera.getRenderTargetImplmentation()==osg::CameraNode::PIXEL_BUFFER);
traits->_windowDecoration = (camera.getRenderTargetImplmentation()==osg::CameraNode::SEPERATE_WINDOW);
traits->_doubleBuffer = (camera.getRenderTargetImplmentation()==osg::CameraNode::SEPERATE_WINDOW);
bool colorAttached = false;
@@ -1313,6 +1315,9 @@ void CullVisitor::apply(osg::CameraNode& camera)
// restore the previous model view matrix.
popProjectionMatrix();
// restore the previous compute near far mode
setComputeNearFarMode(saved_compute_near_far_mode);
// pop the node's state off the render graph stack.
if (node_state) popStateSet();