From 0096dec4232c6a5a729367a2fc6f09a074a9dc19 Mon Sep 17 00:00:00 2001 From: Sollace Date: Sat, 19 Aug 2023 22:14:01 +0100 Subject: [PATCH] Fixed vulkan mod crash --- .../client/util/render/TextureFlattener.java | 29 +++++++------------ 1 file changed, 10 insertions(+), 19 deletions(-) diff --git a/src/main/java/com/minelittlepony/client/util/render/TextureFlattener.java b/src/main/java/com/minelittlepony/client/util/render/TextureFlattener.java index c739e574..44c5556d 100644 --- a/src/main/java/com/minelittlepony/client/util/render/TextureFlattener.java +++ b/src/main/java/com/minelittlepony/client/util/render/TextureFlattener.java @@ -7,8 +7,6 @@ import net.minecraft.util.Identifier; import net.minecraft.util.math.ColorHelper; import com.google.common.base.Preconditions; -import com.mojang.blaze3d.platform.TextureUtil; -import com.mojang.blaze3d.systems.RenderSystem; import java.io.IOException; import java.util.List; @@ -19,28 +17,21 @@ public class TextureFlattener { Preconditions.checkArgument(textures.size() > 0, "Must have at least one image to flatten"); MinecraftClient.getInstance().getTextureManager().registerTexture(output, new ResourceTexture(output) { @Override - public void load(ResourceManager resManager) throws IOException { + protected TextureData loadTextureData(ResourceManager resourceManager) { + try { + NativeImage image = NativeImage.read(resourceManager.getResourceOrThrow(textures.get(0)).getInputStream()); - NativeImage image = NativeImage.read(resManager.getResourceOrThrow(textures.get(0)).getInputStream()); - - for (int i = 1; i < textures.size(); i++) { - try (NativeImage data = NativeImage.read(resManager.getResourceOrThrow(textures.get(i)).getInputStream())) { - copyOver(data, image); + for (int i = 1; i < textures.size(); i++) { + try (NativeImage data = NativeImage.read(resourceManager.getResourceOrThrow(textures.get(i)).getInputStream())) { + copyOver(data, image); + } } - } - if (!RenderSystem.isOnRenderThreadOrInit()) { - final NativeImage i = image; - RenderSystem.recordRenderCall(() -> upload(i)); - } else { - upload(image); + return new TextureData(null, image); + } catch (IOException e) { + return new TextureData(e); } } - - private void upload(NativeImage image) { - TextureUtil.prepareImage(getGlId(), 0, image.getWidth(), image.getHeight()); - image.upload(0, 0, 0, 0, 0, image.getWidth(), image.getHeight(), false, false, false, true); - } }); }