| Index: src/effects/gradients/SkTwoPointConicalGradient_gpu.cpp | 
| diff --git a/src/effects/gradients/SkTwoPointConicalGradient_gpu.cpp b/src/effects/gradients/SkTwoPointConicalGradient_gpu.cpp | 
| index 07722e972477a9093809a73a97ea80f1a361f6f6..38b266d67ae6762ecc2c7fe847a488922bfed72d 100644 | 
| --- a/src/effects/gradients/SkTwoPointConicalGradient_gpu.cpp | 
| +++ b/src/effects/gradients/SkTwoPointConicalGradient_gpu.cpp | 
| @@ -187,16 +187,13 @@ GR_DEFINE_FRAGMENT_PROCESSOR_TEST(Edge2PtConicalEffect); | 
| /* | 
| * All Two point conical gradient test create functions may occasionally create edge case shaders | 
| */ | 
| -GrFragmentProcessor* Edge2PtConicalEffect::TestCreate(SkRandom* random, | 
| -                                                      GrContext* context, | 
| -                                                      const GrCaps&, | 
| -                                                      GrTexture**) { | 
| -    SkPoint center1 = {random->nextUScalar1(), random->nextUScalar1()}; | 
| -    SkScalar radius1 = random->nextUScalar1(); | 
| +GrFragmentProcessor* Edge2PtConicalEffect::TestCreate(GrProcessorTestData* d) { | 
| +    SkPoint center1 = {d->fRandom->nextUScalar1(), d->fRandom->nextUScalar1()}; | 
| +    SkScalar radius1 = d->fRandom->nextUScalar1(); | 
| SkPoint center2; | 
| SkScalar radius2; | 
| do { | 
| -        center2.set(random->nextUScalar1(), random->nextUScalar1()); | 
| +        center2.set(d->fRandom->nextUScalar1(), d->fRandom->nextUScalar1()); | 
| // If the circles are identical the factory will give us an empty shader. | 
| // This will happen if we pick identical centers | 
| } while (center1 == center2); | 
| @@ -211,7 +208,7 @@ GrFragmentProcessor* Edge2PtConicalEffect::TestCreate(SkRandom* random, | 
| SkScalar stopsArray[kMaxRandomGradientColors]; | 
| SkScalar* stops = stopsArray; | 
| SkShader::TileMode tm; | 
| -    int colorCount = RandomGradientParams(random, colors, &stops, &tm); | 
| +    int colorCount = RandomGradientParams(d->fRandom, colors, &stops, &tm); | 
| SkAutoTUnref<SkShader> shader(SkGradientShader::CreateTwoPointConical(center1, radius1, | 
| center2, radius2, | 
| colors, stops, colorCount, | 
| @@ -219,10 +216,9 @@ GrFragmentProcessor* Edge2PtConicalEffect::TestCreate(SkRandom* random, | 
| SkPaint paint; | 
| GrFragmentProcessor* fp; | 
| GrColor paintColor; | 
| -    GrPaint grPaint; | 
| -    SkAssertResult(shader->asFragmentProcessor(context, paint, | 
| -                                               GrTest::TestMatrix(random), NULL, | 
| -                                               &paintColor, grPaint.getShaderDataManager(), &fp)); | 
| +    SkAssertResult(shader->asFragmentProcessor(d->fContext, paint, | 
| +                                               GrTest::TestMatrix(d->fRandom), NULL, | 
| +                                               &paintColor, d->fShaderDataManager, &fp)); | 
| return fp; | 
| } | 
|  | 
| @@ -482,28 +478,25 @@ GR_DEFINE_FRAGMENT_PROCESSOR_TEST(FocalOutside2PtConicalEffect); | 
| /* | 
| * All Two point conical gradient test create functions may occasionally create edge case shaders | 
| */ | 
| -GrFragmentProcessor* FocalOutside2PtConicalEffect::TestCreate(SkRandom* random, | 
| -                                                              GrContext* context, | 
| -                                                              const GrCaps&, | 
| -                                                              GrTexture**) { | 
| -    SkPoint center1 = {random->nextUScalar1(), random->nextUScalar1()}; | 
| +GrFragmentProcessor* FocalOutside2PtConicalEffect::TestCreate(GrProcessorTestData* d) { | 
| +    SkPoint center1 = {d->fRandom->nextUScalar1(), d->fRandom->nextUScalar1()}; | 
| SkScalar radius1 = 0.f; | 
| SkPoint center2; | 
| SkScalar radius2; | 
| do { | 
| -        center2.set(random->nextUScalar1(), random->nextUScalar1()); | 
| +        center2.set(d->fRandom->nextUScalar1(), d->fRandom->nextUScalar1()); | 
| // Need to make sure the centers are not the same or else focal point will be inside | 
| } while (center1 == center2); | 
| SkPoint diff = center2 - center1; | 
| SkScalar diffLen = diff.length(); | 
| // Below makes sure that the focal point is not contained within circle two | 
| -        radius2 = random->nextRangeF(0.f, diffLen); | 
| +        radius2 = d->fRandom->nextRangeF(0.f, diffLen); | 
|  | 
| SkColor colors[kMaxRandomGradientColors]; | 
| SkScalar stopsArray[kMaxRandomGradientColors]; | 
| SkScalar* stops = stopsArray; | 
| SkShader::TileMode tm; | 
| -    int colorCount = RandomGradientParams(random, colors, &stops, &tm); | 
| +    int colorCount = RandomGradientParams(d->fRandom, colors, &stops, &tm); | 
| SkAutoTUnref<SkShader> shader(SkGradientShader::CreateTwoPointConical(center1, radius1, | 
| center2, radius2, | 
| colors, stops, colorCount, | 
| @@ -512,9 +505,9 @@ GrFragmentProcessor* FocalOutside2PtConicalEffect::TestCreate(SkRandom* random, | 
| GrFragmentProcessor* effect; | 
| GrColor paintColor; | 
| GrPaint grPaint; | 
| -    SkAssertResult(shader->asFragmentProcessor(context, paint, | 
| -                                               GrTest::TestMatrix(random), NULL, | 
| -                                               &paintColor, grPaint.getShaderDataManager(), | 
| +    SkAssertResult(shader->asFragmentProcessor(d->fContext, paint, | 
| +                                               GrTest::TestMatrix(d->fRandom), NULL, | 
| +                                               &paintColor, d->fShaderDataManager, | 
| &effect)); | 
| return effect; | 
| } | 
| @@ -705,19 +698,16 @@ GR_DEFINE_FRAGMENT_PROCESSOR_TEST(FocalInside2PtConicalEffect); | 
| /* | 
| * All Two point conical gradient test create functions may occasionally create edge case shaders | 
| */ | 
| -GrFragmentProcessor* FocalInside2PtConicalEffect::TestCreate(SkRandom* random, | 
| -                                                             GrContext* context, | 
| -                                                             const GrCaps&, | 
| -                                                             GrTexture**) { | 
| -    SkPoint center1 = {random->nextUScalar1(), random->nextUScalar1()}; | 
| +GrFragmentProcessor* FocalInside2PtConicalEffect::TestCreate(GrProcessorTestData* d) { | 
| +    SkPoint center1 = {d->fRandom->nextUScalar1(), d->fRandom->nextUScalar1()}; | 
| SkScalar radius1 = 0.f; | 
| SkPoint center2; | 
| SkScalar radius2; | 
| do { | 
| -        center2.set(random->nextUScalar1(), random->nextUScalar1()); | 
| +        center2.set(d->fRandom->nextUScalar1(), d->fRandom->nextUScalar1()); | 
| // Below makes sure radius2 is larger enouch such that the focal point | 
| // is inside the end circle | 
| -        SkScalar increase = random->nextUScalar1(); | 
| +        SkScalar increase = d->fRandom->nextUScalar1(); | 
| SkPoint diff = center2 - center1; | 
| SkScalar diffLen = diff.length(); | 
| radius2 = diffLen + increase; | 
| @@ -728,7 +718,7 @@ GrFragmentProcessor* FocalInside2PtConicalEffect::TestCreate(SkRandom* random, | 
| SkScalar stopsArray[kMaxRandomGradientColors]; | 
| SkScalar* stops = stopsArray; | 
| SkShader::TileMode tm; | 
| -    int colorCount = RandomGradientParams(random, colors, &stops, &tm); | 
| +    int colorCount = RandomGradientParams(d->fRandom, colors, &stops, &tm); | 
| SkAutoTUnref<SkShader> shader(SkGradientShader::CreateTwoPointConical(center1, radius1, | 
| center2, radius2, | 
| colors, stops, colorCount, | 
| @@ -736,10 +726,9 @@ GrFragmentProcessor* FocalInside2PtConicalEffect::TestCreate(SkRandom* random, | 
| SkPaint paint; | 
| GrColor paintColor; | 
| GrFragmentProcessor* fp; | 
| -    GrPaint grPaint; | 
| -    SkAssertResult(shader->asFragmentProcessor(context, paint, | 
| -                                               GrTest::TestMatrix(random), NULL, | 
| -                                               &paintColor, grPaint.getShaderDataManager(), &fp)); | 
| +    SkAssertResult(shader->asFragmentProcessor(d->fContext, paint, | 
| +                                               GrTest::TestMatrix(d->fRandom), NULL, | 
| +                                               &paintColor, d->fShaderDataManager, &fp)); | 
| return fp; | 
| } | 
|  | 
| @@ -965,18 +954,16 @@ GR_DEFINE_FRAGMENT_PROCESSOR_TEST(CircleInside2PtConicalEffect); | 
| /* | 
| * All Two point conical gradient test create functions may occasionally create edge case shaders | 
| */ | 
| -GrFragmentProcessor* CircleInside2PtConicalEffect::TestCreate(SkRandom* random, | 
| -                                                              GrContext* context, | 
| -                                                              const GrCaps&, | 
| -                                                              GrTexture**) { | 
| -    SkPoint center1 = {random->nextUScalar1(), random->nextUScalar1()}; | 
| -    SkScalar radius1 = random->nextUScalar1() + 0.0001f; // make sure radius1 != 0 | 
| +GrFragmentProcessor* | 
| +CircleInside2PtConicalEffect::TestCreate(GrProcessorTestData* d) { | 
| +    SkPoint center1 = {d->fRandom->nextUScalar1(), d->fRandom->nextUScalar1()}; | 
| +    SkScalar radius1 = d->fRandom->nextUScalar1() + 0.0001f; // make sure radius1 != 0 | 
| SkPoint center2; | 
| SkScalar radius2; | 
| do { | 
| -        center2.set(random->nextUScalar1(), random->nextUScalar1()); | 
| +        center2.set(d->fRandom->nextUScalar1(), d->fRandom->nextUScalar1()); | 
| // Below makes sure that circle one is contained within circle two | 
| -        SkScalar increase = random->nextUScalar1(); | 
| +        SkScalar increase = d->fRandom->nextUScalar1(); | 
| SkPoint diff = center2 - center1; | 
| SkScalar diffLen = diff.length(); | 
| radius2 = radius1 + diffLen + increase; | 
| @@ -987,7 +974,7 @@ GrFragmentProcessor* CircleInside2PtConicalEffect::TestCreate(SkRandom* random, | 
| SkScalar stopsArray[kMaxRandomGradientColors]; | 
| SkScalar* stops = stopsArray; | 
| SkShader::TileMode tm; | 
| -    int colorCount = RandomGradientParams(random, colors, &stops, &tm); | 
| +    int colorCount = RandomGradientParams(d->fRandom, colors, &stops, &tm); | 
| SkAutoTUnref<SkShader> shader(SkGradientShader::CreateTwoPointConical(center1, radius1, | 
| center2, radius2, | 
| colors, stops, colorCount, | 
| @@ -995,10 +982,9 @@ GrFragmentProcessor* CircleInside2PtConicalEffect::TestCreate(SkRandom* random, | 
| SkPaint paint; | 
| GrColor paintColor; | 
| GrFragmentProcessor* fp; | 
| -    GrPaint grPaint; | 
| -    SkAssertResult(shader->asFragmentProcessor(context, paint, | 
| -                                               GrTest::TestMatrix(random), NULL, | 
| -                                               &paintColor, grPaint.getShaderDataManager(), &fp)); | 
| +    SkAssertResult(shader->asFragmentProcessor(d->fContext, paint, | 
| +                                               GrTest::TestMatrix(d->fRandom), NULL, | 
| +                                               &paintColor, d->fShaderDataManager, &fp)); | 
| return fp; | 
| } | 
|  | 
| @@ -1208,30 +1194,27 @@ GR_DEFINE_FRAGMENT_PROCESSOR_TEST(CircleOutside2PtConicalEffect); | 
| /* | 
| * All Two point conical gradient test create functions may occasionally create edge case shaders | 
| */ | 
| -GrFragmentProcessor* CircleOutside2PtConicalEffect::TestCreate(SkRandom* random, | 
| -                                                               GrContext* context, | 
| -                                                               const GrCaps&, | 
| -                                                               GrTexture**) { | 
| -    SkPoint center1 = {random->nextUScalar1(), random->nextUScalar1()}; | 
| -    SkScalar radius1 = random->nextUScalar1() + 0.0001f; // make sure radius1 != 0 | 
| +GrFragmentProcessor* CircleOutside2PtConicalEffect::TestCreate(GrProcessorTestData* d) { | 
| +    SkPoint center1 = {d->fRandom->nextUScalar1(), d->fRandom->nextUScalar1()}; | 
| +    SkScalar radius1 = d->fRandom->nextUScalar1() + 0.0001f; // make sure radius1 != 0 | 
| SkPoint center2; | 
| SkScalar radius2; | 
| SkScalar diffLen; | 
| do { | 
| -        center2.set(random->nextUScalar1(), random->nextUScalar1()); | 
| +        center2.set(d->fRandom->nextUScalar1(), d->fRandom->nextUScalar1()); | 
| // If the circles share a center than we can't be in the outside case | 
| } while (center1 == center2); | 
| SkPoint diff = center2 - center1; | 
| diffLen = diff.length(); | 
| // Below makes sure that circle one is not contained within circle two | 
| // and have radius2 >= radius to match sorting on cpu side | 
| -    radius2 = radius1 + random->nextRangeF(0.f, diffLen); | 
| +    radius2 = radius1 + d->fRandom->nextRangeF(0.f, diffLen); | 
|  | 
| SkColor colors[kMaxRandomGradientColors]; | 
| SkScalar stopsArray[kMaxRandomGradientColors]; | 
| SkScalar* stops = stopsArray; | 
| SkShader::TileMode tm; | 
| -    int colorCount = RandomGradientParams(random, colors, &stops, &tm); | 
| +    int colorCount = RandomGradientParams(d->fRandom, colors, &stops, &tm); | 
| SkAutoTUnref<SkShader> shader(SkGradientShader::CreateTwoPointConical(center1, radius1, | 
| center2, radius2, | 
| colors, stops, colorCount, | 
| @@ -1239,10 +1222,9 @@ GrFragmentProcessor* CircleOutside2PtConicalEffect::TestCreate(SkRandom* random, | 
| SkPaint paint; | 
| GrColor paintColor; | 
| GrFragmentProcessor* fp; | 
| -    GrPaint grPaint; | 
| -    SkAssertResult(shader->asFragmentProcessor(context, paint, | 
| -                                               GrTest::TestMatrix(random), NULL, | 
| -                                               &paintColor, grPaint.getShaderDataManager(), &fp)); | 
| +    SkAssertResult(shader->asFragmentProcessor(d->fContext, paint, | 
| +                                               GrTest::TestMatrix(d->fRandom), NULL, | 
| +                                               &paintColor, d->fShaderDataManager, &fp)); | 
| return fp; | 
| } | 
|  | 
|  |