From: Hermet Park Date: Tue, 14 Aug 2018 05:57:36 +0000 (+0900) Subject: lottieplayer: simple optmization for deffered update. X-Git-Tag: submit/tizen/20180917.042405~117 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F51%2F186751%2F2;p=platform%2Fcore%2Fuifw%2Flottie-player.git lottieplayer: simple optmization for deffered update. This skips unnecessary update process from every user render-request. Change-Id: Id3123bdb31879e1c559b6048ccf60d88dccb690f --- diff --git a/src/lottie/lottieplayer.cpp b/src/lottie/lottieplayer.cpp index f5fdcee..1b23fd8 100644 --- a/src/lottie/lottieplayer.cpp +++ b/src/lottie/lottieplayer.cpp @@ -30,12 +30,16 @@ public: std::atomic mRenderInProgress; private: - float mPos; + float mPos = 0.0; + bool mChanged = true; }; void LOTPlayerPrivate::setSize(const VSize &sz) { - mSize = sz; + if (mSize != sz) { + mChanged = true; + mSize = sz; + } } VSize LOTPlayerPrivate::size() const @@ -68,6 +72,8 @@ bool LOTPlayerPrivate::setPos(float pos) if (pos > 1.0) pos = 1.0; if (pos < 0) pos = 0; + if (!vCompare(pos, mPos)) mChanged = true; + mPos = pos; return true; @@ -80,6 +86,9 @@ float LOTPlayerPrivate::pos() bool LOTPlayerPrivate::update(float pos) { + //Nothing updated, skip it. + if (!mChanged) return true; + mCompItem->resize(mSize); this->setPos(pos); @@ -89,6 +98,8 @@ bool LOTPlayerPrivate::update(float pos) if (!mCompItem->update(frameNumber)) return false; + mChanged = false; + return true; } @@ -116,7 +127,7 @@ bool LOTPlayerPrivate::render(float pos, const LOTBuffer &buffer) return result; } -LOTPlayerPrivate::LOTPlayerPrivate() : mRenderInProgress(false), mPos(0) {} +LOTPlayerPrivate::LOTPlayerPrivate() : mRenderInProgress(false) {} bool LOTPlayerPrivate::setFilePath(std::string path) {