| 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
|
|
|