diff --git a/build.gradle.kts b/build.gradle.kts index ac628aa8a2..d14e8f9371 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -62,10 +62,12 @@ project(":desktop") { dependencies { "implementation"(project(":core")) - "implementation"("com.badlogicgames.gdx:gdx-backend-lwjgl:${gdxVersion}") + "implementation"("com.badlogicgames.gdx:gdx-backend-lwjgl3:${gdxVersion}") "implementation"("com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop") - "implementation"("com.badlogicgames.gdx:gdx-tools:$gdxVersion") // This is for the TexturePacker class + "implementation"("com.badlogicgames.gdx:gdx-tools:$gdxVersion") { + exclude("com.badlogicgames.gdx", "gdx-backend-lwjgl") + } "implementation"("com.github.MinnDevelopment:java-discord-rpc:v2.0.1") } diff --git a/changelog.md b/changelog.md index 97d3166a7b..cc8f9b6bb4 100644 --- a/changelog.md +++ b/changelog.md @@ -24,7 +24,6 @@ Allow unit movement after unit automation steps By SimonCeder: - Barbarian units -- Fix for broken saves in #5573 - Barbarian fixes By SomeTroglodyte: diff --git a/core/src/com/unciv/ui/utils/KeyPressDispatcher.kt b/core/src/com/unciv/ui/utils/KeyPressDispatcher.kt index fab3b1ae08..bbe30fea39 100644 --- a/core/src/com/unciv/ui/utils/KeyPressDispatcher.kt +++ b/core/src/com/unciv/ui/utils/KeyPressDispatcher.kt @@ -167,13 +167,17 @@ class KeyPressDispatcher(val name: String? = null) : HashMap - KeyCharAndCode.ascii(character) event == null -> KeyCharAndCode.UNKNOWN else -> @@ -182,7 +186,7 @@ class KeyPressDispatcher(val name: String? = null) : HashMap("run") { + + jvmArgs = listOf("-XstartOnFirstThread") // See https://github.com/libgdx/libgdx/wiki/Starter-classes-and-configuration#common-issues + dependsOn(tasks.getByName("classes")) main = mainClassName diff --git a/desktop/src/com/unciv/app/desktop/DesktopLauncher.kt b/desktop/src/com/unciv/app/desktop/DesktopLauncher.kt index 18d407d54a..dc461e580d 100644 --- a/desktop/src/com/unciv/app/desktop/DesktopLauncher.kt +++ b/desktop/src/com/unciv/app/desktop/DesktopLauncher.kt @@ -3,10 +3,10 @@ package com.unciv.app.desktop import club.minnced.discord.rpc.DiscordEventHandlers import club.minnced.discord.rpc.DiscordRPC import club.minnced.discord.rpc.DiscordRichPresence -import com.badlogic.gdx.Files -import com.badlogic.gdx.backends.lwjgl.LwjglApplication -import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration +import com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application +import com.badlogic.gdx.backends.lwjgl3.Lwjgl3ApplicationConfiguration import com.badlogic.gdx.files.FileHandle +import com.badlogic.gdx.graphics.glutils.HdpiMode import com.sun.jna.Native import com.unciv.JsonParser import com.unciv.UncivGame @@ -29,15 +29,16 @@ internal object DesktopLauncher { ImagePacker.packImages() - val config = LwjglApplicationConfiguration() - // Don't activate GL 3.0 because it causes problems for MacOS computers - config.addIcon("ExtraImages/Icon.png", Files.FileType.Internal) - config.title = "Unciv" - config.useHDPI = true + val config = Lwjgl3ApplicationConfiguration() + config.setWindowIcon( "ExtraImages/Icon.png") + config.setTitle("Unciv") + config.setHdpiMode(HdpiMode.Logical) if (FileHandle(GameSaver.settingsFileName).exists()) { - val settings = JsonParser().getFromJson(GameSettings::class.java, FileHandle(GameSaver.settingsFileName)) - config.width = settings.windowState.width - config.height = settings.windowState.height + val settings = JsonParser().getFromJson( + GameSettings::class.java, + FileHandle(GameSaver.settingsFileName) + ) + config.setWindowedMode(settings.windowState.width, settings.windowState.height) } val versionFromJar = DesktopLauncher.javaClass.`package`.specificationVersion ?: "Desktop" @@ -53,7 +54,7 @@ internal object DesktopLauncher { tryActivateDiscord(game) - LwjglApplication(game, config) + Lwjgl3Application(game, config) } private fun tryActivateDiscord(game: UncivGame) {