From 0c234e79979e564ca564b153068db8974abf758a Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Sun, 17 Aug 2008 16:45:09 +0000 Subject: [PATCH] From Jason Beverage, "I've got a few machines that OSG incorrectly believes support FRAME_BUFFER_OBJECTS so I am manually trying to set the renderTargetImplementation to PIXEL_BUFFER or PIXEL_BUFFER_RTT. I noticed that this call wasn't setting the camera's overlay data properly because the setRenderTargetImplementation simply calls init() which only does anything for OBJECT_DEPENDENT_WITH_ORTHOGRAPHIC_OVERLAY. Any subsequent calls to getOverlayData will simply return the cached OverlayData instead of setting it up. My fix updates the camera's render target implementation for all OverlayData objects in the OverlayDataMap." --- src/osgSim/OverlayNode.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/osgSim/OverlayNode.cpp b/src/osgSim/OverlayNode.cpp index 33ffcbdfc..07cc26b47 100644 --- a/src/osgSim/OverlayNode.cpp +++ b/src/osgSim/OverlayNode.cpp @@ -922,6 +922,12 @@ void OverlayNode::setRenderTargetImplementation(osg::Camera::RenderTargetImpleme _renderTargetImpl = impl; init(); + for(OverlayDataMap::const_iterator itr = _overlayDataMap.begin(); + itr != _overlayDataMap.end(); + ++itr) + { + itr->second->_camera->setRenderTargetImplementation(_renderTargetImpl); + } } OverlayNode::OverlayData* OverlayNode::getOverlayData(osgUtil::CullVisitor* cv)