From 8acb135cb014d6a1387e97312b09cae80cfb56dd Mon Sep 17 00:00:00 2001 From: Mira Grudzinska Date: Tue, 17 Sep 2024 23:00:13 +0200 Subject: [PATCH] wg_engine: fix vertices while line joining Vertex ordering during line join needed adjustment. Vertices were forming two partialy overlapping triangles instead of a rectangle. The issue was rarely visible since the resulting rectangle often overlapped significantly with other rectangles. --- src/renderer/wg_engine/tvgWgGeometry.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/renderer/wg_engine/tvgWgGeometry.cpp b/src/renderer/wg_engine/tvgWgGeometry.cpp index e6de6ff6..09097e08 100755 --- a/src/renderer/wg_engine/tvgWgGeometry.cpp +++ b/src/renderer/wg_engine/tvgWgGeometry.cpp @@ -336,7 +336,7 @@ void WgGeometryData::appendStrokeJoin(const WgPoint& v0, const WgPoint& v1, cons if (join == StrokeJoin::Round) { appendCircle(v1, halfWidth); } else if (join == StrokeJoin::Bevel) { - appendRect(v1 - offset0, v1 + offset0, v1 - offset1, v1 + offset1); + appendRect(v1 - offset0, v1 + offset1, v1 - offset1, v1 + offset0); } else if (join == StrokeJoin::Miter) { WgPoint nrm = (nrm0 + nrm1); if (!tvg::zero(dir0.x * dir1.y - dir0.y * dir1.x)) { @@ -348,7 +348,7 @@ void WgGeometryData::appendStrokeJoin(const WgPoint& v0, const WgPoint& v1, cons appendRect(v1 + nrm * (halfWidth / cosine), v1 + offset0, v1 + offset1, v1); appendRect(v1 - nrm * (halfWidth / cosine), v1 - offset0, v1 - offset1, v1); } else { - appendRect(v1 - offset0, v1 + offset0, v1 - offset1, v1 + offset1); + appendRect(v1 - offset0, v1 + offset1, v1 - offset1, v1 + offset0); } } }