Stop using filterquality

Change-Id: I0fd8ace529cde3b36df72dd4d80bba18c1388b20
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/429497
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
diff --git a/fuzz/Fuzz.h b/fuzz/Fuzz.h
index 31ba72a..4456a13 100644
--- a/fuzz/Fuzz.h
+++ b/fuzz/Fuzz.h
@@ -77,6 +77,12 @@
     void next(bool* b);
     void next(SkRegion* region);
 
+    bool nextBool() {
+        bool b;
+        this->next(&b);
+        return b;
+    }
+
     void nextRange(float* f, float min, float max);
 
 private:
diff --git a/fuzz/FuzzCanvas.cpp b/fuzz/FuzzCanvas.cpp
index 3507eb2..ab0ee87 100644
--- a/fuzz/FuzzCanvas.cpp
+++ b/fuzz/FuzzCanvas.cpp
@@ -512,6 +512,20 @@
 
 static void fuzz_paint(Fuzz* fuzz, SkPaint* paint, int depth);
 
+static SkSamplingOptions next_sampling(Fuzz* fuzz) {
+    if (fuzz->nextBool()) {
+        float B, C;
+        fuzz->next(&B, &C);
+        return SkSamplingOptions({B, C});
+    } else {
+        SkFilterMode fm;
+        SkMipmapMode mm;
+        fuzz->nextEnum(&fm, SkFilterMode::kLast);
+        fuzz->nextEnum(&mm, SkMipmapMode::kLast);
+        return SkSamplingOptions(fm, mm);
+    }
+}
+
 static sk_sp<SkImageFilter> make_fuzz_imageFilter(Fuzz* fuzz, int depth) {
     if (depth <= 0) {
         return nullptr;
@@ -536,9 +550,7 @@
         case 2: {
             SkMatrix matrix;
             FuzzNiceMatrix(fuzz, &matrix);
-            SkFilterQuality quality;
-            fuzz->nextEnum(&quality, SkFilterQuality::kLast_SkFilterQuality);
-            auto sampling = SkSamplingOptions(quality);
+            const auto sampling = next_sampling(fuzz);
             sk_sp<SkImageFilter> input = make_fuzz_imageFilter(fuzz, depth - 1);
             return SkImageFilters::MatrixTransform(matrix, sampling, std::move(input));
         }
@@ -628,11 +640,8 @@
         case 10: {
             sk_sp<SkImage> image = make_fuzz_image(fuzz);
             SkRect srcRect, dstRect;
-            SkFilterQuality filterQuality;
             fuzz->next(&srcRect, &dstRect);
-            fuzz->nextEnum(&filterQuality, SkFilterQuality::kLast_SkFilterQuality);
-            return SkImageFilters::Image(std::move(image), srcRect, dstRect,
-                                         SkSamplingOptions(filterQuality));
+            return SkImageFilters::Image(std::move(image), srcRect, dstRect, next_sampling(fuzz));
         }
         case 11:
             return make_fuzz_lighting_imagefilter(fuzz, depth - 1);
diff --git a/gm/giantbitmap.cpp b/gm/giantbitmap.cpp
index 9d578c4..d2caac5 100644
--- a/gm/giantbitmap.cpp
+++ b/gm/giantbitmap.cpp
@@ -118,7 +118,7 @@
                                                                        : SkFilterMode::kNearest),
                                            m));
 
-        canvas->translate(SkIntToScalar(50), SkIntToScalar(50));
+        canvas->translate(50, 50);
 
         canvas->drawPaint(paint);
     }
diff --git a/modules/svg/src/SkSVGFeImage.cpp b/modules/svg/src/SkSVGFeImage.cpp
index 8ea195a..9767b37 100644
--- a/modules/svg/src/SkSVGFeImage.cpp
+++ b/modules/svg/src/SkSVGFeImage.cpp
@@ -5,6 +5,7 @@
  * found in the LICENSE file.
  */
 
+#include "include/core/SkSamplingOptions.h"
 #include "include/effects/SkImageFilters.h"
 #include "modules/svg/include/SkSVGFeImage.h"
 #include "modules/svg/include/SkSVGFilterContext.h"
@@ -33,8 +34,9 @@
     const SkRect srcRect = SkRect::Make(imgInfo.fImage->bounds());
     const SkRect& dstRect = imgInfo.fDst;
     // TODO: image-rendering property
-    const SkFilterQuality fq = SkFilterQuality::kMedium_SkFilterQuality;
-    auto imgfilt = SkImageFilters::Image(imgInfo.fImage, srcRect, dstRect, SkSamplingOptions(fq));
+    auto imgfilt = SkImageFilters::Image(imgInfo.fImage, srcRect, dstRect,
+                                         SkSamplingOptions(SkFilterMode::kLinear,
+                                                           SkMipmapMode::kNearest));
 
     // Aspect ratio mapping may end up drawing content outside of the filter effects region,
     // so perform an explicit crop.