Ich benutze SDL2 von Python 3.5 und ich habe 2 Threads, jede Zeichnung zu ihrem eigenen OpenGl-Fenster.SDL2 resize Ereignis geht zu falschem Thread?
Zeichnung geht in Ordnung, und alle Maus- und Tastaturereignisse im rechten Faden ankommen. Nur wenn ich die Größe eines der Fenster ändere, geht das Resize Event in das falsche Fenster.
Hier ist ein Teil meines Code:
def pollEvent (self):
event = s2.SDL_Event()
if s2.SDL_PollEvent (ct.byref (event)):
if event.type == s2.SDL_QUIT:
self.running = False
elif event.type == s2.SDL_WINDOWEVENT:
if event.window.event == s2.SDL_WINDOWEVENT_RESIZED:
print (111, self.name, 222)
self.event = resizeEvent
self.width = event.window.data1
self.height = event.window.data2
self.reshape()
elif event.window.event == s2.SDL_WINDOWEVENT_CLOSE:
self.running = False
self.renderDisplayList()
elif event.type == s2.SDL_MOUSEBUTTONDOWN:
print (222, self.name, 333)
Die SDL_MOUSEBUTTONDOWN in das rechten Fenster geht, die richtigen Namen drucken, aber die SDL_WINDOWEVENT_RESIZED geht an den falschen, den falschen Namen drucken.
jemand eine Idee, was könnte die Ursache sein? Jedes SDL-Fenster wird nur von einem eigenen Thread aus angefahren.
Es gibt nur eine Ereigniswarteschlange. Fenster kann durch 'event.window.windowID' bestimmt werden. – keltar
Das hilft sehr, danke! Wenn Sie Ihren Kommentar zu einer Antwort promoten, kann ich es Ihnen gutschreiben. –