Update trim end to match frameNumber. 20/319720/1 accepted/tizen/unified/20241105.042104
authorjoogab.yun <joogab.yun@samsung.com>
Thu, 31 Oct 2024 00:49:19 +0000 (09:49 +0900)
committerjoogab.yun <joogab.yun@samsung.com>
Thu, 31 Oct 2024 00:49:19 +0000 (09:49 +0900)
Change-Id: I91d40790a2e3b54d8fe51ce78a4fb9358b505235

src/lottie/lottiefiltermodel.h
src/lottie/lottiemodel.h

index 015e9cb4d1db8ff81e7fd363016d3f77cc4dba1b..21f5e48d18f6e14b833c8b4d807987943bae858c 100644 (file)
@@ -437,7 +437,7 @@ public:
             this->model_->updateTrimStartValue(this->filter()->value(rlottie::Property::TrimStart, frameNo));
         }
         if (this->hasFilter(rlottie::Property::TrimEnd)) {
-            this->model_->updateTrimEndValue(this->filter()->point(rlottie::Property::TrimEnd, frameNo));
+            this->model_->updateTrimEndValue(this->filter()->point(rlottie::Property::TrimEnd, frameNo), frameNo);
         }
         model::Trim::Segment segment = this->model()->segment(frameNo);
         return segment;
index b8ca1baa5f2e94f7da5f7f7187e7a52c0ffa01d0..c492b720aa3081913c0fdab2d6a433aae8d26b36 100644 (file)
@@ -1015,11 +1015,14 @@ public:
         mStart.value() = start;
     }
 
-    void updateTrimEndValue(VPointF pos)
+    void updateTrimEndValue(VPointF pos, int frameNo)
     {
         for (auto &keyFrame : mEnd.animation().frames_) {
-            keyFrame.value_.start_ = pos.x();
-            keyFrame.value_.end_ = pos.y();
+            if (frameNo >= keyFrame.start_ && frameNo < keyFrame.end_ && pos.x() >=0 && pos.y() >= 0)
+            {
+                keyFrame.value_.start_ = pos.x();
+                keyFrame.value_.end_ = pos.y();
+            }
         }
     }