parser: optimize zero length path keyframes
authorSubhransu Mohanty <sub.mohanty@samsung.com>
Tue, 11 Aug 2020 03:32:19 +0000 (12:32 +0900)
committerJongmin Lee <jm105.lee@samsung.com>
Mon, 17 Aug 2020 22:22:02 +0000 (07:22 +0900)
src/lottie/lottiemodel.h

index 4a7db32..6365887 100644 (file)
@@ -174,8 +174,14 @@ struct Value<VPointF> {
             mOutTangent = mStartValue + mOutTangent;
             mBezierLength = VBezier::fromPoints(mStartValue, mOutTangent,
                                                 mInTangent, mEndValue).length();
+            if (vIsZero(mBezierLength)) {
+                // this segment has zero length.
+                // so disable expensive path computaion.
+                mPathKeyFrame = false;
+            }
         }
     }
+
     VPointF at(float t) const
     {
         if (mPathKeyFrame) {