diff options
author | Léa Gris <lea.gris@noiraude.net> | 2021-05-06 01:28:41 +0200 |
---|---|---|
committer | Léa Gris <lea.gris@noiraude.net> | 2021-05-21 13:38:32 +0200 |
commit | 7c1425f9ce38a6eb9e1063a37e8abc374dc53a63 (patch) | |
tree | 87bf1ccd01053cee3df0283f5593325dddb3ccea /src/main/java/gregtech/api/interfaces/ITexture.java | |
parent | 7138bc372ae89d66755f99df11ebf145cea5d33b (diff) | |
download | GT5-Unofficial-7c1425f9ce38a6eb9e1063a37e8abc374dc53a63.tar.gz GT5-Unofficial-7c1425f9ce38a6eb9e1063a37e8abc374dc53a63.tar.bz2 GT5-Unofficial-7c1425f9ce38a6eb9e1063a37e8abc374dc53a63.zip |
fix(render): flickering off-world rendered multitexture with glow
Isolated each Quad drawn ITexture layer rendering in own Tessellation context
when rendering item blocks off world (inventory, in-hand, dropped item).
Diffstat (limited to 'src/main/java/gregtech/api/interfaces/ITexture.java')
-rw-r--r-- | src/main/java/gregtech/api/interfaces/ITexture.java | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/main/java/gregtech/api/interfaces/ITexture.java b/src/main/java/gregtech/api/interfaces/ITexture.java index 4321cc523c..61244a10ae 100644 --- a/src/main/java/gregtech/api/interfaces/ITexture.java +++ b/src/main/java/gregtech/api/interfaces/ITexture.java @@ -2,6 +2,7 @@ package gregtech.api.interfaces; import net.minecraft.block.Block; import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; public interface ITexture { void renderXPos(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ); @@ -17,4 +18,28 @@ public interface ITexture { void renderZNeg(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ); boolean isValidTexture(); + + /** + * Will initialize the {@link Tessellator} if rendering off-world (Inventory) + * @param aRenderer The {@link RenderBlocks} Renderer + * @param aNormalX The X Normal for current Quad Face + * @param aNormalY The Y Normal for current Quad Face + * @param aNormalZ The Z Normal for current Quad Face + */ + default void startDrawingQuads(RenderBlocks aRenderer, float aNormalX, float aNormalY, float aNormalZ) { + if (aRenderer.useInventoryTint) { + Tessellator.instance.startDrawingQuads(); + Tessellator.instance.setNormal(aNormalX, aNormalY, aNormalZ); + } + } + + /** + * Will run the {@link Tessellator} to draw Quads if rendering off-world (Inventory) + * @param aRenderer The {@link RenderBlocks} Renderer + */ + default void draw(RenderBlocks aRenderer) { + if (aRenderer.useInventoryTint) { + Tessellator.instance.draw(); + } + } } |