From 3d03461a524c9aa2f5cd6e1623dc480ad50fe563 Mon Sep 17 00:00:00 2001 From: RainWarrior Date: Sat, 7 Nov 2015 12:58:23 +0300 Subject: [PATCH] Performace fix for item rendering. --- .../client/model/pipeline/LightUtil.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/minecraftforge/client/model/pipeline/LightUtil.java b/src/main/java/net/minecraftforge/client/model/pipeline/LightUtil.java index e6e03fb4f..0fc6ae3ab 100644 --- a/src/main/java/net/minecraftforge/client/model/pipeline/LightUtil.java +++ b/src/main/java/net/minecraftforge/client/model/pipeline/LightUtil.java @@ -8,6 +8,7 @@ import net.minecraft.client.renderer.vertex.VertexFormat; import net.minecraft.client.renderer.vertex.VertexFormatElement; import net.minecraft.client.renderer.vertex.VertexFormatElement.EnumUsage; import net.minecraft.util.EnumFacing; +import net.minecraftforge.client.ForgeHooksClient; import net.minecraftforge.client.model.IColoredBakedQuad; import com.google.common.cache.CacheBuilder; @@ -236,7 +237,8 @@ public class LightUtil return itemConsumer; } - public static void renderQuadColor(WorldRenderer wr, BakedQuad quad, int auxColor) + // renders quad in any Vertex Format, but is slower + public static void renderQuadColorSlow(WorldRenderer wr, BakedQuad quad, int auxColor) { ItemConsumer cons; if(wr == Tessellator.getInstance().getWorldRenderer()) @@ -251,10 +253,24 @@ public class LightUtil float g = (float)((auxColor >>> 8) & 0xFF) / 0xFF; float r = (float)((auxColor >>> 16) & 0xFF) / 0xFF; float a = (float)((auxColor >>> 24) & 0xFF) / 0xFF; + cons.setAuxColor(r, g, b, a); quad.pipe(cons); } + public static void renderQuadColor(WorldRenderer wr, BakedQuad quad, int auxColor) + { + wr.addVertexData(quad.getVertexData()); + if(quad instanceof IColoredBakedQuad) + { + ForgeHooksClient.putQuadColor(wr, quad, auxColor); + } + else + { + wr.putColor4(auxColor); + } + } + public static class ItemConsumer extends VertexTransformer { private boolean colored = false;