From dd6956a7ac812a829b30d4298fb094db881bb849 Mon Sep 17 00:00:00 2001 From: Hermet Park Date: Fri, 24 Nov 2023 12:19:24 +0900 Subject: [PATCH] lottie/builder: revert the clipper cache. This ia a buggy, We will revisit this optimization with a perfect solution. --- src/loaders/lottie/tvgLottieBuilder.cpp | 8 ++------ src/loaders/lottie/tvgLottieModel.cpp | 2 -- src/loaders/lottie/tvgLottieModel.h | 3 --- 3 files changed, 2 insertions(+), 11 deletions(-) diff --git a/src/loaders/lottie/tvgLottieBuilder.cpp b/src/loaders/lottie/tvgLottieBuilder.cpp index a9401e8f..0e58ab33 100644 --- a/src/loaders/lottie/tvgLottieBuilder.cpp +++ b/src/loaders/lottie/tvgLottieBuilder.cpp @@ -817,12 +817,8 @@ static void _updatePrecomp(LottieLayer* precomp, float frameNo) //clip the layer viewport if (precomp->w > 0 && precomp->h > 0) { - if (!precomp->cache.clipper) { - precomp->cache.clipper = Shape::gen().release(); - PP(precomp->cache.clipper)->ref(); - precomp->cache.clipper->appendRect(0, 0, static_cast(precomp->w), static_cast(precomp->h)); - } - auto clipper = precomp->cache.clipper; + auto clipper = Shape::gen().release(); + clipper->appendRect(0, 0, static_cast(precomp->w), static_cast(precomp->h)); clipper->transform(precomp->cache.matrix); //TODO: remove the intermediate scene.... diff --git a/src/loaders/lottie/tvgLottieModel.cpp b/src/loaders/lottie/tvgLottieModel.cpp index ffc416e7..73f3e67a 100644 --- a/src/loaders/lottie/tvgLottieModel.cpp +++ b/src/loaders/lottie/tvgLottieModel.cpp @@ -156,8 +156,6 @@ LottieLayer::~LottieLayer() delete(matte.target); delete(transform); - - if (cache.clipper && PP(cache.clipper)->unref() == 0) delete(cache.clipper); } void LottieLayer::prepare() diff --git a/src/loaders/lottie/tvgLottieModel.h b/src/loaders/lottie/tvgLottieModel.h index d930db89..68263c4a 100644 --- a/src/loaders/lottie/tvgLottieModel.h +++ b/src/loaders/lottie/tvgLottieModel.h @@ -524,9 +524,6 @@ struct LottieLayer : LottieGroup float frameNo = -1.0f; Matrix matrix; uint8_t opacity; - - //tvg render data - tvg::Shape* clipper = nullptr; } cache; Type type = Null;