lottie/optimization: update the layer item only when it has change. 86/184186/2
authorsubhransu mohanty <sub.mohanty@samsung.com>
Mon, 16 Jul 2018 06:53:54 +0000 (15:53 +0900)
committerHermet Park <chuneon.park@samsung.com>
Mon, 16 Jul 2018 12:19:56 +0000 (12:19 +0000)
Change-Id: If62c796f18ebea949fe598f0f5890f09bd8a42b8

src/lottie/lottieitem.cpp

index 62e46c6..cd30aa8 100644 (file)
@@ -448,24 +448,18 @@ void LOTLayerItem::update(int frameNo, const VMatrix &parentMatrix, float parent
    }
 
    // 3. update the dirty flag based on the change
-   if (flag() & DirtyFlagBit::All) {
-      mCombinedMatrix = m;
-      mCombinedAlpha = alpha;
-   } else {
-      if (!mCombinedMatrix.fuzzyCompare(m)) {
-         mDirtyFlag |= DirtyFlagBit::Matrix;
-         mCombinedMatrix = m;
-      }
-      if (!vCompare(mCombinedAlpha, alpha)) {
-         mDirtyFlag |= DirtyFlagBit::Alpha;
-         mCombinedAlpha = alpha;
-      }
+   if (!mCombinedMatrix.fuzzyCompare(m)) {
+       mDirtyFlag |= DirtyFlagBit::Matrix;
+   }
+   if (!vCompare(mCombinedAlpha, alpha)) {
+       mDirtyFlag |= DirtyFlagBit::Alpha;
    }
+   mCombinedMatrix = m;
+   mCombinedAlpha = alpha;
 
    // 4. if no parent property change and layer is static then nothing to do.
-   //@TODO fix this regression
-//   if ((flag() & DirtyFlagBit::None) && isStatic())
-//      return;
+   if ((flag() & DirtyFlagBit::None) && isStatic())
+      return;
 
    //5. update the content of the layer
    updateContent();