Gl debug msg logging

This commit is contained in:
mcrcortex
2025-05-17 12:12:47 +10:00
parent 5bee5dd1d1
commit 2249e96496
3 changed files with 41 additions and 1 deletions

View File

@@ -0,0 +1,37 @@
package me.cortex.voxy.client.mixin.minecraft;
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
import net.minecraft.client.gl.GlDebug;
import org.slf4j.Logger;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Unique;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
@Mixin(GlDebug.class)
public class MixinGlDebug {
@WrapOperation(method = "onDebugMessage", at = @At(value = "INVOKE", target = "Lorg/slf4j/Logger;info(Ljava/lang/String;Ljava/lang/Object;)V"))
private void voxy$wrapDebug(Logger instance, String base, Object msgObj, Operation<Void> original) {
if (msgObj instanceof GlDebug.DebugMessage msg) {
var throwable = new Throwable(msg.toString());
if (isCausedByVoxy(throwable.getStackTrace())) {
original.call(instance, base, throwable);
} else {
original.call(instance, base, msg);
}
} else {
original.call(instance, base, msgObj);
}
}
@Unique
private boolean isCausedByVoxy(StackTraceElement[] trace) {
for (var elem : trace) {
if (elem.getClassName().startsWith("me.cortex.voxy")) {
return true;
}
}
return false;
}
}

View File

@@ -11,6 +11,7 @@
"minecraft.MixinThreadExecutor",
"minecraft.MixinWindow",
"minecraft.MixinWorldRenderer",
"minecraft.MixinGlDebug",
"sodium.MixinDefaultChunkRenderer",
"sodium.MixinRenderSectionManager",
"sodium.MixinSodiumOptionsGUI"

View File

@@ -29,3 +29,5 @@ accessible field net/minecraft/client/gl/GlGpuBuffer id I
accessible field net/minecraft/client/gl/GlResourceManager currentProgram Lnet/minecraft/client/gl/ShaderProgram;
accessible field net/minecraft/client/gl/GlResourceManager currentPipeline Lcom/mojang/blaze3d/pipeline/RenderPipeline;
accessible class net/minecraft/client/gl/GlDebug$DebugMessage