From de1d3541a60609eec74c4109a07c3a71a645521b Mon Sep 17 00:00:00 2001 From: Moritz Zwerger Date: Tue, 29 Oct 2024 23:33:04 +0100 Subject: [PATCH] rendering: properly close window This still makes the window freeze on wayland, not sure if I should blame the glfw update to kde. --- src/main/java/de/bixilon/minosoft/gui/RenderLoop.kt | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/main/java/de/bixilon/minosoft/gui/RenderLoop.kt b/src/main/java/de/bixilon/minosoft/gui/RenderLoop.kt index 99fa9118d..b731c1353 100644 --- a/src/main/java/de/bixilon/minosoft/gui/RenderLoop.kt +++ b/src/main/java/de/bixilon/minosoft/gui/RenderLoop.kt @@ -59,7 +59,7 @@ class RenderLoop( context.window.pollEvents() } - if (context.session.established || !context.state.active) { + if (context.state == RenderingStates.QUITTING || context.session.established || !context.state.active) { break } @@ -102,10 +102,6 @@ class RenderLoop( // handle opengl context tasks, but limit it per frame context.queue.workTimeLimited(RenderConstants.MAXIMUM_QUEUE_TIME_PER_FRAME) - if (context.state == RenderingStates.STOPPED) { - context.window.close() - break - } if (context.state == RenderingStates.SLOW && slowRendering) { Thread.sleep(100L) } @@ -122,6 +118,7 @@ class RenderLoop( Log.log(LogMessageType.RENDERING) { "Destroying render window..." } context.state = RenderingStates.STOPPED + context.window.forceClose() context.system.destroy() context.window.destroy() Log.log(LogMessageType.RENDERING) { "Render window destroyed!" }