diff --git a/assets/mods/basegame/metadata.properties b/assets/mods/basegame/metadata.properties index 3c028e1da..357ed5af2 100644 --- a/assets/mods/basegame/metadata.properties +++ b/assets/mods/basegame/metadata.properties @@ -44,7 +44,7 @@ package=net.torvald.terrarum.modulebasegame entrypoint=net.torvald.terrarum.modulebasegame.EntryPoint # Release date in YYYY-MM-DD -releasedate=2023-09-08 +releasedate=2023-10-06 # The version, must follow Semver 2.0.0 scheme (https://semver.org/) version=0.3.3 diff --git a/src/com/badlogic/gdx/graphics/glutils/Float16FrameBuffer.java b/src/com/badlogic/gdx/graphics/glutils/Float16FrameBuffer.java index 19b1be7f6..20f6a2c61 100644 --- a/src/com/badlogic/gdx/graphics/glutils/Float16FrameBuffer.java +++ b/src/com/badlogic/gdx/graphics/glutils/Float16FrameBuffer.java @@ -35,17 +35,19 @@ public class Float16FrameBuffer extends FrameBuffer { public Float16FrameBuffer (int width, int height, boolean hasDepth) { /*if (!App.gl40capable || App.operationSystem.equals("OSX")) { // disable float framebuffer for Apple M chips FrameBufferBuilder bufferBuilder = new FrameBufferBuilder(width, height); - bufferBuilder.addColorTextureAttachment(GL20.GL_RGBA, GL20.GL_RGBA, GL20.GL_UNSIGNED_SHORT); // but 16bpp int works perfectly?! + bufferBuilder.addColorTextureAttachment(GL20.GL_RGBA, GL20.GL_RGBA, GL20.GL_UNSIGNED_SHORT); // but 16bpp creates slight banding if (hasDepth) bufferBuilder.addBasicDepthRenderBuffer(); this.bufferBuilder = bufferBuilder; } else { FloatFrameBufferBuilder bufferBuilder = new FloatFrameBufferBuilder(width, height); - bufferBuilder.addFloatAttachment(GL30.GL_RGBA16F, GL30.GL_RGBA, GL30.GL_FLOAT, false); + bufferBuilder.addFloatAttachment(GL30.GL_RGBA16F, GL30.GL_RGBA, GL30.GL_FLOAT, false); // float16 will not create a banding if (hasDepth) bufferBuilder.addBasicDepthRenderBuffer(); this.bufferBuilder = bufferBuilder; }*/ + // FIXME temporarily disabling Float16 -- has LWJGL bug that prevents setOpenGLEmulation on Windows (or is this Nvidia's issue?) + FrameBufferBuilder bufferBuilder = new FrameBufferBuilder(width, height); bufferBuilder.addColorTextureAttachment(GL20.GL_RGBA, GL20.GL_RGBA, GL20.GL_UNSIGNED_SHORT); // but 16bpp int works perfectly?! if (hasDepth) bufferBuilder.addBasicDepthRenderBuffer(); diff --git a/src/net/torvald/terrarum/App.java b/src/net/torvald/terrarum/App.java index b918a4db0..27c0bae13 100644 --- a/src/net/torvald/terrarum/App.java +++ b/src/net/torvald/terrarum/App.java @@ -12,6 +12,7 @@ import com.badlogic.gdx.graphics.glutils.*; import com.badlogic.gdx.utils.Disposable; import com.badlogic.gdx.utils.GdxRuntimeException; import com.badlogic.gdx.utils.JsonValue; +import com.badlogic.gdx.utils.SharedLibraryLoader; import com.github.strikerx3.jxinput.XInputDevice; import net.torvald.getcpuname.GetCpuName; import net.torvald.terrarum.controller.GdxControllerAdapter; @@ -276,7 +277,7 @@ public class App implements ApplicationListener { Gdx.gl20.glViewport(0, 0, width, height); } - public static final int TICK_SPEED = 64; + public static final int TICK_SPEED = 60; // using 60 as it's highly composite number public static final float UPDATE_RATE = 1f / TICK_SPEED; // apparent framerate will be limited by update rate private static float loadTimer = 0f; @@ -418,7 +419,8 @@ public class App implements ApplicationListener { Lwjgl3ApplicationConfiguration appConfig = new Lwjgl3ApplicationConfiguration(); //appConfig.useGL30 = false; // https://stackoverflow.com/questions/46753218/libgdx-should-i-use-gl30 - if (processor.startsWith("Apple M")) appConfig.setOpenGLEmulation(Lwjgl3ApplicationConfiguration.GLEmulation.GL30, 3, 2); + if (SharedLibraryLoader.isMac) + appConfig.setOpenGLEmulation(Lwjgl3ApplicationConfiguration.GLEmulation.GL30, 3, 2); appConfig.useVsync(getConfigBoolean("usevsync")); appConfig.setResizable(false);