| Index: src/effects/SkDiscretePathEffect.cpp
|
| diff --git a/src/effects/SkDiscretePathEffect.cpp b/src/effects/SkDiscretePathEffect.cpp
|
| index de834424df34fc661638fcbb7026bdc8214571a7..51929cb9a2eaca56c85652d14e0ac28ca94de79b 100644
|
| --- a/src/effects/SkDiscretePathEffect.cpp
|
| +++ b/src/effects/SkDiscretePathEffect.cpp
|
| @@ -20,9 +20,10 @@ static void Perterb(SkPoint* p, const SkVector& tangent, SkScalar scale) {
|
| *p += normal;
|
| }
|
|
|
| -
|
| -SkDiscretePathEffect::SkDiscretePathEffect(SkScalar segLength, SkScalar deviation)
|
| - : fSegLength(segLength), fPerterb(deviation)
|
| +SkDiscretePathEffect::SkDiscretePathEffect(SkScalar segLength,
|
| + SkScalar deviation,
|
| + uint32_t seedAssist)
|
| + : fSegLength(segLength), fPerterb(deviation), fSeedAssist(seedAssist)
|
| {
|
| }
|
|
|
| @@ -31,7 +32,10 @@ bool SkDiscretePathEffect::filterPath(SkPath* dst, const SkPath& src,
|
| bool doFill = rec->isFillStyle();
|
|
|
| SkPathMeasure meas(src, doFill);
|
| - uint32_t seed = SkScalarRoundToInt(meas.getLength());
|
| +
|
| + /* Caller may supply their own seed assist, which by default is 1 */
|
| + uint32_t seed = fSeedAssist * SkScalarRoundToInt(meas.getLength());
|
| +
|
| SkLCGRandom rand(seed ^ ((seed << 16) | (seed >> 16)));
|
| SkScalar scale = fPerterb;
|
| SkPoint p;
|
|
|