diff --git a/src/loaders/lottie/tvgLottieBuilder.cpp b/src/loaders/lottie/tvgLottieBuilder.cpp index 130d23fc..9a1d4ecb 100644 --- a/src/loaders/lottie/tvgLottieBuilder.cpp +++ b/src/loaders/lottie/tvgLottieBuilder.cpp @@ -694,6 +694,8 @@ static void _updatePrecomp(LottieLayer* precomp, int32_t frameNo) { if (precomp->children.count == 0) return; + frameNo -= precomp->startFrame; + //TODO: skip if the layer is static. for (auto child = precomp->children.end() - 1; child >= precomp->children.data; --child) { _updateLayer(precomp, static_cast(*child), frameNo); diff --git a/src/loaders/lottie/tvgLottieModel.cpp b/src/loaders/lottie/tvgLottieModel.cpp index 63951d2f..cc91792b 100644 --- a/src/loaders/lottie/tvgLottieModel.cpp +++ b/src/loaders/lottie/tvgLottieModel.cpp @@ -148,9 +148,7 @@ int32_t LottieLayer::remap(int32_t frameNo) if (timeRemap.frames) { frameNo = comp->frameAtTime(timeRemap(frameNo)); } - - if (type == Precomp) return (int32_t)(frameNo / timeStretch) - startFrame; - else return (int32_t)(frameNo / timeStretch); + return (int32_t)(frameNo / timeStretch); }