diff options
author | robertphillips <robertphillips@google.com> | 2015-06-04 11:15:27 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-06-04 11:15:27 -0700 |
commit | 270fe6aad558cf60f182b440cd0c452340f96428 (patch) | |
tree | 38623c5289edb2dec186dde4cff40f53ab54be0b /gm/tileimagefilter.cpp | |
parent | 99a69eb152840c56e54244c3953f901be1d7d7bc (diff) | |
download | platform_external_skqp-270fe6aad558cf60f182b440cd0c452340f96428.tar.gz platform_external_skqp-270fe6aad558cf60f182b440cd0c452340f96428.tar.bz2 platform_external_skqp-270fe6aad558cf60f182b440cd0c452340f96428.zip |
Revert of Fix dst bound reported by SkTileImageFilter (patchset #3 id:40001 of https://codereview.chromium.org/1152553006/)
Reason for revert:
Blink
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
>
> Committed: https://skia.googlesource.com/skia/+/0be685755f942baea26c66a87226b569fc17e960
TBR=reed@google.com,senorblanco@google.com,senorblanco@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=493783
Review URL: https://codereview.chromium.org/1156583004
Diffstat (limited to 'gm/tileimagefilter.cpp')
-rw-r--r-- | gm/tileimagefilter.cpp | 58 |
1 files changed, 28 insertions, 30 deletions
diff --git a/gm/tileimagefilter.cpp b/gm/tileimagefilter.cpp index 82393087b0..2c4f6b2b2c 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 @@ protected: 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); } |