def toggleTouchVisualization(self): if self.__touchVisOverlay is None: self.__touchVisOverlay = TouchVisOverlay( isDebug=True, visClass=DebugTouchVisualization, size=self.parent.size, parent=self.parent) else: self.__touchVisOverlay.unlink(True) self.__touchVisOverlay = None
class DebugPanel(avg.DivNode): def __init__(self, parent=None, fontsize=10, **kwargs): super(DebugPanel, self).__init__(**kwargs) self.registerInstance(self, parent) avg.RectNode(size=self.size, opacity=0, fillopacity=0.3, fillcolor='ff0000', parent=self) avg.WordsNode(text='Debug panel', fontsize=fontsize, pos=(0, self.height - fontsize - fontsize / 3), parent=self) self.sensitive = False self.active = False self.__panel = None self.__callables = [] self.__fontsize = fontsize self.__touchVisOverlay = None def setupKeys(self): kbmgr.bindKeyDown(keystring='g', handler=lambda: self.toggleWidget(GPUMemoryGraphWidget), help="GPU memory graph", modifiers=libavg.avg.KEYMOD_CTRL) kbmgr.bindKeyDown(keystring='m', handler=lambda: self.toggleWidget(MemoryGraphWidget), help="Memory graph", modifiers=libavg.avg.KEYMOD_CTRL) kbmgr.bindKeyDown(keystring='f', handler=lambda: self.toggleWidget(FrametimeGraphWidget), help="Frametime graph", modifiers=libavg.avg.KEYMOD_CTRL) kbmgr.bindKeyDown(keystring='?', handler=lambda: self.toggleWidget(KeyboardManagerBindingsShower), help="Show keyboard bindings", modifiers=kbmgr.KEYMOD_ANY) kbmgr.bindKeyDown(keystring='o', handler=lambda: self.toggleWidget(ObjectDumpWidget), help="Object count table", modifiers=libavg.avg.KEYMOD_CTRL) kbmgr.bindKeyDown(keystring='v', handler=self.toggleTouchVisualization, help="Cursor visualization", modifiers=libavg.avg.KEYMOD_CTRL) def addWidget(self, widgetCls, *args, **kwargs): callable_ = lambda: self.__panel.addWidget(widgetCls, *args, **kwargs) if self.__panel: callable_() else: self.__callables.append(callable_) def toggleWidget(self, *args, **kwargs): if not self.active: self.show() self.__panel.ensureWidgetWisible(*args, **kwargs) else: self.__panel.toggleWidget(*args, **kwargs) if not self.__panel.activeWidgetClasses: self.hide() def hide(self): if self.__panel and self.active: self.__panel.hide() self.active = False def show(self): if self.__panel: if not self.active: self.__panel.show() else: self.forceLoadPanel() self.active = True def toggleVisibility(self): if self.active: self.hide() else: self.show() def toggleTouchVisualization(self): if self.__touchVisOverlay is None: self.__touchVisOverlay = TouchVisOverlay( isDebug=True, visClass=DebugTouchVisualization, size=self.parent.size, parent=self.parent) else: self.__touchVisOverlay.unlink(True) self.__touchVisOverlay = None def forceLoadPanel(self): if self.__panel is None: self.__panel = _DebugPanel(parent=self, size=self.size, fontsize=self.__fontsize) for callable_ in self.__callables: callable_()
class DebugPanel(avg.DivNode): def __init__(self, parent=None, fontsize=10, **kwargs): super(DebugPanel, self).__init__(**kwargs) self.registerInstance(self, parent) avg.RectNode(size=self.size, opacity=0, fillopacity=0.3, fillcolor='ff0000', parent=self) avg.WordsNode(text='Debug panel', fontsize=fontsize, pos=(0, self.height - fontsize - fontsize / 3), parent=self) self.sensitive = False self.active = False self.__panel = None self.__callables = [] self.__fontsize = fontsize self.__touchVisOverlay = None def setupKeys(self): kbmgr.bindKeyDown( keyname='G', handler=lambda: self.toggleWidget(GPUMemoryGraphWidget), help="GPU memory graph", modifiers=libavg.avg.KEYMOD_CTRL) kbmgr.bindKeyDown(keyname='M', handler=lambda: self.toggleWidget(MemoryGraphWidget), help="Memory graph", modifiers=libavg.avg.KEYMOD_CTRL) kbmgr.bindKeyDown( keyname='F', handler=lambda: self.toggleWidget(FrametimeGraphWidget), help="Frametime graph", modifiers=libavg.avg.KEYMOD_CTRL) kbmgr.bindKeyDown( text='?', handler=lambda: self.toggleWidget(KeyboardManagerBindingsShower), help="Show keyboard bindings", modifiers=kbmgr.KEYMOD_ANY) kbmgr.bindKeyDown(keyname='O', handler=lambda: self.toggleWidget(ObjectDumpWidget), help="Object count table", modifiers=libavg.avg.KEYMOD_CTRL) kbmgr.bindKeyDown(keyname='V', handler=self.toggleTouchVisualization, help="Cursor visualization", modifiers=libavg.avg.KEYMOD_CTRL) def addWidget(self, widgetCls, *args, **kwargs): callable_ = lambda: self.__panel.addWidget(widgetCls, *args, **kwargs) if self.__panel: callable_() else: self.__callables.append(callable_) def toggleWidget(self, *args, **kwargs): if not self.active: self.show() self.__panel.ensureWidgetWisible(*args, **kwargs) else: self.__panel.toggleWidget(*args, **kwargs) if not self.__panel.activeWidgetClasses: self.hide() def hide(self): if self.__panel and self.active: self.__panel.hide() self.active = False def show(self): if self.__panel: if not self.active: self.__panel.show() else: self.forceLoadPanel() self.active = True def toggleVisibility(self): if self.active: self.hide() else: self.show() def toggleTouchVisualization(self): if self.__touchVisOverlay is None: self.__touchVisOverlay = TouchVisOverlay( isDebug=True, visClass=DebugTouchVisualization, size=self.parent.size, parent=self.parent) else: self.__touchVisOverlay.unlink(True) self.__touchVisOverlay = None def forceLoadPanel(self): if self.__panel is None: self.__panel = _DebugPanel(parent=self, size=self.size, fontsize=self.__fontsize) for callable_ in self.__callables: callable_()