]> git.mxchange.org Git - flightgear.git/commitdiff
Fix picking zone display
authorFrederic Bouvier <fredfgfs01@free.fr>
Sat, 31 Mar 2012 19:59:50 +0000 (21:59 +0200)
committerFrederic Bouvier <fredfgfs01@free.fr>
Sat, 31 Mar 2012 19:59:50 +0000 (21:59 +0200)
src/Main/CameraGroup.cxx
src/Main/renderer.cxx

index e7ed5f2aeed483f30e1d68ca968163db5f6d09d7..66c08ca2a8a726da5a91ac27e31ecdb885948437 100644 (file)
@@ -1056,18 +1056,23 @@ void CameraGroup::setCameraCullMasks(Node::NodeMask nm)
             continue;
         osg::ref_ptr<osg::Camera> 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 );
         }
     }
 }
index e04d6ab1daf7e9181cfd6826bc995a2b660452d5..bcd9716a1ea819abb9f8b5f0a6a3bfcdf13f1068 100644 (file)
@@ -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())