Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(197)

Unified Diff: src/gpu/GrTestUtils.cpp

Issue 1275553002: Implement caching of stroked paths in the tessellating path renderer. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Use IsStrokeHairlineOrEquivalent() instead of stroke->isHairline() Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/gpu/GrTessellatingPathRenderer.cpp ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « src/gpu/GrTessellatingPathRenderer.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698