aboutsummaryrefslogtreecommitdiffhomepage
path: root/gm/aaa.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'gm/aaa.cpp')
-rw-r--r--gm/aaa.cpp82
1 files changed, 82 insertions, 0 deletions
diff --git a/gm/aaa.cpp b/gm/aaa.cpp
index 72f953a701..889374463a 100644
--- a/gm/aaa.cpp
+++ b/gm/aaa.cpp
@@ -81,4 +81,86 @@ private:
typedef skiagm::GM INHERITED;
};
+class AnalyticAntiAliasGeneralGM : public skiagm::GM {
+public:
+ AnalyticAntiAliasGeneralGM() {}
+
+protected:
+
+ SkString onShortName() override {
+ return SkString("analytic_antialias_general");
+ }
+
+ SkISize onISize() override {
+ return SkISize::Make(W, H);
+ }
+
+ void onDraw(SkCanvas* canvas) override {
+ SkPaint p;
+ p.setColor(SK_ColorRED);
+ p.setAntiAlias(true);
+
+ canvas->clear(0xFFFFFFFF);
+
+ canvas->save();
+ canvas->rotate(1);
+ const SkScalar R = 115.2f, C = 128.0f;
+ SkPath path;
+ path.moveTo(C + R, C);
+ for (int i = 1; i < 8; ++i) {
+ SkScalar a = 2.6927937f * i;
+ SkScalar cosine;
+ SkScalar sine = SkScalarSinCos(a, &cosine);
+ path.lineTo(C + R * cosine, C + R * sine);
+ }
+ canvas->drawPath(path, p);
+ canvas->restore();
+
+ canvas->save();
+ canvas->translate(200, 0);
+ canvas->rotate(1);
+ p.setStyle(SkPaint::kStroke_Style);
+ p.setStrokeWidth(5);
+ canvas->drawPath(path, p);
+ canvas->restore();
+ }
+
+private:
+ typedef skiagm::GM INHERITED;
+};
+
+class AnalyticAntiAliasInverseGM : public skiagm::GM {
+public:
+ AnalyticAntiAliasInverseGM() {}
+
+protected:
+
+ SkString onShortName() override {
+ return SkString("analytic_antialias_inverse");
+ }
+
+ SkISize onISize() override {
+ return SkISize::Make(W, H);
+ }
+
+ void onDraw(SkCanvas* canvas) override {
+ SkPaint p;
+ p.setColor(SK_ColorRED);
+ p.setAntiAlias(true);
+
+ canvas->save();
+
+ SkPath path;
+ path.addCircle(100, 100, 30);
+ path.setFillType(SkPath::kInverseWinding_FillType);
+ canvas->drawPath(path, p);
+ canvas->restore();
+ }
+
+private:
+ typedef skiagm::GM INHERITED;
+};
+
DEF_GM( return new AnalyticAntiAliasConvexGM; )
+DEF_GM( return new AnalyticAntiAliasGeneralGM; )
+DEF_GM( return new AnalyticAntiAliasInverseGM; )