aboutsummaryrefslogtreecommitdiffhomepage
path: root/gm/xfermodes.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'gm/xfermodes.cpp')
-rw-r--r--gm/xfermodes.cpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/gm/xfermodes.cpp b/gm/xfermodes.cpp
index 6e1de3eb67..7ee1e80086 100644
--- a/gm/xfermodes.cpp
+++ b/gm/xfermodes.cpp
@@ -66,8 +66,10 @@ class XfermodesGM : public GM {
kQuarterClearInLayer_SrcType = 0x20,
//! A W/2xH/2 transparent image.
kSmallTransparentImage_SrcType = 0x40,
+ //! kRectangleImage_SrcType drawn directly with a mask.
+ kRectangleWithMask_SrcType = 0x80,
- kAll_SrcType = 0x7F, //!< All the source types.
+ kAll_SrcType = 0xFF, //!< All the source types.
kBasic_SrcType = 0x03, //!< Just basic source types.
};
@@ -112,6 +114,15 @@ class XfermodesGM : public GM {
canvas->drawRect(r, p);
break;
}
+ case kRectangleWithMask_SrcType: {
+ canvas->save(SkCanvas::kClip_SaveFlag);
+ restoreNeeded = true;
+ SkScalar w = SkIntToScalar(W);
+ SkScalar h = SkIntToScalar(H);
+ SkRect r = SkRect::MakeXYWH(x, y + h / 4, w, h * 23 / 60);
+ canvas->clipRect(r);
+ // Fall through.
+ }
case kRectangle_SrcType: {
SkScalar w = SkIntToScalar(W);
SkScalar h = SkIntToScalar(H);