Revert of Fix dst bound reported by SkTileImageFilter (patchset #3 id:40001 of https://codereview.chromium.org/1152553006/)

Reason for revert:
breaking tests

Original issue's description:
> Fix dst bound reported by SkTileImageFilter
>
> In the example from the bug we had the filter DAG:
>
> color filter (table)
>     0: xfermode filter (arith)
>         0: tile filter [0,80,34,114] -> [0,80,800,480]
>              0: color filter (table)
>                  0: bitmap src 34x34 -> [0,80,34,114]
>         1: color filter (table)
>              0: picture filter [0, 80, 800, 480]
>
> computeFastBounds was coming out of the DAG with a bound of [0,80,34,114] which didn't represent the pixels that would be drawn.
>
> This CL updates SkTileImageFilter to correctly set the bound for the pixels it will hit.
>
> BUG=493783
>
> Committed: https://skia.googlesource.com/skia/+/05be93bbdf09576f7903130e3b106b0a8c7c4b4e

TBR=reed@google.com,senorblanco@google.com,senorblanco@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=493783

Review URL: https://codereview.chromium.org/1143083006
diff --git a/gm/bigtileimagefilter.cpp b/gm/bigtileimagefilter.cpp
deleted file mode 100644
index 97de0d2..0000000
--- a/gm/bigtileimagefilter.cpp
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright 2015 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#include "SkBitmapSource.h"
-#include "SkTileImageFilter.h"
-#include "gm.h"
-
-namespace skiagm {
-
-class BigTileImageFilterGM : public GM {
-public:
-    BigTileImageFilterGM() {
-        this->setBGColor(0xFF000000);
-    }
-
-protected:
-
-    SkString onShortName() override {
-        return SkString("bigtileimagefilter");
-    }
-
-    SkISize onISize() override{
-        return SkISize::Make(kWidth, kHeight);
-    }
-
-    void onOnceBeforeDraw() override {
-        fBitmap.allocN32Pixels(kBitmapSize, kBitmapSize);
-
-        SkCanvas canvas(fBitmap);
-        canvas.clear(0xFF000000);
-
-        SkPaint paint;
-        paint.setColor(SK_ColorRED);
-        paint.setStrokeWidth(3);
-        paint.setStyle(SkPaint::kStroke_Style);
-
-        canvas.drawCircle(SkScalarHalf(kBitmapSize), SkScalarHalf(kBitmapSize),
-                          SkScalarHalf(kBitmapSize), paint);
-    }
-
-    void onDraw(SkCanvas* canvas) override {
-        canvas->clear(SK_ColorBLACK);
-
-        SkPaint p;
-
-        SkAutoTUnref<SkBitmapSource> bms(SkBitmapSource::Create(fBitmap));
-        SkAutoTUnref<SkTileImageFilter> tif(SkTileImageFilter::Create(
-                            SkRect::MakeWH(SkIntToScalar(kBitmapSize), SkIntToScalar(kBitmapSize)),
-                            SkRect::MakeWH(SkIntToScalar(kWidth), SkIntToScalar(kHeight)),
-                            bms));
-        p.setImageFilter(tif);
-
-        SkRect bound = SkRect::MakeWH(SkIntToScalar(kWidth), SkIntToScalar(kHeight));
-        canvas->saveLayer(&bound, &p);
-        canvas->restore();
-    }
-
-private:
-    static const int kWidth = 512;
-    static const int kHeight = 512;
-    static const int kBitmapSize = 64;
-
-    SkBitmap fBitmap;
-
-    typedef GM INHERITED;
-};
-
-//////////////////////////////////////////////////////////////////////////////
-
-DEF_GM( return SkNEW(BigTileImageFilterGM); )
-
-}
diff --git a/gm/tileimagefilter.cpp b/gm/tileimagefilter.cpp
index 8239308..2c4f6b2 100644
--- a/gm/tileimagefilter.cpp
+++ b/gm/tileimagefilter.cpp
@@ -16,48 +16,46 @@
 #define HEIGHT 100
 #define MARGIN 12
 
-static SkBitmap make_bitmap() {
-    SkBitmap bitmap;
-    bitmap.allocN32Pixels(50, 50);
-    SkCanvas canvas(bitmap);
-    canvas.clear(0xFF000000);
-    SkPaint paint;
-    paint.setAntiAlias(true);
-    sk_tool_utils::set_portable_typeface(&paint);
-    paint.setColor(0xD000D000);
-    paint.setTextSize(SkIntToScalar(50));
-    const char* str = "e";
-    canvas.drawText(str, strlen(str), SkIntToScalar(10), SkIntToScalar(45), paint);
-    return bitmap;
-}
-
-
 namespace skiagm {
 
 class TileImageFilterGM : public GM {
 public:
-    TileImageFilterGM() {
+    TileImageFilterGM() : fInitialized(false) {
         this->setBGColor(0xFF000000);
     }
 
 protected:
-    SkString onShortName() override {
+    virtual SkString onShortName() {
         return SkString("tileimagefilter");
     }
 
-    SkISize onISize() override{
+    void make_bitmap() {
+        fBitmap.allocN32Pixels(50, 50);
+        SkCanvas canvas(fBitmap);
+        canvas.clear(0xFF000000);
+        SkPaint paint;
+        paint.setAntiAlias(true);
+        sk_tool_utils::set_portable_typeface(&paint);
+        paint.setColor(0xD000D000);
+        paint.setTextSize(SkIntToScalar(50));
+        const char* str = "e";
+        canvas.drawText(str, strlen(str), SkIntToScalar(10), SkIntToScalar(45), paint);
+    }
+
+    virtual SkISize onISize() {
         return SkISize::Make(WIDTH, HEIGHT);
     }
 
-    void onOnceBeforeDraw() override {
-        fBitmap = make_bitmap();
+    virtual void onDraw(SkCanvas* canvas) {
+        if (!fInitialized) {
+            make_bitmap();
 
-        fCheckerboard.allocN32Pixels(80, 80);
-        SkCanvas checkerboardCanvas(fCheckerboard);
-        sk_tool_utils::draw_checkerboard(&checkerboardCanvas, 0xFFA0A0A0, 0xFF404040, 8);
-    }
+            fCheckerboard.allocN32Pixels(80, 80);
+            SkCanvas checkerboardCanvas(fCheckerboard);
+            sk_tool_utils::draw_checkerboard(&checkerboardCanvas, 0xFFA0A0A0, 0xFF404040, 8);
 
-    void onDraw(SkCanvas* canvas) override {
+            fInitialized = true;
+        }
         canvas->clear(SK_ColorBLACK);
 
         int x = 0, y = 0;
@@ -111,14 +109,14 @@
         canvas->restore();
     }
 private:
-    SkBitmap fBitmap;
-    SkBitmap fCheckerboard;
-
     typedef GM INHERITED;
+    SkBitmap fBitmap, fCheckerboard;
+    bool fInitialized;
 };
 
 //////////////////////////////////////////////////////////////////////////////
 
-DEF_GM( return SkNEW(TileImageFilterGM); )
+static GM* MyFactory(void*) { return new TileImageFilterGM; }
+static GMRegistry reg(MyFactory);
 
 }
diff --git a/include/effects/SkTileImageFilter.h b/include/effects/SkTileImageFilter.h
index 4dccf85..a010205 100644
--- a/include/effects/SkTileImageFilter.h
+++ b/include/effects/SkTileImageFilter.h
@@ -22,11 +22,10 @@
     static SkTileImageFilter* Create(const SkRect& srcRect, const SkRect& dstRect,
                                      SkImageFilter* input);
 
-    bool onFilterImage(Proxy* proxy, const SkBitmap& src, const Context& ctx,
-                       SkBitmap* dst, SkIPoint* offset) const override;
-    bool onFilterBounds(const SkIRect& src, const SkMatrix&,
-                        SkIRect* dst) const override;
-    void computeFastBounds(const SkRect& src, SkRect* dst) const override;
+    virtual bool onFilterImage(Proxy* proxy, const SkBitmap& src, const Context& ctx,
+                               SkBitmap* dst, SkIPoint* offset) const override;
+    virtual bool onFilterBounds(const SkIRect& src, const SkMatrix&,
+                                SkIRect* dst) const override;
 
     SK_TO_STRING_OVERRIDE()
     SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkTileImageFilter)
diff --git a/src/effects/SkTileImageFilter.cpp b/src/effects/SkTileImageFilter.cpp
index 6acf9fd..c5cf518 100644
--- a/src/effects/SkTileImageFilter.cpp
+++ b/src/effects/SkTileImageFilter.cpp
@@ -82,10 +82,6 @@
     return true;
 }
 
-void SkTileImageFilter::computeFastBounds(const SkRect& src, SkRect* dst) const {
-    *dst = fDstRect;
-}
-
 bool SkTileImageFilter::onFilterBounds(const SkIRect& src, const SkMatrix& ctm,
                                        SkIRect* dst) const {
     SkRect srcRect;
@@ -114,15 +110,6 @@
 #ifndef SK_IGNORE_TO_STRING
 void SkTileImageFilter::toString(SkString* str) const {
     str->appendf("SkTileImageFilter: (");
-    str->appendf("src: %.2f %.2f %.2f %.2f",
-                 fSrcRect.fLeft, fSrcRect.fTop, fSrcRect.fRight, fSrcRect.fBottom);
-    str->appendf(" dst: %.2f %.2f %.2f %.2f",
-                 fDstRect.fLeft, fDstRect.fTop, fDstRect.fRight, fDstRect.fBottom);
-    if (this->getInput(0)) {
-        str->appendf("input: (");
-        this->getInput(0)->toString(str);
-        str->appendf(")");
-    }
     str->append(")");
 }
 #endif
diff --git a/src/effects/SkXfermodeImageFilter.cpp b/src/effects/SkXfermodeImageFilter.cpp
index 599fd42..f98247a 100644
--- a/src/effects/SkXfermodeImageFilter.cpp
+++ b/src/effects/SkXfermodeImageFilter.cpp
@@ -105,18 +105,7 @@
     if (fMode) {
         fMode->toString(str);
     }
-    str->append(")");
-    if (this->getInput(0)) {
-        str->appendf("foreground: (");
-        this->getInput(0)->toString(str);
-        str->appendf(")");
-    }
-    if (this->getInput(1)) {
-        str->appendf("background: (");
-        this->getInput(1)->toString(str);
-        str->appendf(")");
-    }
-    str->append(")");
+    str->append("))");
 }
 #endif