Skip to content
This repository was archived by the owner on Feb 19, 2019. It is now read-only.

Commit e85ca87

Browse files
committed
Fix orthogonal projection
1 parent c8f3292 commit e85ca87

File tree

1 file changed

+23
-2
lines changed

1 file changed

+23
-2
lines changed

src/main/java/clientapi/load/mixin/MixinEntityRenderer.java

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,17 +23,23 @@
2323
import clientapi.event.defaults.game.render.RenderWorldEvent;
2424
import net.minecraft.block.material.Material;
2525
import net.minecraft.block.state.IBlockState;
26+
import net.minecraft.client.Minecraft;
2627
import net.minecraft.client.gui.GuiIngame;
2728
import net.minecraft.client.renderer.EntityRenderer;
29+
import net.minecraft.client.renderer.GlStateManager;
30+
import org.spongepowered.asm.mixin.Final;
2831
import org.spongepowered.asm.mixin.Mixin;
32+
import org.spongepowered.asm.mixin.Shadow;
2933
import org.spongepowered.asm.mixin.injection.At;
3034
import org.spongepowered.asm.mixin.injection.Inject;
3135
import org.spongepowered.asm.mixin.injection.Redirect;
3236
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
3337

3438
import static net.minecraft.block.material.Material.AIR;
3539
import static net.minecraft.block.material.Material.WATER;
36-
import static org.spongepowered.asm.lib.Opcodes.GETFIELD;
40+
import static org.lwjgl.opengl.GL11.GL_MODELVIEW;
41+
import static org.lwjgl.opengl.GL11.GL_PROJECTION;
42+
import static org.spongepowered.asm.lib.Opcodes.GETSTATIC;
3743

3844
/**
3945
* @author Brady
@@ -42,17 +48,32 @@
4248
@Mixin(EntityRenderer.class)
4349
public class MixinEntityRenderer {
4450

51+
@Shadow @Final private Minecraft mc;
52+
4553
@Inject(
4654
method = "updateCameraAndRender",
4755
at = @At(
4856
value = "FIELD",
49-
opcode = GETFIELD,
57+
opcode = GETSTATIC,
5058
target = "net/minecraft/client/renderer/OpenGlHelper.shadersSupported:Z",
5159
shift = At.Shift.BEFORE
5260
)
5361
)
5462
private void updateCameraAndRender(float partialTicks, long nanoTime, CallbackInfo ci) {
63+
GlStateManager.pushMatrix();
64+
65+
// Setup orthogonal projection for display size
66+
GlStateManager.matrixMode(GL_PROJECTION);
67+
GlStateManager.loadIdentity();
68+
GlStateManager.ortho(0.0D, mc.displayWidth, mc.displayHeight, 0.0D, 1000.0D, 3000.0D);
69+
GlStateManager.matrixMode(GL_MODELVIEW);
70+
GlStateManager.loadIdentity();
71+
GlStateManager.translate(0.0F, 0.0F, -2000.0F);
72+
GlStateManager.viewport(0, 0, mc.displayWidth, mc.displayHeight);
73+
5574
ClientAPI.EVENT_BUS.post(new RenderScreenEvent(partialTicks));
75+
76+
GlStateManager.popMatrix();
5677
}
5778

5879
@Inject(

0 commit comments

Comments
 (0)