diff --git a/src/lottie/lottieanimation.cpp b/src/lottie/lottieanimation.cpp index f0086a6c2a..2e9cd17e3e 100644 --- a/src/lottie/lottieanimation.cpp +++ b/src/lottie/lottieanimation.cpp @@ -39,6 +39,8 @@ const std::vector &AnimationImpl::renderList(size_t frameNo, const VS bool AnimationImpl::update(size_t frameNo, const VSize &size) { + frameNo += mModel->startFrame(); + if (frameNo > mModel->endFrame()) frameNo = mModel->endFrame(); diff --git a/src/lottie/lottiemodel.h b/src/lottie/lottiemodel.h index d0a2e4cdd3..3550b21dfc 100644 --- a/src/lottie/lottiemodel.h +++ b/src/lottie/lottiemodel.h @@ -333,8 +333,7 @@ public: size_t frameAtPos(double pos) const { if (pos < 0) pos = 0; if (pos > 1) pos = 1; - return isStatic() ? startFrame() : - startFrame() + pos * frameDuration(); + return isStatic() ? 0 : pos * frameDuration(); } long frameAtTime(double timeInSec) const { return isStatic() ? startFrame() : frameAtPos(timeInSec / duration());