From 2747ad366eed5686206a77b0041070df75e39fdd Mon Sep 17 00:00:00 2001 From: Klesti Selimaj Date: Sun, 22 Feb 2026 01:06:33 +0100 Subject: [PATCH] Fixed title menu freezing --- .../saturnclient/SaturnClient.java | 4 ++++ .../org/saturnclient/ui2/SaturnScreen.java | 20 +++++++++++++++++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/saturnclient/saturnclient/SaturnClient.java b/src/main/java/org/saturnclient/saturnclient/SaturnClient.java index 7a6c803..1894a58 100644 --- a/src/main/java/org/saturnclient/saturnclient/SaturnClient.java +++ b/src/main/java/org/saturnclient/saturnclient/SaturnClient.java @@ -41,6 +41,10 @@ public class SaturnClient implements ModInitializer { SaturnClientConfig.init(); ModManager.init(); + client.execute(() -> { + SaturnScreen.preload(client); + }); + ClientLifecycleEvents.CLIENT_STOPPING.register(_o -> ConfigManager.save()); SpecialModelLoaderEvents.LOAD_SCOPE.register(() -> { diff --git a/src/main/java/org/saturnclient/ui2/SaturnScreen.java b/src/main/java/org/saturnclient/ui2/SaturnScreen.java index f88cbe6..ac39d7f 100644 --- a/src/main/java/org/saturnclient/ui2/SaturnScreen.java +++ b/src/main/java/org/saturnclient/ui2/SaturnScreen.java @@ -15,6 +15,8 @@ import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.RotatingCubeMapRenderer; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.render.DefaultFramebufferSet; +import net.minecraft.client.texture.ResourceTexture; +import net.minecraft.client.texture.TextureManager; import net.minecraft.client.util.Pool; import net.minecraft.text.Text; import net.minecraft.util.Identifier; @@ -28,8 +30,9 @@ public abstract class SaturnScreen extends Screen { public float blurProgress = 0.0f; public int backgroundBlur = 10; - protected static final CubeMapRenderer PANORAMA_RENDERER = new CubeMapRenderer( - Identifier.of("saturnclient", "textures/gui/title/background/panorama")); + protected static final Identifier PANORAMA = Identifier.of("saturnclient", + "textures/gui/title/background/panorama"); + protected static final CubeMapRenderer PANORAMA_RENDERER = new CubeMapRenderer(PANORAMA); public static final RotatingCubeMapRenderer ROTATING_PANORAMA_RENDERER; @@ -37,6 +40,18 @@ public abstract class SaturnScreen extends Screen { ROTATING_PANORAMA_RENDERER = new RotatingCubeMapRenderer(PANORAMA_RENDERER); } + public static void preload(MinecraftClient client) { + TextureManager textureManager = client.getTextureManager(); + + // Force upload each texture to GPU + for (int i = 0; i < 6; i++) { + String var10001 = PANORAMA.getPath(); + Identifier tex = PANORAMA.withPath(var10001 + "_" + i + ".png"); + ResourceTexture resourceTexture = new ResourceTexture(tex); + textureManager.registerTexture(tex, resourceTexture); + } + } + public SaturnScreen(String title) { super(Text.literal(title)); } @@ -73,6 +88,7 @@ public abstract class SaturnScreen extends Screen { PostEffectProcessor postEffectProcessor = this.client.getShaderLoader().loadPostEffect( Identifier.ofVanilla("blur"), DefaultFramebufferSet.MAIN_ONLY); + if (postEffectProcessor != null) { postEffectProcessor.setUniforms("Radius", backgroundBlur * blurProgress); postEffectProcessor.render(this.client.getFramebuffer(), this.pool);