diff options
Diffstat (limited to 'gm/pictureimagefilter.cpp')
-rw-r--r-- | gm/pictureimagefilter.cpp | 28 |
1 files changed, 12 insertions, 16 deletions
diff --git a/gm/pictureimagefilter.cpp b/gm/pictureimagefilter.cpp index c9a0d393be..587ed3733b 100644 --- a/gm/pictureimagefilter.cpp +++ b/gm/pictureimagefilter.cpp @@ -11,9 +11,6 @@ #include "SkPictureImageFilter.h" #include "SkPictureRecorder.h" -#include "SkImage.h" -#include "SkImageSource.h" - // This GM exercises the SkPictureImageFilter ImageFilter class. static void fill_rect_filtered(SkCanvas* canvas, @@ -73,16 +70,6 @@ protected: fLCDPicture = make_LCD_picture(); } - sk_sp<SkImageFilter> make(sk_sp<SkPicture> pic, SkRect r, SkFilterQuality fq) { - SkISize dim = { SkScalarRoundToInt(r.width()), SkScalarRoundToInt(r.height()) }; - auto img = SkImage::MakeFromPicture(pic, dim, nullptr, nullptr, - SkImage::BitDepth::kU8, SkColorSpace::MakeSRGB()); - return SkImageSource::Make(img, r, r, fq); - } - sk_sp<SkImageFilter> make(SkFilterQuality fq) { - return make(fPicture, fPicture->cullRect(), fq); - } - void onDraw(SkCanvas* canvas) override { canvas->clear(SK_ColorGRAY); { @@ -94,8 +81,14 @@ protected: srcRect)); sk_sp<SkImageFilter> pictureSourceEmptyRect(SkPictureImageFilter::Make(fPicture, emptyRect)); - sk_sp<SkImageFilter> pictureSourceResampled = make(kLow_SkFilterQuality); - sk_sp<SkImageFilter> pictureSourcePixelated = make(kNone_SkFilterQuality); + sk_sp<SkImageFilter> pictureSourceResampled(SkPictureImageFilter::MakeForLocalSpace( + fPicture, + fPicture->cullRect(), + kLow_SkFilterQuality)); + sk_sp<SkImageFilter> pictureSourcePixelated(SkPictureImageFilter::MakeForLocalSpace( + fPicture, + fPicture->cullRect(), + kNone_SkFilterQuality)); canvas->save(); // Draw the picture unscaled. @@ -118,7 +111,10 @@ protected: canvas->drawRect(bounds, stroke); SkPaint paint; - paint.setImageFilter(make(fLCDPicture, fPicture->cullRect(), kNone_SkFilterQuality)); + paint.setImageFilter(SkPictureImageFilter::MakeForLocalSpace( + fLCDPicture, + fPicture->cullRect(), + kNone_SkFilterQuality)); canvas->scale(4, 4); canvas->translate(-0.9f*srcRect.fLeft, -2.45f*srcRect.fTop); |