From 5c2be47e57d477ce373191fcd4e1603addcde939 Mon Sep 17 00:00:00 2001 From: Hermet Park Date: Tue, 21 Nov 2023 11:17:54 +0900 Subject: [PATCH] lottie/builder: hotfix, invalid stroking scaling. There is a buggy workaround code that rewinds the stroke scaling. Issue: https://github.com/thorvg/thorvg/issues/1730 --- src/loaders/lottie/tvgLottieBuilder.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/loaders/lottie/tvgLottieBuilder.cpp b/src/loaders/lottie/tvgLottieBuilder.cpp index a38907b6..1afbe1aa 100644 --- a/src/loaders/lottie/tvgLottieBuilder.cpp +++ b/src/loaders/lottie/tvgLottieBuilder.cpp @@ -194,7 +194,8 @@ static void _updateTransform(TVG_UNUSED LottieGroup* parent, LottieObject** chil //FIXME: preserve the stroke width. too workaround, need a better design. if (P(ctx.propagator)->rs.strokeWidth() > 0.0f) { - ctx.propagator->stroke(P(ctx.propagator)->rs.strokeWidth() / sqrt(matrix.e11 * matrix.e11 + matrix.e12 * matrix.e12)); + auto denominator = sqrtf(matrix.e11 * matrix.e11 + matrix.e12 * matrix.e12); + if (denominator > 1.0f) ctx.propagator->stroke(ctx.propagator->strokeWidth() / denominator); } }