diff options
author | Aaron <51387595+AzureAaron@users.noreply.github.com> | 2023-11-11 20:06:58 -0500 |
---|---|---|
committer | Aaron <51387595+AzureAaron@users.noreply.github.com> | 2023-11-11 20:06:58 -0500 |
commit | be75325edd603ee9d7a46c12cd9225d0d82f75da (patch) | |
tree | 6d5217d72d1087859d67e1501c0d86918201fb08 /src/main/java/de/hysky/skyblocker/utils/render/SRenderLayers.java | |
parent | 7a94d9380acb69006340e53db12faad8f13ab828 (diff) | |
download | Skyblocker-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.java | 44 |
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; + } +} |