Fix rendering with OF F1_pre13 (via OptiFabric) installed

Note that to run it in dev env, one must switch back fabric-api to 0.2.
This commit is contained in:
Jonas Herzig
2019-06-14 22:08:44 +02:00
parent d02b239e74
commit bf2d72976c
4 changed files with 15 additions and 4 deletions

View File

@@ -44,7 +44,11 @@ public class ShaderBeginRender extends EventRegistrations {
// check if Shaders are enabled
if (!(boolean) (ShaderReflection.config_isShaders.invoke(null))) return;
ShaderReflection.shaders_beginRender.invoke(null, mc, getRenderPartialTicks(), 0);
ShaderReflection.shaders_beginRender.invoke(null, mc,
//#if MC>=11400
mc.gameRenderer.getCamera(),
//#endif
getRenderPartialTicks(), 0);
} catch (IllegalAccessException | InvocationTargetException e) {
e.printStackTrace();
}

View File

@@ -3,6 +3,10 @@ package com.replaymod.compat.shaders;
import net.minecraft.client.MinecraftClient;
//#if MC>=11400
import net.minecraft.client.render.Camera;
//#endif
import java.lang.reflect.Field;
import java.lang.reflect.Method;
@@ -37,7 +41,11 @@ public class ShaderReflection {
shaders_isShadowPass = shadersClass.getDeclaredField("isShadowPass");
shaders_isShadowPass.setAccessible(true);
shaders_beginRender = shadersClass.getDeclaredMethod("beginRender", MinecraftClient.class, float.class, long.class);
shaders_beginRender = shadersClass.getDeclaredMethod("beginRender", MinecraftClient.class,
//#if MC>=11400
Camera.class,
//#endif
float.class, long.class);
shaders_beginRender.setAccessible(true);
renderGlobal_chunksToUpdateForced = Class.forName("net.minecraft.client.renderer.RenderGlobal")

View File

@@ -21,8 +21,6 @@ public abstract class MixinShaderRenderChunk {
*/
@Inject(method = "isPlayerUpdate", at = @At("HEAD"), cancellable = true, remap = false)
private void replayModCompat_disableIsPlayerUpdate(CallbackInfoReturnable<Boolean> ci) {
// TODO: Update to 1.12 once optifine is available
// TODO: We're on 1.13 now and haven't gotten any 1.12 complaints, so 1.12 is probably working but 1.13?
if (((EntityRendererHandler.IEntityRenderer) mc.gameRenderer).replayModRender_getHandler() == null) return;
ci.setReturnValue(true);
}

View File

@@ -26,6 +26,7 @@
"mixins": [
"mixins.jgui.json",
"mixins.core.replaymod.json",
"mixins.compat.shaders.replaymod.json",
"mixins.extras.playeroverview.replaymod.json",
"mixins.recording.replaymod.json",
"mixins.render.blend.replaymod.json",