aboutsummaryrefslogtreecommitdiffhomepage
path: root/gm/lumamode.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'gm/lumamode.cpp')
-rw-r--r--gm/lumamode.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/gm/lumamode.cpp b/gm/lumamode.cpp
index e6aed18bb4..dbf45411fb 100644
--- a/gm/lumamode.cpp
+++ b/gm/lumamode.cpp
@@ -76,6 +76,7 @@ public:
LumaXfermodeGM() {
fSrcInXfer.reset(SkLumaMaskXfermode::Create(SkXfermode::kSrcIn_Mode));
fDstInXfer.reset(SkLumaMaskXfermode::Create(SkXfermode::kDstIn_Mode));
+ fSrcOverXfer.reset(SkLumaMaskXfermode::Create(SkXfermode::kSrcOver_Mode));
SkColor g1Colors[] = { kColor1, SkColorSetA(kColor1, 0x20) };
SkColor g2Colors[] = { kColor2, SkColorSetA(kColor2, 0x20) };
@@ -101,11 +102,11 @@ protected:
}
virtual SkISize onISize() SK_OVERRIDE {
- return SkISize::Make(600, 420);
+ return SkISize::Make(800, 420);
}
virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE {
- SkXfermode* modes[] = { NULL, fSrcInXfer, fDstInXfer };
+ SkXfermode* modes[] = { NULL, fSrcInXfer, fDstInXfer, fSrcOverXfer };
struct {
SkShader* fShader1;
SkShader* fShader2;
@@ -120,6 +121,7 @@ protected:
draw_label(canvas, "SrcOver", SkPoint::Make(gridStep, 20));
draw_label(canvas, "SrcInLuma", SkPoint::Make(gridStep * 3, 20));
draw_label(canvas, "DstInLuma", SkPoint::Make(gridStep * 5, 20));
+ draw_label(canvas, "SrcOverLuma", SkPoint::Make(gridStep * 7, 20));
for (size_t i = 0; i < SK_ARRAY_COUNT(shaders); ++i) {
canvas->save();
canvas->translate(kInset, gridStep * i + 30);
@@ -137,7 +139,7 @@ protected:
private:
SkAutoTUnref<SkShader> fGr1, fGr2;
- SkAutoTUnref<SkXfermode> fSrcInXfer, fDstInXfer;
+ SkAutoTUnref<SkXfermode> fSrcInXfer, fDstInXfer, fSrcOverXfer;
typedef skiagm::GM INHERITED;
};