diff options
author | reed <reed@google.com> | 2015-12-16 08:27:10 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-12-16 08:27:10 -0800 |
commit | 32704674f64cb6a14356dfebe060cd3484c06cc7 (patch) | |
tree | 7a72757624ed59f421c931ce5c02e7644f4987d3 /gm/imagefiltersbase.cpp | |
parent | 4657ce2324ea197507c4ba728d81138f56da13b1 (diff) |
Revert of remove drawSprite from canvas (patchset #4 id:60001 of https://codereview.chromium.org/1534443003/ )
Reason for revert:
need to remove an override in chrome
Original issue's description:
> remove drawSprite from canvas
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/4657ce2324ea197507c4ba728d81138f56da13b1
TBR=fmalita@chromium.org,robertphillips@google.com,senorblanco@chromium.org,mtklein@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review URL: https://codereview.chromium.org/1529803004
Diffstat (limited to 'gm/imagefiltersbase.cpp')
-rw-r--r-- | gm/imagefiltersbase.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/gm/imagefiltersbase.cpp b/gm/imagefiltersbase.cpp index fbe4681da4..0101a9c2a0 100644 --- a/gm/imagefiltersbase.cpp +++ b/gm/imagefiltersbase.cpp @@ -165,6 +165,26 @@ static void draw_bitmap(SkCanvas* canvas, const SkRect& r, SkImageFilter* imf) { canvas->drawBitmap(bm, 0, 0, &paint); } +static void draw_sprite(SkCanvas* canvas, const SkRect& r, SkImageFilter* imf) { + SkPaint paint; + paint.setImageFilter(imf); + + SkIRect bounds; + r.roundOut(&bounds); + + SkBitmap bm; + bm.allocN32Pixels(bounds.width(), bounds.height()); + bm.eraseColor(SK_ColorTRANSPARENT); + SkCanvas c(bm); + draw_path(&c, r, nullptr); + + SkPoint loc = { r.fLeft, r.fTop }; + canvas->getTotalMatrix().mapPoints(&loc, 1); + canvas->drawSprite(bm, + SkScalarRoundToInt(loc.fX), SkScalarRoundToInt(loc.fY), + &paint); +} + /////////////////////////////////////////////////////////////////////////////// class ImageFiltersBaseGM : public skiagm::GM { @@ -190,6 +210,7 @@ protected: draw_paint, draw_line, draw_rect, draw_path, draw_text, draw_bitmap, + draw_sprite }; SkColorFilter* cf = SkColorFilter::CreateModeFilter(SK_ColorRED, |