Index: src/gpu/GrTestUtils.cpp |
diff --git a/src/gpu/GrTestUtils.cpp b/src/gpu/GrTestUtils.cpp |
index b690d7e3cd4bc8f0e33b1dd31b27f0d8ed641196..714b99f65cf3ffd1ea9b9085867d121bf3417a8e 100644 |
--- a/src/gpu/GrTestUtils.cpp |
+++ b/src/gpu/GrTestUtils.cpp |
@@ -5,8 +5,10 @@ |
* found in the LICENSE file. |
*/ |
+#include "GrStrokeInfo.h" |
#include "GrTestUtils.h" |
#include "SkMatrix.h" |
+#include "SkPathEffect.h" |
#include "SkPath.h" |
#include "SkRRect.h" |
@@ -216,21 +218,44 @@ const SkPath& TestPathConvex(SkRandom* random) { |
return gPath[random->nextULessThan(static_cast<uint32_t>(SK_ARRAY_COUNT(gPath)))]; |
} |
-SkStrokeRec TestStrokeRec(SkRandom* random) { |
- SkStrokeRec::InitStyle style = |
- SkStrokeRec::InitStyle(random->nextULessThan(SkStrokeRec::kFill_InitStyle + 1)); |
- SkStrokeRec rec(style); |
+static void randomize_stroke_rec(SkStrokeRec* rec, SkRandom* random) { |
bool strokeAndFill = random->nextBool(); |
SkScalar strokeWidth = random->nextBool() ? 0.f : 1.f; |
- rec.setStrokeStyle(strokeWidth, strokeAndFill); |
+ rec->setStrokeStyle(strokeWidth, strokeAndFill); |
SkPaint::Cap cap = SkPaint::Cap(random->nextULessThan(SkPaint::kCapCount)); |
SkPaint::Join join = SkPaint::Join(random->nextULessThan(SkPaint::kJoinCount)); |
SkScalar miterLimit = random->nextRangeScalar(1.f, 5.f); |
- rec.setStrokeParams(cap, join, miterLimit); |
+ rec->setStrokeParams(cap, join, miterLimit); |
+} |
+ |
+SkStrokeRec TestStrokeRec(SkRandom* random) { |
+ SkStrokeRec::InitStyle style = |
+ SkStrokeRec::InitStyle(random->nextULessThan(SkStrokeRec::kFill_InitStyle + 1)); |
+ SkStrokeRec rec(style); |
+ randomize_stroke_rec(&rec, random); |
return rec; |
} |
+GrStrokeInfo TestStrokeInfo(SkRandom* random) { |
+ SkStrokeRec::InitStyle style = |
+ SkStrokeRec::InitStyle(random->nextULessThan(SkStrokeRec::kFill_InitStyle + 1)); |
+ GrStrokeInfo strokeInfo(style); |
+ randomize_stroke_rec(&strokeInfo, random); |
+ SkPathEffect::DashInfo dashInfo; |
+ dashInfo.fCount = random->nextRangeU(1, 50) * 2; |
+ dashInfo.fIntervals = SkNEW_ARRAY(SkScalar, dashInfo.fCount); |
mtklein_C
2015/08/06 18:42:03
This you?
https://build.chromium.org/p/client.ski
Stephen White
2015/08/06 19:22:38
https://codereview.chromium.org/1274963003/
|
+ 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); |
+ return strokeInfo; |
+} |
+ |
}; |
#endif |