diff options
| author | Aaron <51387595+AzureAaron@users.noreply.github.com> | 2024-10-22 17:35:29 -0400 |
|---|---|---|
| committer | Aaron <51387595+AzureAaron@users.noreply.github.com> | 2024-10-22 17:35:29 -0400 |
| commit | e0e07ed86d9dadacc09c617f83ca663c66b46cce (patch) | |
| tree | 5a6a8c7e4b27adcd60e345de97f05b3fe763a8a9 /src/main/java | |
| parent | 47762af855ae29bd0742f2beff7c6b81523f9fec (diff) | |
| download | Skyblocker-e0e07ed86d9dadacc09c617f83ca663c66b46cce.tar.gz Skyblocker-e0e07ed86d9dadacc09c617f83ca663c66b46cce.tar.bz2 Skyblocker-e0e07ed86d9dadacc09c617f83ca663c66b46cce.zip | |
Always use Vanilla render thread scheduling
Sodium abandoned their plans regarding this and deleted their API
Diffstat (limited to 'src/main/java')
| -rw-r--r-- | src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java | 36 |
1 files changed, 5 insertions, 31 deletions
diff --git a/src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java b/src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java index 9f24e2e7..8980f348 100644 --- a/src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java +++ b/src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java @@ -1,7 +1,7 @@ package de.hysky.skyblocker.utils.render; +import com.mojang.blaze3d.systems.RenderCall; import com.mojang.blaze3d.systems.RenderSystem; -import com.mojang.logging.LogUtils; import de.hysky.skyblocker.SkyblockerMod; import de.hysky.skyblocker.annotations.Init; import de.hysky.skyblocker.mixins.accessors.BeaconBlockEntityRendererInvoker; @@ -37,17 +37,11 @@ import org.joml.Matrix3f; import org.joml.Matrix4f; import org.joml.Vector3f; import org.lwjgl.opengl.GL11; -import org.slf4j.Logger; import java.awt.*; -import java.lang.invoke.MethodHandle; -import java.lang.invoke.MethodHandles; -import java.lang.invoke.MethodType; public class RenderHelper { - private static final Logger LOGGER = LogUtils.getLogger(); private static final Identifier TRANSLUCENT_DRAW = Identifier.of(SkyblockerMod.NAMESPACE, "translucent_draw"); - private static final MethodHandle SCHEDULE_DEFERRED_RENDER_TASK = getDeferredRenderTaskHandle(); private static final Vec3d ONE = new Vec3d(1, 1, 1); private static final int MAX_OVERWORLD_BUILD_HEIGHT = 319; private static final MinecraftClient CLIENT = MinecraftClient.getInstance(); @@ -345,17 +339,11 @@ public class RenderHelper { profiler.pop(); } - public static void runOnRenderThread(Runnable runnable) { + public static void runOnRenderThread(RenderCall renderCall) { if (RenderSystem.isOnRenderThread()) { - runnable.run(); - } else if (SCHEDULE_DEFERRED_RENDER_TASK != null) { //Sodium - try { - SCHEDULE_DEFERRED_RENDER_TASK.invokeExact(runnable); - } catch (Throwable t) { - LOGGER.error("[Skyblocker] Failed to schedule a render task!", t); - } - } else { //Vanilla - RenderSystem.recordRenderCall(runnable::run); + renderCall.execute(); + } else { + RenderSystem.recordRenderCall(renderCall); } } @@ -416,18 +404,4 @@ public class RenderHelper { public static void renderNineSliceColored(DrawContext context, Identifier texture, int x, int y, int width, int height, Color color) { renderNineSliceColored(context, texture, x, y, width, height, ColorHelper.getArgb(color.getAlpha(), color.getRed(), color.getGreen(), color.getBlue())); } - - // TODO Get rid of reflection once the new Sodium is released - private static MethodHandle getDeferredRenderTaskHandle() { - try { - Class<?> deferredTaskClass = Class.forName("me.jellysquid.mods.sodium.client.render.util.DeferredRenderTask"); - - MethodHandles.Lookup lookup = MethodHandles.publicLookup(); - MethodType mt = MethodType.methodType(void.class, Runnable.class); - - return lookup.findStatic(deferredTaskClass, "schedule", mt); - } catch (Throwable ignored) {} - - return null; - } } |
