From 22572118520aeaffd9c7d04d6e87165a5f629b99 Mon Sep 17 00:00:00 2001 From: Hermet Park Date: Tue, 12 Sep 2023 11:06:25 +0900 Subject: [PATCH] sw_engine: fix a regression bug by 0dafe9ff64a5975b4b08e84f2716b61ff3d68d18 rectified the stroke scale factor acquisition. --- src/common/tvgMath.h | 2 ++ src/renderer/sw_engine/tvgSwRenderer.cpp | 8 ++------ 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/common/tvgMath.h b/src/common/tvgMath.h index 5f2fe9ef..004fff1e 100644 --- a/src/common/tvgMath.h +++ b/src/common/tvgMath.h @@ -54,6 +54,7 @@ static inline bool mathEqual(float a, float b) return (fabsf(a - b) < FLT_EPSILON); } + static inline bool mathEqual(const Matrix& a, const Matrix& b) { if (!mathEqual(a.e11, b.e11) || !mathEqual(a.e12, b.e12) || !mathEqual(a.e13, b.e13) || @@ -64,6 +65,7 @@ static inline bool mathEqual(const Matrix& a, const Matrix& b) return true; } + static inline bool mathRightAngle(const Matrix* m) { auto radian = fabsf(atan2f(m->e21, m->e11)); diff --git a/src/renderer/sw_engine/tvgSwRenderer.cpp b/src/renderer/sw_engine/tvgSwRenderer.cpp index 7bc8d957..fc6e2fdb 100644 --- a/src/renderer/sw_engine/tvgSwRenderer.cpp +++ b/src/renderer/sw_engine/tvgSwRenderer.cpp @@ -96,12 +96,8 @@ struct SwShapeTask : SwTask if (!rshape->stroke->fill && (MULTIPLY(rshape->stroke->color[3], opacity) == 0)) return 0.0f; if (mathZero(rshape->stroke->trim.begin - rshape->stroke->trim.end)) return 0.0f; - - if (transform) { - if (transform->e11 > transform->e22) width *= transform->e11; - else width *= transform->e22; - } - return fabsf(width); + if (transform) return (width / sqrt(transform->e11 * transform->e11 + transform->e12 * transform->e12)); + else return width; }