From 68ff96739d59c02849b0fe90bb36e15af0e5daed Mon Sep 17 00:00:00 2001 From: Bixilon Date: Tue, 10 May 2022 23:33:00 +0200 Subject: [PATCH] only poll rendering if enabled --- .../java/de/bixilon/minosoft/gui/rendering/Rendering.kt | 5 ++--- src/main/java/de/bixilon/minosoft/util/RenderPolling.kt | 7 ++++++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/Rendering.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/Rendering.kt index a9bc7eb6a..c5576e857 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/Rendering.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/Rendering.kt @@ -18,7 +18,6 @@ import de.bixilon.minosoft.gui.eros.dialog.ErosErrorReport.Companion.report import de.bixilon.minosoft.gui.rendering.modding.events.WindowCloseEvent import de.bixilon.minosoft.gui.rendering.sound.AudioPlayer import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection -import de.bixilon.minosoft.terminal.RunConfiguration import de.bixilon.minosoft.util.RenderPolling import de.bixilon.minosoft.util.logging.Log import de.bixilon.minosoft.util.logging.LogLevels @@ -34,7 +33,7 @@ class Rendering(private val connection: PlayConnection) { Log.log(LogMessageType.RENDERING_GENERAL, LogLevels.INFO) { "Hello LWJGL ${Version.getVersion()}!" } latch.inc() this.latch = latch - if (RunConfiguration.OPEN_Gl_ON_FIRST_THREAD) { + if (RenderPolling.ENABLED) { RenderPolling.rendering = this RenderPolling.RENDERING_LATCH.dec() return @@ -45,7 +44,7 @@ class Rendering(private val connection: PlayConnection) { fun start() { val latch = this.latch ?: throw IllegalStateException("Rendering not initialized yet!") startAudioPlayerThread(latch) - if (RunConfiguration.OPEN_Gl_ON_FIRST_THREAD) { + if (RenderPolling.ENABLED) { startRenderWindow(latch) } else { startRenderWindowThread(latch) diff --git a/src/main/java/de/bixilon/minosoft/util/RenderPolling.kt b/src/main/java/de/bixilon/minosoft/util/RenderPolling.kt index 3f96a6863..7e24abe4f 100644 --- a/src/main/java/de/bixilon/minosoft/util/RenderPolling.kt +++ b/src/main/java/de/bixilon/minosoft/util/RenderPolling.kt @@ -16,16 +16,21 @@ package de.bixilon.minosoft.util import de.bixilon.kutil.latch.CountUpAndDownLatch import de.bixilon.minosoft.Minosoft import de.bixilon.minosoft.gui.rendering.Rendering +import de.bixilon.minosoft.terminal.RunConfiguration object RenderPolling { val RENDERING_LATCH = CountUpAndDownLatch(Int.MAX_VALUE shr 1) var rendering: Rendering? = null + val ENABLED = RunConfiguration.OPEN_Gl_ON_FIRST_THREAD /** - * Polls rendering (if opengl context is forced on the main thread) + * Eventually polls rendering (if opengl context is forced on the main thread) */ internal fun pollRendering() { + if (!ENABLED) { + return + } check(Thread.currentThread() == Minosoft.MAIN_THREAD) { "Current thread is not the main thread!" } while (true) { RENDERING_LATCH.waitForChange()