From 00ab8c254da839930639261f60fcb600b7807fea Mon Sep 17 00:00:00 2001 From: Hermet Park Date: Thu, 14 Sep 2023 10:54:30 +0900 Subject: [PATCH] loader/lottie: fix a missing opacity propagation. the propagated opacity size should be accumulated. --- src/loaders/lottie/tvgLottieBuilder.cpp | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/loaders/lottie/tvgLottieBuilder.cpp b/src/loaders/lottie/tvgLottieBuilder.cpp index caf29d21..2192e315 100644 --- a/src/loaders/lottie/tvgLottieBuilder.cpp +++ b/src/loaders/lottie/tvgLottieBuilder.cpp @@ -168,7 +168,7 @@ static void _updateTransform(LottieTransform* transform, int32_t frameNo, Render auto pmatrix = PP(ctx.propagator)->transform(); ctx.propagator->transform(pmatrix ? mathMultiply(pmatrix, &matrix) : matrix); - ctx.propagator->opacity(opacity); + ctx.propagator->opacity(MULTIPLY(opacity, PP(ctx.propagator)->opacity)); } @@ -180,9 +180,6 @@ static void _updateGroup(LottieGroup* parent, LottieGroup* group, int32_t frameN auto opacity = group->opacity(frameNo); if (opacity == 0) return; - //TODO: move transform to layer. - if (group->transform) TVGERR("LOTTIE", "group transform is not working?!"); - auto ctx2 = ctx; _updateChildren(group, frameNo, ctx2); } @@ -942,8 +939,6 @@ void LottieBuilder::build(LottieComposition* comp) _buildPrecomp(comp, comp->root); - //TODO: Process repeater objects? - if (!update(comp, 0)) return; //viewport clip