Fixed title menu freezing
This commit is contained in:
@@ -41,6 +41,10 @@ public class SaturnClient implements ModInitializer {
|
|||||||
SaturnClientConfig.init();
|
SaturnClientConfig.init();
|
||||||
ModManager.init();
|
ModManager.init();
|
||||||
|
|
||||||
|
client.execute(() -> {
|
||||||
|
SaturnScreen.preload(client);
|
||||||
|
});
|
||||||
|
|
||||||
ClientLifecycleEvents.CLIENT_STOPPING.register(_o -> ConfigManager.save());
|
ClientLifecycleEvents.CLIENT_STOPPING.register(_o -> ConfigManager.save());
|
||||||
|
|
||||||
SpecialModelLoaderEvents.LOAD_SCOPE.register(() -> {
|
SpecialModelLoaderEvents.LOAD_SCOPE.register(() -> {
|
||||||
|
|||||||
@@ -15,6 +15,8 @@ import net.minecraft.client.gui.DrawContext;
|
|||||||
import net.minecraft.client.gui.RotatingCubeMapRenderer;
|
import net.minecraft.client.gui.RotatingCubeMapRenderer;
|
||||||
import net.minecraft.client.gui.screen.Screen;
|
import net.minecraft.client.gui.screen.Screen;
|
||||||
import net.minecraft.client.render.DefaultFramebufferSet;
|
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.client.util.Pool;
|
||||||
import net.minecraft.text.Text;
|
import net.minecraft.text.Text;
|
||||||
import net.minecraft.util.Identifier;
|
import net.minecraft.util.Identifier;
|
||||||
@@ -28,8 +30,9 @@ public abstract class SaturnScreen extends Screen {
|
|||||||
public float blurProgress = 0.0f;
|
public float blurProgress = 0.0f;
|
||||||
public int backgroundBlur = 10;
|
public int backgroundBlur = 10;
|
||||||
|
|
||||||
protected static final CubeMapRenderer PANORAMA_RENDERER = new CubeMapRenderer(
|
protected static final Identifier PANORAMA = Identifier.of("saturnclient",
|
||||||
Identifier.of("saturnclient", "textures/gui/title/background/panorama"));
|
"textures/gui/title/background/panorama");
|
||||||
|
protected static final CubeMapRenderer PANORAMA_RENDERER = new CubeMapRenderer(PANORAMA);
|
||||||
|
|
||||||
public static final RotatingCubeMapRenderer ROTATING_PANORAMA_RENDERER;
|
public static final RotatingCubeMapRenderer ROTATING_PANORAMA_RENDERER;
|
||||||
|
|
||||||
@@ -37,6 +40,18 @@ public abstract class SaturnScreen extends Screen {
|
|||||||
ROTATING_PANORAMA_RENDERER = new RotatingCubeMapRenderer(PANORAMA_RENDERER);
|
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) {
|
public SaturnScreen(String title) {
|
||||||
super(Text.literal(title));
|
super(Text.literal(title));
|
||||||
}
|
}
|
||||||
@@ -73,6 +88,7 @@ public abstract class SaturnScreen extends Screen {
|
|||||||
PostEffectProcessor postEffectProcessor = this.client.getShaderLoader().loadPostEffect(
|
PostEffectProcessor postEffectProcessor = this.client.getShaderLoader().loadPostEffect(
|
||||||
Identifier.ofVanilla("blur"),
|
Identifier.ofVanilla("blur"),
|
||||||
DefaultFramebufferSet.MAIN_ONLY);
|
DefaultFramebufferSet.MAIN_ONLY);
|
||||||
|
|
||||||
if (postEffectProcessor != null) {
|
if (postEffectProcessor != null) {
|
||||||
postEffectProcessor.setUniforms("Radius", backgroundBlur * blurProgress);
|
postEffectProcessor.setUniforms("Radius", backgroundBlur * blurProgress);
|
||||||
postEffectProcessor.render(this.client.getFramebuffer(), this.pool);
|
postEffectProcessor.render(this.client.getFramebuffer(), this.pool);
|
||||||
|
|||||||
Reference in New Issue
Block a user