aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky/skyblocker/utils/render/SRenderLayers.java
diff options
context:
space:
mode:
authorAaron <51387595+AzureAaron@users.noreply.github.com>2023-11-11 20:06:58 -0500
committerAaron <51387595+AzureAaron@users.noreply.github.com>2023-11-11 20:06:58 -0500
commitbe75325edd603ee9d7a46c12cd9225d0d82f75da (patch)
tree6d5217d72d1087859d67e1501c0d86918201fb08 /src/main/java/de/hysky/skyblocker/utils/render/SRenderLayers.java
parent7a94d9380acb69006340e53db12faad8f13ab828 (diff)
downloadSkyblocker-be75325edd603ee9d7a46c12cd9225d0d82f75da.tar.gz
Skyblocker-be75325edd603ee9d7a46c12cd9225d0d82f75da.tar.bz2
Skyblocker-be75325edd603ee9d7a46c12cd9225d0d82f75da.zip
Optimize Filled Box Rendering
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/utils/render/SRenderLayers.java')
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/render/SRenderLayers.java44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/main/java/de/hysky/skyblocker/utils/render/SRenderLayers.java b/src/main/java/de/hysky/skyblocker/utils/render/SRenderLayers.java
new file mode 100644
index 00000000..4c1beb1f
--- /dev/null
+++ b/src/main/java/de/hysky/skyblocker/utils/render/SRenderLayers.java
@@ -0,0 +1,44 @@
+package de.hysky.skyblocker.utils.render;
+
+import com.mojang.blaze3d.systems.RenderSystem;
+
+import net.minecraft.client.render.RenderLayer;
+import net.minecraft.client.render.RenderLayer.MultiPhase;
+import net.minecraft.client.render.RenderLayer.MultiPhaseParameters;
+import net.minecraft.client.render.RenderPhase;
+import net.minecraft.client.render.RenderPhase.Cull;
+import net.minecraft.client.render.RenderPhase.DepthTest;
+import net.minecraft.client.render.RenderPhase.Transparency;
+import net.minecraft.client.render.VertexFormat.DrawMode;
+import net.minecraft.client.render.VertexFormats;
+
+public class SRenderLayers {
+ private static final Transparency DEFAULT_TRANSPARENCY = new Transparency("default", () -> {
+ RenderSystem.enableBlend();
+ RenderSystem.defaultBlendFunc();
+ }, () -> RenderSystem.disableBlend());
+
+ private static final MultiPhase FILLED = RenderLayer.of("filled", VertexFormats.POSITION_COLOR, DrawMode.TRIANGLE_STRIP, 131072, false, true, MultiPhaseParameters.builder()
+ .program(RenderPhase.COLOR_PROGRAM)
+ .cull(Cull.DISABLE_CULLING)
+ .layering(RenderPhase.POLYGON_OFFSET_LAYERING)
+ .transparency(DEFAULT_TRANSPARENCY)
+ .depthTest(DepthTest.LEQUAL_DEPTH_TEST)
+ .build(false));
+
+ private static final MultiPhase FILLED_THROUGH_WALLS = RenderLayer.of("filled_through_walls", VertexFormats.POSITION_COLOR, DrawMode.TRIANGLE_STRIP, 131072, false, true, MultiPhaseParameters.builder()
+ .program(RenderPhase.COLOR_PROGRAM)
+ .cull(Cull.DISABLE_CULLING)
+ .layering(RenderPhase.POLYGON_OFFSET_LAYERING)
+ .transparency(DEFAULT_TRANSPARENCY)
+ .depthTest(DepthTest.ALWAYS_DEPTH_TEST)
+ .build(false));
+
+ public static MultiPhase getFilled() {
+ return FILLED;
+ }
+
+ public static MultiPhase getFilledThroughWalls() {
+ return FILLED_THROUGH_WALLS;
+ }
+}