]> git.lizzy.rs Git - BoundingBoxOutlineReloaded.git/blobdiff - src/main/java/com/irtimaled/bbor/client/ClientRenderer.java
Improve performance
[BoundingBoxOutlineReloaded.git] / src / main / java / com / irtimaled / bbor / client / ClientRenderer.java
index c8121788c800ea29c7246a4b9f43c6d86bca9bdc..2073e1d1a61312cae3e083b7742cf6c503ea1ee3 100644 (file)
@@ -57,6 +57,7 @@ import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
+import java.util.concurrent.atomic.AtomicLong;
 import java.util.stream.Stream;
 
 public class ClientRenderer {
@@ -66,6 +67,8 @@ public class ClientRenderer {
     private static boolean active;
     private static final Set<IBoundingBoxProvider> providers = new HashSet<>();
 
+    private static AtomicLong lastDurationNanos = new AtomicLong(0L);
+
     public static boolean getActive() {
         return active;
     }
@@ -133,6 +136,7 @@ public class ClientRenderer {
     public static void render(MatrixStack matrixStack, DimensionId dimensionId) {
         if (!active) return;
 
+        long startTime = System.nanoTime();
         matrixStack.push();
         RenderHelper.beforeRender();
 
@@ -141,19 +145,11 @@ public class ClientRenderer {
             if (renderer != null) renderer.render(matrixStack, key);
         });
 
-        RenderHelper.afterRender();
-        matrixStack.pop();
-    }
-
-    public static void renderDeferred() {
-        RenderHelper.beforeRender();
-        RenderHelper.polygonModeFill();
-        RenderHelper.enableBlend();
         RenderQueue.renderDeferred();
-        RenderHelper.disableBlend();
-        RenderHelper.enablePolygonOffsetLine();
-        RenderHelper.polygonOffsetMinusOne();
+
         RenderHelper.afterRender();
+        matrixStack.pop();
+        lastDurationNanos.set(System.nanoTime() - startTime);
     }
 
     public static Stream<AbstractBoundingBox> getBoundingBoxes(DimensionId dimensionId) {
@@ -180,5 +176,9 @@ public class ClientRenderer {
         }
     }
 
+    public static long getLastDurationNanos() {
+        return lastDurationNanos.get();
+    }
+
 
 }