Merge "Workaround for PathMeasure.getSegment() behavior change" into nyc-dev am: d75f694c1a

am: 3b5723612d

* commit '3b5723612d1f9976cda19ae40e8f68189999a40a':
  Workaround for PathMeasure.getSegment() behavior change
This commit is contained in:
Doris Liu
2016-03-16 00:31:55 +00:00
committed by android-build-merger

View File

@@ -229,19 +229,25 @@ void FullPath::applyTrim() {
// No trimming necessary.
return;
}
mTrimDirty = false;
mTrimmedSkPath.reset();
if (mProperties.trimPathStart == mProperties.trimPathEnd) {
// Trimmed path should be empty.
return;
}
SkPathMeasure measure(mSkPath, false);
float len = SkScalarToFloat(measure.getLength());
float start = len * fmod((mProperties.trimPathStart + mProperties.trimPathOffset), 1.0f);
float end = len * fmod((mProperties.trimPathEnd + mProperties.trimPathOffset), 1.0f);
mTrimmedSkPath.reset();
if (start > end) {
measure.getSegment(start, len, &mTrimmedSkPath, true);
measure.getSegment(0, end, &mTrimmedSkPath, true);
if (end > 0) {
measure.getSegment(0, end, &mTrimmedSkPath, true);
}
} else {
measure.getSegment(start, end, &mTrimmedSkPath, true);
}
mTrimDirty = false;
}
REQUIRE_COMPATIBLE_LAYOUT(FullPath::Properties);