From cf519c02be2c7067bb0f52fd62164a503b3a884a Mon Sep 17 00:00:00 2001 From: TomTheFurry Date: Tue, 15 Mar 2022 21:17:07 +1030 Subject: [PATCH] Pushed the stuff leetom did on my macbook --- .../java/com/seibel/lod/core/render/LodRenderer.java | 11 +++++++++-- .../minecraft/IMinecraftRenderWrapper.java | 2 ++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/seibel/lod/core/render/LodRenderer.java b/src/main/java/com/seibel/lod/core/render/LodRenderer.java index b125ec8bc..10540bacc 100644 --- a/src/main/java/com/seibel/lod/core/render/LodRenderer.java +++ b/src/main/java/com/seibel/lod/core/render/LodRenderer.java @@ -143,9 +143,11 @@ public class LodRenderer int currentFrameBuffer = GL32.glGetInteger(GL32.GL_FRAMEBUFFER_BINDING); boolean currentBlend = GL32.glGetBoolean(GL32.GL_BLEND); int currentDepthFunc = GL32.glGetInteger(GL32.GL_DEPTH_FUNC); - tickLogger.info(str + ": [Prog:{}, VAO:{}, VBO:{}, Text:{}, FBO:{}, blend:{}, dpFunc:{}]", + int[] currentView = new int[4]; + GL32.glGetIntegerv(GL32.GL_VIEWPORT, currentView); + tickLogger.info(str + ": [Prog:{}, VAO:{}, VBO:{}, Text:{}, FBO:{}, blend:{}, dpFunc:{}, view:{}]", currentProgram, currentVAO, currentVBO, currentActiveText, currentFrameBuffer, - currentBlend, currentDepthFunc); + currentBlend, currentDepthFunc, currentView); } @@ -188,6 +190,8 @@ public class LodRenderer int currentFrameBuffer = GL32.glGetInteger(GL32.GL_FRAMEBUFFER_BINDING); boolean currentBlend = GL32.glGetBoolean(GL32.GL_BLEND); int currentDepthFunc = GL32.glGetInteger(GL32.GL_DEPTH_FUNC); + int[] currentView = new int[4]; + GL32.glGetIntegerv(GL32.GL_VIEWPORT, currentView); dumpGLState("PRE_LOD-DRAW"); drawSaveGLState.end("drawSaveGLState"); @@ -253,6 +257,7 @@ public class LodRenderer LagSpikeCatcher drawGLSetup = new LagSpikeCatcher(); LagSpikeCatcher drawBindBuff = new LagSpikeCatcher(); GL32.glBindFramebuffer(GL32.GL_FRAMEBUFFER, MC_RENDER.getTargetFrameBuffer()); + GL32.glViewport(0,0, MC_RENDER.getTargetFrameBufferViewportWidth(), MC_RENDER.getTargetFrameBufferViewportHeight()); GL32.glBindBuffer(GL32.GL_ARRAY_BUFFER, 0); drawBindBuff.end("drawBindBuff"); // set the required open GL settings @@ -365,6 +370,7 @@ public class LodRenderer oy += dy; } } + dumpGLState("Post Lod Draw Before Cleanup"); //if (drawCall==0) tickLogger.info("DrawCall Count: {}", drawCount); @@ -391,6 +397,7 @@ public class LodRenderer // when trying to render its own terrain // And may causes mod compat issue GL32.glBindFramebuffer(GL32.GL_FRAMEBUFFER, currentFrameBuffer); + GL32.glViewport(currentView[0], currentView[1],currentView[2],currentView[3]); GL32.glUseProgram(currentProgram); GL32.glBindBuffer(GL32.GL_ARRAY_BUFFER, currentVBO); GL32.glDepthFunc(currentDepthFunc); diff --git a/src/main/java/com/seibel/lod/core/wrapperInterfaces/minecraft/IMinecraftRenderWrapper.java b/src/main/java/com/seibel/lod/core/wrapperInterfaces/minecraft/IMinecraftRenderWrapper.java index 05078c0ac..7d9fd18ee 100644 --- a/src/main/java/com/seibel/lod/core/wrapperInterfaces/minecraft/IMinecraftRenderWrapper.java +++ b/src/main/java/com/seibel/lod/core/wrapperInterfaces/minecraft/IMinecraftRenderWrapper.java @@ -73,6 +73,8 @@ public interface IMinecraftRenderWrapper extends IBindable int getScreenHeight(); int getTargetFrameBuffer(); + int getTargetFrameBufferViewportWidth(); + int getTargetFrameBufferViewportHeight(); /** * This method returns the ChunkPos of all chunks that Minecraft