| Index: gm/gradients.cpp
|
| diff --git a/gm/gradients.cpp b/gm/gradients.cpp
|
| index 97f8fdaca8b5813b06ae010fddf4dda8f1113fa4..604d1c3f5d6ebf927d954f4440218aeceb582cd5 100644
|
| --- a/gm/gradients.cpp
|
| +++ b/gm/gradients.cpp
|
| @@ -25,12 +25,18 @@ static const SkScalar gPos2[] = {
|
| 0, SK_Scalar1/8, SK_Scalar1/2, SK_Scalar1*7/8, SK_Scalar1
|
| };
|
|
|
| +static const SkScalar gPosClamp[] = {0.0f, 0.0f, 1.0f, 1.0f};
|
| +static const SkColor gColorClamp[] = {
|
| + SK_ColorRED, SK_ColorGREEN, SK_ColorGREEN, SK_ColorBLUE
|
| +};
|
| +
|
| static const GradData gGradData[] = {
|
| { 2, gColors, NULL },
|
| { 2, gColors, gPos0 },
|
| { 2, gColors, gPos1 },
|
| { 5, gColors, NULL },
|
| - { 5, gColors, gPos2 }
|
| + { 5, gColors, gPos2 },
|
| + { 4, gColorClamp, gPosClamp }
|
| };
|
|
|
| static SkShader* MakeLinear(const SkPoint pts[2], const GradData& data,
|
| @@ -120,6 +126,14 @@ protected:
|
| canvas->save();
|
| for (size_t j = 0; j < SK_ARRAY_COUNT(gGradMakers); j++) {
|
| SkShader* shader = gGradMakers[j](pts, gGradData[i], tm, NULL);
|
| +
|
| + if (i == 5) { // if the clamp case
|
| + SkMatrix scale;
|
| + scale.setScale(0.5f, 0.5f);
|
| + scale.postTranslate(25.f, 25.f);
|
| + shader->setLocalMatrix(scale);
|
| + }
|
| +
|
| paint.setShader(shader);
|
| canvas->drawRect(r, paint);
|
| shader->unref();
|
| @@ -173,6 +187,7 @@ protected:
|
| SkIntToScalar(500)));
|
| perspective.setSkewX(SkScalarDiv(SkIntToScalar((unsigned) i+1),
|
| SkIntToScalar(10)));
|
| +
|
| shader->setLocalMatrix(perspective);
|
|
|
| paint.setShader(shader);
|
|
|