]> git.lizzy.rs Git - BoundingBoxOutlineReloaded.git/blobdiff - src/main/java/com/irtimaled/bbor/client/renderers/RenderHelper.java
1.18.1
[BoundingBoxOutlineReloaded.git] / src / main / java / com / irtimaled / bbor / client / renderers / RenderHelper.java
index 54c648af74b3651df7632276c3c151d30f228f30..a9b8710c8cef33fbd76a20cdf0bb77824c3103ff 100644 (file)
 package com.irtimaled.bbor.client.renderers;
 
+import com.irtimaled.bbor.client.Camera;
 import com.irtimaled.bbor.client.config.ConfigManager;
 import com.mojang.blaze3d.platform.GlStateManager;
-import net.minecraft.client.Minecraft;
+import com.mojang.blaze3d.systems.RenderSystem;
+import net.minecraft.client.util.math.MatrixStack;
+import net.minecraft.util.math.Quaternion;
 import org.lwjgl.opengl.GL11;
 
 public class RenderHelper {
-    public static final int QUADS = GL11.GL_QUADS;
-    public static final int LINES = GL11.GL_LINES;
-    public static final int LINE_LOOP = GL11.GL_LINE_LOOP;
-    public static final int POINTS = GL11.GL_POINTS;
 
     public static void beforeRender() {
         enableBlend();
-        GlStateManager.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
-        lineWidth2();
-        disableTexture();
-        GlStateManager.disableCull();
+        GlStateManager._blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
+        GL11.glEnable(GL11.GL_LINE_SMOOTH);
+        RenderSystem.disableCull();
         enableDepthTest();
+        RenderSystem.depthMask(true);
+        RenderSystem.depthFunc(GL11.GL_LEQUAL);
 
         if (ConfigManager.alwaysVisible.get()) {
-            GlStateManager.clear(GL11.GL_DEPTH_BUFFER_BIT, Minecraft.IS_RUNNING_ON_MAC);
+            RenderSystem.disableDepthTest();
         }
+        RenderBatch.beginBatch();
     }
 
     public static void afterRender() {
-        polygonModeFill();
-        GlStateManager.enableCull();
-        enableTexture();
+        RenderBatch.endBatch();
+        enableDepthTest();
+        RenderSystem.enableCull();
+        GL11.glDisable(GL11.GL_LINE_SMOOTH);
+        RenderSystem.setShaderColor(1, 1, 1, 1);
     }
 
-    public static void beforeRenderFont(OffsetPoint offsetPoint) {
-        disableDepthTest();
-        GlStateManager.pushMatrix();
+    public static void beforeRenderFont(MatrixStack matrixStack, OffsetPoint offsetPoint) {
+        RenderSystem.assertOnRenderThread();
+        matrixStack.push();
         polygonModeFill();
-        GlStateManager.translated(offsetPoint.getX(), offsetPoint.getY() + 0.002D, offsetPoint.getZ());
-        GlStateManager.normal3f(0.0F, 1.0F, 0.0F);
-        GlStateManager.rotatef(0.0F, 0.0F, 1.0F, 0.0F);
-        GlStateManager.rotatef(90.0F, 1.0F, 0.0F, 0.0F);
-        GlStateManager.scalef(-0.0175F, -0.0175F, 0.0175F);
+        matrixStack.translate(offsetPoint.getX(), offsetPoint.getY() + 0.002D, offsetPoint.getZ());
+        // GL11.glNormal3f(0.0F, 1.0F, 0.0F);
+        matrixStack.multiply(new Quaternion(0.0F, 0.0F, 0.0F, 1.0F));
+        matrixStack.multiply(new Quaternion(0.0F, 90.0F, 1.0F, 0.0F));
+        matrixStack.scale(-0.0175F, -0.0175F, 0.0175F);
         enableTexture();
         enableBlend();
-        GlStateManager.blendFuncSeparate(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA, GL11.GL_ONE, GL11.GL_ZERO);
+        GlStateManager._blendFuncSeparate(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA, GL11.GL_ONE, GL11.GL_ZERO);
 
         depthMaskTrue();
     }
 
-    public static void afterRenderFont() {
+    public static void afterRenderFont(MatrixStack matrixStack) {
         disableTexture();
         disableBlend();
-        GlStateManager.popMatrix();
+        RenderSystem.assertOnRenderThread();
+        matrixStack.pop();
         enableDepthTest();
     }
 
-    public static void disableLighting() {
-        GlStateManager.disableLighting();
-    }
+//    public static void disableLighting() {
+//        RenderSystem.assertThread(RenderSystem::isOnRenderThread);
+//        GL11.glDisable(GL11.GL_LIGHTING);
+//    }
 
     public static void disableDepthTest() {
-        GlStateManager.disableDepthTest();
+        GlStateManager._disableDepthTest();
     }
 
     public static void enableDepthTest() {
-        GlStateManager.enableDepthTest();
+        GlStateManager._enableDepthTest();
     }
 
-    public static void disableFog() {
-        GlStateManager.disableFog();
-    }
+//    public static void disableFog() {
+//        RenderSystem.assertThread(RenderSystem::isOnRenderThread);
+//        GL11.glDisable(GL11.GL_FOG);
+//    }
 
     public static void disableBlend() {
-        GlStateManager.disableBlend();
+        GlStateManager._disableBlend();
     }
 
     public static void enableBlend() {
-        GlStateManager.enableBlend();
+        GlStateManager._enableBlend();
     }
 
-    public static void disableAlphaTest() {
-        GlStateManager.disableAlphaTest();
-    }
-
-    public static void enableAlphaTest() {
-        GlStateManager.enableAlphaTest();
-    }
+//    public static void disableAlphaTest() {
+//        RenderSystem.assertThread(RenderSystem::isOnRenderThread);
+//        GL11.glDisable(GL32.GL_ALPHA_TEST);
+//    }
+//
+//    public static void enableAlphaTest() {
+//        RenderSystem.assertThread(RenderSystem::isOnRenderThread);
+//        GL11.glEnable(GL11.GL_ALPHA_TEST);
+//    }
 
     public static void disableTexture() {
-        GlStateManager.disableTexture();
+        GlStateManager._disableTexture();
     }
 
     public static void enableTexture() {
-        GlStateManager.enableTexture();
-    }
-
-    public static void shadeModelSmooth() {
-        GlStateManager.shadeModel(GL11.GL_SMOOTH);
+        GlStateManager._enableTexture();
     }
 
-    public static void shadeModelFlat() {
-        GlStateManager.shadeModel(GL11.GL_FLAT);
-    }
+//    public static void shadeModelSmooth() {
+//        RenderSystem.assertThread(RenderSystem::isOnRenderThreadOrInit);
+//        GL11.glShadeModel(GL11.GL_SMOOTH);
+//    }
+//
+//    public static void shadeModelFlat() {
+//        RenderSystem.assertThread(RenderSystem::isOnRenderThreadOrInit);
+//        GL11.glShadeModel(GL11.GL_FLAT);
+//    }
 
-    public static void enablePointSmooth() {
-        GL11.glEnable(GL11.GL_POINT_SMOOTH);
-    }
+//    public static void enablePointSmooth() {
+//        GL11.glEnable(GL11.GL_POINT_SMOOTH);
+//    }
 
     public static void lineWidth2() {
-        GlStateManager.lineWidth(2f);
+        RenderSystem.assertOnRenderThread();
+        RenderSystem.lineWidth(2f);
     }
 
     public static void polygonModeLine() {
-        GlStateManager.polygonMode(GL11.GL_FRONT_AND_BACK, GL11.GL_LINE);
+        GlStateManager._polygonMode(GL11.GL_FRONT_AND_BACK, GL11.GL_LINE);
     }
 
     public static void polygonModeFill() {
-        GlStateManager.polygonMode(GL11.GL_FRONT_AND_BACK, GL11.GL_FILL);
+        GlStateManager._polygonMode(GL11.GL_FRONT_AND_BACK, GL11.GL_FILL);
     }
 
     public static void polygonOffsetMinusOne() {
-        GlStateManager.polygonOffset(-1.f, -1.f);
+        GlStateManager._polygonOffset(-1.f, -1.f);
     }
 
     public static void enablePolygonOffsetLine() {
-        GlStateManager.enableLineOffset();
+        RenderSystem.assertOnRenderThread();
+        GL11.glEnable(GL11.GL_POLYGON_OFFSET_LINE);
     }
 
     public static void depthMaskTrue() {
-        GlStateManager.depthMask(true);
+        GlStateManager._depthMask(true);
+    }
+
+    public static void blendFuncGui() {
+        GlStateManager._blendFuncSeparate(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA, GL11.GL_ZERO, GL11.GL_ONE);
     }
 
-    public static void pointSize5() {
-        GL11.glPointSize(5);
+    public static void depthFuncAlways() {
+        GlStateManager._depthFunc(GL11.GL_ALWAYS);
     }
 
-    public static void blendFuncGui() {
-        GlStateManager.blendFuncSeparate(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA, GL11.GL_ZERO, GL11.GL_ONE);
+    public static void depthFuncLessEqual() {
+        GlStateManager._depthFunc(GL11.GL_LEQUAL);
     }
+
+    public static void applyRegionalRenderOffset(MatrixStack matrixStack)
+    {
+
+        int regionX = (((int) Camera.getX()) >> 9) << 9;
+        int regionZ = (((int) Camera.getZ()) >> 9) << 9;
+
+        matrixStack.translate(regionX - Camera.getX(), -Camera.getY(),
+                regionZ - Camera.getZ());
+    }
+
 }