VulkanShader_1.21.10-0.0.4-alpha.jar
Download file
package net.vulkanmod.mixin.render;
import net.minecraft.class_310;
import net.minecraft.class_315;
import net.minecraft.class_3695;
import net.minecraft.class_5365;
import net.minecraft.class_542;
import net.minecraft.class_7172;
import net.vulkanmod.Initializer;
import net.vulkanmod.render.texture.SpriteUpdateUtil;
import net.vulkanmod.vulkan.Renderer;
import net.vulkanmod.vulkan.Vulkan;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.Redirect;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import org.spongepowered.asm.mixin.injection.callback.LocalCapture;
@Mixin({class_310.class})
public class MinecraftMixin {
@Shadow
public boolean field_1743;
@Shadow
@Final
public class_315 field_1690;
@Inject(
method = {"<init>"},
at = {@At("RETURN")}
)
private void forceGraphicsMode(class_542 gameConfig, CallbackInfo ci) {
class_7172<class_5365> graphicsModeOption = this.field_1690.method_42534();
if (graphicsModeOption.method_41753() == class_5365.field_25429) {
Initializer.LOGGER.error("Fabulous graphics mode not supported, forcing Fancy");
graphicsModeOption.method_41748(class_5365.field_25428);
}
}
@Inject(
method = {"method_1523"},
at = {@At(
value = "INVOKE",
target = "Lnet/minecraft/class_310;method_1574()V"
)},
locals = LocalCapture.CAPTURE_FAILHARD
)
private void redirectResourceTick(boolean bl, CallbackInfo ci, int i, class_3695 profilerFiller, int j) {
int n = Math.min(10, i) - 1;
boolean doUpload = j == n;
SpriteUpdateUtil.setDoUpload(doUpload);
}
@Inject(
method = {"close"},
at = {@At("HEAD")}
)
public void close(CallbackInfo ci) {
Vulkan.waitIdle();
}
@Inject(
method = {"close"},
at = {@At(
value = "INVOKE",
target = "Lnet/minecraft/class_3682;close()V"
)}
)
public void close2(CallbackInfo ci) {
Vulkan.cleanUp();
}
@Inject(
method = {"method_15993"},
at = {@At("HEAD")}
)
public void onResolutionChanged(CallbackInfo ci) {
Renderer.scheduleSwapChainUpdate();
}
@Redirect(
method = {"method_1507"},
at = @At(
value = "FIELD",
target = "Lnet/minecraft/class_310;field_1743:Z",
opcode = 181
)
)
private void keepVar(class_310 instance, boolean value) {
}
}
Download file