From c5b08741252d61bfc30ad16d986bc1db504e2ce5 Mon Sep 17 00:00:00 2001 From: LouisQuepierts <97670116+LouisQuepierts@users.noreply.github.com> Date: Wed, 3 Jun 2026 21:15:04 +0800 Subject: [PATCH 1/2] fix(rendering): correct bounds for SdfGraphics render elements --- .../lib/v2/rendering/sdf/SdfGraphics.java | 38 ++++--------------- 1 file changed, 7 insertions(+), 31 deletions(-) diff --git a/module.rendering/src/main/java/dev/anvilcraft/lib/v2/rendering/sdf/SdfGraphics.java b/module.rendering/src/main/java/dev/anvilcraft/lib/v2/rendering/sdf/SdfGraphics.java index 75304500..e84a2e14 100644 --- a/module.rendering/src/main/java/dev/anvilcraft/lib/v2/rendering/sdf/SdfGraphics.java +++ b/module.rendering/src/main/java/dev/anvilcraft/lib/v2/rendering/sdf/SdfGraphics.java @@ -318,12 +318,16 @@ private static void _draw( var slice = ubo.slice(offset, SDF_PARAMETER_SIZE); var state = new RenderState( pose, - x0, y0, - x1, y1, parameters.getColor(), index, ubo.slice(), - null + graphics.peekScissorStack(), + LibGuiElementRenderState.getBounds( + new Matrix3x2f(graphics.pose()), + x0, y0, + x1, y1, + graphics.peekScissorStack() + ) ); if (debug) { @@ -353,10 +357,6 @@ private static boolean _collide( private record RenderState( Matrix3x2f pose, - float x0, - float y0, - float x1, - float y1, int color, int index, GpuBufferSlice sdfParametersUbo, @@ -364,30 +364,6 @@ private record RenderState( @Nullable ScreenRectangle bounds ) implements LibGuiElementRenderState { - private RenderState( - Matrix3x2f pose, - float x0, - float y0, - float x1, - float y1, - int color, - int index, - GpuBufferSlice sdfParametersUbo, - @Nullable ScreenRectangle scissorArea - ) { - this( - pose, - x0, - y0, - x1, - y1, - color, - index, - sdfParametersUbo, scissorArea, - LibGuiElementRenderState.getBounds(pose, x0, y0, x1, y1, scissorArea) - ); - } - @Override public void buildVertices(VertexConsumer consumer) { consumer.addVertexWith2DPose(this.pose(), -0.5f, -0.5f).setUv(0, 0).setUv1(this.index(), 0).setColor(this.color()); From 760127aa539f8bd2c95992037ce16d667edddb14 Mon Sep 17 00:00:00 2001 From: LouisQuepierts <97670116+LouisQuepierts@users.noreply.github.com> Date: Wed, 3 Jun 2026 21:31:27 +0800 Subject: [PATCH 2/2] fix(rendering): correct rectangle positioning for sdSegment in SdfGraphics --- .../dev/anvilcraft/lib/v2/rendering/sdf/SdfGraphics.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/module.rendering/src/main/java/dev/anvilcraft/lib/v2/rendering/sdf/SdfGraphics.java b/module.rendering/src/main/java/dev/anvilcraft/lib/v2/rendering/sdf/SdfGraphics.java index e84a2e14..c9ac6a48 100644 --- a/module.rendering/src/main/java/dev/anvilcraft/lib/v2/rendering/sdf/SdfGraphics.java +++ b/module.rendering/src/main/java/dev/anvilcraft/lib/v2/rendering/sdf/SdfGraphics.java @@ -121,11 +121,11 @@ public SdfGraphics segment( var width = Math.abs(x1 - x0); var height = Math.abs(y1 - y0); - var halfWidth = width * 0.5f; - var halfHeight = height * 0.5f; + var halfWidth = (x1 - x0) * 0.5f; + var halfHeight = (y1 - y0) * 0.5f; this.parameters .getRect() - .set(left, top, width, height); + .set(left + width / 2, top + height / 2, width, height); this.parameters .segment( -halfWidth, -halfHeight, +halfWidth, +halfHeight); return this;