From 5778bda4db0cc9dd291b6782281cd9bcbcb10dd9 Mon Sep 17 00:00:00 2001 From: Hermet Park Date: Mon, 14 Aug 2023 16:35:20 +0900 Subject: [PATCH] loader/lottie: do not build layers if the frame is out. --- src/loaders/lottie/tvgLottieBuilder.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/loaders/lottie/tvgLottieBuilder.cpp b/src/loaders/lottie/tvgLottieBuilder.cpp index ba3cb50a..5c224bda 100644 --- a/src/loaders/lottie/tvgLottieBuilder.cpp +++ b/src/loaders/lottie/tvgLottieBuilder.cpp @@ -43,6 +43,16 @@ static bool _invisible(LottieGroup* group, int32_t frameNo) else return false; } +static bool _invisible(LottieLayer* layer, int32_t frameNo) +{ + if (frameNo < layer->inFrame || frameNo > layer->outFrame) { + if (layer->scene) layer->scene->opacity(0); + return true; + } + + return _invisible(static_cast(layer), frameNo); +} + static bool _updateTransform(LottieTransform* transform, int32_t frameNo, bool autoOrient, Matrix& matrix, uint8_t& opacity) {