From df8d327ebb745ecc680002ded999afdf3f9f2255 Mon Sep 17 00:00:00 2001 From: Hermet Park Date: Thu, 8 May 2025 21:51:03 +0900 Subject: [PATCH] sw_engine: fixed a a regression bug during main dev borker by 176573ff25d741f2dd0a338d39193aeef12aa541 --- src/renderer/sw_engine/tvgSwRenderer.cpp | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/renderer/sw_engine/tvgSwRenderer.cpp b/src/renderer/sw_engine/tvgSwRenderer.cpp index 3bbea0bc..c93e6ff4 100644 --- a/src/renderer/sw_engine/tvgSwRenderer.cpp +++ b/src/renderer/sw_engine/tvgSwRenderer.cpp @@ -118,7 +118,7 @@ struct SwShapeTask : SwTask auto strokeWidth = validStrokeWidth(clipper); SwBBox renderRegion{}; - auto updateShape = (RenderUpdateFlag::Path | RenderUpdateFlag::Transform | RenderUpdateFlag::Clip); + auto updateShape = flags & (RenderUpdateFlag::Path | RenderUpdateFlag::Transform | RenderUpdateFlag::Clip); auto updateFill = false; //Shape @@ -143,13 +143,17 @@ struct SwShapeTask : SwTask } } //Stroke - if ((updateShape || flags & RenderUpdateFlag::Stroke) && (strokeWidth > 0.0f)) { - shapeResetStroke(&shape, rshape, transform); - if (!shapeGenStrokeRle(&shape, rshape, transform, bbox, renderRegion, mpool, tid)) goto err; - if (auto fill = rshape->strokeFill()) { - auto ctable = (flags & RenderUpdateFlag::GradientStroke) ? true : false; - if (ctable) shapeResetStrokeFill(&shape); - if (!shapeGenStrokeFillColors(&shape, fill, transform, surface, opacity, ctable)) goto err; + if (updateShape || flags & RenderUpdateFlag::Stroke) { + if (strokeWidth > 0.0f) { + shapeResetStroke(&shape, rshape, transform); + if (!shapeGenStrokeRle(&shape, rshape, transform, bbox, renderRegion, mpool, tid)) goto err; + if (auto fill = rshape->strokeFill()) { + auto ctable = (flags & RenderUpdateFlag::GradientStroke) ? true : false; + if (ctable) shapeResetStrokeFill(&shape); + if (!shapeGenStrokeFillColors(&shape, fill, transform, surface, opacity, ctable)) goto err; + } + } else { + shapeDelStroke(&shape); } }