aboutsummaryrefslogtreecommitdiffhomepage
path: root/gm
diff options
context:
space:
mode:
authorGravatar reed <reed@google.com>2016-04-19 14:02:52 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-04-19 14:02:52 -0700
commit51dece33e8b9e3914b0b90086f4b2e97c17333dd (patch)
tree6b38ddd31d0f3dab4b65d6c23551eb695a8132ea /gm
parent4311f016612a814282029daa4bd102053a853d82 (diff)
add gm to exercise rotated imagefiltesr w/ and w/o antialiasing
Diffstat (limited to 'gm')
-rw-r--r--gm/imagefilterstransformed.cpp42
1 files changed, 41 insertions, 1 deletions
diff --git a/gm/imagefilterstransformed.cpp b/gm/imagefilterstransformed.cpp
index ce7ba5d6e0..7ceff00135 100644
--- a/gm/imagefilterstransformed.cpp
+++ b/gm/imagefilterstransformed.cpp
@@ -113,9 +113,49 @@ private:
sk_sp<SkImage> fGradientCircle;
typedef GM INHERITED;
};
+DEF_GM( return new ImageFiltersTransformedGM; )
+}
//////////////////////////////////////////////////////////////////////////////
+#include "SkXfermodeImageFilter.h"
-DEF_GM( return new ImageFiltersTransformedGM; )
+DEF_SIMPLE_GM(rotate_imagefilter, canvas, 500, 500) {
+ SkPaint paint;
+ const SkRect r = SkRect::MakeXYWH(50, 50, 100, 100);
+
+ sk_sp<SkImageFilter> filters[] = {
+ nullptr,
+ SkBlurImageFilter::Make(6, 0, nullptr),
+ SkXfermodeImageFilter::Make(SkXfermode::Make(SkXfermode::kSrcOver_Mode), nullptr),
+ };
+
+ for (auto& filter : filters) {
+ paint.setAntiAlias(false);
+ paint.setImageFilter(filter);
+
+ canvas->save();
+
+ canvas->drawRect(r, paint);
+
+ canvas->translate(150, 0);
+ canvas->save();
+ canvas->translate(100, 100);
+ canvas->rotate(30);
+ canvas->translate(-100, -100);
+ canvas->drawRect(r, paint);
+ canvas->restore();
+
+ paint.setAntiAlias(true);
+ canvas->translate(150, 0);
+ canvas->save();
+ canvas->translate(100, 100);
+ canvas->rotate(30);
+ canvas->translate(-100, -100);
+ canvas->drawRect(r, paint);
+ canvas->restore();
+
+ canvas->restore();
+ canvas->translate(0, 150);
+ }
}