From dfee36f4163f6221becd28cfad7897fe5f1892c1 Mon Sep 17 00:00:00 2001 From: James Seibel Date: Tue, 10 Mar 2026 17:20:22 -0500 Subject: [PATCH] Make render interfaces consistent --- .../render/blaze/BlazeDhMetaRenderer.java | 2 +- .../postProcessing/BlazeDhFogRenderer.java | 9 ++-- .../postProcessing/BlazeDhSsaoRenderer.java | 7 +-- .../BlazeVanillaFadeRenderer.java | 13 ++--- .../test/BlazeDhTestTriangleRenderer.java | 4 +- .../render/nativeGl/OpenGlDhMetaRenderer.java | 2 +- .../postProcessing/apply/DhApplyShader.java | 3 -- .../fade/DhFarFadeApplyShader.java | 3 +- .../fade/DhFarFadeRenderer.java | 4 +- .../postProcessing/fade/DhFarFadeShader.java | 3 +- .../fade/VanillaFadeRenderer.java | 14 +++--- .../fade/VanillaFadeShader.java | 6 ++- .../postProcessing/fog/DhFogRenderer.java | 9 ++-- .../postProcessing/fog/FogApplyShader.java | 3 +- .../postProcessing/fog/FogShader.java | 19 ++++++-- .../postProcessing/ssao/DhSSAORenderer.java | 10 ++-- .../postProcessing/ssao/SSAOApplyShader.java | 3 +- .../postProcessing/ssao/SSAOShader.java | 3 +- .../nativeGl/test/GlTestTriangleRenderer.java | 6 ++- .../nativeGl/util/AbstractShaderRenderer.java | 47 ++++++++++++++++--- coreSubProjects | 2 +- 21 files changed, 116 insertions(+), 56 deletions(-) diff --git a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/BlazeDhMetaRenderer.java b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/BlazeDhMetaRenderer.java index 4c3f1ab86..71bf83451 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/BlazeDhMetaRenderer.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/BlazeDhMetaRenderer.java @@ -56,7 +56,7 @@ public class BlazeDhMetaRenderer implements IDhMetaRenderer public void runRenderPassCleanup(RenderParams renderParams) {} @Override - public void applyToMcTexture() + public void applyToMcTexture(RenderParams renderParams) { GpuTexture mcColorTexture = Minecraft.getInstance().getMainRenderTarget().getColorTexture(); this.applyRenderer.render(this.dhColorTextureWrapper.texture, this.dhDepthTextureWrapper.texture, mcColorTexture); diff --git a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/postProcessing/BlazeDhFogRenderer.java b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/postProcessing/BlazeDhFogRenderer.java index 850294197..deafa053d 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/postProcessing/BlazeDhFogRenderer.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/postProcessing/BlazeDhFogRenderer.java @@ -49,6 +49,7 @@ import com.seibel.distanthorizons.core.config.Config; import com.seibel.distanthorizons.core.dependencyInjection.SingletonInjector; import com.seibel.distanthorizons.core.logging.DhLogger; import com.seibel.distanthorizons.core.logging.DhLoggerBuilder; +import com.seibel.distanthorizons.core.render.RenderParams; import com.seibel.distanthorizons.core.util.LodUtil; import com.seibel.distanthorizons.core.util.math.Mat4f; import com.seibel.distanthorizons.core.wrapperInterfaces.minecraft.IMinecraftClientWrapper; @@ -150,7 +151,7 @@ public class BlazeDhFogRenderer implements IDhFogRenderer //region @Override - public void render(DhApiMat4f modelViewProjectionMatrix, float partialTicks) + public void render(RenderParams renderParams) { this.tryInit(); @@ -213,16 +214,16 @@ public class BlazeDhFogRenderer implements IDhFogRenderer int lodDrawDistance = Config.Client.Advanced.Graphics.Quality.lodChunkRenderDistanceRadius.get() * LodUtil.CHUNK_WIDTH; - Mat4f inverseMvmProjMatrix = new Mat4f(modelViewProjectionMatrix); + Mat4f inverseMvmProjMatrix = new Mat4f(renderParams.dhMvmProjMatrix); inverseMvmProjMatrix.invert(); - if (modelViewProjectionMatrix == null) + if (renderParams.dhMvmProjMatrix == null) { return; } - Color fogColor = this.getFogColor(partialTicks); + Color fogColor = this.getFogColor(renderParams.partialTicks); // fog config float farFogStart = Config.Client.Advanced.Graphics.Fog.farFogStart.get(); diff --git a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/postProcessing/BlazeDhSsaoRenderer.java b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/postProcessing/BlazeDhSsaoRenderer.java index 1cc172be7..e14aa588e 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/postProcessing/BlazeDhSsaoRenderer.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/postProcessing/BlazeDhSsaoRenderer.java @@ -45,6 +45,7 @@ import com.seibel.distanthorizons.common.render.blaze.helpers.UniformHandler; import com.seibel.distanthorizons.core.dependencyInjection.SingletonInjector; import com.seibel.distanthorizons.core.logging.DhLogger; import com.seibel.distanthorizons.core.logging.DhLoggerBuilder; +import com.seibel.distanthorizons.core.render.RenderParams; import com.seibel.distanthorizons.core.util.RenderUtil; import com.seibel.distanthorizons.core.util.math.Mat4f; import com.seibel.distanthorizons.core.wrapperInterfaces.minecraft.IMinecraftRenderWrapper; @@ -141,7 +142,7 @@ public class BlazeDhSsaoRenderer implements IDhSsaoRenderer //region @Override - public void render(DhApiMat4f dhProjectionMatrix) + public void render(RenderParams renderParams) { this.tryInit(); @@ -175,8 +176,8 @@ public class BlazeDhSsaoRenderer implements IDhSsaoRenderer // create data // - Mat4f projMatrix = new Mat4f(dhProjectionMatrix); - Mat4f invertedProjMatrix = new Mat4f(dhProjectionMatrix); + Mat4f projMatrix = new Mat4f(renderParams.dhProjectionMatrix); + Mat4f invertedProjMatrix = new Mat4f(renderParams.dhProjectionMatrix); invertedProjMatrix.invert(); diff --git a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/postProcessing/BlazeVanillaFadeRenderer.java b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/postProcessing/BlazeVanillaFadeRenderer.java index e064535b9..78533d213 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/postProcessing/BlazeVanillaFadeRenderer.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/postProcessing/BlazeVanillaFadeRenderer.java @@ -43,6 +43,7 @@ import com.seibel.distanthorizons.core.config.Config; import com.seibel.distanthorizons.core.dependencyInjection.SingletonInjector; import com.seibel.distanthorizons.core.logging.DhLogger; import com.seibel.distanthorizons.core.logging.DhLoggerBuilder; +import com.seibel.distanthorizons.core.render.RenderParams; import com.seibel.distanthorizons.core.util.RenderUtil; import com.seibel.distanthorizons.core.util.math.Mat4f; import com.seibel.distanthorizons.core.wrapperInterfaces.minecraft.IMinecraftRenderWrapper; @@ -141,7 +142,7 @@ public class BlazeVanillaFadeRenderer implements IDhVanillaFadeRenderer //region @Override - public void render(Mat4f mcModelViewMatrix, Mat4f mcProjectionMatrix, IClientLevelWrapper level) + public void render(RenderParams renderParams) { this.tryInit(); @@ -183,14 +184,14 @@ public class BlazeVanillaFadeRenderer implements IDhVanillaFadeRenderer float fadeEndDistance = dhNearClipDistance * 1.9f; - Mat4f inverseMcModelViewProjectionMatrix = new Mat4f(mcProjectionMatrix); - inverseMcModelViewProjectionMatrix.multiply(mcModelViewMatrix); + Mat4f inverseMcModelViewProjectionMatrix = new Mat4f(renderParams.mcProjectionMatrix); + inverseMcModelViewProjectionMatrix.multiply(renderParams.mcModelViewMatrix); inverseMcModelViewProjectionMatrix.invert(); Mat4f inverseMcMvmProjMatrix = inverseMcModelViewProjectionMatrix; - Mat4f dhProjectionMatrix = RenderUtil.createLodProjectionMatrix(mcProjectionMatrix); - Mat4f dhModelViewMatrix = RenderUtil.createLodModelViewMatrix(mcModelViewMatrix); + Mat4f dhProjectionMatrix = RenderUtil.createLodProjectionMatrix(renderParams.mcProjectionMatrix); + Mat4f dhModelViewMatrix = RenderUtil.createLodModelViewMatrix(renderParams.mcModelViewMatrix); Mat4f inverseDhModelViewProjectionMatrix = new Mat4f(dhProjectionMatrix); inverseDhModelViewProjectionMatrix.multiply(dhModelViewMatrix); @@ -207,7 +208,7 @@ public class BlazeVanillaFadeRenderer implements IDhVanillaFadeRenderer .putInt(Config.Client.Advanced.Debugging.lodOnlyMode.get() ? 1 : 0) // uOnlyRenderLods .putFloat(fadeStartDistance) // uStartFadeBlockDistance .putFloat(fadeEndDistance) // uEndFadeBlockDistance - .putFloat(level.getMaxHeight()) // uMaxLevelHeight + .putFloat(renderParams.clientLevelWrapper.getMaxHeight()) // uMaxLevelHeight .putMat4f(inverseDhMvmProjMatrix.createJomlMatrix()) // uDhInvMvmProj .putMat4f(inverseMcMvmProjMatrix.createJomlMatrix()) // uMcInvMvmProj .get() diff --git a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/test/BlazeDhTestTriangleRenderer.java b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/test/BlazeDhTestTriangleRenderer.java index 697b7288e..d832cf964 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/test/BlazeDhTestTriangleRenderer.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/render/blaze/test/BlazeDhTestTriangleRenderer.java @@ -33,6 +33,7 @@ import com.mojang.blaze3d.vertex.VertexFormat; import com.seibel.distanthorizons.common.render.blaze.util.DhBlazeVertexFormatUtil; import com.seibel.distanthorizons.core.logging.DhLogger; import com.seibel.distanthorizons.core.logging.DhLoggerBuilder; +import com.seibel.distanthorizons.core.render.RenderParams; import com.seibel.distanthorizons.core.wrapperInterfaces.render.renderPass.IDhTestTriangleRenderer; import net.minecraft.client.Minecraft; import net.minecraft.resources.Identifier; @@ -159,7 +160,8 @@ public class BlazeDhTestTriangleRenderer implements IDhTestTriangleRenderer //========// //region - public void render() + @Override + public void render(RenderParams renderParams) { this.tryInit(); diff --git a/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/OpenGlDhMetaRenderer.java b/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/OpenGlDhMetaRenderer.java index 579f73b44..cf6c25a55 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/OpenGlDhMetaRenderer.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/OpenGlDhMetaRenderer.java @@ -364,7 +364,7 @@ public class OpenGlDhMetaRenderer implements IDhMetaRenderer } @Override - public void applyToMcTexture() { DhApplyShader.INSTANCE.render(0.0f); } + public void applyToMcTexture(RenderParams renderParams) { DhApplyShader.INSTANCE.render(renderParams); } //endregion diff --git a/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/postProcessing/apply/DhApplyShader.java b/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/postProcessing/apply/DhApplyShader.java index 84b8b3b8d..67a14ff8a 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/postProcessing/apply/DhApplyShader.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/postProcessing/apply/DhApplyShader.java @@ -69,9 +69,6 @@ public class DhApplyShader extends AbstractShaderRenderer } - @Override - protected void onApplyUniforms(float partialTicks) { } - //endregion diff --git a/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/postProcessing/fade/DhFarFadeApplyShader.java b/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/postProcessing/fade/DhFarFadeApplyShader.java index d93e33dd0..9dfb15879 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/postProcessing/fade/DhFarFadeApplyShader.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/postProcessing/fade/DhFarFadeApplyShader.java @@ -23,6 +23,7 @@ import com.seibel.distanthorizons.common.render.nativeGl.glObject.shader.ShaderP import com.seibel.distanthorizons.common.render.nativeGl.postProcessing.ScreenQuad; import com.seibel.distanthorizons.common.wrappers.minecraft.MinecraftGLWrapper; import com.seibel.distanthorizons.common.render.nativeGl.util.AbstractShaderRenderer; +import com.seibel.distanthorizons.core.render.RenderParams; import org.lwjgl.opengl.GL32; /** @@ -75,7 +76,7 @@ public class DhFarFadeApplyShader extends AbstractShaderRenderer //=============// @Override - protected void onApplyUniforms(float partialTicks) + protected void onApplyUniforms(RenderParams renderParams) { GLMC.glActiveTexture(GL32.GL_TEXTURE0); GLMC.glBindTexture(this.fadeTexture); diff --git a/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/postProcessing/fade/DhFarFadeRenderer.java b/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/postProcessing/fade/DhFarFadeRenderer.java index e09fa92b3..cb3800aa8 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/postProcessing/fade/DhFarFadeRenderer.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/postProcessing/fade/DhFarFadeRenderer.java @@ -140,14 +140,14 @@ public class DhFarFadeRenderer implements IDhFarFadeRenderer DhFarFadeShader.INSTANCE.frameBuffer = this.fadeFramebuffer; DhFarFadeShader.INSTANCE.setProjectionMatrix(renderParams.mcModelViewMatrix, renderParams.mcProjectionMatrix); - DhFarFadeShader.INSTANCE.render(0.0f); + DhFarFadeShader.INSTANCE.render(renderParams); //profiler.popPush("Fade Apply"); DhFarFadeApplyShader.INSTANCE.fadeTexture = this.fadeTexture; DhFarFadeApplyShader.INSTANCE.readFramebuffer = DhFarFadeShader.INSTANCE.frameBuffer; DhFarFadeApplyShader.INSTANCE.drawFramebuffer = OpenGlDhMetaRenderer.INSTANCE.getActiveFramebufferId(); - DhFarFadeApplyShader.INSTANCE.render(0.0f); + DhFarFadeApplyShader.INSTANCE.render(renderParams); } catch (Exception e) { diff --git a/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/postProcessing/fade/DhFarFadeShader.java b/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/postProcessing/fade/DhFarFadeShader.java index 24944b228..e3d854937 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/postProcessing/fade/DhFarFadeShader.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/postProcessing/fade/DhFarFadeShader.java @@ -27,6 +27,7 @@ import com.seibel.distanthorizons.common.render.nativeGl.postProcessing.ScreenQu import com.seibel.distanthorizons.common.wrappers.minecraft.MinecraftGLWrapper; import com.seibel.distanthorizons.core.dependencyInjection.SingletonInjector; import com.seibel.distanthorizons.common.render.nativeGl.util.AbstractShaderRenderer; +import com.seibel.distanthorizons.core.render.RenderParams; import com.seibel.distanthorizons.core.util.RenderUtil; import com.seibel.distanthorizons.core.util.math.Mat4f; import com.seibel.distanthorizons.core.wrapperInterfaces.minecraft.IMinecraftRenderWrapper; @@ -96,7 +97,7 @@ public class DhFarFadeShader extends AbstractShaderRenderer //=============// @Override - protected void onApplyUniforms(float partialTicks) + protected void onApplyUniforms(RenderParams renderParams) { this.shader.setUniform(this.uDhInvMvmProj, this.inverseDhMvmProjMatrix); diff --git a/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/postProcessing/fade/VanillaFadeRenderer.java b/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/postProcessing/fade/VanillaFadeRenderer.java index f26b0b7cb..057a0b599 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/postProcessing/fade/VanillaFadeRenderer.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/postProcessing/fade/VanillaFadeRenderer.java @@ -19,18 +19,16 @@ package com.seibel.distanthorizons.common.render.nativeGl.postProcessing.fade; -import com.seibel.distanthorizons.common.render.nativeGl.DhTerrainShaderProgram; import com.seibel.distanthorizons.common.render.nativeGl.OpenGlDhMetaRenderer; import com.seibel.distanthorizons.common.render.nativeGl.glObject.GLState; import com.seibel.distanthorizons.common.wrappers.minecraft.MinecraftGLWrapper; import com.seibel.distanthorizons.core.dependencyInjection.SingletonInjector; import com.seibel.distanthorizons.core.logging.DhLoggerBuilder; -import com.seibel.distanthorizons.core.util.math.Mat4f; +import com.seibel.distanthorizons.core.render.RenderParams; import com.seibel.distanthorizons.core.wrapperInterfaces.minecraft.IMinecraftClientWrapper; import com.seibel.distanthorizons.core.wrapperInterfaces.minecraft.IMinecraftRenderWrapper; import com.seibel.distanthorizons.core.wrapperInterfaces.minecraft.IProfilerWrapper; import com.seibel.distanthorizons.core.wrapperInterfaces.render.renderPass.IDhVanillaFadeRenderer; -import com.seibel.distanthorizons.core.wrapperInterfaces.world.IClientLevelWrapper; import com.seibel.distanthorizons.core.logging.DhLogger; import org.lwjgl.opengl.GL32; @@ -124,7 +122,7 @@ public class VanillaFadeRenderer implements IDhVanillaFadeRenderer //region @Override - public void render(Mat4f mcModelViewMatrix, Mat4f mcProjectionMatrix, IClientLevelWrapper level) + public void render(RenderParams renderParams) { int depthTextureId = OpenGlDhMetaRenderer.INSTANCE.getActiveDepthTextureId(); if (depthTextureId == -1) @@ -159,9 +157,9 @@ public class VanillaFadeRenderer implements IDhVanillaFadeRenderer VanillaFadeShader.INSTANCE.frameBuffer = this.fadeFramebuffer; - VanillaFadeShader.INSTANCE.setProjectionMatrix(mcModelViewMatrix, mcProjectionMatrix); - VanillaFadeShader.INSTANCE.setLevelMaxHeight(level.getMaxHeight()); - VanillaFadeShader.INSTANCE.render(0); + VanillaFadeShader.INSTANCE.setProjectionMatrix(renderParams.mcModelViewMatrix, renderParams.mcProjectionMatrix); + VanillaFadeShader.INSTANCE.setLevelMaxHeight(renderParams.clientLevelWrapper.getMaxHeight()); + VanillaFadeShader.INSTANCE.render(renderParams); // Applying the fade texture is only needed if MC is drawing to their own frame buffer, // otherwise we can directly render to their texture @@ -172,7 +170,7 @@ public class VanillaFadeRenderer implements IDhVanillaFadeRenderer DhFarFadeApplyShader.INSTANCE.fadeTexture = this.fadeTexture; DhFarFadeApplyShader.INSTANCE.readFramebuffer = DhFarFadeShader.INSTANCE.frameBuffer; DhFarFadeApplyShader.INSTANCE.drawFramebuffer = MC_RENDER.getTargetFramebuffer(); - DhFarFadeApplyShader.INSTANCE.render(0); + DhFarFadeApplyShader.INSTANCE.render(renderParams); } profiler.pop(); diff --git a/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/postProcessing/fade/VanillaFadeShader.java b/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/postProcessing/fade/VanillaFadeShader.java index 354affe93..bd4ea32db 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/postProcessing/fade/VanillaFadeShader.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/postProcessing/fade/VanillaFadeShader.java @@ -19,6 +19,7 @@ package com.seibel.distanthorizons.common.render.nativeGl.postProcessing.fade; +import com.seibel.distanthorizons.api.objects.math.DhApiMat4f; import com.seibel.distanthorizons.common.render.nativeGl.DhTerrainShaderProgram; import com.seibel.distanthorizons.common.render.nativeGl.OpenGlDhMetaRenderer; import com.seibel.distanthorizons.common.render.nativeGl.glObject.shader.ShaderProgram; @@ -27,6 +28,7 @@ import com.seibel.distanthorizons.common.wrappers.minecraft.MinecraftGLWrapper; import com.seibel.distanthorizons.core.config.Config; import com.seibel.distanthorizons.core.dependencyInjection.SingletonInjector; import com.seibel.distanthorizons.common.render.nativeGl.util.AbstractShaderRenderer; +import com.seibel.distanthorizons.core.render.RenderParams; import com.seibel.distanthorizons.core.util.RenderUtil; import com.seibel.distanthorizons.core.util.math.Mat4f; import com.seibel.distanthorizons.core.wrapperInterfaces.minecraft.IMinecraftRenderWrapper; @@ -111,7 +113,7 @@ public class VanillaFadeShader extends AbstractShaderRenderer //region @Override - protected void onApplyUniforms(float partialTicks) + protected void onApplyUniforms(RenderParams renderParams) { this.shader.setUniform(this.uMcInvMvmProj, this.inverseMcMvmProjMatrix); this.shader.setUniform(this.uDhInvMvmProj, this.inverseDhMvmProjMatrix); @@ -135,7 +137,7 @@ public class VanillaFadeShader extends AbstractShaderRenderer this.shader.setUniform(this.uOnlyRenderLods, Config.Client.Advanced.Debugging.lodOnlyMode.get()); } - public void setProjectionMatrix(Mat4f mcModelViewMatrix, Mat4f mcProjectionMatrix) + public void setProjectionMatrix(DhApiMat4f mcModelViewMatrix, DhApiMat4f mcProjectionMatrix) { Mat4f inverseMcModelViewProjectionMatrix = new Mat4f(mcProjectionMatrix); inverseMcModelViewProjectionMatrix.multiply(mcModelViewMatrix); diff --git a/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/postProcessing/fog/DhFogRenderer.java b/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/postProcessing/fog/DhFogRenderer.java index 24ad5d80c..03dac4501 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/postProcessing/fog/DhFogRenderer.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/postProcessing/fog/DhFogRenderer.java @@ -23,6 +23,7 @@ import com.seibel.distanthorizons.api.objects.math.DhApiMat4f; import com.seibel.distanthorizons.common.render.nativeGl.glObject.GLState; import com.seibel.distanthorizons.common.wrappers.minecraft.MinecraftGLWrapper; import com.seibel.distanthorizons.core.dependencyInjection.SingletonInjector; +import com.seibel.distanthorizons.core.render.RenderParams; import com.seibel.distanthorizons.core.wrapperInterfaces.minecraft.IMinecraftRenderWrapper; import com.seibel.distanthorizons.core.wrapperInterfaces.render.renderPass.IDhFogRenderer; import org.lwjgl.opengl.GL32; @@ -108,7 +109,7 @@ public class DhFogRenderer implements IDhFogRenderer //region @Override - public void render(DhApiMat4f modelViewProjectionMatrix, float partialTicks) + public void render(RenderParams renderParams) { // GLState needed in MC 1.16.5 probably due to MC not manually setting each GL state they need before the next rendering step try (GLState state = new GLState()) @@ -126,11 +127,11 @@ public class DhFogRenderer implements IDhFogRenderer } FogShader.INSTANCE.frameBuffer = this.fogFramebuffer; - FogShader.INSTANCE.setProjectionMatrix(modelViewProjectionMatrix); - FogShader.INSTANCE.render(partialTicks); + FogShader.INSTANCE.setProjectionMatrix(renderParams.dhMvmProjMatrix); + FogShader.INSTANCE.render(renderParams); FogApplyShader.INSTANCE.fogTexture = this.fogTexture; - FogApplyShader.INSTANCE.render(partialTicks); + FogApplyShader.INSTANCE.render(renderParams); } } diff --git a/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/postProcessing/fog/FogApplyShader.java b/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/postProcessing/fog/FogApplyShader.java index 13f8f7177..e1f6c8308 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/postProcessing/fog/FogApplyShader.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/postProcessing/fog/FogApplyShader.java @@ -25,6 +25,7 @@ import com.seibel.distanthorizons.common.render.nativeGl.glObject.shader.ShaderP import com.seibel.distanthorizons.common.render.nativeGl.postProcessing.ScreenQuad; import com.seibel.distanthorizons.common.wrappers.minecraft.MinecraftGLWrapper; import com.seibel.distanthorizons.common.render.nativeGl.util.AbstractShaderRenderer; +import com.seibel.distanthorizons.core.render.RenderParams; import org.lwjgl.opengl.GL32; /** @@ -75,7 +76,7 @@ public class FogApplyShader extends AbstractShaderRenderer //=============// @Override - protected void onApplyUniforms(float partialTicks) + protected void onApplyUniforms(RenderParams renderParams) { GLMC.glActiveTexture(GL32.GL_TEXTURE0); GLMC.glBindTexture(this.fogTexture); diff --git a/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/postProcessing/fog/FogShader.java b/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/postProcessing/fog/FogShader.java index f81a921b6..7bc413807 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/postProcessing/fog/FogShader.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/postProcessing/fog/FogShader.java @@ -31,6 +31,7 @@ import com.seibel.distanthorizons.common.wrappers.minecraft.MinecraftGLWrapper; import com.seibel.distanthorizons.core.config.Config; import com.seibel.distanthorizons.core.dependencyInjection.SingletonInjector; import com.seibel.distanthorizons.common.render.nativeGl.util.AbstractShaderRenderer; +import com.seibel.distanthorizons.core.render.RenderParams; import com.seibel.distanthorizons.core.util.LodUtil; import com.seibel.distanthorizons.core.wrapperInterfaces.minecraft.IMinecraftClientWrapper; import com.seibel.distanthorizons.core.util.math.Mat4f; @@ -50,7 +51,6 @@ public class FogShader extends AbstractShaderRenderer public int frameBuffer; - private Mat4f inverseMvmProjMatrix; @@ -58,6 +58,7 @@ public class FogShader extends AbstractShaderRenderer //==========// // Uniforms // //==========// + //region public int uDepthMap; /** Inverted Model View Projection matrix */ @@ -94,11 +95,14 @@ public class FogShader extends AbstractShaderRenderer public int uHeightFogMixingMode; public int uCameraBlockYPos; + //endregion + //=============// // constructor // //=============// + //region public FogShader() { } @@ -150,14 +154,17 @@ public class FogShader extends AbstractShaderRenderer } + //endregion + //=============// // render prep // //=============// + //region @Override - protected void onApplyUniforms(float partialTicks) + protected void onApplyUniforms(RenderParams renderParams) { int lodDrawDistance = Config.Client.Advanced.Graphics.Quality.lodChunkRenderDistanceRadius.get() * LodUtil.CHUNK_WIDTH; @@ -170,7 +177,7 @@ public class FogShader extends AbstractShaderRenderer // Fog uniforms - this.shader.setUniform(this.uFogColor, this.getFogColor(partialTicks)); + this.shader.setUniform(this.uFogColor, this.getFogColor(renderParams.partialTicks)); this.shader.setUniform(this.uFogScale, 1.f / lodDrawDistance); this.shader.setUniform(this.uFogVerticalScale, 1.f / MC.getWrappedClientLevel().getMaxHeight()); // only used for debugging @@ -252,11 +259,14 @@ public class FogShader extends AbstractShaderRenderer this.inverseMvmProjMatrix.invert(); } + //endregion + //========// // render // //========// + //region @Override protected void onRender() @@ -286,4 +296,7 @@ public class FogShader extends AbstractShaderRenderer ScreenQuad.INSTANCE.render(); } + //endregion + + } diff --git a/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/postProcessing/ssao/DhSSAORenderer.java b/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/postProcessing/ssao/DhSSAORenderer.java index 5110cf894..d53f94ede 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/postProcessing/ssao/DhSSAORenderer.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/postProcessing/ssao/DhSSAORenderer.java @@ -23,6 +23,7 @@ import com.seibel.distanthorizons.api.objects.math.DhApiMat4f; import com.seibel.distanthorizons.common.render.nativeGl.glObject.GLState; import com.seibel.distanthorizons.common.wrappers.minecraft.MinecraftGLWrapper; import com.seibel.distanthorizons.core.dependencyInjection.SingletonInjector; +import com.seibel.distanthorizons.core.render.RenderParams; import com.seibel.distanthorizons.core.wrapperInterfaces.minecraft.IMinecraftRenderWrapper; import com.seibel.distanthorizons.core.wrapperInterfaces.render.renderPass.IDhSsaoRenderer; import org.lwjgl.opengl.GL32; @@ -108,7 +109,8 @@ public class DhSSAORenderer implements IDhSsaoRenderer //========// //region - public void render(DhApiMat4f dhProjectionMatrix) + @Override + public void render(RenderParams renderParams) { try(GLState state = new GLState()) { @@ -125,11 +127,11 @@ public class DhSSAORenderer implements IDhSsaoRenderer } SSAOShader.INSTANCE.frameBuffer = this.ssaoFramebuffer; - SSAOShader.INSTANCE.setProjectionMatrix(dhProjectionMatrix); - SSAOShader.INSTANCE.render(0.0f); + SSAOShader.INSTANCE.setProjectionMatrix(renderParams.dhProjectionMatrix); + SSAOShader.INSTANCE.render(renderParams); SSAOApplyShader.INSTANCE.ssaoTexture = this.ssaoTexture; - SSAOApplyShader.INSTANCE.render(0.0f); + SSAOApplyShader.INSTANCE.render(renderParams); } } diff --git a/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/postProcessing/ssao/SSAOApplyShader.java b/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/postProcessing/ssao/SSAOApplyShader.java index 9a23a5194..ac49b12ca 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/postProcessing/ssao/SSAOApplyShader.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/postProcessing/ssao/SSAOApplyShader.java @@ -25,6 +25,7 @@ import com.seibel.distanthorizons.common.render.nativeGl.glObject.shader.ShaderP import com.seibel.distanthorizons.common.render.nativeGl.postProcessing.ScreenQuad; import com.seibel.distanthorizons.common.wrappers.minecraft.MinecraftGLWrapper; import com.seibel.distanthorizons.common.render.nativeGl.util.AbstractShaderRenderer; +import com.seibel.distanthorizons.core.render.RenderParams; import com.seibel.distanthorizons.core.util.RenderUtil; import org.lwjgl.opengl.GL32; @@ -83,7 +84,7 @@ public class SSAOApplyShader extends AbstractShaderRenderer //=============// @Override - protected void onApplyUniforms(float partialTicks) + protected void onApplyUniforms(RenderParams renderParams) { GLMC.glActiveTexture(GL32.GL_TEXTURE0); GLMC.glBindTexture(OpenGlDhMetaRenderer.INSTANCE.getActiveDepthTextureId()); diff --git a/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/postProcessing/ssao/SSAOShader.java b/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/postProcessing/ssao/SSAOShader.java index c09e8da3c..68111f7b2 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/postProcessing/ssao/SSAOShader.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/postProcessing/ssao/SSAOShader.java @@ -26,6 +26,7 @@ import com.seibel.distanthorizons.common.render.nativeGl.glObject.shader.ShaderP import com.seibel.distanthorizons.common.render.nativeGl.postProcessing.ScreenQuad; import com.seibel.distanthorizons.common.wrappers.minecraft.MinecraftGLWrapper; import com.seibel.distanthorizons.common.render.nativeGl.util.AbstractShaderRenderer; +import com.seibel.distanthorizons.core.render.RenderParams; import com.seibel.distanthorizons.core.util.math.Mat4f; import org.lwjgl.opengl.GL32; @@ -102,7 +103,7 @@ public class SSAOShader extends AbstractShaderRenderer } @Override - protected void onApplyUniforms(float partialTicks) + protected void onApplyUniforms(RenderParams renderParams) { this.shader.setUniform(this.uProj, this.projection); diff --git a/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/test/GlTestTriangleRenderer.java b/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/test/GlTestTriangleRenderer.java index 6f9518dd5..dc7334285 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/test/GlTestTriangleRenderer.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/test/GlTestTriangleRenderer.java @@ -29,6 +29,7 @@ import com.seibel.distanthorizons.common.render.nativeGl.glObject.buffer.GLVerte import com.seibel.distanthorizons.common.render.nativeGl.glObject.shader.ShaderProgram; import com.seibel.distanthorizons.common.render.nativeGl.glObject.vertexAttribute.AbstractVertexAttribute; import com.seibel.distanthorizons.common.render.nativeGl.glObject.vertexAttribute.VertexPointer; +import com.seibel.distanthorizons.core.render.RenderParams; import com.seibel.distanthorizons.core.wrapperInterfaces.minecraft.IMinecraftRenderWrapper; import com.seibel.distanthorizons.core.wrapperInterfaces.render.renderPass.IDhTestTriangleRenderer; @@ -122,7 +123,8 @@ public class GlTestTriangleRenderer implements IDhTestTriangleRenderer //========// //region - public void render() + @Override + public void render(RenderParams renderParams) { this.init(); @@ -134,7 +136,7 @@ public class GlTestTriangleRenderer implements IDhTestTriangleRenderer GL32.glDrawArrays(GL32.GL_TRIANGLES, 0, 3); - DhApplyShader.INSTANCE.render(0.0f); + DhApplyShader.INSTANCE.render(renderParams); } //endregion diff --git a/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/util/AbstractShaderRenderer.java b/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/util/AbstractShaderRenderer.java index 92e4a1e68..9a48970d9 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/util/AbstractShaderRenderer.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/render/nativeGl/util/AbstractShaderRenderer.java @@ -21,6 +21,7 @@ package com.seibel.distanthorizons.common.render.nativeGl.util; import com.seibel.distanthorizons.common.render.nativeGl.glObject.shader.ShaderProgram; import com.seibel.distanthorizons.core.dependencyInjection.SingletonInjector; +import com.seibel.distanthorizons.core.render.RenderParams; import com.seibel.distanthorizons.core.wrapperInterfaces.minecraft.IMinecraftRenderWrapper; import org.lwjgl.opengl.GL32; @@ -30,10 +31,14 @@ public abstract class AbstractShaderRenderer protected ShaderProgram shader; - protected boolean init = false; + //=======// + // setup // + //=======// + //region + protected AbstractShaderRenderer() {} public void init() @@ -44,13 +49,36 @@ public abstract class AbstractShaderRenderer this.onInit(); } - public void render(float partialTicks) + //endregion + + + //==================// + // abstract methods // + //==================// + //region + + protected void onInit() {} + + protected void onApplyUniforms(RenderParams renderParams) {} + + protected void onRender() {} + + //endregion + + + + //===========// + // rendering // + //===========// + //region + + public void render(RenderParams renderParams) { this.init(); this.shader.bind(); - this.onApplyUniforms(partialTicks); + this.onApplyUniforms(renderParams); int width = MC_RENDER.getTargetFramebufferViewportWidth(); int height = MC_RENDER.getTargetFramebufferViewportHeight(); @@ -61,6 +89,14 @@ public abstract class AbstractShaderRenderer this.shader.unbind(); } + //endregion + + + //================// + // base overrides // + //================// + //region + public void free() { if (this.shader != null) @@ -69,9 +105,8 @@ public abstract class AbstractShaderRenderer } } - protected void onInit() {} + // endregion + - protected void onApplyUniforms(float partialTicks) {} - protected void onRender() {} } diff --git a/coreSubProjects b/coreSubProjects index b51ab3d9c..4e908b5b1 160000 --- a/coreSubProjects +++ b/coreSubProjects @@ -1 +1 @@ -Subproject commit b51ab3d9cd5bfeb2b81beb884a6b9b25935444ce +Subproject commit 4e908b5b156e338f18589d20574ddc654d1bea97