Browse Source

showbase: Don't disable Windows mesasge loop with multi-threaded pipeline

Fixes half of #1494
rdb 2 years ago
parent
commit
c08353dea7
1 changed files with 3 additions and 2 deletions
  1. 3 2
      direct/src/showbase/ShowBase.py

+ 3 - 2
direct/src/showbase/ShowBase.py

@@ -3219,8 +3219,9 @@ class ShowBase(DirectObject.DirectObject):
         init_app_for_gui()
         init_app_for_gui()
 
 
         # Disable the Windows message loop, since Tcl wants to handle this all
         # Disable the Windows message loop, since Tcl wants to handle this all
-        # on its own.
-        ConfigVariableBool('disable-message-loop', False).value = True
+        # on its own, except if the Panda window is on a separate thread.
+        if self.graphicsEngine.getThreadingModel().getDrawStage() == 0:
+            ConfigVariableBool('disable-message-loop', False).value = True
 
 
         if ConfigVariableBool('tk-main-loop', True):
         if ConfigVariableBool('tk-main-loop', True):
             # Put Tkinter in charge of the main loop.  It really
             # Put Tkinter in charge of the main loop.  It really