Observe surface LCD settings in SkBaseDevice::drawTextBlob()

We're currently overwriting the paint LCD text flag based on the the run
font data => this cancels any LCD filtering we might have performed
higher up the stack.

BUG=423362
R=reed@google.com

Review URL: https://codereview.chromium.org/718913003
diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp
index 82d4816..6cd6dda 100644
--- a/src/core/SkCanvas.cpp
+++ b/src/core/SkCanvas.cpp
@@ -2055,12 +2055,10 @@
 class SkDeviceFilteredPaint {
 public:
     SkDeviceFilteredPaint(SkBaseDevice* device, const SkPaint& paint) {
-        if (device->shouldDisableLCD(paint)) {
-            uint32_t flags = paint.getFlags();
-            flags &= ~SkPaint::kLCDRenderText_Flag;
-            flags |= SkPaint::kGenA8FromLCD_Flag;
+        uint32_t filteredFlags = device->filterTextFlags(paint);
+        if (filteredFlags != paint.getFlags()) {
             SkPaint* newPaint = fLazy.set(paint);
-            newPaint->setFlags(flags);
+            newPaint->setFlags(filteredFlags);
             fPaint = newPaint;
         } else {
             fPaint = &paint;