Remove mask-filters and aa from SkPaint in SkCanvas for nine-patch/lattice.

Remove GPU fallback code which would have applied AA and mask filter
separately to each lattice cell.

Change-Id: I43d50f337d24bb34b94f3d0ea6cca686a2e11a50
Reviewed-on: https://skia-review.googlesource.com/129318
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Leon Scroggins <scroggo@google.com>
diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp
index 00bbdf4..8230fb3 100644
--- a/src/core/SkCanvas.cpp
+++ b/src/core/SkCanvas.cpp
@@ -1745,15 +1745,20 @@
 }
 
 namespace {
-class NoneOrLowQualityFilterPaint : SkNoncopyable {
+class LatticePaint : SkNoncopyable {
 public:
-    NoneOrLowQualityFilterPaint(const SkPaint* origPaint) {
-        if (origPaint && origPaint->getFilterQuality() > kLow_SkFilterQuality) {
-            fLazyPaint.set(*origPaint);
-            fLazyPaint.get()->setFilterQuality(kLow_SkFilterQuality);
-            fPaint = fLazyPaint.get();
-        } else {
-            fPaint = origPaint;
+    LatticePaint(const SkPaint* origPaint) : fPaint(origPaint) {
+        if (!origPaint) {
+            return;
+        }
+        if (origPaint->getFilterQuality() > kLow_SkFilterQuality) {
+            fPaint.writable()->setFilterQuality(kLow_SkFilterQuality);
+        }
+        if (origPaint->getMaskFilter()) {
+            fPaint.writable()->setMaskFilter(nullptr);
+        }
+        if (origPaint->isAntiAlias()) {
+            fPaint.writable()->setAntiAlias(false);
         }
     }
 
@@ -1762,8 +1767,7 @@
     }
 
 private:
-    const SkPaint* fPaint;
-    SkLazyPaint fLazyPaint;
+    SkTCopyOnFirstWrite<SkPaint> fPaint;
 };
 } // namespace
 
@@ -1775,8 +1779,8 @@
         return;
     }
     if (SkLatticeIter::Valid(image->width(), image->height(), center)) {
-        NoneOrLowQualityFilterPaint lowPaint(paint);
-        this->onDrawImageNine(image, center, dst, lowPaint.get());
+        LatticePaint latticePaint(paint);
+        this->onDrawImageNine(image, center, dst, latticePaint.get());
     } else {
         this->drawImageRect(image, dst, paint);
     }
@@ -1798,8 +1802,8 @@
     }
 
     if (SkLatticeIter::Valid(image->width(), image->height(), latticePlusBounds)) {
-        NoneOrLowQualityFilterPaint lowPaint(paint);
-        this->onDrawImageLattice(image, latticePlusBounds, dst, lowPaint.get());
+        LatticePaint latticePaint(paint);
+        this->onDrawImageLattice(image, latticePlusBounds, dst, latticePaint.get());
     } else {
         this->drawImageRect(image, dst, paint);
     }
@@ -1840,8 +1844,8 @@
         return;
     }
     if (SkLatticeIter::Valid(bitmap.width(), bitmap.height(), center)) {
-        NoneOrLowQualityFilterPaint lowPaint(paint);
-        this->onDrawBitmapNine(bitmap, center, dst, lowPaint.get());
+        LatticePaint latticePaint(paint);
+        this->onDrawBitmapNine(bitmap, center, dst, latticePaint.get());
     } else {
         this->drawBitmapRect(bitmap, dst, paint);
     }
@@ -1862,8 +1866,8 @@
     }
 
     if (SkLatticeIter::Valid(bitmap.width(), bitmap.height(), latticePlusBounds)) {
-        NoneOrLowQualityFilterPaint lowPaint(paint);
-        this->onDrawBitmapLattice(bitmap, latticePlusBounds, dst, lowPaint.get());
+        LatticePaint latticePaint(paint);
+        this->onDrawBitmapLattice(bitmap, latticePlusBounds, dst, latticePaint.get());
     } else {
         this->drawBitmapRect(bitmap, dst, paint);
     }