mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-03 10:22:45 -04:00
split collision traversal out from igloop, with earlier priority, to allow app to insert tasks in between
This commit is contained in:
parent
bf98a3c9a9
commit
48e742c25c
@ -82,7 +82,7 @@ class ShowBase:
|
|||||||
|
|
||||||
# This is a placeholder for a CollisionTraverser. If someone
|
# This is a placeholder for a CollisionTraverser. If someone
|
||||||
# stores a CollisionTraverser pointer here, we'll traverse it
|
# stores a CollisionTraverser pointer here, we'll traverse it
|
||||||
# in the igloop task.
|
# in the collisionloop task.
|
||||||
self.cTrav = 0
|
self.cTrav = 0
|
||||||
# Ditto for an AppTraverser.
|
# Ditto for an AppTraverser.
|
||||||
self.appTrav = 0
|
self.appTrav = 0
|
||||||
@ -615,14 +615,16 @@ class ShowBase:
|
|||||||
ivalMgr.step()
|
ivalMgr.step()
|
||||||
return Task.cont
|
return Task.cont
|
||||||
|
|
||||||
def igloop(self, state):
|
def collisionloop(self, state):
|
||||||
# run the collision traversal if we have a
|
# run the collision traversal if we have a
|
||||||
# CollisionTraverser set.
|
# CollisionTraverser set.
|
||||||
if self.cTrav:
|
if self.cTrav:
|
||||||
self.cTrav.traverse(self.render)
|
self.cTrav.traverse(self.render)
|
||||||
if self.appTrav:
|
if self.appTrav:
|
||||||
self.appTrav.traverse(self.render)
|
self.appTrav.traverse(self.render)
|
||||||
|
return Task.cont
|
||||||
|
|
||||||
|
def igloop(self, state):
|
||||||
# Finally, render the frame.
|
# Finally, render the frame.
|
||||||
self.graphicsEngine.renderFrame()
|
self.graphicsEngine.renderFrame()
|
||||||
|
|
||||||
@ -636,6 +638,10 @@ class ShowBase:
|
|||||||
# give the igloop task a reasonably "late" priority,
|
# give the igloop task a reasonably "late" priority,
|
||||||
# so that it will get run after most tasks
|
# so that it will get run after most tasks
|
||||||
self.taskMgr.add(self.igloop, 'igloop', priority = 50)
|
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,
|
# give the dataloop task a reasonably "early" priority,
|
||||||
# so that it will get run before most tasks
|
# so that it will get run before most tasks
|
||||||
self.taskMgr.add(self.dataloop, 'dataloop', priority = -50)
|
self.taskMgr.add(self.dataloop, 'dataloop', priority = -50)
|
||||||
@ -646,6 +652,7 @@ class ShowBase:
|
|||||||
|
|
||||||
def shutdown(self):
|
def shutdown(self):
|
||||||
self.taskMgr.remove('igloop')
|
self.taskMgr.remove('igloop')
|
||||||
|
self.taskMgr.remove('collisionloop')
|
||||||
self.taskMgr.remove('dataloop')
|
self.taskMgr.remove('dataloop')
|
||||||
self.taskMgr.remove('ivalloop')
|
self.taskMgr.remove('ivalloop')
|
||||||
self.eventMgr.shutdown()
|
self.eventMgr.shutdown()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user