From 5baab016fab3f71bfc76a11de23c76f12abde0cf Mon Sep 17 00:00:00 2001 From: Emily <106335580+Vozath@users.noreply.github.com> Date: Tue, 10 Mar 2026 23:57:13 -0400 Subject: [PATCH 1/4] meowww --- 4J.Render/4J_Render.cpp | 11 ++++++++++- meson.build | 6 ++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/4J.Render/4J_Render.cpp b/4J.Render/4J_Render.cpp index c16920e82..a22e5ff1b 100644 --- a/4J.Render/4J_Render.cpp +++ b/4J.Render/4J_Render.cpp @@ -70,6 +70,9 @@ static void onFramebufferResize(int w, int h) ::glViewport(0, 0, w, h); } +// V-Sync + + // Initialize OpenGL & The SDL window. void C4JRender::Initialise() { @@ -121,8 +124,14 @@ void C4JRender::Initialise() SDL_Quit(); return; } - SDL_GL_SetSwapInterval(0); // V-Sync Off Please. + // 4JCraft VSync/V-Sync + #ifdef ENABLE_VSYNC + SDL_GL_SetSwapInterval(1); // V-Sync On Please. + #else + SDL_GL_SetSwapInterval(0); // V-Sync Off Please. + #endif + int fw, fh; SDL_GetWindowSize(s_window, &fw, &fh); onFramebufferResize(fw, fh); // We initialize the OpenGL states. Touching those values makes some funny artifacts appear. diff --git a/meson.build b/meson.build index 7ec53a62e..e8e00dc3b 100644 --- a/meson.build +++ b/meson.build @@ -37,6 +37,12 @@ global_cpp_defs = [ '-DDEBUG', ] +if get_option('enable_vsync') + global_cpp_defs += '-DENABLE_VSYNC' + message('v-sync enabled') +endif + + if host_machine.system() == 'linux' global_cpp_defs += [ '-Dlinux', From 0f605b8997b072ed2c084944b18b326055f6dd3b Mon Sep 17 00:00:00 2001 From: Emily <106335580+Vozath@users.noreply.github.com> Date: Wed, 11 Mar 2026 00:09:07 -0400 Subject: [PATCH 2/4] mrrrp (V-Sync Changes) --- Minecraft.Client/GameState/Options.cpp | 8 +++++++- Minecraft.Client/Rendering/GameRenderer.cpp | 2 ++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/Minecraft.Client/GameState/Options.cpp b/Minecraft.Client/GameState/Options.cpp index ed1f7eca5..06b08d5bd 100644 --- a/Minecraft.Client/GameState/Options.cpp +++ b/Minecraft.Client/GameState/Options.cpp @@ -116,7 +116,13 @@ void Options::init() bobView = true; anaglyph3d = false; advancedOpengl = false; + + //4JCRAFT V-Sync / VSync + #ifdef ENABLE_VSYNC framerateLimit = 2; + #else + framerateLimit = 3; + #endif fancyGraphics = true; ambientOcclusion = true; renderClouds = true; @@ -522,4 +528,4 @@ void Options::save() bool Options::isCloudsOn() { return viewDistance < 2 && renderClouds; -} \ No newline at end of file +} diff --git a/Minecraft.Client/Rendering/GameRenderer.cpp b/Minecraft.Client/Rendering/GameRenderer.cpp index 9335fee5b..c81a243b8 100644 --- a/Minecraft.Client/Rendering/GameRenderer.cpp +++ b/Minecraft.Client/Rendering/GameRenderer.cpp @@ -2189,6 +2189,8 @@ int GameRenderer::getFpsCap(int option) int maxFps = 200; if (option == 1) maxFps = 120; if (option == 2) maxFps = 35; + if (option == 3) maxFps = 0; + return maxFps; } From bfc83f78306e51bbba04caf9c3f3e7693ba5d606 Mon Sep 17 00:00:00 2001 From: Emily <106335580+Vozath@users.noreply.github.com> Date: Wed, 11 Mar 2026 00:13:09 -0400 Subject: [PATCH 3/4] forgot to add meson.options --- meson.options | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 meson.options diff --git a/meson.options b/meson.options new file mode 100644 index 000000000..c10135e97 --- /dev/null +++ b/meson.options @@ -0,0 +1,4 @@ +option('enable_vsync', + type : 'boolean', + value : true, + description : 'Toggles weather V-Sync will be toggle on or off.') From 4e286dd92c691460f423b79e45ff14be68771143 Mon Sep 17 00:00:00 2001 From: Emily <106335580+Vozath@users.noreply.github.com> Date: Wed, 11 Mar 2026 00:29:19 -0400 Subject: [PATCH 4/4] ifdef the option 3 --- Minecraft.Client/Rendering/GameRenderer.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Minecraft.Client/Rendering/GameRenderer.cpp b/Minecraft.Client/Rendering/GameRenderer.cpp index c81a243b8..bf7a01f28 100644 --- a/Minecraft.Client/Rendering/GameRenderer.cpp +++ b/Minecraft.Client/Rendering/GameRenderer.cpp @@ -2189,8 +2189,9 @@ int GameRenderer::getFpsCap(int option) int maxFps = 200; if (option == 1) maxFps = 120; if (option == 2) maxFps = 35; + #ifndef ENABLE_VSYNC if (option == 3) maxFps = 0; - + #endif return maxFps; }