From 4e89704e0bb9bf4675c1cff2dc424e26dc4b0ac9 Mon Sep 17 00:00:00 2001 From: paulevsGitch Date: Mon, 19 Oct 2020 21:58:34 +0300 Subject: [PATCH] Optifine shaders fix --- .../mixin/client/WorldRendererMixin.java | 21 +++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/src/main/java/ru/betterend/mixin/client/WorldRendererMixin.java b/src/main/java/ru/betterend/mixin/client/WorldRendererMixin.java index b24f85c9..3e8c11bc 100644 --- a/src/main/java/ru/betterend/mixin/client/WorldRendererMixin.java +++ b/src/main/java/ru/betterend/mixin/client/WorldRendererMixin.java @@ -2,6 +2,7 @@ package ru.betterend.mixin.client; import java.util.Random; +import org.lwjgl.opengl.GL11; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; @@ -11,6 +12,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import com.mojang.blaze3d.systems.RenderSystem; +import net.fabricmc.loader.api.FabricLoader; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gl.VertexBuffer; import net.minecraft.client.render.BackgroundRenderer; @@ -49,6 +51,7 @@ public class WorldRendererMixin { private static Vector3f axis2; private static Vector3f axis3; private static float time; + private static boolean optifine = false; @Shadow @Final @@ -74,6 +77,8 @@ public class WorldRendererMixin { axis1.normalize(); axis2.normalize(); axis3.normalize(); + + optifine = FabricLoader.getInstance().isModLoaded("optifabric"); } @Inject(method = "renderSky", at = @At("HEAD"), cancellable = true) @@ -83,12 +88,20 @@ public class WorldRendererMixin { //if (time > 360) time -= 360; BackgroundRenderer.setFogBlack(); - - RenderSystem.enableAlphaTest(); - RenderSystem.alphaFunc(516, 0.0F); - RenderSystem.enableBlend(); RenderSystem.enableTexture(); + if (optifine) { + GL11.glEnable(GL11.GL_ALPHA_TEST); + GL11.glAlphaFunc(516, 0.0F); + GL11.glEnable(GL11.GL_BLEND); + RenderSystem.depthMask(false); + } + else { + RenderSystem.enableAlphaTest(); + RenderSystem.alphaFunc(516, 0.0F); + RenderSystem.enableBlend(); + } + float blindA = 1F - BackgroundInfo.blindness; if (blindA > 0) {