Chromium Code Reviews| Index: gm/gradients.cpp |
| diff --git a/gm/gradients.cpp b/gm/gradients.cpp |
| index 97f8fdaca8b5813b06ae010fddf4dda8f1113fa4..072189ce9069de77e537e84de13dc1bef6e24a6a 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,15 @@ 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.setTranslateX(25.f); |
|
reed1
2013/08/06 21:19:17
nit: more natural (perhaps) to say postTrnaslate(2
|
| + scale.setTranslateY(25.f); |
| + shader->setLocalMatrix(scale); |
| + } |
| + |
| paint.setShader(shader); |
| canvas->drawRect(r, paint); |
| shader->unref(); |
| @@ -173,6 +188,7 @@ protected: |
| SkIntToScalar(500))); |
| perspective.setSkewX(SkScalarDiv(SkIntToScalar((unsigned) i+1), |
| SkIntToScalar(10))); |
| + |
| shader->setLocalMatrix(perspective); |
| paint.setShader(shader); |