From e68110f303331df330afb6814d166af77b178e87 Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Fri, 27 Feb 2009 10:50:12 +0000 Subject: [PATCH] From Atr Tevs, fixes to FBO blitting. Merged from svn/trunk using: svn merge -r 9821:9822 http://www.openscenegraph.org/svn/osg/OpenSceneGraph/trunk/src/osgUtil/RenderStage.cpp --- src/osgUtil/RenderStage.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/osgUtil/RenderStage.cpp b/src/osgUtil/RenderStage.cpp index a1b2105c7..836454d21 100644 --- a/src/osgUtil/RenderStage.cpp +++ b/src/osgUtil/RenderStage.cpp @@ -391,8 +391,14 @@ void RenderStage::runCameraSetUp(osg::RenderInfo& renderInfo) case Camera::PACKED_DEPTH_STENCIL_BUFFER: internalFormat = GL_DEPTH_STENCIL_EXT; break; + + // all other buffers are color buffers default: - internalFormat = GL_RGBA; + // setup the internal format based on attached texture if such exists, otherwise just default format + if (attachment._texture) + internalFormat = attachment._texture->getInternalFormat(); + else + internalFormat = GL_RGBA; break; } } @@ -887,6 +893,7 @@ void RenderStage::drawInner(osg::RenderInfo& renderInfo,RenderLeaf*& previous, b } // Bind the resolve framebuffer to blit into. + _fbo->apply(state, FrameBufferObject::READ_FRAMEBUFFER); _resolveFbo->apply(state, FrameBufferObject::DRAW_FRAMEBUFFER); // Blit to the resolve framebuffer.