Move RenderState object into ClientApi
This commit is contained in:
@@ -91,44 +91,6 @@ public class FabricClientProxy implements AbstractModInitializer.IEventProxy
|
||||
|
||||
HashSet<Integer> previouslyPressKeyCodes = new HashSet<>();
|
||||
|
||||
public static NeoRenderState neoRenderState = new NeoRenderState();
|
||||
|
||||
|
||||
public static class NeoRenderState
|
||||
{
|
||||
public Mat4f mcModelViewMatrix = null;
|
||||
public Mat4f mcProjectionMatrix = null;
|
||||
public float frameTime = -1;
|
||||
|
||||
|
||||
public void canRenderOrThrow() throws IllegalStateException
|
||||
{
|
||||
String errorReasons = "";
|
||||
|
||||
if (this.mcModelViewMatrix == null)
|
||||
{
|
||||
errorReasons += "no MVM Matrix, ";
|
||||
}
|
||||
|
||||
if (this.mcProjectionMatrix == null)
|
||||
{
|
||||
errorReasons += "no Projection Matrix, ";
|
||||
}
|
||||
|
||||
if (this.frameTime == -1)
|
||||
{
|
||||
errorReasons += "no Frame Time, ";
|
||||
}
|
||||
|
||||
|
||||
if (!errorReasons.isEmpty())
|
||||
{
|
||||
throw new IllegalStateException(errorReasons);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
|
||||
+18
-18
@@ -115,29 +115,29 @@ public class MixinLevelRenderer
|
||||
// get the matrices from the OpenGL fixed pipeline
|
||||
float[] mcProjMatrixRaw = new float[16];
|
||||
GL32.glGetFloatv(GL32.GL_PROJECTION_MATRIX, mcProjMatrixRaw);
|
||||
FabricClientProxy.neoRenderState.mcProjectionMatrix = new Mat4f(mcProjMatrixRaw);
|
||||
FabricClientProxy.neoRenderState.mcProjectionMatrix.transpose();
|
||||
ClientApi.RENDER_STATE.mcProjectionMatrix = new Mat4f(mcProjMatrixRaw);
|
||||
ClientApi.RENDER_STATE.mcProjectionMatrix.transpose();
|
||||
|
||||
FabricClientProxy.neoRenderState.mcModelViewMatrix = McObjectConverter.Convert(matrixStackIn.last().pose());
|
||||
ClientApi.RENDER_STATE.mcModelViewMatrix = McObjectConverter.Convert(matrixStackIn.last().pose());
|
||||
|
||||
#elif MC_VER <= MC_1_20_4
|
||||
// get the matrices directly from MC
|
||||
FabricClientProxy.neoRenderState.mcModelViewMatrix = McObjectConverter.Convert(modelViewMatrixStack.last().pose());
|
||||
FabricClientProxy.neoRenderState.mcProjectionMatrix = McObjectConverter.Convert(projectionMatrix);
|
||||
ClientApi.RENDER_STATE.mcModelViewMatrix = McObjectConverter.Convert(modelViewMatrixStack.last().pose());
|
||||
ClientApi.RENDER_STATE.mcProjectionMatrix = McObjectConverter.Convert(projectionMatrix);
|
||||
#else
|
||||
// MC combined the model view and projection matricies
|
||||
FabricClientProxy.neoRenderState.mcModelViewMatrix = McObjectConverter.Convert(projectionMatrix);
|
||||
FabricClientProxy.neoRenderState.mcProjectionMatrix = new Mat4f();
|
||||
FabricClientProxy.neoRenderState.mcProjectionMatrix.setIdentity();
|
||||
ClientApi.RENDER_STATE.mcModelViewMatrix = McObjectConverter.Convert(projectionMatrix);
|
||||
ClientApi.RENDER_STATE.mcProjectionMatrix = new Mat4f();
|
||||
ClientApi.RENDER_STATE.mcProjectionMatrix.setIdentity();
|
||||
#endif
|
||||
|
||||
// TODO move this into a common place
|
||||
#if MC_VER < MC_1_21_1
|
||||
FabricClientProxy.neoRenderState.frameTime = Minecraft.getInstance().getFrameTime();
|
||||
ClientApi.RENDER_STATE.frameTime = Minecraft.getInstance().getFrameTime();
|
||||
#elif MC_VER < MC_1_21_3
|
||||
FabricClientProxy.neoRenderState.frameTime = Minecraft.getInstance().getTimer().getRealtimeDeltaTicks();
|
||||
ClientApi.RENDER_STATE.frameTime = Minecraft.getInstance().getTimer().getRealtimeDeltaTicks();
|
||||
#else
|
||||
FabricClientProxy.neoRenderState.frameTime = Minecraft.getInstance().deltaTracker.getRealtimeDeltaTicks();
|
||||
ClientApi.RENDER_STATE.frameTime = Minecraft.getInstance().deltaTracker.getRealtimeDeltaTicks();
|
||||
#endif
|
||||
|
||||
|
||||
@@ -152,9 +152,9 @@ public class MixinLevelRenderer
|
||||
if (renderType.equals(RenderType.translucent()))
|
||||
{
|
||||
ClientApi.INSTANCE.renderDeferredLodsForShaders(ClientLevelWrapper.getWrapper(this.level),
|
||||
FabricClientProxy.neoRenderState.mcModelViewMatrix,
|
||||
FabricClientProxy.neoRenderState.mcProjectionMatrix,
|
||||
FabricClientProxy.neoRenderState.frameTime
|
||||
ClientApi.RENDER_STATE.mcModelViewMatrix,
|
||||
ClientApi.RENDER_STATE.mcProjectionMatrix,
|
||||
ClientApi.RENDER_STATE.frameTime
|
||||
);
|
||||
}
|
||||
#endif
|
||||
@@ -179,13 +179,13 @@ public class MixinLevelRenderer
|
||||
// only crash during development
|
||||
if (ModInfo.IS_DEV_BUILD)
|
||||
{
|
||||
FabricClientProxy.neoRenderState.canRenderOrThrow();
|
||||
ClientApi.RENDER_STATE.canRenderOrThrow();
|
||||
}
|
||||
|
||||
ClientApi.INSTANCE.renderDeferredLodsForShaders(ClientLevelWrapper.getWrapper(this.level),
|
||||
FabricClientProxy.neoRenderState.mcModelViewMatrix,
|
||||
FabricClientProxy.neoRenderState.mcProjectionMatrix,
|
||||
FabricClientProxy.neoRenderState.frameTime
|
||||
ClientApi.RENDER_STATE.mcModelViewMatrix,
|
||||
ClientApi.RENDER_STATE.mcProjectionMatrix,
|
||||
ClientApi.RENDER_STATE.frameTime
|
||||
);
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -271,44 +271,4 @@ public class NeoforgeClientProxy implements AbstractModInitializer.IEventProxy
|
||||
|
||||
|
||||
|
||||
//================//
|
||||
// helper classes //
|
||||
//================//
|
||||
|
||||
public static class NeoRenderState
|
||||
{
|
||||
public Mat4f mcModelViewMatrix = null;
|
||||
public Mat4f mcProjectionMatrix = null;
|
||||
public float frameTime = -1;
|
||||
|
||||
|
||||
public void canRenderOrThrow() throws IllegalStateException
|
||||
{
|
||||
String errorReasons = "";
|
||||
|
||||
if (this.mcModelViewMatrix == null)
|
||||
{
|
||||
errorReasons += "no MVM Matrix, ";
|
||||
}
|
||||
|
||||
if (this.mcProjectionMatrix == null)
|
||||
{
|
||||
errorReasons += "no Projection Matrix, ";
|
||||
}
|
||||
|
||||
if (this.frameTime == -1)
|
||||
{
|
||||
errorReasons += "no Frame Time, ";
|
||||
}
|
||||
|
||||
|
||||
if (!errorReasons.isEmpty())
|
||||
{
|
||||
throw new IllegalStateException(errorReasons);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
+30
-30
@@ -99,26 +99,26 @@ public class MixinLevelRenderer
|
||||
{
|
||||
#if MC_VER < MC_1_21_6
|
||||
// MC combined the model view and projection matricies
|
||||
NeoforgeClientProxy.neoRenderState.mcModelViewMatrix = McObjectConverter.Convert(modelViewMatrix);
|
||||
NeoforgeClientProxy.neoRenderState.mcProjectionMatrix = McObjectConverter.Convert(projectionMatrix);
|
||||
ClientApi.RENDER_STATE.mcModelViewMatrix = McObjectConverter.Convert(modelViewMatrix);
|
||||
ClientApi.RENDER_STATE.mcProjectionMatrix = McObjectConverter.Convert(projectionMatrix);
|
||||
#else
|
||||
NeoforgeClientProxy.neoRenderState.mcProjectionMatrix = McObjectConverter.Convert(projectionMatrix);
|
||||
ClientApi.RENDER_STATE.mcProjectionMatrix = McObjectConverter.Convert(projectionMatrix);
|
||||
#endif
|
||||
|
||||
//LOGGER.info("\n\n" +
|
||||
// "Level Mixin\n" +
|
||||
// "Mc MVM: \n" + NeoforgeClientProxy.neoRenderState.mcModelViewMatrix.toString() + "\n" +
|
||||
// "Mc Proj: \n" + NeoforgeClientProxy.neoRenderState.mcProjectionMatrix.toString()
|
||||
// "Mc MVM: \n" + ClientApi.RENDER_STATE.mcModelViewMatrix.toString() + "\n" +
|
||||
// "Mc Proj: \n" + ClientApi.RENDER_STATE.mcProjectionMatrix.toString()
|
||||
//);
|
||||
|
||||
|
||||
|
||||
#if MC_VER < MC_1_21_1
|
||||
NeoforgeClientProxy.neoRenderState.frameTime = Minecraft.getInstance().getFrameTime();
|
||||
ClientApi.RENDER_STATE.frameTime = Minecraft.getInstance().getFrameTime();
|
||||
#elif MC_VER < MC_1_21_3
|
||||
NeoforgeClientProxy.neoRenderState.frameTime = Minecraft.getInstance().getTimer().getRealtimeDeltaTicks();
|
||||
ClientApi.RENDER_STATE.frameTime = Minecraft.getInstance().getTimer().getRealtimeDeltaTicks();
|
||||
#else
|
||||
NeoforgeClientProxy.neoRenderState.frameTime = Minecraft.getInstance().deltaTracker.getRealtimeDeltaTicks();
|
||||
ClientApi.RENDER_STATE.frameTime = Minecraft.getInstance().deltaTracker.getRealtimeDeltaTicks();
|
||||
#endif
|
||||
|
||||
|
||||
@@ -127,23 +127,23 @@ public class MixinLevelRenderer
|
||||
// only crash during development
|
||||
if (ModInfo.IS_DEV_BUILD)
|
||||
{
|
||||
NeoforgeClientProxy.neoRenderState.canRenderOrThrow();
|
||||
ClientApi.RENDER_STATE.canRenderOrThrow();
|
||||
}
|
||||
|
||||
// render LODs
|
||||
if (renderType.equals(RenderType.solid()))
|
||||
{
|
||||
ClientApi.INSTANCE.renderLods(ClientLevelWrapper.getWrapper(this.level),
|
||||
NeoforgeClientProxy.neoRenderState.mcModelViewMatrix,
|
||||
NeoforgeClientProxy.neoRenderState.mcProjectionMatrix,
|
||||
NeoforgeClientProxy.neoRenderState.frameTime);
|
||||
ClientApi.RENDER_STATE.mcModelViewMatrix,
|
||||
ClientApi.RENDER_STATE.mcProjectionMatrix,
|
||||
ClientApi.RENDER_STATE.frameTime);
|
||||
}
|
||||
else if (renderType.equals(RenderType.translucent()))
|
||||
{
|
||||
ClientApi.INSTANCE.renderDeferredLodsForShaders(ClientLevelWrapper.getWrapper(this.level),
|
||||
NeoforgeClientProxy.neoRenderState.mcModelViewMatrix,
|
||||
NeoforgeClientProxy.neoRenderState.mcProjectionMatrix,
|
||||
NeoforgeClientProxy.neoRenderState.frameTime);
|
||||
ClientApi.RENDER_STATE.mcModelViewMatrix,
|
||||
ClientApi.RENDER_STATE.mcProjectionMatrix,
|
||||
ClientApi.RENDER_STATE.frameTime);
|
||||
}
|
||||
|
||||
// render fade
|
||||
@@ -153,18 +153,18 @@ public class MixinLevelRenderer
|
||||
if (renderType.equals(RenderType.cutout()))
|
||||
{
|
||||
ClientApi.INSTANCE.renderFadeOpaque(
|
||||
NeoforgeClientProxy.neoRenderState.mcModelViewMatrix,
|
||||
NeoforgeClientProxy.neoRenderState.mcProjectionMatrix,
|
||||
NeoforgeClientProxy.neoRenderState.frameTime,
|
||||
ClientApi.RENDER_STATE.mcModelViewMatrix,
|
||||
ClientApi.RENDER_STATE.mcProjectionMatrix,
|
||||
ClientApi.RENDER_STATE.frameTime,
|
||||
ClientLevelWrapper.getWrapper(this.level)
|
||||
);
|
||||
}
|
||||
else if (renderType.equals(RenderType.tripwire()))
|
||||
{
|
||||
ClientApi.INSTANCE.renderFade(
|
||||
NeoforgeClientProxy.neoRenderState.mcModelViewMatrix,
|
||||
NeoforgeClientProxy.neoRenderState.mcProjectionMatrix,
|
||||
NeoforgeClientProxy.neoRenderState.frameTime,
|
||||
ClientApi.RENDER_STATE.mcModelViewMatrix,
|
||||
ClientApi.RENDER_STATE.mcProjectionMatrix,
|
||||
ClientApi.RENDER_STATE.frameTime,
|
||||
ClientLevelWrapper.getWrapper(this.level)
|
||||
);
|
||||
}
|
||||
@@ -185,18 +185,18 @@ public class MixinLevelRenderer
|
||||
@Inject(at = @At("HEAD"), method = "prepareChunkRenders", cancellable = true)
|
||||
private void renderChunkLayer(Matrix4fc modelViewMatrix, double d, double e, double f, CallbackInfoReturnable<ChunkSectionsToRender> callback)
|
||||
{
|
||||
NeoforgeClientProxy.neoRenderState.mcModelViewMatrix = McObjectConverter.Convert(modelViewMatrix);
|
||||
ClientApi.RENDER_STATE.mcModelViewMatrix = McObjectConverter.Convert(modelViewMatrix);
|
||||
|
||||
// only crash during development
|
||||
if (ModInfo.IS_DEV_BUILD)
|
||||
{
|
||||
NeoforgeClientProxy.neoRenderState.canRenderOrThrow();
|
||||
ClientApi.RENDER_STATE.canRenderOrThrow();
|
||||
}
|
||||
|
||||
ClientApi.INSTANCE.renderLods(ClientLevelWrapper.getWrapper(this.level),
|
||||
NeoforgeClientProxy.neoRenderState.mcModelViewMatrix,
|
||||
NeoforgeClientProxy.neoRenderState.mcProjectionMatrix,
|
||||
NeoforgeClientProxy.neoRenderState.frameTime);
|
||||
ClientApi.RENDER_STATE.mcModelViewMatrix,
|
||||
ClientApi.RENDER_STATE.mcProjectionMatrix,
|
||||
ClientApi.RENDER_STATE.frameTime);
|
||||
}
|
||||
|
||||
|
||||
@@ -206,13 +206,13 @@ public class MixinLevelRenderer
|
||||
// only crash during development
|
||||
if (ModInfo.IS_DEV_BUILD)
|
||||
{
|
||||
NeoforgeClientProxy.neoRenderState.canRenderOrThrow();
|
||||
ClientApi.RENDER_STATE.canRenderOrThrow();
|
||||
}
|
||||
|
||||
ClientApi.INSTANCE.renderDeferredLodsForShaders(ClientLevelWrapper.getWrapper(this.level),
|
||||
NeoforgeClientProxy.neoRenderState.mcModelViewMatrix,
|
||||
NeoforgeClientProxy.neoRenderState.mcProjectionMatrix,
|
||||
NeoforgeClientProxy.neoRenderState.frameTime
|
||||
ClientApi.RENDER_STATE.mcModelViewMatrix,
|
||||
ClientApi.RENDER_STATE.mcProjectionMatrix,
|
||||
ClientApi.RENDER_STATE.frameTime
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user