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

Unified Diff: include/effects/SkDiscretePathEffect.h

Issue 311803002: Randomize seed for SkDiscretePathEffect::filterPath() (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: don't multiply seedAssist with seed, xor instead Created 6 years, 6 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 | « no previous file | src/effects/SkDiscretePathEffect.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: include/effects/SkDiscretePathEffect.h
diff --git a/include/effects/SkDiscretePathEffect.h b/include/effects/SkDiscretePathEffect.h
index 8373b6aa159ef4550380626dee3c56a46944c3b5..cbee20f0251fcdae96029044bafbbbde16367bbe 100644
--- a/include/effects/SkDiscretePathEffect.h
+++ b/include/effects/SkDiscretePathEffect.h
@@ -19,9 +19,21 @@ public:
/** Break the path into segments of segLength length, and randomly move the endpoints
away from the original path by a maximum of deviation.
Note: works on filled or framed paths
+
+ @param seedAssist This is a caller-supplied seedAssist that modifies
+ the seed value that is used to randomize the path
+ segments' endpoints. If not supplied it defaults to 0,
+ in which case filtering a path multiple times will
+ result in the same set of segments (this is useful for
+ testing). If a caller does not want this behaviour
+ they can pass in a different seedAssist to get a
+ different set of path segments.
*/
- static SkDiscretePathEffect* Create(SkScalar segLength, SkScalar deviation) {
- return SkNEW_ARGS(SkDiscretePathEffect, (segLength, deviation));
+ static SkDiscretePathEffect* Create(SkScalar segLength,
+ SkScalar deviation,
+ uint32_t seedAssist=0) {
+ return SkNEW_ARGS(SkDiscretePathEffect,
+ (segLength, deviation, seedAssist));
}
virtual bool filterPath(SkPath* dst, const SkPath& src,
@@ -30,13 +42,18 @@ public:
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkDiscretePathEffect)
protected:
- SkDiscretePathEffect(SkScalar segLength, SkScalar deviation);
+ SkDiscretePathEffect(SkScalar segLength,
+ SkScalar deviation,
+ uint32_t seedAssist);
explicit SkDiscretePathEffect(SkReadBuffer&);
virtual void flatten(SkWriteBuffer&) const SK_OVERRIDE;
private:
SkScalar fSegLength, fPerterb;
+ /* Caller-supplied 32 bit seed assist */
+ uint32_t fSeedAssist;
+
typedef SkPathEffect INHERITED;
};
« no previous file with comments | « no previous file | src/effects/SkDiscretePathEffect.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698