From 477fdd8aa413f0814e2cb2981e442675c8101919 Mon Sep 17 00:00:00 2001 From: reed Date: Tue, 23 Jun 2015 06:01:10 -0700 Subject: [PATCH] add simple test for offsetimagefilter BUG=skia: TBR= Review URL: https://codereview.chromium.org/1204723002 --- gm/offsetimagefilter.cpp | 63 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/gm/offsetimagefilter.cpp b/gm/offsetimagefilter.cpp index 258403e..6519f0a 100644 --- a/gm/offsetimagefilter.cpp +++ b/gm/offsetimagefilter.cpp @@ -105,3 +105,66 @@ DEF_GM( return new OffsetImageFilterGM; ) ////////////////////////////////////////////////////////////////////////////// +class SimpleOffsetImageFilterGM : public skiagm::GM { +public: + SimpleOffsetImageFilterGM() {} + +protected: + SkString onShortName() override { + return SkString("simple-offsetimagefilter"); + } + + SkISize onISize() override { return SkISize::Make(140, 60); } + + void doDraw(SkCanvas* canvas, const SkRect& r, SkImageFilter* imgf, + const SkRect* clipR = NULL) { + SkPaint p; + + if (clipR) { + p.setColor(0xFF00FF00); + p.setStyle(SkPaint::kStroke_Style); + canvas->drawRect(clipR->makeInset(SK_ScalarHalf, SK_ScalarHalf), p); + p.setStyle(SkPaint::kFill_Style); + } + + p.setImageFilter(imgf); + p.setColor(SK_ColorRED); + canvas->drawRect(r, p); + + if (clipR) { + canvas->save(); + canvas->clipRect(*clipR); + } + p.setImageFilter(NULL); + p.setColor(0x660000FF); + canvas->drawRect(r, p); + if (clipR) { + canvas->restore(); + } + } + + void onDraw(SkCanvas* canvas) override { + const SkRect r = SkRect::MakeWH(10, 10); + SkImageFilter::CropRect cr0(r); + SkImageFilter::CropRect cr1(SkRect::MakeWH(5, 5)); + + canvas->translate(20, 20); + this->doDraw(canvas, r, NULL); + + canvas->translate(20, 0); + this->doDraw(canvas, r, SkOffsetImageFilter::Create(5, 5)); + + canvas->translate(20, 0); + this->doDraw(canvas, r, SkOffsetImageFilter::Create(5, 5, NULL, &cr0)); + + canvas->translate(20, 0); + this->doDraw(canvas, r, SkOffsetImageFilter::Create(5, 5), &r); + + canvas->translate(20, 0); + this->doDraw(canvas, r, SkOffsetImageFilter::Create(5, 5, NULL, &cr1)); + } + +private: + typedef skiagm::GM INHERITED; +}; +DEF_GM( return new SimpleOffsetImageFilterGM; ) -- 2.7.4