Make render interfaces consistent

This commit is contained in:
James Seibel
2026-03-10 17:20:22 -05:00
parent cf6945b44c
commit dfee36f416
21 changed files with 116 additions and 56 deletions
@@ -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);
@@ -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();
@@ -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();
@@ -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()
@@ -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();
@@ -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
@@ -69,9 +69,6 @@ public class DhApplyShader extends AbstractShaderRenderer
}
@Override
protected void onApplyUniforms(float partialTicks) { }
//endregion
@@ -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);
@@ -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)
{
@@ -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);
@@ -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();
@@ -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);
@@ -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);
}
}
@@ -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);
@@ -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
}
@@ -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);
}
}
@@ -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());
@@ -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);
@@ -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
@@ -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() {}
}