Index: src/gpu/GrTestUtils.cpp |
diff --git a/src/gpu/GrTestUtils.cpp b/src/gpu/GrTestUtils.cpp |
index e962978fc3454380aaf9d9ff4f226fb6e688e617..86a84ceb0a3afe02c4b9f87d5146b959007904a7 100644 |
--- a/src/gpu/GrTestUtils.cpp |
+++ b/src/gpu/GrTestUtils.cpp |
@@ -5,10 +5,10 @@ |
* found in the LICENSE file. |
*/ |
+#include "GrStrokeInfo.h" |
#include "GrTestUtils.h" |
-#include "GrStyle.h" |
-#include "SkDashPathPriv.h" |
#include "SkMatrix.h" |
+#include "SkPathEffect.h" |
#include "SkPath.h" |
#include "SkRRect.h" |
@@ -237,53 +237,26 @@ |
return rec; |
} |
-void TestStyle(SkRandom* random, GrStyle* style) { |
- SkStrokeRec::InitStyle initStyle = |
+GrStrokeInfo TestStrokeInfo(SkRandom* random) { |
+ SkStrokeRec::InitStyle style = |
SkStrokeRec::InitStyle(random->nextULessThan(SkStrokeRec::kFill_InitStyle + 1)); |
- SkStrokeRec stroke(initStyle); |
- randomize_stroke_rec(&stroke, random); |
- sk_sp<SkPathEffect> pe; |
- if (random->nextBool()) { |
- int cnt = random->nextRangeU(1, 50) * 2; |
- SkAutoTDeleteArray<SkScalar> intervals(new SkScalar[cnt]); |
- SkScalar sum = 0; |
- for (int i = 0; i < cnt; i++) { |
- intervals[i] = random->nextRangeScalar(SkDoubleToScalar(0.01), |
- SkDoubleToScalar(10.0)); |
- sum += intervals[i]; |
- } |
- SkScalar phase = random->nextRangeScalar(0, sum); |
- pe = TestDashPathEffect::Make(intervals.get(), cnt, phase); |
- } |
- *style = GrStyle(stroke, pe.get()); |
-} |
- |
-TestDashPathEffect::TestDashPathEffect(const SkScalar* intervals, int count, SkScalar phase) { |
- fCount = count; |
- fIntervals.reset(count); |
- memcpy(fIntervals.get(), intervals, count * sizeof(SkScalar)); |
- SkDashPath::CalcDashParameters(phase, intervals, count, &fInitialDashLength, |
- &fInitialDashIndex, &fIntervalLength, &fPhase); |
-} |
- |
- bool TestDashPathEffect::filterPath(SkPath* dst, const SkPath& src, SkStrokeRec* rec, |
- const SkRect* cullRect) const { |
- return SkDashPath::InternalFilter(dst, src, rec, cullRect, fIntervals.get(), fCount, |
- fInitialDashLength, fInitialDashIndex, fIntervalLength); |
-} |
- |
-SkPathEffect::DashType TestDashPathEffect::asADash(DashInfo* info) const { |
- if (info) { |
- if (info->fCount >= fCount && info->fIntervals) { |
- memcpy(info->fIntervals, fIntervals.get(), fCount * sizeof(SkScalar)); |
- } |
- info->fCount = fCount; |
- info->fPhase = fPhase; |
- } |
- return kDash_DashType; |
-} |
- |
- |
-} // namespace GrTest |
+ GrStrokeInfo strokeInfo(style); |
+ randomize_stroke_rec(&strokeInfo, random); |
+ SkPathEffect::DashInfo dashInfo; |
+ dashInfo.fCount = random->nextRangeU(1, 50) * 2; |
+ dashInfo.fIntervals = new SkScalar[dashInfo.fCount]; |
+ SkScalar sum = 0; |
+ for (int i = 0; i < dashInfo.fCount; i++) { |
+ dashInfo.fIntervals[i] = random->nextRangeScalar(SkDoubleToScalar(0.01), |
+ SkDoubleToScalar(10.0)); |
+ sum += dashInfo.fIntervals[i]; |
+ } |
+ dashInfo.fPhase = random->nextRangeScalar(0, sum); |
+ strokeInfo.setDashInfo(dashInfo); |
+ delete[] dashInfo.fIntervals; |
+ return strokeInfo; |
+} |
+ |
+}; |
#endif |