do not load font until it is actually needed

This commit is contained in:
David Rose 2004-03-04 00:56:59 +00:00
parent 04304b1e20
commit 7753bf7e24
1 changed files with 14 additions and 5 deletions

View File

@ -8,9 +8,18 @@ import DirectUtil
class OnScreenDebug:
def __init__(self):
self.enabled = config.GetBool("on-screen-debug-enabled", 0)
self.onScreenText = None
self.frame = 0
self.text = ""
self.data = {}
def load(self):
if self.onScreenText:
return
fontPath = config.GetString("on-screen-debug-font", "cmtt12")
fontScale = config.GetFloat("on-screen-debug-font-scale", 0.05)
self.enabled = config.GetBool("on-screen-debug-enabled", 0)
font = loader.loadFont(fontPath)
if not font.isValid():
print "failed to load OnScreenDebug font", fontPath
@ -21,13 +30,12 @@ class OnScreenDebug:
mayChange = 1, font = font)
# Make sure readout is never lit or drawn in wireframe
DirectUtil.useDirectRenderStyle(self.onScreenText)
self.frame = 0
self.text = ""
self.data = {}
def render(self):
if not self.enabled:
return
if not self.onScreenText:
self.load()
self.onScreenText.clearText()
for k, v in self.data.items():
if v[0] == self.frame:
@ -49,7 +57,8 @@ class OnScreenDebug:
def clear(self):
self.text = ""
self.onScreenText.clearText()
if self.onScreenText:
self.onScreenText.clearText()
def add(self, key, value):
self.data[key] = (self.frame, value)