added osd support

This commit is contained in:
Darren Ranalli 2005-04-28 18:30:37 +00:00
parent 468fb19220
commit 0b79545908

View File

@ -312,6 +312,8 @@ class TaskManager:
doLaterCleanupCounter = 2000
OsdPrefix = 'task.'
def __init__(self):
self.running = 0
self.stepping = 0
@ -935,7 +937,49 @@ class TaskManager:
# Ask for the time last frame
return globalClock.getFrameTime(), globalClock.getFrameCount()
def startOsd(self):
self.add(self.doOsd, 'taskMgr.doOsd')
self._osdEnabled = None
def osdEnabled(self):
return hasattr(self, '_osdEnabled')
def stopOsd(self):
onScreenDebug.removeAllWithPrefix(TaskManager.OsdPrefix)
self.remove('taskMgr.doOsd')
del self._osdEnabled
def doOsd(self, task):
import fpformat
prefix = TaskManager.OsdPrefix
onScreenDebug.removeAllWithPrefix(prefix)
i = 0
taskNameWidth = 32
dtWidth = 10
priorityWidth = 10
totalDt = 0
totalAvgDt = 0
for taskPriList in self.taskList:
priority = `taskPriList.getPriority()`
for task in taskPriList:
if task is None:
break
if task.isRemoved():
taskName = '(R)' + task.name
else:
taskName = task.name
totalDt = totalDt + task.dt
totalAvgDt = totalAvgDt + task.avgDt
onScreenDebug.add(
('%s%02s.%s' % (prefix, i, task.name)).ljust(taskNameWidth),
'%s %s %s %s' % (
fpformat.fix(task.dt*1000, 2).rjust(dtWidth),
fpformat.fix(task.avgDt*1000, 2).rjust(dtWidth),
fpformat.fix(task.maxDt*1000, 2).rjust(dtWidth),
priority.rjust(priorityWidth)))
i += 1
onScreenDebug.add(('%s%02s.total' % (prefix, i)).ljust(taskNameWidth),
'%s %s' % (
fpformat.fix(totalDt*1000, 2).rjust(dtWidth),
fpformat.fix(totalAvgDt*1000, 2).rjust(dtWidth),))
return cont
"""
import Task