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; - } }