From b9a4e0f64bb4dd81c899b6f5c0e2e8c2b645eead Mon Sep 17 00:00:00 2001 From: minjaesong Date: Tue, 22 Jan 2019 05:29:03 +0900 Subject: [PATCH] game actually reads fps setting from config --- src/net/torvald/terrarum/AppLoader.java | 13 +++++++++---- src/net/torvald/terrarum/DefaultConfig.kt | 2 +- src/net/torvald/terrarum/TitleScreen.kt | 17 ++++++++++++++--- 3 files changed, 24 insertions(+), 8 deletions(-) diff --git a/src/net/torvald/terrarum/AppLoader.java b/src/net/torvald/terrarum/AppLoader.java index 5e97178ed..7f90a8c9c 100644 --- a/src/net/torvald/terrarum/AppLoader.java +++ b/src/net/torvald/terrarum/AppLoader.java @@ -160,12 +160,12 @@ public class AppLoader implements ApplicationListener { LwjglApplicationConfiguration appConfig = new LwjglApplicationConfiguration(); //appConfig.useGL30 = true; // used: loads GL 3.2, unused: loads GL 4.6; what the fuck? - appConfig.vSyncEnabled = false; + appConfig.vSyncEnabled = true; appConfig.resizable = false;//true; appConfig.width = 1110; // photographic ratio (1.5:1) appConfig.height = 740; // photographic ratio (1.5:1) - appConfig.backgroundFPS = 9999; - appConfig.foregroundFPS = 9999; + appConfig.backgroundFPS = 0; + appConfig.foregroundFPS = 0; appConfig.title = GAME_NAME; appConfig.forceExit = false; @@ -207,7 +207,7 @@ public class AppLoader implements ApplicationListener { Gdx.gl20.glViewport(0, 0, width, height); } - public static final double UPDATE_RATE = 1.0 / 61.0; // TODO set it like 1/100, because apparent framerate is limited by update rate + public static final double UPDATE_RATE = 1.0 / 60.0; // TODO set it like 1/100, because apparent framerate is limited by update rate private float loadTimer = 0f; private final float showupTime = 100f / 1000f; @@ -481,6 +481,11 @@ public class AppLoader implements ApplicationListener { createDirs(); readConfigJson(); + // set render configs according to local config + appConfig.vSyncEnabled = getConfigBoolean("usevsync"); + appConfig.foregroundFPS = getConfigInt("displayfps"); + appConfig.backgroundFPS = getConfigInt("displayfps"); + textureWhiteSquare = new Texture(Gdx.files.internal("assets/graphics/ortho_line_tex_2px.tga")); textureWhiteSquare.setFilter(Texture.TextureFilter.Nearest, Texture.TextureFilter.Nearest); diff --git a/src/net/torvald/terrarum/DefaultConfig.kt b/src/net/torvald/terrarum/DefaultConfig.kt index de83d8585..38fdac185 100644 --- a/src/net/torvald/terrarum/DefaultConfig.kt +++ b/src/net/torvald/terrarum/DefaultConfig.kt @@ -14,7 +14,7 @@ object DefaultConfig { val jsonObject = JsonObject() jsonObject.addProperty("displayfps", 0) // 0: no limit, non-zero: limit - jsonObject.addProperty("usevsync", true) + jsonObject.addProperty("usevsync", false) jsonObject.addProperty("forcedevbuild", false) diff --git a/src/net/torvald/terrarum/TitleScreen.kt b/src/net/torvald/terrarum/TitleScreen.kt index d08fa1056..fc7de8f44 100644 --- a/src/net/torvald/terrarum/TitleScreen.kt +++ b/src/net/torvald/terrarum/TitleScreen.kt @@ -198,12 +198,23 @@ class TitleScreen(val batch: SpriteBatch) : Screen { private val introUncoverTime: Second = 0.3f private var introUncoverDeltaCounter = 0f - private var updateDeltaCounter = 0.0 + private var updateAkku = 0.0 override fun render(delta: Float) { - // TODO async update + // async update and render + + val dt = AppLoader.getSmoothDelta() + updateAkku += dt + + var i = 0L + while (updateAkku >= delta) { + updateScreen(delta) + updateAkku -= delta + i += 1 + } + AppLoader.debugTimers["Ingame.updateCounter"] = i + - updateScreen(delta) // render? just do it anyway renderScreen() }