Use SkBlendMode_Name rather than one-off tables
BUG=skia:
Change-Id: I653ff55bc1164ddae4b03967f2f54bb5fece5a33
Reviewed-on: https://skia-review.googlesource.com/9722
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Brian Osman <brianosman@google.com>
diff --git a/samplecode/SampleAARectModes.cpp b/samplecode/SampleAARectModes.cpp
index 0a50303..12c074e 100644
--- a/samplecode/SampleAARectModes.cpp
+++ b/samplecode/SampleAARectModes.cpp
@@ -11,22 +11,19 @@
#include "SkColorPriv.h"
#include "SkShader.h"
-static const struct {
- SkBlendMode fMode;
- const char* fLabel;
-} gModes[] = {
- { SkBlendMode::kClear, "Clear" },
- { SkBlendMode::kSrc, "Src" },
- { SkBlendMode::kDst, "Dst" },
- { SkBlendMode::kSrcOver, "SrcOver" },
- { SkBlendMode::kDstOver, "DstOver" },
- { SkBlendMode::kSrcIn, "SrcIn" },
- { SkBlendMode::kDstIn, "DstIn" },
- { SkBlendMode::kSrcOut, "SrcOut" },
- { SkBlendMode::kDstOut, "DstOut" },
- { SkBlendMode::kSrcATop, "SrcATop" },
- { SkBlendMode::kDstATop, "DstATop" },
- { SkBlendMode::kXor, "Xor" },
+static const SkBlendMode gModes[] = {
+ SkBlendMode::kClear,
+ SkBlendMode::kSrc,
+ SkBlendMode::kDst,
+ SkBlendMode::kSrcOver,
+ SkBlendMode::kDstOver,
+ SkBlendMode::kSrcIn,
+ SkBlendMode::kDstIn,
+ SkBlendMode::kSrcOut,
+ SkBlendMode::kDstOut,
+ SkBlendMode::kSrcATop,
+ SkBlendMode::kDstATop,
+ SkBlendMode::kXor,
};
const int gWidth = 64;
@@ -109,7 +106,7 @@
canvas->drawRect(bounds, fBGPaint);
canvas->saveLayer(&bounds, nullptr);
- SkScalar dy = drawCell(canvas, gModes[i].fMode, gAlphaValue[alpha & 1],
+ SkScalar dy = drawCell(canvas, gModes[i], gAlphaValue[alpha & 1],
gAlphaValue[alpha & 2]);
canvas->restore();
diff --git a/samplecode/SampleHairModes.cpp b/samplecode/SampleHairModes.cpp
index 5eeb6cb..dfe7572 100644
--- a/samplecode/SampleHairModes.cpp
+++ b/samplecode/SampleHairModes.cpp
@@ -11,22 +11,19 @@
#include "SkColorPriv.h"
#include "SkShader.h"
-static const struct {
- SkBlendMode fMode;
- const char* fLabel;
-} gModes[] = {
- { SkBlendMode::kClear, "Clear" },
- { SkBlendMode::kSrc, "Src" },
- { SkBlendMode::kDst, "Dst" },
- { SkBlendMode::kSrcOver, "SrcOver" },
- { SkBlendMode::kDstOver, "DstOver" },
- { SkBlendMode::kSrcIn, "SrcIn" },
- { SkBlendMode::kDstIn, "DstIn" },
- { SkBlendMode::kSrcOut, "SrcOut" },
- { SkBlendMode::kDstOut, "DstOut" },
- { SkBlendMode::kSrcATop, "SrcATop" },
- { SkBlendMode::kDstATop, "DstATop" },
- { SkBlendMode::kXor, "Xor" },
+static const SkBlendMode gModes[] = {
+ SkBlendMode::kClear,
+ SkBlendMode::kSrc,
+ SkBlendMode::kDst,
+ SkBlendMode::kSrcOver,
+ SkBlendMode::kDstOver,
+ SkBlendMode::kSrcIn,
+ SkBlendMode::kDstIn,
+ SkBlendMode::kSrcOut,
+ SkBlendMode::kDstOut,
+ SkBlendMode::kSrcATop,
+ SkBlendMode::kDstATop,
+ SkBlendMode::kXor,
};
const int gWidth = 64;
@@ -105,7 +102,7 @@
}
canvas->drawRect(bounds, fBGPaint);
canvas->saveLayer(&bounds, nullptr);
- SkScalar dy = drawCell(canvas, gModes[i].fMode,
+ SkScalar dy = drawCell(canvas, gModes[i],
gAlphaValue[alpha & 1],
gAlphaValue[alpha & 2]);
canvas->restore();
diff --git a/samplecode/SampleXfer.cpp b/samplecode/SampleXfer.cpp
index 738541f..9ca2e78 100644
--- a/samplecode/SampleXfer.cpp
+++ b/samplecode/SampleXfer.cpp
@@ -17,19 +17,16 @@
#include "SkSurface.h"
#include "SkGradientShader.h"
-const struct {
- SkBlendMode fMode;
- const char* fName;
-} gModes[] = {
- { SkBlendMode::kSrcOver, "src-over" },
- { SkBlendMode::kSrc, "src" },
- { SkBlendMode::kSrcIn, "src-in" },
- { SkBlendMode::kSrcOut, "src-out" },
- { SkBlendMode::kSrcATop, "src-atop" },
- { SkBlendMode::kDstOver, "dst-over" },
- { SkBlendMode::kDstIn, "dst-in" },
- { SkBlendMode::kDstOut, "dst-out" },
- { SkBlendMode::kDstATop, "dst-atop" },
+const SkBlendMode gModes[] = {
+ SkBlendMode::kSrcOver,
+ SkBlendMode::kSrc,
+ SkBlendMode::kSrcIn,
+ SkBlendMode::kSrcOut,
+ SkBlendMode::kSrcATop,
+ SkBlendMode::kDstOver,
+ SkBlendMode::kDstIn,
+ SkBlendMode::kDstOut,
+ SkBlendMode::kDstATop,
};
const int N_Modes = SK_ARRAY_COUNT(gModes);
@@ -160,7 +157,7 @@
SkScalar x = 10;
SkScalar y = 10;
for (int i = 0; i < N_Modes; ++i) {
- sk_sp<SkView> v(new PushButtonWig(gModes[i].fName, (int)gModes[i].fMode));
+ sk_sp<SkView> v(new PushButtonWig(SkBlendMode_Name(gModes[i]), (int)gModes[i]));
v->setSize(70, 25);
v->setLoc(x, y);
v->setVisibleP(true);
@@ -209,7 +206,7 @@
SkPaint paint;
if (fSelected) {
for (int i = 0; i < N_Modes; ++i) {
- if (fSelected->fMode == gModes[i].fMode) {
+ if (fSelected->fMode == gModes[i]) {
canvas->drawRect(fModeRect[i], paint);
break;
}
diff --git a/samplecode/SampleXfermodesBlur.cpp b/samplecode/SampleXfermodesBlur.cpp
index 2169ffd..2a17e6b 100644
--- a/samplecode/SampleXfermodesBlur.cpp
+++ b/samplecode/SampleXfermodesBlur.cpp
@@ -107,24 +107,20 @@
return;
}
- const struct {
- SkBlendMode fMode;
- const char* fLabel;
- } gModes[] = {
- { SkBlendMode::kClear, "Clear" },
- { SkBlendMode::kSrc, "Src" },
- { SkBlendMode::kDst, "Dst" },
- { SkBlendMode::kSrcOver, "SrcOver" },
- { SkBlendMode::kDstOver, "DstOver" },
- { SkBlendMode::kSrcIn, "SrcIn" },
- { SkBlendMode::kDstIn, "DstIn" },
- { SkBlendMode::kSrcOut, "SrcOut" },
- { SkBlendMode::kDstOut, "DstOut" },
- { SkBlendMode::kSrcATop, "SrcATop" },
- { SkBlendMode::kDstATop, "DstATop" },
- { SkBlendMode::kXor, "Xor" },
-
- { SkBlendMode::kPlus, "Plus" },
+ const SkBlendMode gModes[] = {
+ SkBlendMode::kClear,
+ SkBlendMode::kSrc,
+ SkBlendMode::kDst,
+ SkBlendMode::kSrcOver,
+ SkBlendMode::kDstOver,
+ SkBlendMode::kSrcIn,
+ SkBlendMode::kDstIn,
+ SkBlendMode::kSrcOut,
+ SkBlendMode::kDstOut,
+ SkBlendMode::kSrcATop,
+ SkBlendMode::kDstATop,
+ SkBlendMode::kXor,
+ SkBlendMode::kPlus,
};
const SkScalar w = SkIntToScalar(W);
@@ -155,7 +151,7 @@
canvas->drawRect(r, p);
canvas->saveLayer(&r, nullptr);
- draw_mode(canvas, gModes[i].fMode, twice ? 0x88 : 0xFF, r.fLeft, r.fTop);
+ draw_mode(canvas, gModes[i], twice ? 0x88 : 0xFF, r.fLeft, r.fTop);
canvas->restore();
r.inset(-SK_ScalarHalf, -SK_ScalarHalf);
@@ -163,7 +159,8 @@
p.setShader(nullptr);
canvas->drawRect(r, p);
- canvas->drawText(gModes[i].fLabel, strlen(gModes[i].fLabel),
+ const char* label = SkBlendMode_Name(gModes[i]);
+ canvas->drawText(label, strlen(label),
x + w/2, y - labelP.getTextSize()/2, labelP);
x += w + SkIntToScalar(10);
if ((i % W) == W - 1) {