From 7e6ecfec562a62d3629bf4360f1eb203bc73e3be Mon Sep 17 00:00:00 2001 From: Frederic Bouvier Date: Sat, 31 Mar 2012 21:59:50 +0200 Subject: [PATCH] Fix picking zone display --- src/Main/CameraGroup.cxx | 27 ++++++++++++++++----------- src/Main/renderer.cxx | 2 +- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/src/Main/CameraGroup.cxx b/src/Main/CameraGroup.cxx index e7ed5f2ae..66c08ca2a 100644 --- a/src/Main/CameraGroup.cxx +++ b/src/Main/CameraGroup.cxx @@ -1056,18 +1056,23 @@ void CameraGroup::setCameraCullMasks(Node::NodeMask nm) continue; osg::ref_ptr farCamera = info->getCamera(FAR_CAMERA); osg::Camera* camera = info->getCamera( MAIN_CAMERA ); - if (camera == 0) continue; - if (farCamera.valid() && farCamera->getNodeMask() != 0) { - camera->setCullMask(nm & ~simgear::BACKGROUND_BIT); - camera->setCullMaskLeft(nm & ~simgear::BACKGROUND_BIT); - camera->setCullMaskRight(nm & ~simgear::BACKGROUND_BIT); - farCamera->setCullMask(nm); - farCamera->setCullMaskLeft(nm); - farCamera->setCullMaskRight(nm); + if (camera) { + if (farCamera.valid() && farCamera->getNodeMask() != 0) { + camera->setCullMask(nm & ~simgear::BACKGROUND_BIT); + camera->setCullMaskLeft(nm & ~simgear::BACKGROUND_BIT); + camera->setCullMaskRight(nm & ~simgear::BACKGROUND_BIT); + farCamera->setCullMask(nm); + farCamera->setCullMaskLeft(nm); + farCamera->setCullMaskRight(nm); + } else { + camera->setCullMask(nm); + camera->setCullMaskLeft(nm); + camera->setCullMaskRight(nm); + } } else { - camera->setCullMask(nm); - camera->setCullMaskLeft(nm); - camera->setCullMaskRight(nm); + camera = info->getCamera( GEOMETRY_CAMERA ); + if (camera == 0) continue; + camera->setCullMask( nm & ~simgear::MODELLIGHT_BIT ); } } } diff --git a/src/Main/renderer.cxx b/src/Main/renderer.cxx index e04d6ab1d..bcd9716a1 100644 --- a/src/Main/renderer.cxx +++ b/src/Main/renderer.cxx @@ -1714,7 +1714,7 @@ FGRenderer::update( ) { l->get_sun_angle()*SGD_RADIANS_TO_DEGREES); mUpdateVisitor->setVisibility(actual_visibility); simgear::GroundLightManager::instance()->update(mUpdateVisitor.get()); - osg::Node::NodeMask cullMask = ~simgear::LIGHTS_BITS & ~simgear::PICK_BIT & ~simgear::MODELLIGHT_BIT; + osg::Node::NodeMask cullMask = ~simgear::LIGHTS_BITS & ~simgear::PICK_BIT; cullMask |= simgear::GroundLightManager::instance() ->getLightNodeMask(mUpdateVisitor.get()); if (_panel_hotspots->getBoolValue()) -- 2.39.5