aboutsummaryrefslogtreecommitdiffhomepage
path: root/gm/aaxfermodes.cpp
diff options
context:
space:
mode:
authorGravatar Mike Reed <reed@google.com>2016-09-26 18:51:24 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2016-09-27 10:33:06 +0000
commit403d154591275b631464854e63c6050adf083686 (patch)
tree1398cb50f863394c3f96b14f703f9a8e0e6c0065 /gm/aaxfermodes.cpp
parented924ceffb07d6f383aeb63eab336df4f13df0f1 (diff)
Revert "Revert "replace Arithmetic xfermode with imagefilter""
This reverts commit 10ff5bfa789b6b602464e8511fdf676c6f5b1bd4. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2680 TBR= Change-Id: Iac2f4d48d227ff426ccf02b7eae280f382ad3580 Reviewed-on: https://skia-review.googlesource.com/2680 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
Diffstat (limited to 'gm/aaxfermodes.cpp')
-rw-r--r--gm/aaxfermodes.cpp29
1 files changed, 9 insertions, 20 deletions
diff --git a/gm/aaxfermodes.cpp b/gm/aaxfermodes.cpp
index 78f7d3e324..678a8379e3 100644
--- a/gm/aaxfermodes.cpp
+++ b/gm/aaxfermodes.cpp
@@ -39,13 +39,11 @@ enum Shape {
kLast_Shape = kConcave_Shape
};
-namespace skiagm {
-
/**
* Verifies AA works properly on all Xfermodes, including arithmetic, with both opaque and unknown
* src colors.
*/
-class AAXfermodesGM : public GM {
+class AAXfermodesGM : public skiagm::GM {
public:
AAXfermodesGM() {}
@@ -120,6 +118,9 @@ protected:
canvas->translate(0, kSubtitleSpacing + kShapeSpacing/2);
for (size_t m = 0; m <= SkXfermode::kLastCoeffMode; m++) {
+ if (firstMode + m > SkXfermode::kLastMode) {
+ break;
+ }
SkXfermode::Mode mode = static_cast<SkXfermode::Mode>(firstMode + m);
canvas->save();
@@ -210,7 +211,7 @@ protected:
if (maxSum > 255) {
SkPaint dimPaint;
dimPaint.setAntiAlias(false);
- dimPaint.setXfermode(SkXfermode::Make(SkXfermode::kDstIn_Mode));
+ dimPaint.setXfermodeMode(SkXfermode::kDstIn_Mode);
if (255 != paint->getAlpha()) {
// Dim the src and dst colors.
dimPaint.setARGB(255 * 255 / maxSum, 0, 0, 0);
@@ -227,16 +228,10 @@ protected:
}
void drawShape(SkCanvas* canvas, Shape shape, const SkPaint& paint, SkXfermode::Mode mode) {
+ SkASSERT(mode <= SkXfermode::kLastMode);
SkPaint shapePaint(paint);
shapePaint.setAntiAlias(kSquare_Shape != shape);
-
- sk_sp<SkXfermode> xfermode;
- if (mode <= SkXfermode::kLastMode) {
- xfermode = SkXfermode::Make(mode);
- } else {
- xfermode = SkArithmeticMode::Make(+1.0f, +0.25f, -0.5f, +0.1f);
- }
- shapePaint.setXfermode(std::move(xfermode));
+ shapePaint.setXfermodeMode(mode);
switch (shape) {
case kSquare_Shape:
@@ -273,12 +268,6 @@ private:
SkPath fOval;
SkPath fConcave;
- typedef GM INHERITED;
+ typedef skiagm::GM INHERITED;
};
-
-//////////////////////////////////////////////////////////////////////////////
-
-static GM* MyFactory(void*) { return new AAXfermodesGM; }
-static GMRegistry reg(MyFactory);
-
-}
+DEF_GM( return new AAXfermodesGM; )