diff --git a/build.gradle b/build.gradle index 440dc44c..f062dd32 100644 --- a/build.gradle +++ b/build.gradle @@ -3,7 +3,7 @@ plugins { id 'eclipse' id 'idea' id 'maven-publish' - id 'net.neoforged.gradle.userdev' version '7.0.145' + id 'net.neoforged.gradle.userdev' version '7.0.181' } tasks.named('wrapper', Wrapper).configure { @@ -79,14 +79,6 @@ runs { gameTestServer { systemProperty 'forge.enabledGameTestNamespaces', project.mod_id } - - data { - // example of overriding the workingDirectory set in configureEach above, uncomment if you want to use it - // workingDirectory project.file('run-data') - - // Specify the modid for data generation, where to output the resulting resource, and where to look for existing resources. - programArguments.addAll '--mod', project.mod_id, '--all', '--output', file('src/generated/resources/').getAbsolutePath(), '--existing', file('src/main/resources/').getAbsolutePath() - } } // Include resources generated by data generators. @@ -130,8 +122,8 @@ dependencies { // For more info: // http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html // http://www.gradle.org/docs/current/userguide/dependency_management.html54 - implementation "maven.modrinth:sodium:mc1.21-0.6.0-beta.1-neoforge" - implementation "maven.modrinth:iris:1.8.0-beta.2+1.21-neoforge" + implementation "maven.modrinth:sodium:mc1.21.4-0.6.7-neoforge" + implementation "maven.modrinth:iris:1.8.5+1.21.4-neoforge" } // This block of code expands all declared replace properties in the specified resource targets. diff --git a/gradle.properties b/gradle.properties index b2ed1b99..d5cf015c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -5,20 +5,20 @@ org.gradle.debug=false #read more on this at https://github.com/neoforged/NeoGradle/blob/NG_7.0/README.md#apply-parchment-mappings # you can also find the latest versions at: https://parchmentmc.org/docs/getting-started -neogradle.subsystems.parchment.minecraftVersion=1.21 -neogradle.subsystems.parchment.mappingsVersion=2024.11.10 +neogradle.subsystems.parchment.minecraftVersion=1.21.4 +neogradle.subsystems.parchment.mappingsVersion=2025.01.19 # Environment Properties # You can find the latest versions here: https://projects.neoforged.net/neoforged/neoforge # The Minecraft version must agree with the Neo version to get a valid artifact -minecraft_version=1.21 +minecraft_version=1.21.4 # The Minecraft version range can use any release version of Minecraft as bounds. # Snapshots, pre-releases, and release candidates are not guaranteed to sort properly # as they do not follow standard versioning conventions. -minecraft_version_range=[1.21,1.21.1) +minecraft_version_range=[1.21,1.21.4] # The Neo version must agree with the Minecraft version to get a valid artifact -neo_version=21.0.167 +neo_version=21.4.87-beta # The Neo version range can use any version of Neo as bounds -neo_version_range=[21.0.0-beta,) +neo_version_range=[21.4.0-beta,) # The loader version range can only use the major version of FML as bounds loader_version_range=[4,) diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 09523c0e..e18bc253 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.12.1-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/src/main/java/com/github/argon4w/acceleratedrendering/compat/iris/IrisBufferEnvironment.java b/src/main/java/com/github/argon4w/acceleratedrendering/compat/iris/IrisBufferEnvironment.java index ab0cd32b..00a3f6cc 100644 --- a/src/main/java/com/github/argon4w/acceleratedrendering/compat/iris/IrisBufferEnvironment.java +++ b/src/main/java/com/github/argon4w/acceleratedrendering/compat/iris/IrisBufferEnvironment.java @@ -12,6 +12,7 @@ import com.mojang.blaze3d.vertex.VertexFormatElement; import net.irisshaders.iris.shaderpack.materialmap.WorldRenderingSettings; import net.irisshaders.iris.vertices.ImmediateState; +import net.irisshaders.iris.vertices.sodium.terrain.XHFPModelVertexType; import net.minecraft.client.renderer.RenderType; public class IrisBufferEnvironment implements IBufferEnvironment { @@ -29,7 +30,7 @@ public IrisBufferEnvironment( } private boolean shouldUseIrisSubSet() { - return WorldRenderingSettings.INSTANCE.shouldUseExtendedVertexFormat() + return WorldRenderingSettings.INSTANCE.getVertexFormat() instanceof XHFPModelVertexType && ImmediateState.isRenderingLevel; } diff --git a/src/main/java/com/github/argon4w/acceleratedrendering/compat/iris/IrisRenderType.java b/src/main/java/com/github/argon4w/acceleratedrendering/compat/iris/IrisRenderType.java index 427c2562..2a4718a7 100644 --- a/src/main/java/com/github/argon4w/acceleratedrendering/compat/iris/IrisRenderType.java +++ b/src/main/java/com/github/argon4w/acceleratedrendering/compat/iris/IrisRenderType.java @@ -17,14 +17,14 @@ public IrisRenderType( VertexFormat vertexFormat ) { super( - renderType.name, + renderType.toString(), vertexFormat, renderType.mode, renderType.bufferSize, renderType.affectsCrumbling, renderType.sortOnUpload, - renderType.setupState, - renderType.clearState + renderType::setupRenderState, + renderType::clearRenderState ); this.renderType = renderType; diff --git a/src/main/java/com/github/argon4w/acceleratedrendering/compat/iris/mixins/acceleratedrendering/RedirectingBufferSourceMixin.java b/src/main/java/com/github/argon4w/acceleratedrendering/compat/iris/mixins/acceleratedrendering/RedirectingBufferSourceMixin.java index 96947376..7625612a 100644 --- a/src/main/java/com/github/argon4w/acceleratedrendering/compat/iris/mixins/acceleratedrendering/RedirectingBufferSourceMixin.java +++ b/src/main/java/com/github/argon4w/acceleratedrendering/compat/iris/mixins/acceleratedrendering/RedirectingBufferSourceMixin.java @@ -13,7 +13,7 @@ @Mixin(RedirectingBufferSource.class) public class RedirectingBufferSourceMixin { - @WrapOperation(method = "getBuffer", at = @At(value = "FIELD", target = "Lnet/minecraft/client/renderer/RenderType;name:Ljava/lang/String;")) + @WrapOperation(method = "getBuffer", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/RenderType;toString()Ljava/lang/String;")) public String unwrapIrisRenderType(RenderType instance, Operation original) { if (!IrisCompatFeature.isEnabled()) { return original.call(instance); diff --git a/src/main/java/com/github/argon4w/acceleratedrendering/compat/iris/mixins/acceleratedrendering/RedirectingOutlineBufferSourceMixin.java b/src/main/java/com/github/argon4w/acceleratedrendering/compat/iris/mixins/acceleratedrendering/RedirectingOutlineBufferSourceMixin.java index a99be71f..d20fc244 100644 --- a/src/main/java/com/github/argon4w/acceleratedrendering/compat/iris/mixins/acceleratedrendering/RedirectingOutlineBufferSourceMixin.java +++ b/src/main/java/com/github/argon4w/acceleratedrendering/compat/iris/mixins/acceleratedrendering/RedirectingOutlineBufferSourceMixin.java @@ -13,7 +13,7 @@ @Mixin(RedirectingOutlineBufferSource.class) public class RedirectingOutlineBufferSourceMixin { - @WrapOperation(method = "getBuffer", at = @At(value = "FIELD", target = "Lnet/minecraft/client/renderer/RenderType;name:Ljava/lang/String;")) + @WrapOperation(method = "getBuffer", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/RenderType;toString()Ljava/lang/String;")) public String unwrapIrisRenderType(RenderType instance, Operation original) { if (!IrisCompatFeature.isEnabled()) { return original.call(instance); diff --git a/src/main/java/com/github/argon4w/acceleratedrendering/core/buffers/accelerated/AcceleratedBufferSource.java b/src/main/java/com/github/argon4w/acceleratedrendering/core/buffers/accelerated/AcceleratedBufferSource.java index 2737c3e7..57c07701 100644 --- a/src/main/java/com/github/argon4w/acceleratedrendering/core/buffers/accelerated/AcceleratedBufferSource.java +++ b/src/main/java/com/github/argon4w/acceleratedrendering/core/buffers/accelerated/AcceleratedBufferSource.java @@ -9,9 +9,9 @@ import com.mojang.blaze3d.vertex.VertexFormat; import it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenHashMap; import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.CompiledShaderProgram; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; -import net.minecraft.client.renderer.ShaderInstance; import java.util.Map; @@ -114,7 +114,7 @@ public void drawBuffers() { bufferSet.bindDrawBuffers(); bufferEnvironment.setupBufferState(); - ShaderInstance shader = RenderSystem.getShader(); + CompiledShaderProgram shader = RenderSystem.getShader(); shader.setDefaultUniforms(mode, RenderSystem.getModelViewMatrix(), diff --git a/src/main/java/com/github/argon4w/acceleratedrendering/core/buffers/builders/AcceleratedBufferBuilder.java b/src/main/java/com/github/argon4w/acceleratedrendering/core/buffers/builders/AcceleratedBufferBuilder.java index 3168cd69..a69fbb70 100644 --- a/src/main/java/com/github/argon4w/acceleratedrendering/core/buffers/builders/AcceleratedBufferBuilder.java +++ b/src/main/java/com/github/argon4w/acceleratedrendering/core/buffers/builders/AcceleratedBufferBuilder.java @@ -9,7 +9,7 @@ import com.mojang.blaze3d.vertex.VertexFormat; import com.mojang.blaze3d.vertex.VertexFormatElement; import net.minecraft.client.renderer.RenderType; -import net.minecraft.util.FastColor; +import net.minecraft.util.ARGB; import org.lwjgl.system.MemoryUtil; import java.nio.ByteBuffer; @@ -39,9 +39,9 @@ public class AcceleratedBufferBuilder implements VertexConsumer, IVertexConsumer private int sharing; public AcceleratedBufferBuilder( - MappedBuffer elementBuffer, - AcceleratedBufferSetPool.BufferSet bufferSet, - RenderType renderType + MappedBuffer elementBuffer, + AcceleratedBufferSetPool.BufferSet bufferSet, + RenderType renderType ) { this.elementBuffer = elementBuffer; @@ -68,36 +68,36 @@ public AcceleratedBufferBuilder( private void putElements(int size) { IntElementUtils.putElements( - mode, - elementBuffer, - bufferSet.getElement(size), - size + mode, + elementBuffer, + bufferSet.getElement(size), + size ); } @Override public VertexConsumer addVertex( - PoseStack.Pose pPose, - float pX, - float pY, - float pZ + PoseStack.Pose pPose, + float pX, + float pY, + float pZ ) { beginTransform(pPose); return addVertex( - pX, - pY, - pZ + pX, + pY, + pZ ); } @Override public VertexConsumer addVertex( - float pX, - float pY, - float pZ + float pX, + float pY, + float pZ ) { - vertexCount ++; - elementCount ++; + vertexCount++; + elementCount++; if (elementCount >= polygonSize) { putElements(polygonSize); @@ -120,10 +120,10 @@ public VertexConsumer addVertex( @Override public VertexConsumer setColor( - int pRed, - int pGreen, - int pBlue, - int pAlpha + int pRed, + int pGreen, + int pBlue, + int pAlpha ) { if (colorOffset == -1) { return this; @@ -191,17 +191,17 @@ public VertexConsumer setUv2(int pU, int pV) { @Override public VertexConsumer setNormal( - PoseStack.Pose pPose, - float pNormalX, - float pNormalY, - float pNormalZ + PoseStack.Pose pPose, + float pNormalX, + float pNormalY, + float pNormalZ ) { if (transform == -1) { return VertexConsumer.super.setNormal( - pPose, - pNormalX, - pNormalY, - pNormalZ + pPose, + pNormalX, + pNormalY, + pNormalZ ); } @@ -210,17 +210,17 @@ public VertexConsumer setNormal( } return setNormal( - pNormalX, - pNormalY, - pNormalZ + pNormalX, + pNormalY, + pNormalZ ); } @Override public VertexConsumer setNormal( - float pNormalX, - float pNormalY, - float pNormalZ + float pNormalX, + float pNormalY, + float pNormalZ ) { if (normalOffset == -1) { return this; @@ -239,20 +239,20 @@ public VertexConsumer setNormal( @Override public void addVertex( - float pX, - float pY, - float pZ, - int pColor, - float pU, - float pV, - int pPackedOverlay, - int pPackedLight, - float pNormalX, - float pNormalY, - float pNormalZ + float pX, + float pY, + float pZ, + int pColor, + float pU, + float pV, + int pPackedOverlay, + int pPackedLight, + float pNormalX, + float pNormalY, + float pNormalZ ) { vertexCount++; - elementCount ++; + elementCount++; if (elementCount >= polygonSize) { putElements(polygonSize); @@ -281,7 +281,7 @@ public void addVertex( MemoryUtil.memPutInt(varying + 0L * 4L, 0); MemoryUtil.memPutInt(varying + 1L * 4L, -1); - MemoryUtil.memPutInt(varying + 2L * 4L, FastColor.ABGR32.fromArgb32(pColor)); + MemoryUtil.memPutInt(varying + 2L * 4L, ARGB.toABGR(pColor)); MemoryUtil.memPutInt(varying + 3L * 4L, pPackedLight); MemoryUtil.memPutInt(varying + 4L * 4L, pPackedOverlay); } @@ -318,12 +318,12 @@ public void endTransform() { @Override public void addClientMesh( - RenderType renderType, - ByteBuffer vertexBuffer, - int size, - int color, - int light, - int overlay + RenderType renderType, + ByteBuffer vertexBuffer, + int size, + int color, + int light, + int overlay ) { putElements(size); vertexCount += size; @@ -333,13 +333,13 @@ public void addClientMesh( long length = (long) size * bufferSet.getVertexSize(); ByteBufferUtils.putByteBuffer( - vertexBuffer, - vertex, - length + vertexBuffer, + vertex, + length ); MemoryUtil.memPutInt(varying + 1L * 4L, sharing); - MemoryUtil.memPutInt(varying + 2L * 4L, FastColor.ABGR32.fromArgb32(color)); + MemoryUtil.memPutInt(varying + 2L * 4L, ARGB.toABGR(color)); MemoryUtil.memPutInt(varying + 3L * 4L, light); MemoryUtil.memPutInt(varying + 4L * 4L, overlay); @@ -350,12 +350,12 @@ public void addClientMesh( @Override public void addServerMesh( - RenderType renderType, - int offset, - int size, - int color, - int light, - int overlay + RenderType renderType, + int offset, + int size, + int color, + int light, + int overlay ) { putElements(size); @@ -367,7 +367,7 @@ public void addServerMesh( MemoryUtil.memPutInt(mesh, offset / bufferSet.getVertexSize()); MemoryUtil.memPutInt(varying + 1L * 4L, sharing); - MemoryUtil.memPutInt(varying + 2L * 4L, FastColor.ABGR32.fromArgb32(color)); + MemoryUtil.memPutInt(varying + 2L * 4L, ARGB.toABGR(color)); MemoryUtil.memPutInt(varying + 3L * 4L, light); MemoryUtil.memPutInt(varying + 4L * 4L, overlay); diff --git a/src/main/java/com/github/argon4w/acceleratedrendering/core/buffers/fallback/FallbackOutlineBufferSource.java b/src/main/java/com/github/argon4w/acceleratedrendering/core/buffers/fallback/FallbackOutlineBufferSource.java index fbbb613d..83729db8 100644 --- a/src/main/java/com/github/argon4w/acceleratedrendering/core/buffers/fallback/FallbackOutlineBufferSource.java +++ b/src/main/java/com/github/argon4w/acceleratedrendering/core/buffers/fallback/FallbackOutlineBufferSource.java @@ -5,7 +5,7 @@ import com.mojang.blaze3d.vertex.VertexConsumer; import net.minecraft.client.renderer.OutlineBufferSource; import net.minecraft.client.renderer.RenderType; -import net.minecraft.util.FastColor; +import net.minecraft.util.ARGB; public class FallbackOutlineBufferSource implements IOutlineBufferSource { @@ -23,9 +23,9 @@ public FallbackOutlineBufferSource( @Override public void setColor(int color) { vanillaBufferSource.setColor( - FastColor.ARGB32.red(color), - FastColor.ARGB32.green(color), - FastColor.ARGB32.blue(color), + ARGB.red(color), + ARGB.green(color), + ARGB.blue(color), 255 ); vanillaBatchingBufferSource.setColor(color); diff --git a/src/main/java/com/github/argon4w/acceleratedrendering/core/buffers/fallback/VanillaBatchingBufferSource.java b/src/main/java/com/github/argon4w/acceleratedrendering/core/buffers/fallback/VanillaBatchingBufferSource.java index 094e96b2..1153fe8b 100644 --- a/src/main/java/com/github/argon4w/acceleratedrendering/core/buffers/fallback/VanillaBatchingBufferSource.java +++ b/src/main/java/com/github/argon4w/acceleratedrendering/core/buffers/fallback/VanillaBatchingBufferSource.java @@ -65,7 +65,7 @@ public void drawBuffers() { } if (renderType.sortOnUpload) { - meshData.sortQuads(((BufferBuilderAccessor) builder).getBuffer(), RenderSystem.getVertexSorting()); + meshData.sortQuads(((BufferBuilderAccessor) builder).getBuffer(), RenderSystem.getProjectionType().vertexSorting()); } renderType.draw(meshData); diff --git a/src/main/java/com/github/argon4w/acceleratedrendering/core/buffers/outline/OutlineMaskBufferSource.java b/src/main/java/com/github/argon4w/acceleratedrendering/core/buffers/outline/OutlineMaskBufferSource.java index e301d0e6..a73946eb 100644 --- a/src/main/java/com/github/argon4w/acceleratedrendering/core/buffers/outline/OutlineMaskBufferSource.java +++ b/src/main/java/com/github/argon4w/acceleratedrendering/core/buffers/outline/OutlineMaskBufferSource.java @@ -6,7 +6,7 @@ import com.github.argon4w.acceleratedrendering.core.buffers.environments.IBufferEnvironment; import com.mojang.blaze3d.vertex.VertexConsumer; import net.minecraft.client.renderer.RenderType; -import net.minecraft.util.FastColor; +import net.minecraft.util.ARGB; public class OutlineMaskBufferSource implements IAcceleratedOutlineBufferSource { @@ -26,7 +26,7 @@ public VertexConsumer getBuffer(RenderType pRenderType) { @Override public void setColor(int color) { - this.color = FastColor.ARGB32.color(255, color); + this.color = ARGB.color(255, color); } @Override diff --git a/src/main/java/com/github/argon4w/acceleratedrendering/core/buffers/redirecting/RedirectingBufferSource.java b/src/main/java/com/github/argon4w/acceleratedrendering/core/buffers/redirecting/RedirectingBufferSource.java index 33a22fa4..07f34fa5 100644 --- a/src/main/java/com/github/argon4w/acceleratedrendering/core/buffers/redirecting/RedirectingBufferSource.java +++ b/src/main/java/com/github/argon4w/acceleratedrendering/core/buffers/redirecting/RedirectingBufferSource.java @@ -56,7 +56,7 @@ public VertexConsumer getBuffer(RenderType pRenderType) { return fallbackBufferSource.getBuffer(pRenderType); } - if (fallbackNames.contains(pRenderType.name)) { + if (fallbackNames.contains(pRenderType.toString())) { return fallbackBufferSource.getBuffer(pRenderType); } diff --git a/src/main/java/com/github/argon4w/acceleratedrendering/core/buffers/redirecting/RedirectingOutlineBufferSource.java b/src/main/java/com/github/argon4w/acceleratedrendering/core/buffers/redirecting/RedirectingOutlineBufferSource.java index c2d6c34b..c70180e0 100644 --- a/src/main/java/com/github/argon4w/acceleratedrendering/core/buffers/redirecting/RedirectingOutlineBufferSource.java +++ b/src/main/java/com/github/argon4w/acceleratedrendering/core/buffers/redirecting/RedirectingOutlineBufferSource.java @@ -70,7 +70,7 @@ public VertexConsumer getBuffer(RenderType pRenderType) { return fallbackBufferSource.getBuffer(pRenderType); } - if (fallbackNames.contains(pRenderType.name)) { + if (fallbackNames.contains(pRenderType.toString())) { return fallbackBufferSource.getBuffer(pRenderType); } diff --git a/src/main/java/com/github/argon4w/acceleratedrendering/core/mixins/LevelRendererMixin.java b/src/main/java/com/github/argon4w/acceleratedrendering/core/mixins/LevelRendererMixin.java index 52da49c9..22789b32 100644 --- a/src/main/java/com/github/argon4w/acceleratedrendering/core/mixins/LevelRendererMixin.java +++ b/src/main/java/com/github/argon4w/acceleratedrendering/core/mixins/LevelRendererMixin.java @@ -1,11 +1,17 @@ package com.github.argon4w.acceleratedrendering.core.mixins; import com.github.argon4w.acceleratedrendering.CoreFeature; +import com.mojang.blaze3d.framegraph.FrameGraphBuilder; +import com.mojang.blaze3d.pipeline.RenderTarget; +import com.mojang.blaze3d.resource.ResourceHandle; import net.minecraft.client.Camera; import net.minecraft.client.DeltaTracker; +import net.minecraft.client.renderer.FogParameters; import net.minecraft.client.renderer.GameRenderer; import net.minecraft.client.renderer.LevelRenderer; import net.minecraft.client.renderer.LightTexture; +import net.minecraft.client.renderer.culling.Frustum; +import net.minecraft.util.profiling.ProfilerFiller; import org.joml.Matrix4f; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; @@ -15,16 +21,22 @@ @Mixin(LevelRenderer.class) public class LevelRendererMixin { - @Inject(method = "renderLevel", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/OutlineBufferSource;endOutlineBatch()V")) + @Inject(method = "lambda$addMainPass$2", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/OutlineBufferSource;endOutlineBatch()V")) public void endOutlineBatches( - DeltaTracker pDeltaTracker, - boolean pRenderBlockOutline, - Camera pCamera, - GameRenderer pGameRenderer, - LightTexture pLightTexture, - Matrix4f pFrustumMatrix, - Matrix4f pProjectionMatrix, - CallbackInfo ci + FogParameters fogParameters, + DeltaTracker deltaTracker, + Camera camera, + ProfilerFiller profiler, + Matrix4f frustumMatrix, + Matrix4f projectionMatrix, + ResourceHandle resourcehandle2, + ResourceHandle resourcehandle, + ResourceHandle resourcehandle3, + ResourceHandle resourcehandle4, + Frustum frustum, + boolean renderBlockOutline, + ResourceHandle resourcehandle1, + CallbackInfo ci ) { CoreFeature.POS_TEX_COLOR.drawBuffers(); CoreFeature.OUTLINE_BATCHING.drawBuffers(); @@ -32,16 +44,22 @@ public void endOutlineBatches( CoreFeature.OUTLINE_BATCHING.clearBuffers(); } - @Inject(method = "renderLevel", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/MultiBufferSource$BufferSource;endLastBatch()V", ordinal = 0)) + @Inject(method = "lambda$addMainPass$2", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/MultiBufferSource$BufferSource;endLastBatch()V", ordinal = 0)) public void endAllEntityBatches( - DeltaTracker pDeltaTracker, - boolean pRenderBlockOutline, - Camera pCamera, - GameRenderer pGameRenderer, - LightTexture pLightTexture, - Matrix4f pFrustumMatrix, - Matrix4f pProjectionMatrix, - CallbackInfo ci + FogParameters fogParameters, + DeltaTracker deltaTracker, + Camera camera, + ProfilerFiller profiler, + Matrix4f frustumMatrix, + Matrix4f projectionMatrix, + ResourceHandle resourcehandle2, + ResourceHandle resourcehandle, + ResourceHandle resourcehandle3, + ResourceHandle resourcehandle4, + Frustum frustum, + boolean renderBlockOutline, + ResourceHandle resourcehandle1, + CallbackInfo ci ) { CoreFeature.ENTITY.drawBuffers(); CoreFeature.POS_TEX.drawBuffers(); diff --git a/src/main/java/com/github/argon4w/acceleratedrendering/core/programs/ComputeShaderPrograms.java b/src/main/java/com/github/argon4w/acceleratedrendering/core/programs/ComputeShaderPrograms.java index 9fb26f94..5a1f4f17 100644 --- a/src/main/java/com/github/argon4w/acceleratedrendering/core/programs/ComputeShaderPrograms.java +++ b/src/main/java/com/github/argon4w/acceleratedrendering/core/programs/ComputeShaderPrograms.java @@ -12,7 +12,7 @@ import net.neoforged.bus.api.EventPriority; import net.neoforged.bus.api.SubscribeEvent; import net.neoforged.fml.common.EventBusSubscriber; -import net.neoforged.neoforge.client.event.RegisterClientReloadListenersEvent; +import net.neoforged.neoforge.client.event.AddClientReloadListenersEvent; import java.util.function.UnaryOperator; @@ -23,6 +23,7 @@ public class ComputeShaderPrograms { public static final ResourceLocation CORE_POS_TEX_COLOR_VERTEX_TRANSFORM_KEY = AcceleratedRenderingModEntry.location("core_pos_tex_color_vertex_transform"); public static final ResourceLocation CORE_POS_TEX_VERTEX_TRANSFORM_KEY = AcceleratedRenderingModEntry.location("core_pos_tex_vertex_transform"); public static final ResourceLocation CORE_PASS_THROUGH_POLYGON_CULLING_KEY = AcceleratedRenderingModEntry.location("core_pass_through_polygon_culling"); + public static final ResourceLocation COMPUTE_SHADER_PROGRAM_LOADER_KEY = AcceleratedRenderingModEntry.location("compute_shader_program_loader"); @SubscribeEvent public static void onLoadComputeShaders(LoadComputeShaderEvent event) { @@ -85,7 +86,7 @@ public static void onLoadPolygonProcessors(LoadPolygonProcessorEvent event) { } @SubscribeEvent - public static void onRegisterResourceReloadListeners(RegisterClientReloadListenersEvent event) { - event.registerReloadListener(ComputeShaderProgramLoader.INSTANCE); + public static void onRegisterResourceReloadListeners(AddClientReloadListenersEvent event) { + event.addListener(COMPUTE_SHADER_PROGRAM_LOADER_KEY, ComputeShaderProgramLoader.INSTANCE); } } diff --git a/src/main/java/com/github/argon4w/acceleratedrendering/core/utils/CullerUtils.java b/src/main/java/com/github/argon4w/acceleratedrendering/core/utils/CullerUtils.java index 14809280..286a2308 100644 --- a/src/main/java/com/github/argon4w/acceleratedrendering/core/utils/CullerUtils.java +++ b/src/main/java/com/github/argon4w/acceleratedrendering/core/utils/CullerUtils.java @@ -19,10 +19,10 @@ public static boolean shouldCull(ModelPart.Vertex[] vertices, NativeImage image) float maxV = 0.0f; if (vertices.length == 4) { - Vector3f vertex0 = new Vector3f(vertices[0].pos); - Vector3f vector1 = new Vector3f(vertices[1].pos).sub(vertex0); - Vector3f vector2 = new Vector3f(vertices[2].pos).sub(vertex0); - Vector3f vector3 = new Vector3f(vertices[3].pos).sub(vertex0); + Vector3f vertex0 = new Vector3f(vertices[0].pos()); + Vector3f vector1 = new Vector3f(vertices[1].pos()).sub(vertex0); + Vector3f vector2 = new Vector3f(vertices[2].pos()).sub(vertex0); + Vector3f vector3 = new Vector3f(vertices[3].pos()).sub(vertex0); float length1 = vector1.cross(vector2).length(); float length2 = vector1.cross(vector3).length(); @@ -33,8 +33,8 @@ public static boolean shouldCull(ModelPart.Vertex[] vertices, NativeImage image) } for (ModelPart.Vertex vertex : vertices) { - float u = vertex.u; - float v = vertex.v; + float u = vertex.u(); + float v = vertex.v(); u = u < 0 ? 1.0f + u : u; v = v < 0 ? 1.0f + v : v; @@ -53,7 +53,7 @@ public static boolean shouldCull(ModelPart.Vertex[] vertices, NativeImage image) for (int x = minX; x < maxX; x++) { for (int y = minY; y < maxY; y++) { - if ((image.getPixelRGBA(x, y) & 0xFF) != 0) { + if ((image.getPixel(x, y) & 0xFF) != 0) { return false; } } diff --git a/src/main/java/com/github/argon4w/acceleratedrendering/features/entities/mixins/LevelRendererMixin.java b/src/main/java/com/github/argon4w/acceleratedrendering/features/entities/mixins/LevelRendererMixin.java index 2e77659a..7068feeb 100644 --- a/src/main/java/com/github/argon4w/acceleratedrendering/features/entities/mixins/LevelRendererMixin.java +++ b/src/main/java/com/github/argon4w/acceleratedrendering/features/entities/mixins/LevelRendererMixin.java @@ -23,18 +23,17 @@ public abstract class LevelRendererMixin { @Shadow public abstract boolean shouldShowEntityOutlines(); - @WrapOperation(method = "renderLevel", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/LevelRenderer;renderEntity(Lnet/minecraft/world/entity/Entity;DDDFLcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/MultiBufferSource;)V")) + @WrapOperation(method = "renderEntities", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/LevelRenderer;renderEntity(Lnet/minecraft/world/entity/Entity;DDDFLcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/MultiBufferSource;)V")) public void wrapRenderEntity( - LevelRenderer instance, - Entity pEntity, - double pCamX, - double pCamY, - double pCamZ, - float pPartialTick, - PoseStack pPoseStack, - MultiBufferSource pBufferSource, - Operation original, - @Local(name = "flag2") LocalBooleanRef flag2 + LevelRenderer instance, + Entity pEntity, + double pCamX, + double pCamY, + double pCamZ, + float pPartialTick, + PoseStack pPoseStack, + MultiBufferSource pBufferSource, + Operation original ) { if (!AcceleratedEntityRenderingFeature.isEnabled()) { original.call( @@ -75,12 +74,10 @@ public void wrapRenderEntity( pPoseStack, CoreFeature.CORE_OUTLINE.setColor(pEntity.getTeamColor()) ); - flag2.set(true); return; } if (pEntity.hasCustomOutlineRendering(minecraft.player)) { - flag2.set(true); } original.call( diff --git a/src/main/java/com/github/argon4w/acceleratedrendering/features/modelpart/mixins/ModelPartMixin.java b/src/main/java/com/github/argon4w/acceleratedrendering/features/modelpart/mixins/ModelPartMixin.java index 169cb96a..224b591b 100644 --- a/src/main/java/com/github/argon4w/acceleratedrendering/features/modelpart/mixins/ModelPartMixin.java +++ b/src/main/java/com/github/argon4w/acceleratedrendering/features/modelpart/mixins/ModelPartMixin.java @@ -76,20 +76,20 @@ public void compile( for (ModelPart.Cube cube : cubes) { for (ModelPart.Polygon polygon : cube.polygons) { - Vector3f normal = polygon.normal; + Vector3f normal = polygon.normal(); - if (CullerUtils.shouldCull(polygon.vertices, image)) { + if (CullerUtils.shouldCull(polygon.vertices(), image)) { continue; } - for (ModelPart.Vertex vertex : polygon.vertices) { + for (ModelPart.Vertex vertex : polygon.vertices()) { meshCollector.addVertex( - vertex.pos.x / 16.0f, - vertex.pos.y / 16.0f, - vertex.pos.z / 16.0f, + vertex.pos().x / 16.0f, + vertex.pos().y / 16.0f, + vertex.pos().z / 16.0f, pColor, - vertex.u, - vertex.v, + vertex.u(), + vertex.v(), pPackedOverlay, pPackedLight, normal.x,