From: subhransu mohanty Date: Mon, 20 Aug 2018 02:22:31 +0000 (+0900) Subject: lottie/parser: treat root layer as a special precomp layer. X-Git-Tag: submit/tizen/20180917.042405~99 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=fa087b44e8ad2d4d9b9ecdd6e140019ea597635b;p=platform%2Fcore%2Fuifw%2Flottie-player.git lottie/parser: treat root layer as a special precomp layer. Change-Id: Ic9a2b171ee349f132e52db5395a92587c9e44c08 --- diff --git a/src/lottie/lottieitem.cpp b/src/lottie/lottieitem.cpp index fd044fd..c835e02 100644 --- a/src/lottie/lottieitem.cpp +++ b/src/lottie/lottieitem.cpp @@ -322,7 +322,8 @@ LOTCompLayerItem::LOTCompLayerItem(LOTLayerData *layerModel) [id](const auto& val){ return val->id() == id;}); if (search != mLayers.end()) i->setParentLayer(*search); } - i->setPrecompLayer(this); + // update the precomp layer if its not the root layer. + if (!layerModel->root()) i->setPrecompLayer(this); } } diff --git a/src/lottie/lottiemodel.h b/src/lottie/lottiemodel.h index 1321d92..3f16213 100644 --- a/src/lottie/lottiemodel.h +++ b/src/lottie/lottiemodel.h @@ -312,6 +312,7 @@ public: bool hasGradient() const noexcept {return mHasGradient;} bool hasMask() const noexcept {return mHasMask;} bool hasRepeater() const noexcept {return mHasRepeater;} + bool root() const noexcept {return mRoot;} int id() const noexcept{ return mId;} int parentId() const noexcept{ return mParentId;} int inFrame() const noexcept{return mInFrame;} @@ -346,6 +347,7 @@ public: bool mHasMask{false}; bool mHasRepeater{false}; bool mHasGradient{false}; + bool mRoot{false}; std::vector> mMasks; }; diff --git a/src/lottie/lottieparser.cpp b/src/lottie/lottieparser.cpp index d4e6db3..05b8bb8 100644 --- a/src/lottie/lottieparser.cpp +++ b/src/lottie/lottieparser.cpp @@ -636,6 +636,7 @@ std::shared_ptr LottieParserImpl::parseAsset() void LottieParserImpl::parseLayers(LOTCompositionData *comp) { comp->mRootLayer = std::make_shared(); + comp->mRootLayer->mRoot = true; comp->mRootLayer->mLayerType = LayerType::Precomp; comp->mRootLayer->mTransform = std::make_shared(); bool staticFlag = true;