diff options
author | commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2014-05-22 02:55:59 +0000 |
---|---|---|
committer | commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2014-05-22 02:55:59 +0000 |
commit | 3339ac54a5ed75f2872ab16e9052a8b9ff3564bf (patch) | |
tree | 42852098db6117ad0f15cf332bc2aacffa322e38 /gm | |
parent | 8991c67f0c1b9364bb12dfb0f32a53bd5a3357f3 (diff) |
Revert of Remove unused (by clients) SkUnitMapper (https://codereview.chromium.org/283273002/) (https://codereview.chromium.org/288343009/)
Reason for revert:
required blink change failed to land
Original issue's description:
> Remove unused (by clients) SkUnitMapper (https://codereview.chromium.org/283273002/)
>
> This reverts commit dd50c83b5b34dab3a077741861b50ed1f2bc6b8f.
>
> BUG=skia:
>
> Committed: http://code.google.com/p/skia/source/detail?r=14830
R=scroggo@google.com, reed@google.com
TBR=reed@google.com, scroggo@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Author: reed@chromium.org
Review URL: https://codereview.chromium.org/296823008
git-svn-id: http://skia.googlecode.com/svn/trunk@14838 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'gm')
-rw-r--r-- | gm/alphagradients.cpp | 3 | ||||
-rw-r--r-- | gm/colortype.cpp | 2 | ||||
-rw-r--r-- | gm/convexpolyclip.cpp | 2 | ||||
-rw-r--r-- | gm/drawbitmaprect.cpp | 2 | ||||
-rw-r--r-- | gm/gradientDirtyLaundry.cpp | 23 | ||||
-rw-r--r-- | gm/gradient_matrix.cpp | 4 | ||||
-rw-r--r-- | gm/gradients.cpp | 41 | ||||
-rw-r--r-- | gm/gradients_2pt_conical.cpp | 102 | ||||
-rw-r--r-- | gm/gradients_no_texture.cpp | 33 | ||||
-rw-r--r-- | gm/shaderbounds.cpp | 2 | ||||
-rw-r--r-- | gm/shadertext.cpp | 40 | ||||
-rw-r--r-- | gm/shadertext2.cpp | 9 | ||||
-rw-r--r-- | gm/shadertext3.cpp | 10 | ||||
-rw-r--r-- | gm/tilemodes.cpp | 10 | ||||
-rw-r--r-- | gm/tilemodes_scaled.cpp | 10 |
15 files changed, 192 insertions, 101 deletions
diff --git a/gm/alphagradients.cpp b/gm/alphagradients.cpp index d10828867d..e63fbc9f47 100644 --- a/gm/alphagradients.cpp +++ b/gm/alphagradients.cpp @@ -29,7 +29,8 @@ protected: SkPaint paint; uint32_t flags = doPreMul ? SkGradientShader::kInterpolateColorsInPremul_Flag : 0; SkShader* s = SkGradientShader::CreateLinear(pts, colors, NULL, 2, - SkShader::kClamp_TileMode, flags, NULL); + SkShader::kClamp_TileMode, + NULL, flags); paint.setShader(s)->unref(); canvas->drawRect(r, paint); diff --git a/gm/colortype.cpp b/gm/colortype.cpp index 2774f3a5ff..47bc8a9ab7 100644 --- a/gm/colortype.cpp +++ b/gm/colortype.cpp @@ -20,7 +20,7 @@ public: SkMatrix local; local.setRotate(180); SkShader* s = SkGradientShader::CreateSweep(0,0, colors, NULL, - SK_ARRAY_COUNT(colors), 0, &local); + SK_ARRAY_COUNT(colors), NULL, 0, &local); SkPaint paint; paint.setAntiAlias(true); diff --git a/gm/convexpolyclip.cpp b/gm/convexpolyclip.cpp index edafea2f97..b76335c856 100644 --- a/gm/convexpolyclip.cpp +++ b/gm/convexpolyclip.cpp @@ -46,7 +46,7 @@ static SkBitmap make_bmp(int w, int h) { colors, pos, SK_ARRAY_COUNT(colors), SkShader::kRepeat_TileMode, - 0, &mat))->unref(); + NULL, 0, &mat))->unref(); canvas.drawRect(rect, paint); rect.inset(wScalar / 8, hScalar / 8); mat.preTranslate(6 * wScalar, 6 * hScalar); diff --git a/gm/drawbitmaprect.cpp b/gm/drawbitmaprect.cpp index 33a13f0fe9..d9b1434e57 100644 --- a/gm/drawbitmaprect.cpp +++ b/gm/drawbitmaprect.cpp @@ -63,7 +63,7 @@ static void makebm(SkBitmap* bm, int w, int h) { colors, pos, SK_ARRAY_COUNT(colors), SkShader::kRepeat_TileMode, - 0, &mat))->unref(); + NULL, 0, &mat))->unref(); canvas.drawRect(rect, paint); rect.inset(wScalar / 8, hScalar / 8); mat.postScale(SK_Scalar1 / 4, SK_Scalar1 / 4); diff --git a/gm/gradientDirtyLaundry.cpp b/gm/gradientDirtyLaundry.cpp index baa7471ef2..f7797e718f 100644 --- a/gm/gradientDirtyLaundry.cpp +++ b/gm/gradientDirtyLaundry.cpp @@ -35,28 +35,33 @@ static const GradData gGradData[] = { // { 2, gCol2, NULL }, }; -static SkShader* MakeLinear(const SkPoint pts[2], const GradData& data, SkShader::TileMode tm) { - return SkGradientShader::CreateLinear(pts, data.fColors, data.fPos, data.fCount, tm); +static SkShader* MakeLinear(const SkPoint pts[2], const GradData& data, + SkShader::TileMode tm, SkUnitMapper* mapper) { + return SkGradientShader::CreateLinear(pts, data.fColors, data.fPos, + data.fCount, tm, mapper); } -static SkShader* MakeRadial(const SkPoint pts[2], const GradData& data, SkShader::TileMode tm) { +static SkShader* MakeRadial(const SkPoint pts[2], const GradData& data, + SkShader::TileMode tm, SkUnitMapper* mapper) { SkPoint center; center.set(SkScalarAve(pts[0].fX, pts[1].fX), SkScalarAve(pts[0].fY, pts[1].fY)); return SkGradientShader::CreateRadial(center, center.fX, data.fColors, - data.fPos, data.fCount, tm); + data.fPos, data.fCount, tm, mapper); } -static SkShader* MakeSweep(const SkPoint pts[2], const GradData& data, SkShader::TileMode) { +static SkShader* MakeSweep(const SkPoint pts[2], const GradData& data, + SkShader::TileMode, SkUnitMapper* mapper) { SkPoint center; center.set(SkScalarAve(pts[0].fX, pts[1].fX), SkScalarAve(pts[0].fY, pts[1].fY)); - return SkGradientShader::CreateSweep(center.fX, center.fY, data.fColors, data.fPos, data.fCount); + return SkGradientShader::CreateSweep(center.fX, center.fY, data.fColors, + data.fPos, data.fCount, mapper); } -typedef SkShader* (*GradMaker)(const SkPoint pts[2], const GradData& data, SkShader::TileMode tm); - +typedef SkShader* (*GradMaker)(const SkPoint pts[2], const GradData& data, + SkShader::TileMode tm, SkUnitMapper* mapper); static const GradMaker gGradMakers[] = { MakeLinear, MakeRadial, MakeSweep, }; @@ -90,7 +95,7 @@ protected: for (size_t i = 0; i < SK_ARRAY_COUNT(gGradData); i++) { canvas->save(); for (size_t j = 0; j < SK_ARRAY_COUNT(gGradMakers); j++) { - SkShader* shader = gGradMakers[j](pts, gGradData[i], tm); + SkShader* shader = gGradMakers[j](pts, gGradData[i], tm, NULL); paint.setShader(shader)->unref(); canvas->drawRect(r, paint); canvas->translate(0, SkIntToScalar(120)); diff --git a/gm/gradient_matrix.cpp b/gm/gradient_matrix.cpp index 275acc8868..4f2915ab4d 100644 --- a/gm/gradient_matrix.cpp +++ b/gm/gradient_matrix.cpp @@ -63,7 +63,7 @@ static const int IMAGES_X = 4; // number of images per row static SkShader* make_linear_gradient(const SkPoint pts[2], const SkMatrix& localMatrix) { return SkGradientShader::CreateLinear(pts, gColors, NULL, SK_ARRAY_COUNT(gColors), - SkShader::kClamp_TileMode, 0, &localMatrix); + SkShader::kClamp_TileMode, NULL, 0, &localMatrix); } static SkShader* make_radial_gradient(const SkPoint pts[2], const SkMatrix& localMatrix) { @@ -72,7 +72,7 @@ static SkShader* make_radial_gradient(const SkPoint pts[2], const SkMatrix& loca SkScalarAve(pts[0].fY, pts[1].fY)); float radius = (center - pts[0]).length(); return SkGradientShader::CreateRadial(center, radius, gColors, NULL, SK_ARRAY_COUNT(gColors), - SkShader::kClamp_TileMode, 0, &localMatrix); + SkShader::kClamp_TileMode, NULL, 0, &localMatrix); } static void draw_gradients(SkCanvas* canvas, diff --git a/gm/gradients.cpp b/gm/gradients.cpp index 277033b5dd..f5abb07efc 100644 --- a/gm/gradients.cpp +++ b/gm/gradients.cpp @@ -40,31 +40,35 @@ static const GradData gGradData[] = { }; static SkShader* MakeLinear(const SkPoint pts[2], const GradData& data, - SkShader::TileMode tm, const SkMatrix& localMatrix) { + SkShader::TileMode tm, SkUnitMapper* mapper, + const SkMatrix& localMatrix) { return SkGradientShader::CreateLinear(pts, data.fColors, data.fPos, - data.fCount, tm, 0, &localMatrix); + data.fCount, tm, mapper, 0, &localMatrix); } static SkShader* MakeRadial(const SkPoint pts[2], const GradData& data, - SkShader::TileMode tm, const SkMatrix& localMatrix) { + SkShader::TileMode tm, SkUnitMapper* mapper, + const SkMatrix& localMatrix) { SkPoint center; center.set(SkScalarAve(pts[0].fX, pts[1].fX), SkScalarAve(pts[0].fY, pts[1].fY)); return SkGradientShader::CreateRadial(center, center.fX, data.fColors, - data.fPos, data.fCount, tm, 0, &localMatrix); + data.fPos, data.fCount, tm, mapper, 0, &localMatrix); } static SkShader* MakeSweep(const SkPoint pts[2], const GradData& data, - SkShader::TileMode, const SkMatrix& localMatrix) { + SkShader::TileMode, SkUnitMapper* mapper, + const SkMatrix& localMatrix) { SkPoint center; center.set(SkScalarAve(pts[0].fX, pts[1].fX), SkScalarAve(pts[0].fY, pts[1].fY)); return SkGradientShader::CreateSweep(center.fX, center.fY, data.fColors, - data.fPos, data.fCount, 0, &localMatrix); + data.fPos, data.fCount, mapper, 0, &localMatrix); } static SkShader* Make2Radial(const SkPoint pts[2], const GradData& data, - SkShader::TileMode tm, const SkMatrix& localMatrix) { + SkShader::TileMode tm, SkUnitMapper* mapper, + const SkMatrix& localMatrix) { SkPoint center0, center1; center0.set(SkScalarAve(pts[0].fX, pts[1].fX), SkScalarAve(pts[0].fY, pts[1].fY)); @@ -73,12 +77,13 @@ static SkShader* Make2Radial(const SkPoint pts[2], const GradData& data, return SkGradientShader::CreateTwoPointRadial( center1, (pts[1].fX - pts[0].fX) / 7, center0, (pts[1].fX - pts[0].fX) / 2, - data.fColors, data.fPos, data.fCount, tm, + data.fColors, data.fPos, data.fCount, tm, mapper, 0, &localMatrix); } static SkShader* Make2Conical(const SkPoint pts[2], const GradData& data, - SkShader::TileMode tm, const SkMatrix& localMatrix) { + SkShader::TileMode tm, SkUnitMapper* mapper, + const SkMatrix& localMatrix) { SkPoint center0, center1; SkScalar radius0 = SkScalarDiv(pts[1].fX - pts[0].fX, 10); SkScalar radius1 = SkScalarDiv(pts[1].fX - pts[0].fX, 3); @@ -87,11 +92,13 @@ static SkShader* Make2Conical(const SkPoint pts[2], const GradData& data, return SkGradientShader::CreateTwoPointConical(center1, radius1, center0, radius0, data.fColors, data.fPos, - data.fCount, tm, 0, &localMatrix); + data.fCount, tm, mapper, + 0, &localMatrix); } typedef SkShader* (*GradMaker)(const SkPoint pts[2], const GradData& data, - SkShader::TileMode tm, const SkMatrix& localMatrix); + SkShader::TileMode tm, SkUnitMapper* mapper, + const SkMatrix& localMatrix); static const GradMaker gGradMakers[] = { MakeLinear, MakeRadial, MakeSweep, Make2Radial, Make2Conical }; @@ -137,7 +144,7 @@ protected: scale.postTranslate(25.f, 25.f); } - SkShader* shader = gGradMakers[j](pts, gGradData[i], tm, scale); + SkShader* shader = gGradMakers[j](pts, gGradData[i], tm, NULL, scale); paint.setShader(shader); canvas->drawRect(r, paint); @@ -195,7 +202,7 @@ protected: perspective.setSkewX(SkScalarDiv(SkIntToScalar((unsigned) i+1), SkIntToScalar(10))); - SkShader* shader = gGradMakers[j](pts, gGradData[i], tm, perspective); + SkShader* shader = gGradMakers[j](pts, gGradData[i], tm, NULL, perspective); paint.setShader(shader); canvas->drawRect(r, paint); @@ -320,7 +327,7 @@ protected: SkShader* shader = SkGradientShader::CreateRadial( SkPoint(center), SkIntToScalar(200), gColors, NULL, 5, - SkShader::kClamp_TileMode); + SkShader::kClamp_TileMode, NULL); paint.setShader(shader); canvas->drawRect(r, paint); shader->unref(); @@ -415,17 +422,17 @@ protected: SkAutoTUnref<SkShader> sweep( SkGradientShader::CreateSweep(cx, cy, sweep_colors, NULL, SK_ARRAY_COUNT(sweep_colors), - flags[i], NULL)); + NULL, flags[i])); SkAutoTUnref<SkShader> radial1( SkGradientShader::CreateRadial(center, radius, colors1, NULL, SK_ARRAY_COUNT(colors1), SkShader::kClamp_TileMode, - flags[i], NULL)); + NULL, flags[i])); SkAutoTUnref<SkShader> radial2( SkGradientShader::CreateRadial(center, radius, colors2, NULL, SK_ARRAY_COUNT(colors2), SkShader::kClamp_TileMode, - flags[i], NULL)); + NULL, flags[i])); paint1.setShader(sweep); paint2.setShader(radial1); paint3.setShader(radial2); diff --git a/gm/gradients_2pt_conical.cpp b/gm/gradients_2pt_conical.cpp index 27f0da186d..dece66ed8b 100644 --- a/gm/gradients_2pt_conical.cpp +++ b/gm/gradients_2pt_conical.cpp @@ -1,10 +1,10 @@ + /* * Copyright 2014 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ - #include "gm.h" #include "SkGradientShader.h" @@ -38,7 +38,8 @@ static const GradData gGradData[] = { }; static SkShader* Make2ConicalOutside(const SkPoint pts[2], const GradData& data, - SkShader::TileMode tm, const SkMatrix& localMatrix) { + SkShader::TileMode tm, SkUnitMapper* mapper, + const SkMatrix& localMatrix) { SkPoint center0, center1; SkScalar radius0 = SkScalarDiv(pts[1].fX - pts[0].fX, 10); SkScalar radius1 = SkScalarDiv(pts[1].fX - pts[0].fX, 3); @@ -47,11 +48,13 @@ static SkShader* Make2ConicalOutside(const SkPoint pts[2], const GradData& data, return SkGradientShader::CreateTwoPointConical(center0, radius0, center1, radius1, data.fColors, data.fPos, - data.fCount, tm, 0, &localMatrix); + data.fCount, tm, mapper, + 0, &localMatrix); } static SkShader* Make2ConicalOutsideFlip(const SkPoint pts[2], const GradData& data, - SkShader::TileMode tm, const SkMatrix& localMatrix) { + SkShader::TileMode tm, SkUnitMapper* mapper, + const SkMatrix& localMatrix) { SkPoint center0, center1; SkScalar radius0 = SkScalarDiv(pts[1].fX - pts[0].fX, 10); SkScalar radius1 = SkScalarDiv(pts[1].fX - pts[0].fX, 3); @@ -60,11 +63,13 @@ static SkShader* Make2ConicalOutsideFlip(const SkPoint pts[2], const GradData& d return SkGradientShader::CreateTwoPointConical(center1, radius1, center0, radius0, data.fColors, data.fPos, - data.fCount, tm, 0, &localMatrix); + data.fCount, tm, mapper, + 0, &localMatrix); } static SkShader* Make2ConicalInside(const SkPoint pts[2], const GradData& data, - SkShader::TileMode tm, const SkMatrix& localMatrix) { + SkShader::TileMode tm, SkUnitMapper* mapper, + const SkMatrix& localMatrix) { SkPoint center0, center1; center0.set(SkScalarAve(pts[0].fX, pts[1].fX), SkScalarAve(pts[0].fY, pts[1].fY)); @@ -72,12 +77,13 @@ static SkShader* Make2ConicalInside(const SkPoint pts[2], const GradData& data, SkScalarInterp(pts[0].fY, pts[1].fY, SkIntToScalar(1)/4)); return SkGradientShader::CreateTwoPointConical(center1, (pts[1].fX - pts[0].fX) / 7, center0, (pts[1].fX - pts[0].fX) / 2, - data.fColors, data.fPos, data.fCount, tm, + data.fColors, data.fPos, data.fCount, tm, mapper, 0, &localMatrix); } static SkShader* Make2ConicalInsideFlip(const SkPoint pts[2], const GradData& data, - SkShader::TileMode tm, const SkMatrix& localMatrix) { + SkShader::TileMode tm, SkUnitMapper* mapper, + const SkMatrix& localMatrix) { SkPoint center0, center1; center0.set(SkScalarAve(pts[0].fX, pts[1].fX), SkScalarAve(pts[0].fY, pts[1].fY)); @@ -85,12 +91,13 @@ static SkShader* Make2ConicalInsideFlip(const SkPoint pts[2], const GradData& da SkScalarInterp(pts[0].fY, pts[1].fY, SkIntToScalar(1)/4)); return SkGradientShader::CreateTwoPointConical(center0, (pts[1].fX - pts[0].fX) / 2, center1, (pts[1].fX - pts[0].fX) / 7, - data.fColors, data.fPos, data.fCount, tm, + data.fColors, data.fPos, data.fCount, tm, mapper, 0, &localMatrix); } static SkShader* Make2ConicalInsideCenter(const SkPoint pts[2], const GradData& data, - SkShader::TileMode tm, const SkMatrix& localMatrix) { + SkShader::TileMode tm, SkUnitMapper* mapper, + const SkMatrix& localMatrix) { SkPoint center0, center1; center0.set(SkScalarAve(pts[0].fX, pts[1].fX), SkScalarAve(pts[0].fY, pts[1].fY)); @@ -98,12 +105,13 @@ static SkShader* Make2ConicalInsideCenter(const SkPoint pts[2], const GradData& SkScalarInterp(pts[0].fY, pts[1].fY, SkIntToScalar(1)/4)); return SkGradientShader::CreateTwoPointConical(center0, (pts[1].fX - pts[0].fX) / 7, center0, (pts[1].fX - pts[0].fX) / 2, - data.fColors, data.fPos, data.fCount, tm, + data.fColors, data.fPos, data.fCount, tm, mapper, 0, &localMatrix); } static SkShader* Make2ConicalZeroRad(const SkPoint pts[2], const GradData& data, - SkShader::TileMode tm, const SkMatrix& localMatrix) { + SkShader::TileMode tm, SkUnitMapper* mapper, + const SkMatrix& localMatrix) { SkPoint center0, center1; center0.set(SkScalarAve(pts[0].fX, pts[1].fX), SkScalarAve(pts[0].fY, pts[1].fY)); @@ -111,12 +119,13 @@ static SkShader* Make2ConicalZeroRad(const SkPoint pts[2], const GradData& data, SkScalarInterp(pts[0].fY, pts[1].fY, SkIntToScalar(1)/4)); return SkGradientShader::CreateTwoPointConical(center1, 0.f, center0, (pts[1].fX - pts[0].fX) / 2, - data.fColors, data.fPos, data.fCount, tm, + data.fColors, data.fPos, data.fCount, tm, mapper, 0, &localMatrix); } static SkShader* Make2ConicalZeroRadFlip(const SkPoint pts[2], const GradData& data, - SkShader::TileMode tm, const SkMatrix& localMatrix) { + SkShader::TileMode tm, SkUnitMapper* mapper, + const SkMatrix& localMatrix) { SkPoint center0, center1; center0.set(SkScalarAve(pts[0].fX, pts[1].fX), SkScalarAve(pts[0].fY, pts[1].fY)); @@ -124,12 +133,13 @@ static SkShader* Make2ConicalZeroRadFlip(const SkPoint pts[2], const GradData& d SkScalarInterp(pts[0].fY, pts[1].fY, SkIntToScalar(1)/4)); return SkGradientShader::CreateTwoPointConical(center1, (pts[1].fX - pts[0].fX) / 2, center0, 0.f, - data.fColors, data.fPos, data.fCount, tm, + data.fColors, data.fPos, data.fCount, tm, mapper, 0, &localMatrix); } static SkShader* Make2ConicalZeroRadCenter(const SkPoint pts[2], const GradData& data, - SkShader::TileMode tm, const SkMatrix& localMatrix) { + SkShader::TileMode tm, SkUnitMapper* mapper, + const SkMatrix& localMatrix) { SkPoint center0, center1; center0.set(SkScalarAve(pts[0].fX, pts[1].fX), SkScalarAve(pts[0].fY, pts[1].fY)); @@ -137,12 +147,13 @@ static SkShader* Make2ConicalZeroRadCenter(const SkPoint pts[2], const GradData& SkScalarInterp(pts[0].fY, pts[1].fY, SkIntToScalar(1)/4)); return SkGradientShader::CreateTwoPointConical(center0, 0.f, center0, (pts[1].fX - pts[0].fX) / 2, - data.fColors, data.fPos, data.fCount, tm, + data.fColors, data.fPos, data.fCount, tm, mapper, 0, &localMatrix); } static SkShader* Make2ConicalZeroRadOutside(const SkPoint pts[2], const GradData& data, - SkShader::TileMode tm, const SkMatrix& localMatrix) { + SkShader::TileMode tm, SkUnitMapper* mapper, + const SkMatrix& localMatrix) { SkPoint center0, center1; SkScalar radius0 = 0.f; SkScalar radius1 = SkScalarDiv(pts[1].fX - pts[0].fX, 3); @@ -151,11 +162,13 @@ static SkShader* Make2ConicalZeroRadOutside(const SkPoint pts[2], const GradData return SkGradientShader::CreateTwoPointConical(center0, radius0, center1, radius1, data.fColors, data.fPos, - data.fCount, tm, 0, &localMatrix); + data.fCount, tm, mapper, + 0, &localMatrix); } static SkShader* Make2ConicalZeroRadFlipOutside(const SkPoint pts[2], const GradData& data, - SkShader::TileMode tm, const SkMatrix& localMatrix) { + SkShader::TileMode tm, SkUnitMapper* mapper, + const SkMatrix& localMatrix) { SkPoint center0, center1; SkScalar radius0 = 0.f; SkScalar radius1 = SkScalarDiv(pts[1].fX - pts[0].fX, 3); @@ -164,11 +177,13 @@ static SkShader* Make2ConicalZeroRadFlipOutside(const SkPoint pts[2], const Grad return SkGradientShader::CreateTwoPointConical(center1, radius1, center0, radius0, data.fColors, data.fPos, - data.fCount, tm, 0, &localMatrix); + data.fCount, tm, mapper, + 0, &localMatrix); } static SkShader* Make2ConicalEdgeX(const SkPoint pts[2], const GradData& data, - SkShader::TileMode tm, const SkMatrix& localMatrix) { + SkShader::TileMode tm, SkUnitMapper* mapper, + const SkMatrix& localMatrix) { SkPoint center0, center1; SkScalar radius0 = SkScalarDiv(pts[1].fX - pts[0].fX, 7); SkScalar radius1 = SkScalarDiv(pts[1].fX - pts[0].fX, 3); @@ -178,11 +193,13 @@ static SkShader* Make2ConicalEdgeX(const SkPoint pts[2], const GradData& data, return SkGradientShader::CreateTwoPointConical(center0, radius0, center1, radius1, data.fColors, data.fPos, - data.fCount, tm, 0, &localMatrix); + data.fCount, tm, mapper, + 0, &localMatrix); } static SkShader* Make2ConicalEdgeY(const SkPoint pts[2], const GradData& data, - SkShader::TileMode tm, const SkMatrix& localMatrix) { + SkShader::TileMode tm, SkUnitMapper* mapper, + const SkMatrix& localMatrix) { SkPoint center0, center1; SkScalar radius0 = SkScalarDiv(pts[1].fX - pts[0].fX, 7); SkScalar radius1 = SkScalarDiv(pts[1].fX - pts[0].fX, 3); @@ -192,10 +209,12 @@ static SkShader* Make2ConicalEdgeY(const SkPoint pts[2], const GradData& data, return SkGradientShader::CreateTwoPointConical(center0, radius0, center1, radius1, data.fColors, data.fPos, - data.fCount, tm, 0, &localMatrix); + data.fCount, tm, mapper, + 0, &localMatrix); } static SkShader* Make2ConicalZeroRadEdgeX(const SkPoint pts[2], const GradData& data, - SkShader::TileMode tm, const SkMatrix& localMatrix) { + SkShader::TileMode tm, SkUnitMapper* mapper, + const SkMatrix& localMatrix) { SkPoint center0, center1; SkScalar radius0 = 0.f; SkScalar radius1 = SkScalarDiv(pts[1].fX - pts[0].fX, 3); @@ -205,11 +224,13 @@ static SkShader* Make2ConicalZeroRadEdgeX(const SkPoint pts[2], const GradData& return SkGradientShader::CreateTwoPointConical(center0, radius0, center1, radius1, data.fColors, data.fPos, - data.fCount, tm, 0, &localMatrix); + data.fCount, tm, mapper, + 0, &localMatrix); } static SkShader* Make2ConicalZeroRadEdgeY(const SkPoint pts[2], const GradData& data, - SkShader::TileMode tm, const SkMatrix& localMatrix) { + SkShader::TileMode tm, SkUnitMapper* mapper, + const SkMatrix& localMatrix) { SkPoint center0, center1; SkScalar radius0 = 0.f; SkScalar radius1 = SkScalarDiv(pts[1].fX - pts[0].fX, 3); @@ -219,11 +240,13 @@ static SkShader* Make2ConicalZeroRadEdgeY(const SkPoint pts[2], const GradData& return SkGradientShader::CreateTwoPointConical(center0, radius0, center1, radius1, data.fColors, data.fPos, - data.fCount, tm, 0, &localMatrix); + data.fCount, tm, mapper, + 0, &localMatrix); } static SkShader* Make2ConicalTouchX(const SkPoint pts[2], const GradData& data, - SkShader::TileMode tm, const SkMatrix& localMatrix) { + SkShader::TileMode tm, SkUnitMapper* mapper, + const SkMatrix& localMatrix) { SkPoint center0, center1; SkScalar radius0 = SkScalarDiv(pts[1].fX - pts[0].fX, 7); SkScalar radius1 = SkScalarDiv(pts[1].fX - pts[0].fX, 3); @@ -233,11 +256,13 @@ static SkShader* Make2ConicalTouchX(const SkPoint pts[2], const GradData& data, return SkGradientShader::CreateTwoPointConical(center0, radius0, center1, radius1, data.fColors, data.fPos, - data.fCount, tm, 0, &localMatrix); + data.fCount, tm, mapper, + 0, &localMatrix); } static SkShader* Make2ConicalTouchY(const SkPoint pts[2], const GradData& data, - SkShader::TileMode tm, const SkMatrix& localMatrix) { + SkShader::TileMode tm, SkUnitMapper* mapper, + const SkMatrix& localMatrix) { SkPoint center0, center1; SkScalar radius0 = SkScalarDiv(pts[1].fX - pts[0].fX, 7); SkScalar radius1 = SkScalarDiv(pts[1].fX - pts[0].fX, 3); @@ -247,11 +272,13 @@ static SkShader* Make2ConicalTouchY(const SkPoint pts[2], const GradData& data, return SkGradientShader::CreateTwoPointConical(center0, radius0, center1, radius1, data.fColors, data.fPos, - data.fCount, tm, 0, &localMatrix); + data.fCount, tm, mapper, + 0, &localMatrix); } static SkShader* Make2ConicalInsideSmallRad(const SkPoint pts[2], const GradData& data, - SkShader::TileMode tm, const SkMatrix& localMatrix) { + SkShader::TileMode tm, SkUnitMapper* mapper, + const SkMatrix& localMatrix) { SkPoint center0, center1; center0.set(SkScalarAve(pts[0].fX, pts[1].fX), SkScalarAve(pts[0].fY, pts[1].fY)); @@ -259,12 +286,13 @@ static SkShader* Make2ConicalInsideSmallRad(const SkPoint pts[2], const GradData SkScalarInterp(pts[0].fY, pts[1].fY, SkIntToScalar(1)/4)); return SkGradientShader::CreateTwoPointConical(center0, 0.0000000000000000001f, center0, (pts[1].fX - pts[0].fX) / 2, - data.fColors, data.fPos, data.fCount, tm, + data.fColors, data.fPos, data.fCount, tm, mapper, 0, &localMatrix); } typedef SkShader* (*GradMaker)(const SkPoint pts[2], const GradData& data, - SkShader::TileMode tm, const SkMatrix& localMatrix); + SkShader::TileMode tm, SkUnitMapper* mapper, + const SkMatrix& localMatrix); static const GradMaker gGradMakersOutside[] = { Make2ConicalOutside, Make2ConicalOutsideFlip, @@ -350,7 +378,7 @@ protected: scale.postTranslate(25.f, 25.f); } - SkShader* shader = gradMaker[j](pts, gGradData[i], tm, scale); + SkShader* shader = gradMaker[j](pts, gGradData[i], tm, NULL, scale); paint.setShader(shader); canvas->drawRect(r, paint); shader->unref(); diff --git a/gm/gradients_no_texture.cpp b/gm/gradients_no_texture.cpp index fcbba45ae7..2e75c9ed79 100644 --- a/gm/gradients_no_texture.cpp +++ b/gm/gradients_no_texture.cpp @@ -26,26 +26,32 @@ static const GradData gGradData[] = { { 4, gColors, NULL }, }; -static SkShader* MakeLinear(const SkPoint pts[2], const GradData& data, SkShader::TileMode tm) { - return SkGradientShader::CreateLinear(pts, data.fColors, data.fPos, data.fCount, tm); +static SkShader* MakeLinear(const SkPoint pts[2], const GradData& data, + SkShader::TileMode tm, SkUnitMapper* mapper) { + return SkGradientShader::CreateLinear(pts, data.fColors, data.fPos, + data.fCount, tm, mapper); } -static SkShader* MakeRadial(const SkPoint pts[2], const GradData& data, SkShader::TileMode tm) { +static SkShader* MakeRadial(const SkPoint pts[2], const GradData& data, + SkShader::TileMode tm, SkUnitMapper* mapper) { SkPoint center; center.set(SkScalarAve(pts[0].fX, pts[1].fX), SkScalarAve(pts[0].fY, pts[1].fY)); return SkGradientShader::CreateRadial(center, center.fX, data.fColors, - data.fPos, data.fCount, tm); + data.fPos, data.fCount, tm, mapper); } -static SkShader* MakeSweep(const SkPoint pts[2], const GradData& data, SkShader::TileMode) { +static SkShader* MakeSweep(const SkPoint pts[2], const GradData& data, + SkShader::TileMode, SkUnitMapper* mapper) { SkPoint center; center.set(SkScalarAve(pts[0].fX, pts[1].fX), SkScalarAve(pts[0].fY, pts[1].fY)); - return SkGradientShader::CreateSweep(center.fX, center.fY, data.fColors, data.fPos, data.fCount); + return SkGradientShader::CreateSweep(center.fX, center.fY, data.fColors, + data.fPos, data.fCount, mapper); } -static SkShader* Make2Radial(const SkPoint pts[2], const GradData& data, SkShader::TileMode tm) { +static SkShader* Make2Radial(const SkPoint pts[2], const GradData& data, + SkShader::TileMode tm, SkUnitMapper* mapper) { SkPoint center0, center1; center0.set(SkScalarAve(pts[0].fX, pts[1].fX), SkScalarAve(pts[0].fY, pts[1].fY)); @@ -54,10 +60,11 @@ static SkShader* Make2Radial(const SkPoint pts[2], const GradData& data, SkShade return SkGradientShader::CreateTwoPointRadial( center1, (pts[1].fX - pts[0].fX) / 7, center0, (pts[1].fX - pts[0].fX) / 2, - data.fColors, data.fPos, data.fCount, tm); + data.fColors, data.fPos, data.fCount, tm, mapper); } -static SkShader* Make2Conical(const SkPoint pts[2], const GradData& data, SkShader::TileMode tm) { +static SkShader* Make2Conical(const SkPoint pts[2], const GradData& data, + SkShader::TileMode tm, SkUnitMapper* mapper) { SkPoint center0, center1; SkScalar radius0 = SkScalarDiv(pts[1].fX - pts[0].fX, 10); SkScalar radius1 = SkScalarDiv(pts[1].fX - pts[0].fX, 3); @@ -66,12 +73,12 @@ static SkShader* Make2Conical(const SkPoint pts[2], const GradData& data, SkShad return SkGradientShader::CreateTwoPointConical(center1, radius1, center0, radius0, data.fColors, data.fPos, - data.fCount, tm); + data.fCount, tm, mapper); } -typedef SkShader* (*GradMaker)(const SkPoint pts[2], const GradData& data, SkShader::TileMode tm); - +typedef SkShader* (*GradMaker)(const SkPoint pts[2], const GradData& data, + SkShader::TileMode tm, SkUnitMapper* mapper); static const GradMaker gGradMakers[] = { MakeLinear, MakeRadial, MakeSweep, Make2Radial, Make2Conical, }; @@ -106,7 +113,7 @@ protected: for (size_t i = 0; i < SK_ARRAY_COUNT(gGradData); ++i) { canvas->save(); for (size_t j = 0; j < SK_ARRAY_COUNT(gGradMakers); ++j) { - SkShader* shader = gGradMakers[j](kPts, gGradData[i], kTM); + SkShader* shader = gGradMakers[j](kPts, gGradData[i], kTM, NULL); paint.setShader(shader)->unref(); paint.setAlpha(kAlphas[a]); canvas->drawRect(kRect, paint); diff --git a/gm/shaderbounds.cpp b/gm/shaderbounds.cpp index f82985bf52..f0b8b9781d 100644 --- a/gm/shaderbounds.cpp +++ b/gm/shaderbounds.cpp @@ -19,7 +19,7 @@ static SkShader* MakeLinear(SkScalar width, SkScalar height, bool alternate, colors[1] = SK_ColorYELLOW; } return SkGradientShader::CreateLinear(pts, colors, NULL, 2, - SkShader::kClamp_TileMode, 0, &localMatrix); + SkShader::kClamp_TileMode, NULL, 0, &localMatrix); } /////////////////////////////////////////////////////////////////////////////// diff --git a/gm/shadertext.cpp b/gm/shadertext.cpp index 292acdd7a6..b9e28be898 100644 --- a/gm/shadertext.cpp +++ b/gm/shadertext.cpp @@ -1,13 +1,14 @@ + /* * Copyright 2011 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ - #include "gm.h" #include "SkCanvas.h" #include "SkGradientShader.h" +#include "SkUnitMappers.h" namespace skiagm { @@ -22,9 +23,15 @@ static void makebm(SkBitmap* bm, int w, int h) { SkScalar pos[] = { 0, SK_Scalar1/2, SK_Scalar1 }; SkPaint paint; + SkUnitMapper* um = NULL; + + um = new SkCosineMapper; + + SkAutoUnref au(um); + paint.setDither(true); paint.setShader(SkGradientShader::CreateLinear(pts, colors, pos, - SK_ARRAY_COUNT(colors), SkShader::kClamp_TileMode))->unref(); + SK_ARRAY_COUNT(colors), SkShader::kClamp_TileMode, um))->unref(); canvas.drawPaint(paint); } @@ -54,26 +61,32 @@ static const GradData gGradData[] = { { 5, gColors, NULL }, }; -static SkShader* MakeLinear(const SkPoint pts[2], const GradData& data, SkShader::TileMode tm) { - return SkGradientShader::CreateLinear(pts, data.fColors, data.fPos, data.fCount, tm); +static SkShader* MakeLinear(const SkPoint pts[2], const GradData& data, + SkShader::TileMode tm, SkUnitMapper* mapper) { + return SkGradientShader::CreateLinear(pts, data.fColors, data.fPos, + data.fCount, tm, mapper); } -static SkShader* MakeRadial(const SkPoint pts[2], const GradData& data, SkShader::TileMode tm) { +static SkShader* MakeRadial(const SkPoint pts[2], const GradData& data, + SkShader::TileMode tm, SkUnitMapper* mapper) { SkPoint center; center.set(SkScalarAve(pts[0].fX, pts[1].fX), SkScalarAve(pts[0].fY, pts[1].fY)); return SkGradientShader::CreateRadial(center, center.fX, data.fColors, - data.fPos, data.fCount, tm); + data.fPos, data.fCount, tm, mapper); } -static SkShader* MakeSweep(const SkPoint pts[2], const GradData& data, SkShader::TileMode) { +static SkShader* MakeSweep(const SkPoint pts[2], const GradData& data, + SkShader::TileMode, SkUnitMapper* mapper) { SkPoint center; center.set(SkScalarAve(pts[0].fX, pts[1].fX), SkScalarAve(pts[0].fY, pts[1].fY)); - return SkGradientShader::CreateSweep(center.fX, center.fY, data.fColors, data.fPos, data.fCount); + return SkGradientShader::CreateSweep(center.fX, center.fY, data.fColors, + data.fPos, data.fCount, mapper); } -static SkShader* Make2Radial(const SkPoint pts[2], const GradData& data, SkShader::TileMode tm) { +static SkShader* Make2Radial(const SkPoint pts[2], const GradData& data, + SkShader::TileMode tm, SkUnitMapper* mapper) { SkPoint center0, center1; center0.set(SkScalarAve(pts[0].fX, pts[1].fX), SkScalarAve(pts[0].fY, pts[1].fY)); @@ -82,11 +95,11 @@ static SkShader* Make2Radial(const SkPoint pts[2], const GradData& data, SkShade return SkGradientShader::CreateTwoPointRadial( center1, (pts[1].fX - pts[0].fX) / 7, center0, (pts[1].fX - pts[0].fX) / 2, - data.fColors, data.fPos, data.fCount, tm); + data.fColors, data.fPos, data.fCount, tm, mapper); } -typedef SkShader* (*GradMaker)(const SkPoint pts[2], const GradData& data, SkShader::TileMode tm); - +typedef SkShader* (*GradMaker)(const SkPoint pts[2], const GradData& data, + SkShader::TileMode tm, SkUnitMapper* mapper); static const GradMaker gGradMakers[] = { MakeLinear, MakeRadial, MakeSweep, Make2Radial }; @@ -141,7 +154,8 @@ protected: for (size_t m = 0; m < SK_ARRAY_COUNT(gGradMakers); ++m) { shaders[shdIdx++] = gGradMakers[m](pts, gGradData[d], - SkShader::kClamp_TileMode); + SkShader::kClamp_TileMode, + NULL); } } for (size_t tx = 0; tx < SK_ARRAY_COUNT(tileModes); ++tx) { diff --git a/gm/shadertext2.cpp b/gm/shadertext2.cpp index 27b517517e..d6a9a721cd 100644 --- a/gm/shadertext2.cpp +++ b/gm/shadertext2.cpp @@ -7,6 +7,7 @@ #include "gm.h" #include "SkCanvas.h" #include "SkGradientShader.h" +#include "SkUnitMappers.h" namespace skiagm { @@ -25,8 +26,14 @@ static void makebm(SkBitmap* bm, int w, int h) { SkPaint paint; + SkUnitMapper* um = NULL; + + um = new SkCosineMapper; + + SkAutoUnref au(um); + paint.setShader(SkGradientShader::CreateLinear(kPts0, kColors0, kPos, - SK_ARRAY_COUNT(kColors0), SkShader::kClamp_TileMode))->unref(); + SK_ARRAY_COUNT(kColors0), SkShader::kClamp_TileMode, um))->unref(); canvas.drawPaint(paint); paint.setShader(SkGradientShader::CreateLinear(kPts1, kColors1, kPos, SK_ARRAY_COUNT(kColors1), SkShader::kClamp_TileMode))->unref(); diff --git a/gm/shadertext3.cpp b/gm/shadertext3.cpp index 3c6400d8d6..8aa6e6965c 100644 --- a/gm/shadertext3.cpp +++ b/gm/shadertext3.cpp @@ -4,10 +4,10 @@ * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ - #include "gm.h" #include "SkCanvas.h" #include "SkGradientShader.h" +#include "SkUnitMappers.h" namespace skiagm { @@ -26,8 +26,14 @@ static void makebm(SkBitmap* bm, int w, int h) { SkPaint paint; + SkUnitMapper* um = NULL; + + um = new SkCosineMapper; + + SkAutoUnref au(um); + paint.setShader(SkGradientShader::CreateLinear(kPts0, kColors0, kPos, - SK_ARRAY_COUNT(kColors0), SkShader::kClamp_TileMode))->unref(); + SK_ARRAY_COUNT(kColors0), SkShader::kClamp_TileMode, um))->unref(); canvas.drawPaint(paint); paint.setShader(SkGradientShader::CreateLinear(kPts1, kColors1, kPos, SK_ARRAY_COUNT(kColors1), SkShader::kClamp_TileMode))->unref(); diff --git a/gm/tilemodes.cpp b/gm/tilemodes.cpp index 99d3a4708b..e04c52ae0f 100644 --- a/gm/tilemodes.cpp +++ b/gm/tilemodes.cpp @@ -16,6 +16,7 @@ // effects #include "SkGradientShader.h" +#include "SkUnitMappers.h" #include "SkBlurDrawLooper.h" static void makebm(SkBitmap* bm, SkColorType ct, int w, int h) { @@ -28,9 +29,16 @@ static void makebm(SkBitmap* bm, SkColorType ct, int w, int h) { SkScalar pos[] = { 0, SK_Scalar1/2, SK_Scalar1 }; SkPaint paint; + SkUnitMapper* um = NULL; + + um = new SkCosineMapper; +// um = new SkDiscreteMapper(12); + + SkAutoUnref au(um); + paint.setDither(true); paint.setShader(SkGradientShader::CreateLinear(pts, colors, pos, - SK_ARRAY_COUNT(colors), SkShader::kClamp_TileMode))->unref(); + SK_ARRAY_COUNT(colors), SkShader::kClamp_TileMode, um))->unref(); canvas.drawPaint(paint); } diff --git a/gm/tilemodes_scaled.cpp b/gm/tilemodes_scaled.cpp index 88a070afb5..a79002b56b 100644 --- a/gm/tilemodes_scaled.cpp +++ b/gm/tilemodes_scaled.cpp @@ -17,6 +17,7 @@ // effects #include "SkGradientShader.h" +#include "SkUnitMappers.h" #include "SkBlurDrawLooper.h" static void makebm(SkBitmap* bm, SkColorType ct, int w, int h) { @@ -29,9 +30,16 @@ static void makebm(SkBitmap* bm, SkColorType ct, int w, int h) { SkScalar pos[] = { 0, SK_Scalar1/2, SK_Scalar1 }; SkPaint paint; + SkUnitMapper* um = NULL; + + um = new SkCosineMapper; +// um = new SkDiscreteMapper(12); + + SkAutoUnref au(um); + paint.setDither(true); paint.setShader(SkGradientShader::CreateLinear(pts, colors, pos, - SK_ARRAY_COUNT(colors), SkShader::kClamp_TileMode))->unref(); + SK_ARRAY_COUNT(colors), SkShader::kClamp_TileMode, um))->unref(); canvas.drawPaint(paint); } |