Backend: Begin preparing for modern rendering - #3675
Conversation
There was a problem hiding this comment.
Pull Request Overview
This PR begins laying the groundwork for modern rendering by introducing new context classes and a MatrixStack to replace deprecated OpenGL calls. Key changes include updating documentation to reflect modern rendering conventions, outlining compatibility considerations for modern Minecraft versions, and minor text formatting updates.
Files not reviewed (19)
- src/main/java/at/hannibal2/skyhanni/api/minecraftevents/RenderEvents.kt: Language not supported
- src/main/java/at/hannibal2/skyhanni/data/GuiEditManager.kt: Language not supported
- src/main/java/at/hannibal2/skyhanni/data/RenderData.kt: Language not supported
- src/main/java/at/hannibal2/skyhanni/data/mob/MobDebug.kt: Language not supported
- src/main/java/at/hannibal2/skyhanni/events/DrawScreenAfterEvent.kt: Language not supported
- src/main/java/at/hannibal2/skyhanni/events/GuiContainerEvent.kt: Language not supported
- src/main/java/at/hannibal2/skyhanni/events/GuiRenderEvent.kt: Language not supported
- src/main/java/at/hannibal2/skyhanni/events/GuiRenderItemEvent.kt: Language not supported
- src/main/java/at/hannibal2/skyhanni/events/RenderGuiItemOverlayEvent.kt: Language not supported
- src/main/java/at/hannibal2/skyhanni/events/minecraft/SkyHanniRenderWorldEvent.kt: Language not supported
- src/main/java/at/hannibal2/skyhanni/events/render/gui/DrawBackgroundEvent.kt: Language not supported
- src/main/java/at/hannibal2/skyhanni/events/render/gui/GameOverlayRenderPostEvent.kt: Language not supported
- src/main/java/at/hannibal2/skyhanni/events/render/gui/GameOverlayRenderPreEvent.kt: Language not supported
- src/main/java/at/hannibal2/skyhanni/events/render/gui/RenderingTickEvent.kt: Language not supported
- src/main/java/at/hannibal2/skyhanni/events/render/gui/ScreenDrawnEvent.kt: Language not supported
- src/main/java/at/hannibal2/skyhanni/features/chroma/ChromaManager.kt: Language not supported
- src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonLividFinder.kt: Language not supported
- src/main/java/at/hannibal2/skyhanni/features/fishing/trophy/GeyserFishing.kt: Language not supported
- src/main/java/at/hannibal2/skyhanni/features/garden/pests/PestParticleLine.kt: Language not supported
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
|
This pull request has conflicts with the base branch "beta". Please resolve those so we can test out your changes. |
# Conflicts: # versions/mapping-1.21.4-1.16.5-fabric.txt
|
Conflicts have been resolved! 🎉 |
hannibal002
left a comment
There was a problem hiding this comment.
SkyHanni 2.10.0: Caught a InvocationTargetException in at.hannibal2.skyhanni.features.misc.TimeFeatures.onRenderOverlay(at.hannibal2.skyhanni.events.GuiRenderEvent$GuiOverlayRenderEvent) at GuiRenderEvent.GuiOverlayRenderEvent: null
Caused by java.lang.reflect.InvocationTargetException: null
at SH.api.event.EventListeners.createSingleParameterConsumer$lambda$9(EventListeners.kt:84)
at SH.api.event.EventListeners.addListener$lambda$2(EventListeners.kt:32)
at SH.data.RenderData.renderOverlay(RenderData.kt:61)
at SH.data.RenderData.onRenderOverlayPre(RenderData.kt:29)
at SH.api.event.EventListeners.createSingleParameterConsumer$lambda$9(EventListeners.kt:84)
at SH.api.event.EventListeners.addListener$lambda$2(EventListeners.kt:32)
at SH.api.minecraftevents.RenderEvents.onRenderOverlayPre(RenderEvents.kt:52)
at FML.common.eventhandler.EventBus.post(EventBus.java:140)
Caused by java.lang.NullPointerException: null
at SH.utils.RenderUtils.renderString0(RenderUtils.kt:459)
at SH.utils.RenderUtils.renderString(RenderUtils.kt:439)
at SH.utils.RenderUtils.renderString$default(RenderUtils.kt:437)
at SH.features.misc.TimeFeatures.onRenderOverlay(TimeFeatures.kt:45)
at SH.api.event.EventListeners.createSingleParameterConsumer$lambda$9(EventListeners.kt:84)
at SH.api.event.EventListeners.addListener$lambda$2(EventListeners.kt:32)
at SH.data.RenderData.renderOverlay(RenderData.kt:61)
at SH.data.RenderData.onRenderOverlayPre(RenderData.kt:29)
at SH.api.event.EventListeners.createSingleParameterConsumer$lambda$9(EventListeners.kt:84)
at SH.api.event.EventListeners.addListener$lambda$2(EventListeners.kt:32)
at SH.api.minecraftevents.RenderEvents.onRenderOverlayPre(RenderEvents.kt:52)
at FML.common.eventhandler.EventBus.post(EventBus.java:140)
|
Joined skyblock. seems like this only happened once and not consistently. maybe a simple "?: return" might work? |
|
Also once the pr got merged i suggest this patch (or even commit this in the pr directly, up to you @CalMWolfs ) Patch |
I don't get this error and it also doesnt look like its caused by this pr but idk? if you can give me more steps to reproduce i can try to fix but idk. I have the setting on an am joining sb + switching lobbies |
Also no cant do this, while this works on 1.8.9 because |
|
Don't get distracted by InvocationTargetException in the event handler part. This is something new the error manager doesn't yet filter out. The actual error here is the second catch the render element being null. Also for my patch: yeah fine. We should still eventually merge similar events into the same files though |
Fixed error in latest commit |
2 Detekt Failures were detected:
|
Dependencies
What
Started changes for modern rendering. This pr creates 3 classes,
DrawContext,WorldRenderContextandMatrixStackwhich are used for rendering stuff. Modern versions do not allow calls such asGlStateManager.popMatrix()orGlStateManager.translate()and instead must use theMatrixStackthat is stored in the respective contexts. This pr adds these contexts to the events that will need it and the context will be used in a future pr.Merging up to this pr gets down to

Changelog Technical Details