Chromium Code Reviews| 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 |