aboutsummaryrefslogtreecommitdiffhomepage
path: root/gm/xfermodes.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'gm/xfermodes.cpp')
-rw-r--r--gm/xfermodes.cpp17
1 files changed, 12 insertions, 5 deletions
diff --git a/gm/xfermodes.cpp b/gm/xfermodes.cpp
index 721a76e695..d881ae1e6d 100644
--- a/gm/xfermodes.cpp
+++ b/gm/xfermodes.cpp
@@ -84,13 +84,17 @@ class XfermodesGM : public GM {
bool restoreNeeded = false;
m.setTranslate(x, y);
- canvas->drawBitmapMatrix(fSrcB, m, &p);
+ canvas->drawBitmap(fSrcB, x, y, &p);
p.setXfermode(mode);
switch (srcType) {
- case kSmallTransparentImage_SrcType:
+ case kSmallTransparentImage_SrcType: {
m.postScale(SK_ScalarHalf, SK_ScalarHalf, x, y);
- canvas->drawBitmapMatrix(fTransparent, m, &p);
+
+ SkAutoCanvasRestore acr(canvas, true);
+ canvas->concat(m);
+ canvas->drawBitmap(fTransparent, 0, 0, &p);
break;
+ }
case kQuarterClearInLayer_SrcType: {
SkRect bounds = SkRect::MakeXYWH(x, y, SkIntToScalar(W),
SkIntToScalar(H));
@@ -135,9 +139,12 @@ class XfermodesGM : public GM {
case kRectangleImageWithAlpha_SrcType:
p.setAlpha(0x88);
// Fall through.
- case kRectangleImage_SrcType:
- canvas->drawBitmapMatrix(fDstB, m, &p);
+ case kRectangleImage_SrcType: {
+ SkAutoCanvasRestore acr(canvas, true);
+ canvas->concat(m);
+ canvas->drawBitmap(fDstB, 0, 0, &p);
break;
+ }
default:
break;
}