]> git.mxchange.org Git - flightgear.git/commitdiff
Rembrandt: Restore rendering stats
authorFrederic Bouvier <fredfgfs01@free.fr>
Mon, 9 Apr 2012 15:41:33 +0000 (17:41 +0200)
committerFrederic Bouvier <fredfgfs01@free.fr>
Mon, 9 Apr 2012 15:41:33 +0000 (17:41 +0200)
intercept first change in stats display to change stats handler camera render order

src/Main/FGEventHandler.cxx
src/Main/FGEventHandler.hxx
src/Main/renderer.cxx

index 936b02fc34ac19ecbb3ba01d8460ba8989f1551c..9951c00278d2060f87f61f63048540e3f5d14a52 100644 (file)
@@ -45,7 +45,8 @@ FGEventHandler::FGEventHandler() :
     currentModifiers(0),
     resizable(true),
     mouseWarped(false),
-    scrollButtonPressed(false)
+    scrollButtonPressed(false),
+    changeStatsCameraRenderOrder(false)
 {
     using namespace osgGA;
     statsHandler->setKeyEventTogglesOnScreenStats(displayStatsKey);
@@ -364,6 +365,10 @@ void FGEventHandler::handleStats(osgGA::GUIActionAdapter& us)
         do {
             statsType = (statsType + 1) % osgViewer::StatsHandler::LAST;
             statsHandler->handle(*statsEvent, us);
+            if (changeStatsCameraRenderOrder) {
+                statsHandler->getCamera()->setRenderOrder(osg::Camera::POST_RENDER, 99999);
+                changeStatsCameraRenderOrder = false;
+            }
         } while (statsType != type);
 
         display->setIntValue(statsType);
index 3abea015e61d1855d6a63882b326c17a96db5b59..9eed4840fffd5bebeba9909b391d34d3a03ab221 100644 (file)
@@ -79,6 +79,11 @@ public:
            return mouseMotionHandler;
        }
 
+    void setChangeStatsCameraRenderOrder(bool c)
+    {
+        changeStatsCameraRenderOrder = c;
+    }
+
     int getCurrentModifiers() const
        {
            return currentModifiers;
@@ -114,6 +119,7 @@ protected:
     bool scrollButtonPressed;
     int release_keys[128];
     void handleStats(osgGA::GUIActionAdapter& us);
+    bool changeStatsCameraRenderOrder;
 };
 
 void eventToWindowCoords(const osgGA::GUIEventAdapter* ea, double& x, double& y);
index 6a200c846b13ca3cb4707cb279dc9405795fede2..1c6e77bbb9b8bac5688fce9d474dda6c2db0a9a0 100644 (file)
@@ -542,6 +542,10 @@ FGRenderer::init( void )
     }
     
     _sky->texture_path( texture_path.str() );
+
+    if (!_classicalRenderer) {
+        eventHandler->setChangeStatsCameraRenderOrder( true );
+    }
 }
 
 void installCullVisitor(Camera* camera)
@@ -752,7 +756,7 @@ osg::Camera* FGRenderer::buildDeferredGeometryCamera( flightgear::CameraInfo* in
     info->addCamera(flightgear::GEOMETRY_CAMERA, camera );
 
     camera->setCullMask( ~simgear::MODELLIGHT_BIT );
-    camera->setName( "GeometryCamera" );
+    camera->setName( "GeometryC" );
     camera->setGraphicsContext( gc );
     camera->setCullCallback( new FGDeferredRenderingCameraCullCallback( flightgear::GEOMETRY_CAMERA, info ) );
     camera->setClearMask( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
@@ -815,7 +819,7 @@ osg::Camera* FGRenderer::buildDeferredShadowCamera( flightgear::CameraInfo* info
     osg::Camera* mainShadowCamera = new osg::Camera;
     info->addCamera(flightgear::SHADOW_CAMERA, mainShadowCamera, 0.0f );
 
-    mainShadowCamera->setName( "ShadowCamera" );
+    mainShadowCamera->setName( "ShadowC" );
     mainShadowCamera->setClearMask( GL_DEPTH_BUFFER_BIT );
     mainShadowCamera->setClearDepth( 1.0 );
     mainShadowCamera->setAllowEventFocus(false);
@@ -1161,7 +1165,7 @@ osg::Camera* FGRenderer::buildDeferredLightingCamera( flightgear::CameraInfo* in
     camera->setAllowEventFocus(false);
     camera->setGraphicsContext(gc);
     camera->setViewport(new Viewport);
-    camera->setName("LightingCamera");
+    camera->setName("LightingC");
     camera->setReferenceFrame(osg::Transform::ABSOLUTE_RF);
     camera->setRenderOrder(osg::Camera::POST_RENDER, 50);
     camera->setRenderTargetImplementation( osg::Camera::FRAME_BUFFER_OBJECT );
@@ -1372,7 +1376,7 @@ FGRenderer::buildDeferredPipeline(flightgear::CameraGroup* cgroup, unsigned flag
     slaveIndex = cgroup->getViewer()->getNumSlaves() - 1;
     info->getRenderStageInfo(LIGHTING_CAMERA).slaveIndex = slaveIndex;
 
-    camera->setName( "DisplayCamera" );
+    camera->setName( "DisplayC" );
     camera->setCullCallback( new FGDeferredRenderingCameraCullCallback( flightgear::DISPLAY_CAMERA, info ) );
     camera->setReferenceFrame(Transform::ABSOLUTE_RF);
     camera->setAllowEventFocus(false);