Add projection matrix to RenderWorldLastEvent (#6536)

This commit is contained in:
Nightenom 2020-03-11 08:00:21 +01:00 committed by GitHub
parent 58e5f33fad
commit 202ae50820
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 33 additions and 1 deletions

View File

@ -40,7 +40,7 @@
p_228378_4_.func_227863_a_(Vector3f.field_229181_d_.func_229187_a_(activerenderinfo.func_216778_f() + 180.0F)); p_228378_4_.func_227863_a_(Vector3f.field_229181_d_.func_229187_a_(activerenderinfo.func_216778_f() + 180.0F));
this.field_78531_r.field_71438_f.func_228426_a_(p_228378_4_, p_228378_1_, p_228378_2_, flag, activerenderinfo, this, this.field_78513_d, matrix4f); this.field_78531_r.field_71438_f.func_228426_a_(p_228378_4_, p_228378_1_, p_228378_2_, flag, activerenderinfo, this, this.field_78513_d, matrix4f);
+ this.field_78531_r.func_213239_aq().func_219895_b("forge_render_last"); + this.field_78531_r.func_213239_aq().func_219895_b("forge_render_last");
+ net.minecraftforge.client.ForgeHooksClient.dispatchRenderLast(this.field_78531_r.field_71438_f, p_228378_4_, p_228378_2_); + net.minecraftforge.client.ForgeHooksClient.dispatchRenderLast(this.field_78531_r.field_71438_f, p_228378_4_, p_228378_1_, matrix4f, p_228378_2_);
this.field_78531_r.func_213239_aq().func_219895_b("hand"); this.field_78531_r.func_213239_aq().func_219895_b("hand");
if (this.field_175074_C) { if (this.field_175074_C) {
RenderSystem.clear(256, Minecraft.field_142025_a); RenderSystem.clear(256, Minecraft.field_142025_a);

View File

@ -172,11 +172,17 @@ public class ForgeHooksClient
return MinecraftForge.EVENT_BUS.post(new DrawHighlightEvent(context, info, target, partialTicks, matrix, buffers)); return MinecraftForge.EVENT_BUS.post(new DrawHighlightEvent(context, info, target, partialTicks, matrix, buffers));
} }
@Deprecated // TODO: Remove in 1.16
public static void dispatchRenderLast(WorldRenderer context, MatrixStack mat, float partialTicks) public static void dispatchRenderLast(WorldRenderer context, MatrixStack mat, float partialTicks)
{ {
MinecraftForge.EVENT_BUS.post(new RenderWorldLastEvent(context, mat, partialTicks)); MinecraftForge.EVENT_BUS.post(new RenderWorldLastEvent(context, mat, partialTicks));
} }
public static void dispatchRenderLast(WorldRenderer context, MatrixStack mat, float partialTicks, Matrix4f projectionMatrix, long finishTimeNano)
{
MinecraftForge.EVENT_BUS.post(new RenderWorldLastEvent(context, mat, partialTicks, projectionMatrix, finishTimeNano));
}
public static boolean renderSpecificFirstPersonHand(Hand hand, MatrixStack mat, IRenderTypeBuffer buffers, int light, float partialTicks, float interpPitch, float swingProgress, float equipProgress, ItemStack stack) public static boolean renderSpecificFirstPersonHand(Hand hand, MatrixStack mat, IRenderTypeBuffer buffers, int light, float partialTicks, float interpPitch, float swingProgress, float equipProgress, ItemStack stack)
{ {
return MinecraftForge.EVENT_BUS.post(new RenderHandEvent(hand, mat, buffers, light, partialTicks, interpPitch, swingProgress, equipProgress, stack)); return MinecraftForge.EVENT_BUS.post(new RenderHandEvent(hand, mat, buffers, light, partialTicks, interpPitch, swingProgress, equipProgress, stack));

View File

@ -21,6 +21,7 @@ package net.minecraftforge.client.event;
import com.mojang.blaze3d.matrix.MatrixStack; import com.mojang.blaze3d.matrix.MatrixStack;
import net.minecraft.client.renderer.Matrix4f;
import net.minecraft.client.renderer.WorldRenderer; import net.minecraft.client.renderer.WorldRenderer;
public class RenderWorldLastEvent extends net.minecraftforge.eventbus.api.Event public class RenderWorldLastEvent extends net.minecraftforge.eventbus.api.Event
@ -28,11 +29,26 @@ public class RenderWorldLastEvent extends net.minecraftforge.eventbus.api.Event
private final WorldRenderer context; private final WorldRenderer context;
private final MatrixStack mat; private final MatrixStack mat;
private final float partialTicks; private final float partialTicks;
private final Matrix4f projectionMatrix;
private final long finishTimeNano;
@Deprecated // TODO: Remove in 1.16
public RenderWorldLastEvent(WorldRenderer context, MatrixStack mat, float partialTicks) public RenderWorldLastEvent(WorldRenderer context, MatrixStack mat, float partialTicks)
{ {
this.context = context; this.context = context;
this.mat = mat; this.mat = mat;
this.partialTicks = partialTicks; this.partialTicks = partialTicks;
this.projectionMatrix = null;
this.finishTimeNano = 0;
}
public RenderWorldLastEvent(WorldRenderer context, MatrixStack mat, float partialTicks, Matrix4f projectionMatrix, long finishTimeNano)
{
this.context = context;
this.mat = mat;
this.partialTicks = partialTicks;
this.projectionMatrix = projectionMatrix;
this.finishTimeNano = finishTimeNano;
} }
public WorldRenderer getContext() public WorldRenderer getContext()
@ -49,4 +65,14 @@ public class RenderWorldLastEvent extends net.minecraftforge.eventbus.api.Event
{ {
return partialTicks; return partialTicks;
} }
public Matrix4f getProjectionMatrix()
{
return projectionMatrix;
}
public long getFinishTimeNano()
{
return finishTimeNano;
}
} }