From 0f96fafca5f14485beeee1027a74bf9568721ed0 Mon Sep 17 00:00:00 2001 From: David Rose Date: Fri, 11 Nov 2011 15:13:11 +0000 Subject: [PATCH] add show-scene-graph-analyzer-meter config var --- direct/src/showbase/ShowBase.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/direct/src/showbase/ShowBase.py b/direct/src/showbase/ShowBase.py index 9c88d8e6a7..9703d6d254 100644 --- a/direct/src/showbase/ShowBase.py +++ b/direct/src/showbase/ShowBase.py @@ -149,6 +149,7 @@ class ShowBase(DirectObject.DirectObject): # *all* windows. Similarly with base.camList. self.win = None self.frameRateMeter = None + self.sceneGraphAnalyzerMeter = None self.winList = [] self.winControls = [] self.mainWinMinimized = 0 @@ -704,6 +705,9 @@ class ShowBase(DirectObject.DirectObject): if self.frameRateMeter: self.frameRateMeter.clearWindow() self.frameRateMeter = None + if self.sceneGraphAnalyzerMeter: + self.sceneGraphAnalyzerMeter.clearWindow() + self.sceneGraphAnalyzerMeter = None messenger.send('close_window', [win, mainWindow]) if mainWindow: @@ -856,6 +860,8 @@ class ShowBase(DirectObject.DirectObject): # set. flag = True self.setFrameRateMeter(flag) + flag = self.config.GetBool('show-scene-graph-analyzer-meter', False) + self.setSceneGraphAnalyzerMeter(flag) return success def setSleep(self, amount): @@ -892,6 +898,20 @@ class ShowBase(DirectObject.DirectObject): self.frameRateMeter.clearWindow() self.frameRateMeter = None + def setSceneGraphAnalyzerMeter(self, flag): + """ + Turns on or off (according to flag) a standard frame rate + meter in the upper-right corner of the main window. + """ + if flag: + if not self.sceneGraphAnalyzerMeter: + self.sceneGraphAnalyzerMeter = SceneGraphAnalyzerMeter('sceneGraphAnalyzerMeter', self.render.node()) + self.sceneGraphAnalyzerMeter.setupWindow(self.win) + else: + if self.sceneGraphAnalyzerMeter: + self.sceneGraphAnalyzerMeter.clearWindow() + self.sceneGraphAnalyzerMeter = None + # [gjeon] now you can add more winControls after creating a showbase instance def setupWindowControls(self, winCtrl=None): if winCtrl is None: