diff --git a/src/lottie/lottieitem.cpp b/src/lottie/lottieitem.cpp index 8170c1654c..31ddb302eb 100644 --- a/src/lottie/lottieitem.cpp +++ b/src/lottie/lottieitem.cpp @@ -1211,6 +1211,10 @@ void LOTDrawable::sync() if (mFlag & DirtyState::None) return; if (mFlag & DirtyState::Path) { + if (mStroke.mDash.size()) { + VDasher dasher(mStroke.mDash.data(), mStroke.mDash.size()); + mPath = dasher.dashed(mPath); + } const std::vector &elm = mPath.elements(); const std::vector & pts = mPath.points(); const float *ptPtr = reinterpret_cast(pts.data()); @@ -1256,10 +1260,6 @@ void LOTDrawable::sync() mCNode->mStroke.join = LOTJoinStyle::JoinMiter; break; } - - mCNode->mStroke.dashArray = mStroke.mDash.data(); - mCNode->mStroke.dashArraySize = mStroke.mDash.size(); - } else { mCNode->mStroke.enable = 0; }