diff --git a/examples/osgpbuffer/RenderToTextureStage.cpp b/examples/osgpbuffer/RenderToTextureStage.cpp index 219342926..573170cdf 100644 --- a/examples/osgpbuffer/RenderToTextureStage.cpp +++ b/examples/osgpbuffer/RenderToTextureStage.cpp @@ -12,6 +12,7 @@ MyRenderToTextureStage::MyRenderToTextureStage() { _pbuffer = 0L; + _localState = new osg::State; } MyRenderToTextureStage::~MyRenderToTextureStage() @@ -46,7 +47,7 @@ void MyRenderToTextureStage::draw(osg::State& state, osgUtil::RenderLeaf*& previ _pbuffer->makeCurrent(); // Render in p-buffer. - RenderStage::draw(state,previous); + RenderStage::draw(*_localState,previous); // restore window's context as current. if (!::wglMakeCurrent(hdc, hglrc)) diff --git a/examples/osgpbuffer/RenderToTextureStage.h b/examples/osgpbuffer/RenderToTextureStage.h index 8816eb663..e9ddfbcb3 100644 --- a/examples/osgpbuffer/RenderToTextureStage.h +++ b/examples/osgpbuffer/RenderToTextureStage.h @@ -6,6 +6,7 @@ #define RENDERTOTEXTURESTAGE 1 #include +#include #include @@ -49,9 +50,10 @@ class /*OSGUTIL_EXPORT*/ MyRenderToTextureStage : public osgUtil::RenderStage virtual ~MyRenderToTextureStage(); - osg::ref_ptr _texture; - osg::ref_ptr _image; - PBuffer* _pbuffer; + osg::ref_ptr _texture; + osg::ref_ptr _image; + osg::ref_ptr _localState; + PBuffer* _pbuffer; }; // }