vector: refactor pathmesure to keep a scratch path object for memory efficieny
authorsubhransu mohanty <sub.mohanty@samsung.com>
Thu, 26 Sep 2019 01:16:10 +0000 (10:16 +0900)
committerJongmin Lee <jm105.lee@samsung.com>
Thu, 26 Sep 2019 22:00:49 +0000 (07:00 +0900)
src/vector/vpathmesure.cpp
src/vector/vpathmesure.h

index f0f305b..929c2e7 100644 (file)
@@ -46,7 +46,8 @@ VPath VPathMesure::trim(const VPath &path)
             std::numeric_limits<float>::max(),  // 2nd segment
         };
         VDasher dasher(array, 4);
-        return dasher.dashed(path);
+        dasher.dashed(path, mScratchObject);
+        return mScratchObject;
     } else {
         float array[4] = {
             length * mEnd, (mStart - mEnd) * length,  // 1st segment
@@ -54,7 +55,8 @@ VPath VPathMesure::trim(const VPath &path)
             std::numeric_limits<float>::max(),  // 2nd segment
         };
         VDasher dasher(array, 4);
-        return dasher.dashed(path);
+        dasher.dashed(path, mScratchObject);
+        return mScratchObject;
     }
 }
 
index de3e824..2cb521b 100644 (file)
@@ -25,12 +25,14 @@ V_BEGIN_NAMESPACE
 
 class VPathMesure {
 public:
+    void setRange(float start, float end) {mStart = start; mEnd = end;}
     void  setStart(float start){mStart = start;}
     void  setEnd(float end){mEnd = end;}
     VPath trim(const VPath &path);
 private:
     float mStart{0.0f};
     float mEnd{1.0f};
+    VPath mScratchObject;
 };
 
 V_END_NAMESPACE