From 2e9142fe53a96f2d6dba9b819fe30e9f4bc26392 Mon Sep 17 00:00:00 2001 From: Darren Ranalli Date: Tue, 17 Apr 2007 06:49:06 +0000 Subject: [PATCH] first rev --- direct/src/showbase/LeakDetectors.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100755 direct/src/showbase/LeakDetectors.py diff --git a/direct/src/showbase/LeakDetectors.py b/direct/src/showbase/LeakDetectors.py new file mode 100755 index 0000000000..f7708b99cf --- /dev/null +++ b/direct/src/showbase/LeakDetectors.py @@ -0,0 +1,20 @@ +# objects that report different types of leaks to the ContainerLeakDetector + +class SceneGraphLeakDetector: + # is a scene graph leaking nodes? + def __init__(self, render): + self._render = render + if config.GetBool('leak-scene-graph', 0): + self._leakTaskName = 'leakNodes-%s' % serialNum() + self._leakNode() + def destroy(self): + if hasattr(self, '_leakTaskName'): + taskMgr.remove(self._leakTaskName) + del self._render + def __len__(self): + return self._render.getNumDescendants() + def __repr__(self): + return 'SceneGraphLeakDetector(%s)' % self._render + def _leakNode(self, task=None): + self._render.attachNewNode('leakNode-%s' % serialNum()) + taskMgr.doMethodLater(10, self._leakNode, self._leakTaskName)