add show-scene-graph-analyzer-meter config var

This commit is contained in:
David Rose 2011-11-11 15:13:11 +00:00
parent f50a1895f9
commit 0f96fafca5

View File

@ -149,6 +149,7 @@ class ShowBase(DirectObject.DirectObject):
# *all* windows. Similarly with base.camList. # *all* windows. Similarly with base.camList.
self.win = None self.win = None
self.frameRateMeter = None self.frameRateMeter = None
self.sceneGraphAnalyzerMeter = None
self.winList = [] self.winList = []
self.winControls = [] self.winControls = []
self.mainWinMinimized = 0 self.mainWinMinimized = 0
@ -704,6 +705,9 @@ class ShowBase(DirectObject.DirectObject):
if self.frameRateMeter: if self.frameRateMeter:
self.frameRateMeter.clearWindow() self.frameRateMeter.clearWindow()
self.frameRateMeter = None self.frameRateMeter = None
if self.sceneGraphAnalyzerMeter:
self.sceneGraphAnalyzerMeter.clearWindow()
self.sceneGraphAnalyzerMeter = None
messenger.send('close_window', [win, mainWindow]) messenger.send('close_window', [win, mainWindow])
if mainWindow: if mainWindow:
@ -856,6 +860,8 @@ class ShowBase(DirectObject.DirectObject):
# set. # set.
flag = True flag = True
self.setFrameRateMeter(flag) self.setFrameRateMeter(flag)
flag = self.config.GetBool('show-scene-graph-analyzer-meter', False)
self.setSceneGraphAnalyzerMeter(flag)
return success return success
def setSleep(self, amount): def setSleep(self, amount):
@ -892,6 +898,20 @@ class ShowBase(DirectObject.DirectObject):
self.frameRateMeter.clearWindow() self.frameRateMeter.clearWindow()
self.frameRateMeter = None 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 # [gjeon] now you can add more winControls after creating a showbase instance
def setupWindowControls(self, winCtrl=None): def setupWindowControls(self, winCtrl=None):
if winCtrl is None: if winCtrl is None: