add makeShader() to SkBitmap, and deprecate SkShader version

Bug: skia:8937
Change-Id: I42f011e04937a751222bd8ecc6c69b45cf9626a2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/206681
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Mike Reed <reed@google.com>
diff --git a/samplecode/SampleAARectModes.cpp b/samplecode/SampleAARectModes.cpp
index 3b9bb76..c876712 100644
--- a/samplecode/SampleAARectModes.cpp
+++ b/samplecode/SampleAARectModes.cpp
@@ -65,7 +65,7 @@
     SkMatrix m;
     m.setScale(SkIntToScalar(6), SkIntToScalar(6));
 
-    return SkShader::MakeBitmapShader(bm, SkTileMode::kRepeat, SkTileMode::kRepeat, &m);
+    return bm.makeShader(SkTileMode::kRepeat, SkTileMode::kRepeat, &m);
 }
 
 class AARectsModesView : public Sample {
diff --git a/samplecode/SampleAARects.cpp b/samplecode/SampleAARects.cpp
index d909af3..d556482 100644
--- a/samplecode/SampleAARects.cpp
+++ b/samplecode/SampleAARects.cpp
@@ -59,8 +59,7 @@
         SkPaint bluePaint;
         bluePaint.setARGB(0xff, 0x0, 0x0, 0xff);
         SkPaint bmpPaint;
-        bmpPaint.setShader(SkShader::MakeBitmapShader(fBitmap, SkTileMode::kRepeat,
-                                                      SkTileMode::kRepeat));
+        bmpPaint.setShader(fBitmap.makeShader(SkTileMode::kRepeat, SkTileMode::kRepeat));
         bluePaint.setStrokeWidth(3);
         bmpPaint.setStrokeWidth(3);
 
diff --git a/samplecode/SampleCamera.cpp b/samplecode/SampleCamera.cpp
index e3aca05..3b3b98c 100644
--- a/samplecode/SampleCamera.cpp
+++ b/samplecode/SampleCamera.cpp
@@ -39,10 +39,7 @@
                 SkMatrix matrix;
                 matrix.setRectToRect(src, dst, SkMatrix::kFill_ScaleToFit);
 
-                fShaders.push_back(SkShader::MakeBitmapShader(bm,
-                                                              SkTileMode::kClamp,
-                                                              SkTileMode::kClamp,
-                                                              &matrix));
+                fShaders.push_back(bm.makeShader(&matrix));
             } else {
                 break;
             }
diff --git a/samplecode/SampleHairModes.cpp b/samplecode/SampleHairModes.cpp
index 3885bf2..781d212 100644
--- a/samplecode/SampleHairModes.cpp
+++ b/samplecode/SampleHairModes.cpp
@@ -64,7 +64,7 @@
     SkMatrix m;
     m.setScale(SkIntToScalar(6), SkIntToScalar(6));
 
-    return SkShader::MakeBitmapShader(bm, SkTileMode::kRepeat, SkTileMode::kRepeat, &m);
+    return bm.makeShader(SkTileMode::kRepeat, SkTileMode::kRepeat, &m);
 }
 
 class HairModesView : public Sample {
diff --git a/samplecode/SampleLighting.cpp b/samplecode/SampleLighting.cpp
index a3dc621..154b7c3 100644
--- a/samplecode/SampleLighting.cpp
+++ b/samplecode/SampleLighting.cpp
@@ -38,17 +38,14 @@
 
             fRect = SkRect::MakeIWH(diffuseBitmap.width(), diffuseBitmap.height());
 
-            fDiffuseShader = SkShader::MakeBitmapShader(diffuseBitmap,
-                                                        SkTileMode::kClamp, SkTileMode::kClamp);
+            fDiffuseShader = diffuseBitmap.makeShader();
         }
 
         {
             SkBitmap normalBitmap;
             SkAssertResult(GetResourceAsBitmap("images/brickwork_normal-map.jpg", &normalBitmap));
 
-            sk_sp<SkShader> normalMap = SkShader::MakeBitmapShader(normalBitmap,
-                                                                   SkTileMode::kClamp,
-                                                                   SkTileMode::kClamp);
+            sk_sp<SkShader> normalMap = normalBitmap.makeShader();
             fNormalSource = SkNormalSource::MakeFromNormalMap(std::move(normalMap), SkMatrix::I());
         }
     }
diff --git a/samplecode/SampleLitAtlas.cpp b/samplecode/SampleLitAtlas.cpp
index a9e5762..b2d7f97 100644
--- a/samplecode/SampleLitAtlas.cpp
+++ b/samplecode/SampleLitAtlas.cpp
@@ -132,12 +132,10 @@
             SkMatrix m;
             m.setRSXform(xforms[i]);
 
-            sk_sp<SkShader> normalMap = SkShader::MakeBitmapShader(fAtlas, SkTileMode::kClamp,
-                    SkTileMode::kClamp, &normalMat);
+            sk_sp<SkShader> normalMap = fAtlas.makeShader(&normalMat);
             sk_sp<SkNormalSource> normalSource = SkNormalSource::MakeFromNormalMap(
                     std::move(normalMap), m);
-            sk_sp<SkShader> diffuseShader = SkShader::MakeBitmapShader(fAtlas,
-                    SkTileMode::kClamp, SkTileMode::kClamp, &diffMat);
+            sk_sp<SkShader> diffuseShader = fAtlas.makeShader(&diffMat);
             paint.setShader(SkLightingShader::Make(std::move(diffuseShader),
                     std::move(normalSource), fLights));
 
diff --git a/samplecode/SamplePatch.cpp b/samplecode/SamplePatch.cpp
index b7f5f36..9bd9dbd 100644
--- a/samplecode/SamplePatch.cpp
+++ b/samplecode/SamplePatch.cpp
@@ -33,7 +33,7 @@
 //    decode_file("/skimages/progressivejpg.jpg", &bm);
     decode_file("/skimages/logo.png", &bm);
     size->set(bm.width(), bm.height());
-    return SkShader::MakeBitmapShader(bm, SkTileMode::kClamp, SkTileMode::kClamp);
+    return bm.makeShader();
 }
 
 static sk_sp<SkShader> make_shader1(const SkIPoint& size) {
diff --git a/samplecode/SampleRepeatTile.cpp b/samplecode/SampleRepeatTile.cpp
index f2d51de..dfde1cf 100644
--- a/samplecode/SampleRepeatTile.cpp
+++ b/samplecode/SampleRepeatTile.cpp
@@ -35,7 +35,7 @@
     SkBitmap bm;
     make_bitmap(&bm);
 
-    paint->setShader(SkShader::MakeBitmapShader(bm, tm, tm));
+    paint->setShader(bm.makeShader(tm, tm));
 }
 
 class RepeatTileView : public Sample {
diff --git a/samplecode/SampleShaders.cpp b/samplecode/SampleShaders.cpp
index 65dbe07b..8bc0807 100644
--- a/samplecode/SampleShaders.cpp
+++ b/samplecode/SampleShaders.cpp
@@ -29,7 +29,7 @@
     colors[1] = SkColorSetARGB(0, 0, 0, 0);
     auto shaderA = SkGradientShader::MakeLinear(pts, colors, nullptr, 2, SkTileMode::kClamp);
 
-    auto shaderB = SkShader::MakeBitmapShader(bm, SkTileMode::kClamp, SkTileMode::kClamp);
+    auto shaderB = bm.makeShader();
 
     return SkShader::MakeComposeShader(std::move(shaderB), std::move(shaderA), SkBlendMode::kDstIn);
 }
diff --git a/samplecode/SampleSlides.cpp b/samplecode/SampleSlides.cpp
index a69bead..2ede187 100644
--- a/samplecode/SampleSlides.cpp
+++ b/samplecode/SampleSlides.cpp
@@ -246,7 +246,7 @@
 
     decode_file("/skimages/logo.gif", &bm);
     size->set(bm.width(), bm.height());
-    return SkShader::MakeBitmapShader(bm, SkTileMode::kClamp, SkTileMode::kClamp);
+    return bm.makeShader();
 }
 
 static sk_sp<SkShader> make_shader1(const SkIPoint& size) {
diff --git a/samplecode/SampleTiling.cpp b/samplecode/SampleTiling.cpp
index 169c5b7..3c219a2 100644
--- a/samplecode/SampleTiling.cpp
+++ b/samplecode/SampleTiling.cpp
@@ -42,7 +42,7 @@
 }
 
 static void setup(SkPaint* paint, const SkBitmap& bm, bool filter, SkTileMode tmx, SkTileMode tmy) {
-    paint->setShader(SkShader::MakeBitmapShader(bm, tmx, tmy));
+    paint->setShader(bm.makeShader(tmx, tmy));
     paint->setFilterQuality(filter ? kLow_SkFilterQuality : kNone_SkFilterQuality);
 }
 
diff --git a/samplecode/SampleVertices.cpp b/samplecode/SampleVertices.cpp
index 0435f3e..a6c5ab3 100644
--- a/samplecode/SampleVertices.cpp
+++ b/samplecode/SampleVertices.cpp
@@ -34,7 +34,7 @@
     pixels[0] = pixels[2] = color0;
     pixels[1] = pixels[3] = color1;
 
-    return SkShader::MakeBitmapShader(bm, SkTileMode::kRepeat, SkTileMode::kRepeat);
+    return bm.makeShader(SkTileMode::kRepeat, SkTileMode::kRepeat);
 }
 
 static sk_sp<SkShader> make_shader1(const SkIPoint& size) {
diff --git a/samplecode/SampleXfermodesBlur.cpp b/samplecode/SampleXfermodesBlur.cpp
index e5a0d89..079ba3c 100644
--- a/samplecode/SampleXfermodesBlur.cpp
+++ b/samplecode/SampleXfermodesBlur.cpp
@@ -104,7 +104,7 @@
         const SkScalar h = SkIntToScalar(H);
         SkMatrix m;
         m.setScale(SkIntToScalar(6), SkIntToScalar(6));
-        auto s = SkShader::MakeBitmapShader(fBG, SkTileMode::kRepeat, SkTileMode::kRepeat, &m);
+        auto s = fBG.makeShader(SkTileMode::kRepeat, SkTileMode::kRepeat, &m);
 
         SkFont font;
         font.setEdging(SkFont::Edging::kSubpixelAntiAlias);