From e0588d39f0d77154dab7b1e8c7cb497c3eef8a59 Mon Sep 17 00:00:00 2001 From: Hermet Park Date: Thu, 26 Dec 2024 18:01:37 +0900 Subject: [PATCH] lottie: Fixed a regression in masking logic The scene tree should be arranged prior to appending the masking. This was caused by 838785d75a79f0dbdb12273b4406b3f650855bbf --- src/loaders/lottie/tvgLottieBuilder.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/loaders/lottie/tvgLottieBuilder.cpp b/src/loaders/lottie/tvgLottieBuilder.cpp index e37e2754..c0b824ab 100644 --- a/src/loaders/lottie/tvgLottieBuilder.cpp +++ b/src/loaders/lottie/tvgLottieBuilder.cpp @@ -1227,7 +1227,14 @@ void LottieBuilder::updateText(LottieLayer* layer, float frameNo) void LottieBuilder::updateMaskings(LottieLayer* layer, float frameNo) { - if (layer->masks.count == 0) return; + if (layer->masks.count == 0) return; + + //Introduce an intermediate scene for embracing the matte + masking + if (layer->matteTarget) { + auto scene = Scene::gen().release(); + scene->push(cast(layer->scene)); + layer->scene = scene; + } Shape* pShape = nullptr; CompositeMethod pMethod; @@ -1282,13 +1289,6 @@ void LottieBuilder::updateMaskings(LottieLayer* layer, float frameNo) pOpacity = opacity; pMethod = method; } - - //Introduce an intermediate scene for embracing the matte + masking - if (layer->matteTarget) { - auto scene = Scene::gen().release(); - scene->push(cast(layer->scene)); - layer->scene = scene; - } }