Added glPushMatrix/glPopMatrix-pair to LightningHandler.

LightningHandler.onRenderWorldLast() modifies the model/view matrix and should therefore save and restore it. Actually, it introduces round-off errors into the model/view matrix by translating to world coordinates and back (calls to GL11.glTranslated()) which are proportional to the world coordinates' values (distant coordinates like 29 million introduce quite significant errors). Not restoring the matrix therefore makes it hard for other mods to do rendering correctly at distant coordinates.
This commit is contained in:
Gwani committed 2015-02-07 13:28:43 +01:00
1 parent 4f7c05e3b6
commit f76bb5c85d
1 file changed
+3
@@ -74,6 +74,7 @@ public class LightningHandler {
interpPosY = entity.lastTickPosY + (entity.posY - entity.lastTickPosY) * frame;
interpPosZ = entity.lastTickPosZ + (entity.posZ - entity.lastTickPosZ) * frame;
GL11.glPushMatrix();
GL11.glTranslated(-interpPosX, -interpPosY, -interpPosZ);
Tessellator tessellator = Tessellator.instance;
@@ -102,6 +103,8 @@ public class LightningHandler {
GL11.glDepthMask(true);
GL11.glTranslated(interpPosX, interpPosY, interpPosZ);
GL11.glPopMatrix();
profiler.endSection();
profiler.endSection();