Fix GameRenderer blur mixin for 1.21.1
All checks were successful
Build / build (push) Successful in 10m35s

This commit is contained in:
2026-05-07 14:06:16 +02:00
parent 3187c671a2
commit a4274380cb
2 changed files with 9 additions and 6 deletions

View File

@@ -23,6 +23,7 @@ The Gitea runner has been used for:
- `AsyncCraterManager`
- `BlockIndexManager`
- Updated the `ExplosionMixin` complex constructor injection descriptor for Minecraft `1.21.1` after a client bootstrap crash showed the old Forge `1.20.1` constructor target no longer exists.
- Updated `GameRendererBlurMixin` render callback and invoke descriptors for Minecraft `1.21.1` after the next client crash showed `GameRenderer#render` now receives `DeltaTracker, boolean`.
- Fixed runner setup issues:
- executable `gradlew`
- tracked `gradle-wrapper.jar`
@@ -34,6 +35,7 @@ The Gitea runner has been used for:
| --- | --- |
| `git diff --check` | PASS before last committed source fixes |
| `git diff --check` | PASS after NeoForge `21.1.225` metadata change and `ExplosionMixin` runtime crash fix |
| `git diff --check` | PASS after `GameRendererBlurMixin` runtime crash fix |
| Gitea decompile workflow | PASS |
| Gitea build workflow | FAIL, now reaches Java API migration errors |
@@ -63,6 +65,7 @@ The remaining failures are real Forge-to-NeoForge/API-porting work, not runner s
3. Replace GUI overlay events and config screen registration.
4. Re-run the Gitea build after each API family rather than attempting all files at once.
5. Retest the client jar after the `ExplosionMixin` descriptor fix; the next crash, if any, should be a later runtime/API issue rather than the bootstrap constructor mismatch.
6. Retest the client jar after the `GameRendererBlurMixin` descriptor fix; the next crash, if any, should be the next stale mixin/API target.
## Risks

View File

@@ -3,8 +3,8 @@
*/
package com.vinlanx.explosionoverhaul.mixin;
import com.mojang.blaze3d.vertex.PoseStack;
import com.vinlanx.explosionoverhaul.client.Blur;
import net.minecraft.client.DeltaTracker;
import net.minecraft.client.renderer.GameRenderer;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
@@ -13,18 +13,18 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(value={GameRenderer.class})
public class GameRendererBlurMixin {
@Inject(method={"renderLevel"}, at={@At(value="INVOKE", target="Lnet/minecraft/client/renderer/LevelRenderer;renderLevel(Lcom/mojang/blaze3d/vertex/PoseStack;FJZLnet/minecraft/client/Camera;Lnet/minecraft/client/renderer/GameRenderer;Lnet/minecraft/client/renderer/LightTexture;Lorg/joml/Matrix4f;)V", shift=At.Shift.AFTER)})
private void explosionoverhaul$afterWorld(float tickDelta, long nanoTime, PoseStack poseStack, CallbackInfo ci) {
@Inject(method={"renderLevel"}, at={@At(value="INVOKE", target="Lnet/minecraft/client/renderer/LevelRenderer;renderLevel(Lnet/minecraft/client/DeltaTracker;ZLnet/minecraft/client/Camera;Lnet/minecraft/client/renderer/GameRenderer;Lnet/minecraft/client/renderer/LightTexture;Lorg/joml/Matrix4f;Lorg/joml/Matrix4f;)V", shift=At.Shift.AFTER)})
private void explosionoverhaul$afterWorld(DeltaTracker deltaTracker, CallbackInfo ci) {
Blur.render(Blur.RenderStage.WORLD);
}
@Inject(method={"renderLevel"}, at={@At(value="INVOKE", target="Lnet/minecraft/client/renderer/GameRenderer;renderItemInHand(Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/Camera;F)V", shift=At.Shift.AFTER)})
private void explosionoverhaul$afterHand(float tickDelta, long nanoTime, PoseStack poseStack, CallbackInfo ci) {
@Inject(method={"renderLevel"}, at={@At(value="INVOKE", target="Lnet/minecraft/client/renderer/GameRenderer;renderItemInHand(Lnet/minecraft/client/Camera;FLorg/joml/Matrix4f;)V", shift=At.Shift.AFTER)})
private void explosionoverhaul$afterHand(DeltaTracker deltaTracker, CallbackInfo ci) {
Blur.render(Blur.RenderStage.HAND);
}
@Inject(method={"render"}, at={@At(value="TAIL")})
private void explosionoverhaul$afterGui(float tickDelta, long nanoTime, boolean renderLevel, CallbackInfo ci) {
private void explosionoverhaul$afterGui(DeltaTracker deltaTracker, boolean renderLevel, CallbackInfo ci) {
Blur.render(Blur.RenderStage.HUD);
}
}