David Rose 17 anni fa
parent
commit
900cc46683
1 ha cambiato i file con 17 aggiunte e 0 eliminazioni
  1. 17 0
      direct/src/showbase/ShowBase.py

+ 17 - 0
direct/src/showbase/ShowBase.py

@@ -1572,6 +1572,17 @@ class ShowBase(DirectObject.DirectObject):
         self.taskMgr.add(self.__audioLoop, 'audioLoop', priority = 60)
         self.eventMgr.restart()
 
+        if not hasattr(taskMgr, 'mgr'):
+            # If we're using the old task manager, we need to have an
+            # explicit task to manage the async load requests.  (On
+            # the new task manager, this is built-in.)
+            def asyncLoad(task):
+                task.mgr.poll()
+                return task.cont
+            task = Task.Task(asyncLoad)
+            task.mgr = AsyncTaskManager.getGlobalPtr()
+            taskMgr.add(task, 'asyncLoad')
+
     def shutdown(self):
         self.taskMgr.remove('audioLoop')
         self.taskMgr.remove('igLoop')
@@ -1582,6 +1593,12 @@ class ShowBase(DirectObject.DirectObject):
         self.taskMgr.remove('ivalLoop')
         self.eventMgr.shutdown()
 
+        if not hasattr(taskMgr, 'mgr'):
+            # If we're using the old task manager, we need to have an
+            # explicit task to manage the async load requests.  (On
+            # the new task manager, this is built-in.)
+            taskMgr.remove('asyncLoad')
+
     def getBackgroundColor(self, win = None):
         """
         Returns the current window background color.  This assumes