2828import com .llamalad7 .mixinextras .injector .wrapoperation .Operation ;
2929import com .llamalad7 .mixinextras .injector .wrapoperation .WrapOperation ;
3030import com .mojang .blaze3d .pipeline .RenderPipeline ;
31- import com .mojang .blaze3d .pipeline .RenderTarget ;
31+ import com .mojang .blaze3d .systems .CommandEncoder ;
32+ import com .mojang .blaze3d .systems .GpuSurface ;
3233import com .mojang .blaze3d .systems .RenderPass ;
3334import com .mojang .blaze3d .systems .RenderSystem ;
3435import com .mojang .blaze3d .textures .FilterMode ;
36+ import com .mojang .blaze3d .textures .GpuTextureView ;
3537import com .mojang .blaze3d .vertex .DefaultVertexFormat ;
3638import com .mojang .blaze3d .vertex .VertexFormat ;
3739import net .minecraft .client .Minecraft ;
38- import net .minecraft .client .gui .screens . Screen ;
40+ import net .minecraft .client .gui .Gui ;
3941import net .minecraft .client .renderer .RenderPipelines ;
40- import org .jetbrains . annotations . Nullable ;
42+ import org .spongepowered . asm . mixin . Final ;
4143import org .spongepowered .asm .mixin .Mixin ;
4244import org .spongepowered .asm .mixin .Shadow ;
4345import org .spongepowered .asm .mixin .Unique ;
5052@ Mixin (Minecraft .class )
5153public abstract class MixinMinecraft_ColorBoost {
5254 @ Shadow
53- @ Nullable
54- public Screen screen ;
55+ @ Final
56+ public Gui gui ;
5557
5658 @ Unique
5759 private static final RenderPipeline animatium$boostPipeline = RenderPipelines .register (
@@ -64,17 +66,17 @@ public abstract class MixinMinecraft_ColorBoost {
6466 .build ()
6567 );
6668
67- @ WrapOperation (method = "renderFrame" , at = @ At (value = "INVOKE" , target = "Lcom/mojang/blaze3d/pipeline/RenderTarget;blitToScreen( )V" ))
68- private void animatium$colorBoost (final RenderTarget instance , final Operation <Void > original ) {
69- if (AnimatiumConfig .instance ().extras .colorBoost && this .screen == null ) {
70- try (final RenderPass renderPass = RenderSystem .getDevice ().createCommandEncoder ().createRenderPass (() -> "Color boost render target blit" , instance . getColorTextureView () , OptionalInt .empty ())) {
69+ @ WrapOperation (method = "renderFrame" , at = @ At (value = "INVOKE" , target = "Lcom/mojang/blaze3d/systems/GpuSurface;blitFromTexture(Lcom/mojang/blaze3d/systems/CommandEncoder;Lcom/mojang/blaze3d/textures/GpuTextureView; )V" ))
70+ private void animatium$colorBoost (final GpuSurface instance , final CommandEncoder commandEncoder , final GpuTextureView textureView , final Operation <Void > original ) {
71+ if (AnimatiumConfig .instance ().extras .colorBoost && this .gui . screen () == null ) {
72+ try (final RenderPass renderPass = RenderSystem .getDevice ().createCommandEncoder ().createRenderPass (() -> "Color boost render target blit" , textureView , OptionalInt .empty ())) {
7173 renderPass .setPipeline (animatium$boostPipeline );
7274 RenderSystem .bindDefaultUniforms (renderPass );
73- renderPass .bindTexture ("Sampler0" , instance . getColorTextureView () , RenderSystem .getSamplerCache ().getClampToEdge (FilterMode .NEAREST ));
75+ renderPass .bindTexture ("Sampler0" , textureView , RenderSystem .getSamplerCache ().getClampToEdge (FilterMode .NEAREST ));
7476 renderPass .draw (0 , 3 );
7577 }
7678 }
7779
78- original .call (instance );
80+ original .call (instance , commandEncoder , textureView );
7981 }
8082}
0 commit comments