diff options
author | Aaron <51387595+AzureAaron@users.noreply.github.com> | 2023-11-11 20:14:46 -0500 |
---|---|---|
committer | Aaron <51387595+AzureAaron@users.noreply.github.com> | 2023-11-11 20:14:46 -0500 |
commit | c475bbba4cd28f3df65e5147b32e960600e452cb (patch) | |
tree | 87da26b559e118900debb6bd9c939aaa48ffbb7a /src/main/java/de | |
parent | be75325edd603ee9d7a46c12cd9225d0d82f75da (diff) | |
download | Skyblocker-c475bbba4cd28f3df65e5147b32e960600e452cb.tar.gz Skyblocker-c475bbba4cd28f3df65e5147b32e960600e452cb.tar.bz2 Skyblocker-c475bbba4cd28f3df65e5147b32e960600e452cb.zip |
Refactor off-thread RenderSystem calls
Diffstat (limited to 'src/main/java/de')
-rw-r--r-- | src/main/java/de/hysky/skyblocker/skyblock/special/SpecialEffects.java | 11 | ||||
-rw-r--r-- | src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java | 10 |
2 files changed, 12 insertions, 9 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/special/SpecialEffects.java b/src/main/java/de/hysky/skyblocker/skyblock/special/SpecialEffects.java index fba447ea..bc4f98c2 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/special/SpecialEffects.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/special/SpecialEffects.java @@ -1,8 +1,8 @@ package de.hysky.skyblocker.skyblock.special; -import com.mojang.blaze3d.systems.RenderSystem; import de.hysky.skyblocker.config.SkyblockerConfigManager; import de.hysky.skyblocker.utils.Utils; +import de.hysky.skyblocker.utils.render.RenderHelper; import net.fabricmc.fabric.api.client.message.v1.ClientReceiveMessageEvents; import net.minecraft.client.MinecraftClient; import net.minecraft.enchantment.Enchantments; @@ -58,15 +58,10 @@ public class SpecialEffects { ItemStack stack = getStackFromName(matcher.group("item")); if (!stack.isEmpty()) { - if (RenderSystem.isOnRenderThread()) { + RenderHelper.runOnRenderThread(() -> { client.particleManager.addEmitter(client.player, ParticleTypes.PORTAL, 30); client.gameRenderer.showFloatingItem(stack); - } else { - RenderSystem.recordRenderCall(() -> { - client.particleManager.addEmitter(client.player, ParticleTypes.PORTAL, 30); - client.gameRenderer.showFloatingItem(stack); - }); - } + }); } } } 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 9c6826af..7f3a63a3 100644 --- a/src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java +++ b/src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java @@ -245,11 +245,19 @@ public class RenderHelper { Tessellator tessellator = RenderSystem.renderThreadTesselator(); BufferBuilder buffer = tessellator.getBuffer(); VertexConsumerProvider.Immediate immediate = VertexConsumerProvider.immediate(buffer); - + immediate.draw(SRenderLayers.getFilled()); immediate.draw(SRenderLayers.getFilledThroughWalls()); } + public static void runOnRenderThread(Runnable runnable) { + if (RenderSystem.isOnRenderThread()) { + runnable.run(); + } else { + RenderSystem.recordRenderCall(() -> runnable.run()); + } + } + /** * Adds the title to {@link TitleContainer} and {@link #playNotificationSound() plays the notification sound} if the title is not in the {@link TitleContainer} already. * No checking needs to be done on whether the title is in the {@link TitleContainer} already by the caller. |