diff --git a/src/osgUtil/RenderStage.cpp b/src/osgUtil/RenderStage.cpp index 473b8aca9..1da89cfba 100644 --- a/src/osgUtil/RenderStage.cpp +++ b/src/osgUtil/RenderStage.cpp @@ -853,6 +853,8 @@ void RenderStage::draw(osg::RenderInfo& renderInfo,RenderLeaf*& previous) // syncronize the frame stamps useState->setFrameStamp(const_cast(state.getFrameStamp())); + useState->setDynamicObjectCount(state.getDynamicObjectCount()); + useState->setDynamicObjectRenderingCompletedCallback(state.getDynamicObjectRenderingCompletedCallback()); if (!useThread) useContext->makeCurrent(); } @@ -878,6 +880,12 @@ void RenderStage::draw(osg::RenderInfo& renderInfo,RenderLeaf*& previous) } + if (useState != &state) + { + state.setDynamicObjectCount(useState->getDynamicObjectCount()); + useState->setDynamicObjectRenderingCompletedCallback(0); + } + // now copy the rendered image to attached texture. if (_texture.valid() && !doCopyTexture)