showbase: Fix Loader when destroying and recreating ShowBase

This commit is contained in:
rdb 2024-12-14 14:47:28 +01:00
parent 3f2b9cd351
commit 46cf9c0507
2 changed files with 5 additions and 3 deletions

View File

@ -134,13 +134,15 @@ class Loader(DirectObject):
self.hook = "async_loader_%s" % (Loader.loaderIndex)
Loader.loaderIndex += 1
self.accept(self.hook, self.__gotAsyncObject)
def destroy(self):
self.ignore(self.hook)
self.loader.stopThreads()
del self.base
del self.loader
def _init_base(self, base):
self.base = base
self.accept(self.hook, self.__gotAsyncObject)
@classmethod
def _loadPythonFileTypes(cls):

View File

@ -437,7 +437,7 @@ class ShowBase(DirectObject.DirectObject):
#: `.Loader.Loader` object.
self.loader = ShowBaseGlobal.loader
self.loader.base = self
self.loader._init_base(self)
self.graphicsEngine.setDefaultLoader(self.loader.loader)
#: The global event manager, as imported from `.EventManagerGlobal`.