From 13dfd34ab644a63f22dbaa50b6668e21dbf0fa94 Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Wed, 25 May 2016 11:11:11 +0100 Subject: [PATCH] Fixed shadows warnings --- src/osgViewer/View.cpp | 22 +++++++++---------- .../config/PanoramicSphericalDisplay.cpp | 17 +++++++------- src/osgViewer/config/SphericalDisplay.cpp | 7 +++--- src/osgViewer/config/WoWVxDisplay.cpp | 16 +++++++------- 4 files changed, 32 insertions(+), 30 deletions(-) diff --git a/src/osgViewer/View.cpp b/src/osgViewer/View.cpp index 637dc6b90..214a137b9 100644 --- a/src/osgViewer/View.cpp +++ b/src/osgViewer/View.cpp @@ -1958,21 +1958,21 @@ void View::assignStereoOrKeystoneToCamera(osg::Camera* camera, osg::DisplaySetti // set up the stencil buffer { - osg::ref_ptr camera = new osg::Camera; - camera->setGraphicsContext(gc.get()); - camera->setViewport(0, 0, traits->width, traits->height); - camera->setDrawBuffer(traits->doubleBuffer ? GL_BACK : GL_FRONT); - camera->setReadBuffer(camera->getDrawBuffer()); - camera->setReferenceFrame(osg::Camera::ABSOLUTE_RF); - camera->setClearMask(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT|GL_STENCIL_BUFFER_BIT); - camera->setClearStencil(0); - camera->setRenderOrder(osg::Camera::NESTED_RENDER, 0); - addSlave(camera.get(), false); + osg::ref_ptr stencil_camera = new osg::Camera; + stencil_camera->setGraphicsContext(gc.get()); + stencil_camera->setViewport(0, 0, traits->width, traits->height); + stencil_camera->setDrawBuffer(traits->doubleBuffer ? GL_BACK : GL_FRONT); + stencil_camera->setReadBuffer(stencil_camera->getDrawBuffer()); + stencil_camera->setReferenceFrame(osg::Camera::ABSOLUTE_RF); + stencil_camera->setClearMask(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT|GL_STENCIL_BUFFER_BIT); + stencil_camera->setClearStencil(0); + stencil_camera->setRenderOrder(osg::Camera::NESTED_RENDER, 0); + addSlave(stencil_camera.get(), false); osg::ref_ptr geometry = osg::createTexturedQuadGeometry(osg::Vec3(-1.0f,-1.0f,0.0f), osg::Vec3(2.0f,0.0f,0.0f), osg::Vec3(0.0f,2.0f,0.0f), 0.0f, 0.0f, 1.0f, 1.0f); osg::ref_ptr geode = new osg::Geode; geode->addDrawable(geometry.get()); - camera->addChild(geode.get()); + stencil_camera->addChild(geode.get()); geode->setCullingActive(false); diff --git a/src/osgViewer/config/PanoramicSphericalDisplay.cpp b/src/osgViewer/config/PanoramicSphericalDisplay.cpp index 5fb3b2481..ace79257d 100644 --- a/src/osgViewer/config/PanoramicSphericalDisplay.cpp +++ b/src/osgViewer/config/PanoramicSphericalDisplay.cpp @@ -219,16 +219,16 @@ void PanoramicSphericalDisplay::configure(osgViewer::View& view) const texture->setWrap(osg::Texture::WRAP_S,osg::Texture::CLAMP_TO_EDGE); texture->setWrap(osg::Texture::WRAP_T,osg::Texture::CLAMP_TO_EDGE); -#if 0 - osg::Camera::RenderTargetImplementation renderTargetImplementation = osg::Camera::SEPERATE_WINDOW; - GLenum buffer = GL_FRONT; -#else - osg::Camera::RenderTargetImplementation renderTargetImplementation = osg::Camera::FRAME_BUFFER_OBJECT; - GLenum buffer = GL_FRONT; -#endif - // front face { + #if 0 + osg::Camera::RenderTargetImplementation renderTargetImplementation = osg::Camera::SEPERATE_WINDOW; + GLenum buffer = GL_FRONT; + #else + osg::Camera::RenderTargetImplementation renderTargetImplementation = osg::Camera::FRAME_BUFFER_OBJECT; + GLenum buffer = GL_FRONT; + #endif + osg::ref_ptr camera = new osg::Camera; camera->setName("Front face camera"); camera->setGraphicsContext(gc.get()); @@ -270,6 +270,7 @@ void PanoramicSphericalDisplay::configure(osgViewer::View& view) const camera->setClearMask(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT ); camera->setClearColor( osg::Vec4(0.0,0.0,0.0,1.0) ); camera->setViewport(new osg::Viewport(0, 0, width, height)); + GLenum buffer = traits->doubleBuffer ? GL_BACK : GL_FRONT; camera->setDrawBuffer(buffer); camera->setReadBuffer(buffer); diff --git a/src/osgViewer/config/SphericalDisplay.cpp b/src/osgViewer/config/SphericalDisplay.cpp index 241e39b06..2c954ad11 100644 --- a/src/osgViewer/config/SphericalDisplay.cpp +++ b/src/osgViewer/config/SphericalDisplay.cpp @@ -386,9 +386,10 @@ void SphericalDisplay::configure(osgViewer::View& view) const camera->setClearMask(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT ); camera->setClearColor( osg::Vec4(0.0,0.0,0.0,1.0) ); camera->setViewport(new osg::Viewport(0, 0, width, height)); - GLenum buffer = traits->doubleBuffer ? GL_BACK : GL_FRONT; - camera->setDrawBuffer(buffer); - camera->setReadBuffer(buffer); + + GLenum window_buffer = traits->doubleBuffer ? GL_BACK : GL_FRONT; + camera->setDrawBuffer(window_buffer); + camera->setReadBuffer(window_buffer); camera->setReferenceFrame(osg::Camera::ABSOLUTE_RF); camera->setAllowEventFocus(true); camera->setInheritanceMask(camera->getInheritanceMask() & ~osg::CullSettings::CLEAR_COLOR & ~osg::CullSettings::COMPUTE_NEAR_FAR_MODE); diff --git a/src/osgViewer/config/WoWVxDisplay.cpp b/src/osgViewer/config/WoWVxDisplay.cpp index 8cba5bbb4..c15c756e1 100644 --- a/src/osgViewer/config/WoWVxDisplay.cpp +++ b/src/osgViewer/config/WoWVxDisplay.cpp @@ -88,16 +88,16 @@ void WoWVxDisplay::configure(osgViewer::View& view) const textureD->setFilter(osg::Texture2D::MIN_FILTER,osg::Texture2D::LINEAR); textureD->setFilter(osg::Texture2D::MAG_FILTER,osg::Texture2D::LINEAR); -#if 0 - osg::Camera::RenderTargetImplementation renderTargetImplementation = osg::Camera::SEPERATE_WINDOW; - GLenum buffer = GL_FRONT; -#else - osg::Camera::RenderTargetImplementation renderTargetImplementation = osg::Camera::FRAME_BUFFER_OBJECT; - GLenum buffer = GL_FRONT; -#endif - // front face { + #if 0 + osg::Camera::RenderTargetImplementation renderTargetImplementation = osg::Camera::SEPERATE_WINDOW; + GLenum buffer = GL_FRONT; + #else + osg::Camera::RenderTargetImplementation renderTargetImplementation = osg::Camera::FRAME_BUFFER_OBJECT; + GLenum buffer = GL_FRONT; + #endif + osg::ref_ptr camera = new osg::Camera; camera->setName("Front face camera"); camera->setGraphicsContext(gc.get());