From 48e742c25c47031caa17924ca5ad77386ebdd733 Mon Sep 17 00:00:00 2001 From: Darren Ranalli Date: Mon, 4 Nov 2002 22:21:19 +0000 Subject: [PATCH] split collision traversal out from igloop, with earlier priority, to allow app to insert tasks in between --- direct/src/showbase/ShowBase.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/direct/src/showbase/ShowBase.py b/direct/src/showbase/ShowBase.py index 47335be0f5..f9c7f14bdc 100644 --- a/direct/src/showbase/ShowBase.py +++ b/direct/src/showbase/ShowBase.py @@ -82,7 +82,7 @@ class ShowBase: # This is a placeholder for a CollisionTraverser. If someone # stores a CollisionTraverser pointer here, we'll traverse it - # in the igloop task. + # in the collisionloop task. self.cTrav = 0 # Ditto for an AppTraverser. self.appTrav = 0 @@ -615,14 +615,16 @@ class ShowBase: ivalMgr.step() return Task.cont - def igloop(self, state): + def collisionloop(self, state): # run the collision traversal if we have a # CollisionTraverser set. if self.cTrav: self.cTrav.traverse(self.render) if self.appTrav: self.appTrav.traverse(self.render) - + return Task.cont + + def igloop(self, state): # Finally, render the frame. self.graphicsEngine.renderFrame() @@ -636,6 +638,10 @@ class ShowBase: # give the igloop task a reasonably "late" priority, # so that it will get run after most tasks self.taskMgr.add(self.igloop, 'igloop', priority = 50) + # make the collisionloop task run shortly before igloop, + # but leave enough room for the app to insert tasks + # between collisionloop and igloop + self.taskMgr.add(self.collisionloop, 'collisionloop', priority = 45) # give the dataloop task a reasonably "early" priority, # so that it will get run before most tasks self.taskMgr.add(self.dataloop, 'dataloop', priority = -50) @@ -646,6 +652,7 @@ class ShowBase: def shutdown(self): self.taskMgr.remove('igloop') + self.taskMgr.remove('collisionloop') self.taskMgr.remove('dataloop') self.taskMgr.remove('ivalloop') self.eventMgr.shutdown()