aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/interfaces
diff options
context:
space:
mode:
authorLéa Gris <lea.gris@noiraude.net>2021-05-06 01:28:41 +0200
committerLéa Gris <lea.gris@noiraude.net>2021-05-21 13:38:32 +0200
commit7c1425f9ce38a6eb9e1063a37e8abc374dc53a63 (patch)
tree87bf1ccd01053cee3df0283f5593325dddb3ccea /src/main/java/gregtech/api/interfaces
parent7138bc372ae89d66755f99df11ebf145cea5d33b (diff)
downloadGT5-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')
-rw-r--r--src/main/java/gregtech/api/interfaces/ITexture.java25
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();
+ }
+ }
}