Skip to content

Commit 89aab57

Browse files
committed
Render default PolyUI instance on every frame, not just HUD (fixes #579)
1 parent e041e70 commit 89aab57

File tree

3 files changed

+30
-4
lines changed

3 files changed

+30
-4
lines changed

minecraft/src/main/java/org/polyfrost/oneconfig/internal/mixin/events/Mixin_RenderEvent.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package org.polyfrost.oneconfig.internal.mixin.events;
22

33
import dev.deftu.omnicore.api.client.render.OmniRenderTicks;
4+
import dev.deftu.omnicore.api.client.render.OmniRenderingContext;
5+
import dev.deftu.omnicore.api.client.render.stack.OmniMatrixStacks;
46
import net.minecraft.client.Minecraft;
57
import org.polyfrost.oneconfig.api.event.v1.EventManager;
68
import org.polyfrost.oneconfig.api.event.v1.events.RenderEvent;
@@ -29,13 +31,27 @@ public class Mixin_RenderEvent {
2931
private void renderTickStartCallback(CallbackInfo ci) {
3032
RenderEvent e = RenderEvent.Pre.INSTANCE;
3133
e.deltaTicks = OmniRenderTicks.get();
34+
e.ctx = new OmniRenderingContext(
35+
//#if MC >= 1.20.1
36+
//$$ null,
37+
//#endif
38+
OmniMatrixStacks.create()
39+
);
40+
3241
EventManager.INSTANCE.post(e);
3342
}
3443

3544
@Inject(method = "runGameLoop", at = @At(value = "INVOKE", target = UPDATE_CAMERA_AND_RENDER, shift = At.Shift.AFTER))
3645
private void renderTickEndCallback(CallbackInfo ci) {
3746
RenderEvent e = RenderEvent.Post.INSTANCE;
3847
e.deltaTicks = OmniRenderTicks.get();
48+
e.ctx = new OmniRenderingContext(
49+
//#if MC >= 1.20.1
50+
//$$ null,
51+
//#endif
52+
OmniMatrixStacks.create()
53+
);
54+
3955
EventManager.INSTANCE.post(e);
4056
}
4157

modules/events/src/main/java/org/polyfrost/oneconfig/api/event/v1/events/RenderEvent.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@
2626

2727
package org.polyfrost.oneconfig.api.event.v1.events;
2828

29+
import dev.deftu.omnicore.api.client.render.OmniRenderingContext;
30+
2931
/**
3032
* Called when a game tick is started / ended.
3133
*/
@@ -36,10 +38,16 @@ public abstract class RenderEvent implements Event {
3638
*/
3739
public float deltaTicks;
3840

41+
public OmniRenderingContext ctx;
42+
3943
public float component1() {
4044
return deltaTicks;
4145
}
4246

47+
public OmniRenderingContext component2() {
48+
return ctx;
49+
}
50+
4351
public static class Pre extends RenderEvent {
4452
public static final Pre INSTANCE = new Pre();
4553

modules/ui/src/main/java/org/polyfrost/oneconfig/api/ui/v1/UIManager.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@
4747
import org.polyfrost.oneconfig.api.event.v1.EventDelay;
4848
import org.polyfrost.oneconfig.api.event.v1.EventManager;
4949
import org.polyfrost.oneconfig.api.event.v1.events.HudRenderEvent;
50+
import org.polyfrost.oneconfig.api.event.v1.events.RenderEvent;
5051
import org.polyfrost.oneconfig.api.event.v1.events.ResizeEvent;
5152
import org.polyfrost.oneconfig.api.event.v1.events.WorldEvent;
5253
import org.polyfrost.oneconfig.api.platform.v1.Platform;
@@ -58,7 +59,6 @@
5859
import org.polyfrost.polyui.renderer.Renderer;
5960
import org.polyfrost.polyui.renderer.Window;
6061

61-
import java.awt.*;
6262
import java.util.ServiceLoader;
6363
import java.util.function.Consumer;
6464

@@ -126,9 +126,7 @@ default PolyUI createDefault() {
126126
polyUI.setWindow(createWindow());
127127
polyUI.resize(Platform.screen().windowWidth(), Platform.screen().windowHeight(), false);
128128

129-
EventManager.register(HudRenderEvent.class, event -> {
130-
OmniRenderingContext ctx = event.ctx;
131-
129+
Consumer<OmniRenderingContext> renderer = (ctx) -> {
132130
OmniColorMask.DEFAULT.submit(false);
133131
framebuffer.clearColor(0f, 0f, 0f, 0f); // Clear to transparent black
134132
framebuffer.clearDepthStencil(1.0, 0);
@@ -157,6 +155,10 @@ default PolyUI createDefault() {
157155

158156
return Unit.INSTANCE;
159157
});
158+
};
159+
160+
EventManager.register(RenderEvent.class, event -> {
161+
renderer.accept(event.ctx);
160162
});
161163

162164
EventManager.register(ResizeEvent.class, event -> {

0 commit comments

Comments
 (0)