VulkanShader_1.21.10-0.0.4-alpha.jar
Download file
package net.vulkanmod.mixin.render.target;
import com.mojang.blaze3d.systems.RenderPass;
import com.mojang.blaze3d.systems.RenderSystem;
import com.mojang.blaze3d.textures.GpuTexture;
import com.mojang.blaze3d.textures.GpuTextureView;
import java.util.OptionalInt;
import net.minecraft.class_10799;
import net.minecraft.class_276;
import net.vulkanmod.render.engine.VkFbo;
import net.vulkanmod.render.engine.VkGpuTexture;
import org.jetbrains.annotations.Nullable;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Overwrite;
import org.spongepowered.asm.mixin.Shadow;
@Mixin({class_276.class})
public abstract class RenderTargetMixin {
@Shadow
public int field_1482;
@Shadow
public int field_1481;
@Shadow
protected @Nullable GpuTexture field_1475;
@Shadow
protected @Nullable GpuTexture field_56739;
@Shadow
protected @Nullable GpuTextureView field_60567;
@Overwrite
public void method_68445(GpuTextureView gpuTextureView) {
RenderSystem.assertOnRenderThread();
VkFbo fbo = ((VkGpuTexture)this.field_1475).getFbo(this.field_56739);
if (!fbo.needsClear()) {
RenderPass renderPass = RenderSystem.getDevice().createCommandEncoder().createRenderPass(() -> "Blit render target", gpuTextureView, OptionalInt.empty());
try {
renderPass.setPipeline(class_10799.field_56840);
RenderSystem.bindDefaultUniforms(renderPass);
renderPass.bindSampler("InSampler", this.field_60567);
renderPass.draw(0, 3);
} catch (Throwable var7) {
if (renderPass != null) {
try {
renderPass.close();
} catch (Throwable var6) {
var7.addSuppressed(var6);
}
}
throw var7;
}
if (renderPass != null) {
renderPass.close();
}
}
}
}
Download file