From 2a24338c777462e04a2b26295f9c034155ee8f3e Mon Sep 17 00:00:00 2001 From: halcanary Date: Wed, 9 Sep 2015 08:16:41 -0700 Subject: GM: replace boilerplate with macros I have verified locally that nothing draws differently. Motivation: * SK_SIMPLE_GM makes it easier to write a GM. * Reducing 1100 lines of code makes maintenance easier. * Simple GMs are easy to convert to Fiddles. Review URL: https://codereview.chromium.org/1333553002 --- gm/imagefilters.cpp | 26 ++++++-------------------- 1 file changed, 6 insertions(+), 20 deletions(-) (limited to 'gm/imagefilters.cpp') diff --git a/gm/imagefilters.cpp b/gm/imagefilters.cpp index e28bf5255e..8b4deca93a 100644 --- a/gm/imagefilters.cpp +++ b/gm/imagefilters.cpp @@ -16,15 +16,7 @@ * * see skbug.com/3741 */ -class ImageFilterXfermodeTestGM : public skiagm::GM { -protected: - SkString onShortName() override { - return SkString("imagefilters_xfermodes"); - } - - SkISize onISize() override { return SkISize::Make(480, 480); } - - void doDraw(SkCanvas* canvas, SkXfermode::Mode mode, SkImageFilter* imf) { +static void do_draw(SkCanvas* canvas, SkXfermode::Mode mode, SkImageFilter* imf) { SkAutoCanvasRestore acr(canvas, true); canvas->clipRect(SkRect::MakeWH(220, 220)); @@ -47,9 +39,9 @@ protected: paint.setImageFilter(imf); paint.setXfermodeMode(mode); canvas->drawOval(r1, paint); - } +} - void onDraw(SkCanvas* canvas) override { +DEF_SIMPLE_GM(imagefilters_xfermodes, canvas, 480, 480) { canvas->translate(10, 10); // just need an imagefilter to trigger the code-path (which creates a tmp layer) @@ -62,17 +54,11 @@ protected: for (size_t i = 0; i < SK_ARRAY_COUNT(modes); ++i) { canvas->save(); - this->doDraw(canvas, modes[i], nullptr); + do_draw(canvas, modes[i], nullptr); canvas->translate(240, 0); - this->doDraw(canvas, modes[i], imf); + do_draw(canvas, modes[i], imf); canvas->restore(); canvas->translate(0, 240); } - } - -private: - typedef GM INHERITED; -}; -DEF_GM( return new ImageFilterXfermodeTestGM; ) - +} -- cgit v1.2.3