Name common cubic resamplers

Useful in client code to document what we're doing as we switch away
from SkFilterQuality.

Change-Id: I05737beb99a567a46a3c3ec418b7f7da71b1ff62
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/366723
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Mike Reed <reed@google.com>
diff --git a/gm/anisotropic.cpp b/gm/anisotropic.cpp
index 995fb5c..43a683a 100644
--- a/gm/anisotropic.cpp
+++ b/gm/anisotropic.cpp
@@ -22,7 +22,7 @@
 // This GM exercises HighQuality anisotropic filtering.
 class AnisotropicGM : public GM {
 public:
-    AnisotropicGM() : fSampling({1.0f/3, 1.0f/3}) {
+    AnisotropicGM() : fSampling(SkCubicResampler::Mitchell()) {
         this->setBGColor(0xFFCCCCCC);
     }
 
diff --git a/gm/bicubic.cpp b/gm/bicubic.cpp
index 268fabf..a40b281 100644
--- a/gm/bicubic.cpp
+++ b/gm/bicubic.cpp
@@ -34,8 +34,8 @@
     SkPaint paint;
 
     SkImage::CubicResampler cubics[] = {
-        {      0, 1.0f/2 },
-        { 1.0f/3, 1.0f/3 },
+        SkCubicResampler::CatmullRom(),
+        SkCubicResampler::Mitchell(),
     };
     for (auto c : cubics) {
         paint.setShader(img->makeShader(SkTileMode::kClamp, SkTileMode::kClamp,
diff --git a/gm/bleed.cpp b/gm/bleed.cpp
index 4f4d1cd..555c529 100644
--- a/gm/bleed.cpp
+++ b/gm/bleed.cpp
@@ -246,7 +246,7 @@
 
         const SkSamplingOptions none(SkFilterMode::kNearest);
         const SkSamplingOptions  low(SkFilterMode::kLinear);
-        const SkSamplingOptions high({1.0f/3, 1.0f/3});
+        const SkSamplingOptions high(SkCubicResampler::Mitchell());
 
         SkScalar maxX = 0;
         for (bool antiAlias : {false, true}) {
diff --git a/gm/clippedbitmapshaders.cpp b/gm/clippedbitmapshaders.cpp
index 8680865..095921c 100644
--- a/gm/clippedbitmapshaders.cpp
+++ b/gm/clippedbitmapshaders.cpp
@@ -92,7 +92,7 @@
         s.postTranslate(SLIDE_SIZE / 2, SLIDE_SIZE / 2);
         SkPaint paint;
         paint.setShader(bmp.makeShader(fMode, fMode,
-                                       fHQ ? SkSamplingOptions({1.0f/3, 1.0f/3})
+                                       fHQ ? SkSamplingOptions(SkCubicResampler::Mitchell())
                                            : SkSamplingOptions(),
                                        s));
 
diff --git a/gm/compressed_textures.cpp b/gm/compressed_textures.cpp
index 56bea0b..b0c5c36 100644
--- a/gm/compressed_textures.cpp
+++ b/gm/compressed_textures.cpp
@@ -270,7 +270,7 @@
         int numMipLevels = SkMipmap::ComputeLevelCount(levelDimensions.width(),
                                                        levelDimensions.height()) + 1;
 
-        SkSamplingOptions sampling({1.0f/3, 1.0f/3});
+        SkSamplingOptions sampling(SkCubicResampler::Mitchell());
 
         bool isCompressed = false;
         if (image->isTextureBacked()) {
diff --git a/gm/constcolorprocessor.cpp b/gm/constcolorprocessor.cpp
index b42cd15..0571092 100644
--- a/gm/constcolorprocessor.cpp
+++ b/gm/constcolorprocessor.cpp
@@ -110,7 +110,7 @@
                 // Create a base-layer FP for the const color processor to draw on top of.
                 std::unique_ptr<GrFragmentProcessor> baseFP;
                 if (paintType >= SK_ARRAY_COUNT(kPaintColors)) {
-                    SkSamplingOptions high({1.0f/3, 1.0f/3});
+                    SkSamplingOptions high(SkCubicResampler::Mitchell());
                     GrColorInfo colorInfo;
                     GrFPArgs args(context, SkSimpleMatrixProvider(SkMatrix::I()), high, &colorInfo);
                     baseFP = as_SB(fShader)->asFragmentProcessor(args);
diff --git a/gm/filterbug.cpp b/gm/filterbug.cpp
index 6885689..8f97d87 100644
--- a/gm/filterbug.cpp
+++ b/gm/filterbug.cpp
@@ -59,7 +59,7 @@
     }
 
     void onDraw(SkCanvas* canvas) override {
-        static const SkSamplingOptions kSampling({1.0f/3, 1.0f/3});
+        static const SkSamplingOptions kSampling(SkCubicResampler::Mitchell());
         static const bool kDoAA = true;
 
         {
diff --git a/gm/filterindiabox.cpp b/gm/filterindiabox.cpp
index f822b20..6f40533 100644
--- a/gm/filterindiabox.cpp
+++ b/gm/filterindiabox.cpp
@@ -41,7 +41,7 @@
     draw_cell(canvas, bm, mat, 1 * dx, SkSamplingOptions(SkFilterMode::kLinear));
     draw_cell(canvas, bm, mat, 2 * dx, SkSamplingOptions(SkFilterMode::kLinear,
                                                          SkMipmapMode::kLinear));
-    draw_cell(canvas, bm, mat, 3 * dx, SkSamplingOptions({1.0f/3, 1.0f/3}));
+    draw_cell(canvas, bm, mat, 3 * dx, SkSamplingOptions(SkCubicResampler::Mitchell()));
 }
 
 class FilterIndiaBoxGM : public skiagm::GM {
diff --git a/gm/imagefiltersbase.cpp b/gm/imagefiltersbase.cpp
index 12669d6..1bbc9a2 100644
--- a/gm/imagefiltersbase.cpp
+++ b/gm/imagefiltersbase.cpp
@@ -190,7 +190,7 @@
     SkPaint paint;
     paint.setImageFilter(std::move(imf));
     paint.setAntiAlias(true);
-    SkSamplingOptions sampling({1.0f/3, 1.0f/3});
+    SkSamplingOptions sampling(SkCubicResampler::Mitchell());
     canvas->drawAtlas(atlas, &xform, &r, /*colors=*/nullptr, /*count=*/1, SkBlendMode::kSrc,
                       sampling, /*cullRect=*/nullptr, &paint);
 }
diff --git a/gm/imagefromyuvtextures.cpp b/gm/imagefromyuvtextures.cpp
index 9c427f4..76abc21 100644
--- a/gm/imagefromyuvtextures.cpp
+++ b/gm/imagefromyuvtextures.cpp
@@ -243,7 +243,7 @@
                     SkSamplingOptions(SkFilterMode::kNearest),
                     SkSamplingOptions(SkFilterMode::kLinear),
                     SkSamplingOptions(SkFilterMode::kLinear, SkMipmapMode::kNearest),
-                    SkSamplingOptions({1.0f/3, 1.0f/3})})
+                    SkSamplingOptions(SkCubicResampler::Mitchell())})
                 {
                     canvas->save();
                         canvas->scale(scale, scale);
diff --git a/gm/imagescalealigned.cpp b/gm/imagescalealigned.cpp
index 91bc72a..ce07d9d 100644
--- a/gm/imagescalealigned.cpp
+++ b/gm/imagescalealigned.cpp
@@ -111,7 +111,7 @@
             SkSamplingOptions(SkFilterMode::kNearest),
             SkSamplingOptions(SkFilterMode::kLinear),
             SkSamplingOptions(SkFilterMode::kLinear, SkMipmapMode::kLinear),
-            SkSamplingOptions({1.0f/3, 1.0f/3}),
+            SkSamplingOptions(SkCubicResampler::Mitchell()),
         };
         const bool AAs[] = { false, true };
 
diff --git a/gm/localmatriximageshader.cpp b/gm/localmatriximageshader.cpp
index 72751c5..dff3323 100644
--- a/gm/localmatriximageshader.cpp
+++ b/gm/localmatriximageshader.cpp
@@ -71,7 +71,8 @@
     auto image = GetResourceAsImage("images/mandrill_256.png");
     SkPaint p;
     SkMatrix m = SkMatrix::Scale(2, 2);
-    p.setShader(image->makeShader(SkSamplingOptions({1.0f/3, 1.0f/3}))->makeWithLocalMatrix(m));
+    p.setShader(image->makeShader(SkSamplingOptions(SkCubicResampler::Mitchell()))
+                ->makeWithLocalMatrix(m));
 
     canvas->drawRect(SkRect::MakeXYWH(0, 0, 256, 256), p);
 }
diff --git a/gm/mipmap.cpp b/gm/mipmap.cpp
index 73c55e9..40c9deb 100644
--- a/gm/mipmap.cpp
+++ b/gm/mipmap.cpp
@@ -49,7 +49,7 @@
         SkSamplingOptions(SkFilterMode::kNearest),
         SkSamplingOptions(SkFilterMode::kLinear),
         SkSamplingOptions(SkFilterMode::kLinear, SkMipmapMode::kLinear),
-        SkSamplingOptions({1.0f/3, 1.0f/3}),
+        SkSamplingOptions(SkCubicResampler::Mitchell()),
     };
 
     canvas->translate(20, 20);
diff --git a/gm/perspimages.cpp b/gm/perspimages.cpp
index 05c76df..ed8bae2 100644
--- a/gm/perspimages.cpp
+++ b/gm/perspimages.cpp
@@ -82,7 +82,7 @@
                         SkSamplingOptions(SkFilterMode::kNearest),
                         SkSamplingOptions(SkFilterMode::kLinear),
                         SkSamplingOptions(SkFilterMode::kLinear, SkMipmapMode::kLinear),
-                        SkSamplingOptions({1.0f/3, 1.0f/3})}) {
+                        SkSamplingOptions(SkCubicResampler::Mitchell())}) {
                         for (const auto& img : fImages) {
                             canvas->save();
                             canvas->concat(m);
diff --git a/gm/perspshaders.cpp b/gm/perspshaders.cpp
index 96d2433..24073d0 100644
--- a/gm/perspshaders.cpp
+++ b/gm/perspshaders.cpp
@@ -157,7 +157,7 @@
         this->drawRow(canvas, SkSamplingOptions(SkFilterMode::kLinear,
                                                 SkMipmapMode::kNearest));
         canvas->translate(0, SkIntToScalar(kCellSize));
-        this->drawRow(canvas, SkSamplingOptions({1.0f/3, 1.0f/3}));
+        this->drawRow(canvas, SkSamplingOptions(SkCubicResampler::Mitchell()));
         canvas->translate(0, SkIntToScalar(kCellSize));
     }
 private:
diff --git a/gm/rectangletexture.cpp b/gm/rectangletexture.cpp
index f21bc8f..e48792d 100644
--- a/gm/rectangletexture.cpp
+++ b/gm/rectangletexture.cpp
@@ -157,7 +157,7 @@
             SkSamplingOptions(SkFilterMode::kNearest),
             SkSamplingOptions(SkFilterMode::kLinear),
             SkSamplingOptions(SkFilterMode::kLinear, SkMipmapMode::kLinear),
-            SkSamplingOptions({1.0f/3, 1.0f/3}),
+            SkSamplingOptions(SkCubicResampler::Mitchell()),
         };
 
         constexpr SkScalar kScales[] = {1.0f, 1.2f, 0.75f};
diff --git a/gm/resizeimagefilter.cpp b/gm/resizeimagefilter.cpp
index 4396c15..c9b1a89 100644
--- a/gm/resizeimagefilter.cpp
+++ b/gm/resizeimagefilter.cpp
@@ -77,7 +77,7 @@
             SkSamplingOptions(),
             SkSamplingOptions(SkFilterMode::kLinear),
             SkSamplingOptions(SkFilterMode::kLinear, SkMipmapMode::kLinear),
-            SkSamplingOptions({1.0f/3, 1.0f/3}),
+            SkSamplingOptions(SkCubicResampler::Mitchell()),
         };
         const SkRect srcRect = SkRect::MakeWH(96, 96);
         const SkSize deviceSize = SkSize::Make(16, 16);
diff --git a/gm/sample_matrix_constant.cpp b/gm/sample_matrix_constant.cpp
index 000d67f..ae8d1fb 100644
--- a/gm/sample_matrix_constant.cpp
+++ b/gm/sample_matrix_constant.cpp
@@ -98,7 +98,8 @@
         SkMatrix matrix;
         SkSimpleMatrixProvider matrixProvider(matrix);
         GrColorInfo colorInfo;
-        GrFPArgs args(ctx, matrixProvider, SkSamplingOptions({1.0f/3, 1.0f/3}), &colorInfo);
+        GrFPArgs args(ctx, matrixProvider, SkSamplingOptions(SkCubicResampler::Mitchell()),
+                      &colorInfo);
         std::unique_ptr<GrFragmentProcessor> gradientFP = as_SB(shader)->asFragmentProcessor(args);
         draw(std::move(gradientFP), 512, 0);
         gradientFP = as_SB(shader)->asFragmentProcessor(args);
diff --git a/gm/sample_matrix_variable.cpp b/gm/sample_matrix_variable.cpp
index 04311af..9f3af57 100644
--- a/gm/sample_matrix_variable.cpp
+++ b/gm/sample_matrix_variable.cpp
@@ -96,7 +96,8 @@
         SkMatrix matrix;
         SkSimpleMatrixProvider matrixProvider(matrix);
         GrColorInfo colorInfo;
-        GrFPArgs args(ctx, matrixProvider, SkSamplingOptions({1.0f/3, 1.0f/3}), &colorInfo);
+        GrFPArgs args(ctx, matrixProvider, SkSamplingOptions(SkCubicResampler::Mitchell()),
+                      &colorInfo);
         std::unique_ptr<GrFragmentProcessor> gradientFP = as_SB(shader)->asFragmentProcessor(args);
         draw(std::move(gradientFP), -128, 256, 256, 0);
     }
diff --git a/gm/tiledscaledbitmap.cpp b/gm/tiledscaledbitmap.cpp
index db28c8d..c704dfa 100644
--- a/gm/tiledscaledbitmap.cpp
+++ b/gm/tiledscaledbitmap.cpp
@@ -66,7 +66,7 @@
         mat.postTranslate(-72, -72);
 
         paint.setShader(fBitmap.makeShader(SkTileMode::kRepeat, SkTileMode::kRepeat,
-                                           SkSamplingOptions({1.0f/3, 1.0f/3}), mat));
+                                           SkSamplingOptions(SkCubicResampler::Mitchell()), mat));
         canvas->drawRect({ 8, 8, 1008, 608 }, paint);
     }