Fix depth export on 1.14.4

This commit is contained in:
Jonas Herzig
2022-12-07 14:33:27 +01:00
parent 000ff19749
commit 3816671207
2 changed files with 15 additions and 3 deletions

View File

@@ -1,25 +1,35 @@
package com.replaymod.render.mixin; package com.replaymod.render.mixin;
import com.replaymod.render.hooks.EntityRendererHandler; import com.replaymod.render.hooks.EntityRendererHandler;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.render.GameRenderer; import net.minecraft.client.render.GameRenderer;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.ModifyArg; import org.spongepowered.asm.mixin.injection.ModifyArg;
//#if MC>=11500
@Mixin(GameRenderer.class) @Mixin(GameRenderer.class)
//#elseif MC>=11400
//$$ @Mixin(net.minecraft.client.util.Window.class)
//#else
//$$ @Mixin(EntityRenderer.class)
//#endif
public abstract class Mixin_PreserveDepthDuringGuiRendering { public abstract class Mixin_PreserveDepthDuringGuiRendering {
@ModifyArg( @ModifyArg(
//#if MC>=11400 //#if MC>=11500
method = "render", method = "render",
at = @At(value = "INVOKE", target = "Lcom/mojang/blaze3d/systems/RenderSystem;clear(IZ)V"), index = 0 at = @At(value = "INVOKE", target = "Lcom/mojang/blaze3d/systems/RenderSystem;clear(IZ)V"), index = 0
//#elseif MC>=11400
//$$ method = "method_4493",
//$$ at = @At(value = "INVOKE", target = "Lcom/mojang/blaze3d/platform/GlStateManager;clear(IZ)V"), index = 0
//#else //#else
//$$ method = "setupOverlayRendering", //$$ method = "setupOverlayRendering",
//$$ at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/GlStateManager;clear(I)V"), index = 0 //$$ at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/GlStateManager;clear(I)V"), index = 0
//#endif //#endif
) )
private int replayModRender_skipClearWhenRecordingDepth(int mask) { private int replayModRender_skipClearWhenRecordingDepth(int mask) {
EntityRendererHandler handler = ((EntityRendererHandler.IEntityRenderer) this).replayModRender_getHandler(); EntityRendererHandler handler = ((EntityRendererHandler.IEntityRenderer) MinecraftClient.getInstance().gameRenderer).replayModRender_getHandler();
if (handler != null && handler.getSettings().isDepthMap()) { if (handler != null && handler.getSettings().isDepthMap()) {
mask = mask & ~GL11.GL_DEPTH_BUFFER_BIT; mask = mask & ~GL11.GL_DEPTH_BUFFER_BIT;
} }

View File

@@ -15,8 +15,10 @@ public abstract class Mixin_PreserveDepthDuringHandRendering {
//#else //#else
//$$ method = "renderWorldPass", //$$ method = "renderWorldPass",
//#endif //#endif
//#if MC>=11400 //#if MC>=11500
at = @At(value = "INVOKE", target = "Lcom/mojang/blaze3d/systems/RenderSystem;clear(IZ)V"), at = @At(value = "INVOKE", target = "Lcom/mojang/blaze3d/systems/RenderSystem;clear(IZ)V"),
//#elseif MC>=11400
//$$ at = @At(value = "INVOKE", target = "Lcom/mojang/blaze3d/platform/GlStateManager;clear(IZ)V", ordinal = 1),
//#else //#else
//$$ at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/GlStateManager;clear(I)V", ordinal = 1), //$$ at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/GlStateManager;clear(I)V", ordinal = 1),
//#endif //#endif