| OLD | NEW |
| 1 | 1 |
| 2 /* | 2 /* |
| 3 * Copyright 2011 Google Inc. | 3 * Copyright 2011 Google Inc. |
| 4 * | 4 * |
| 5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
| 6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
| 7 */ | 7 */ |
| 8 #include "gm.h" | 8 #include "gm.h" |
| 9 #include "SkBitmap.h" | 9 #include "SkBitmap.h" |
| 10 #include "SkShader.h" | 10 #include "SkShader.h" |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 75 SkScalar x, SkScalar y) { | 75 SkScalar x, SkScalar y) { |
| 76 SkPaint p; | 76 SkPaint p; |
| 77 SkMatrix m; | 77 SkMatrix m; |
| 78 bool restoreNeeded = false; | 78 bool restoreNeeded = false; |
| 79 m.setTranslate(x, y); | 79 m.setTranslate(x, y); |
| 80 | 80 |
| 81 canvas->drawBitmapMatrix(fSrcB, m, &p); | 81 canvas->drawBitmapMatrix(fSrcB, m, &p); |
| 82 p.setXfermode(mode); | 82 p.setXfermode(mode); |
| 83 switch (srcType) { | 83 switch (srcType) { |
| 84 case kQuarterClearInLayer_SrcType: { | 84 case kQuarterClearInLayer_SrcType: { |
| 85 SkRect bounds = SkRect::MakeXYWH(x, y, W, H); | 85 SkRect bounds = SkRect::MakeXYWH(x, y, SkIntToScalar(W), |
| 86 SkIntToScalar(H)); |
| 86 canvas->saveLayer(&bounds, &p); | 87 canvas->saveLayer(&bounds, &p); |
| 87 restoreNeeded = true; | 88 restoreNeeded = true; |
| 88 p.setXfermodeMode(SkXfermode::kSrcOver_Mode); | 89 p.setXfermodeMode(SkXfermode::kSrcOver_Mode); |
| 89 // Fall through. | 90 // Fall through. |
| 90 } | 91 } |
| 91 case kQuarterClear_SrcType: { | 92 case kQuarterClear_SrcType: { |
| 92 SkScalar halfW = SkIntToScalar(W) / 2; | 93 SkScalar halfW = SkIntToScalar(W) / 2; |
| 93 SkScalar halfH = SkIntToScalar(H) / 2; | 94 SkScalar halfH = SkIntToScalar(H) / 2; |
| 94 p.setColor(0xFF66AAFF); | 95 p.setColor(0xFF66AAFF); |
| 95 SkRect r = SkRect::MakeXYWH(x + halfW, y, halfW, H); | 96 SkRect r = SkRect::MakeXYWH(x + halfW, y, halfW, |
| 97 SkIntToScalar(H)); |
| 96 canvas->drawRect(r, p); | 98 canvas->drawRect(r, p); |
| 97 p.setColor(0xFFAA66FF); | 99 p.setColor(0xFFAA66FF); |
| 98 r = SkRect::MakeXYWH(x, y + halfH, W, halfH); | 100 r = SkRect::MakeXYWH(x, y + halfH, SkIntToScalar(W), halfH); |
| 99 canvas->drawRect(r, p); | 101 canvas->drawRect(r, p); |
| 100 break; | 102 break; |
| 101 } | 103 } |
| 102 case kRectangle_SrcType: { | 104 case kRectangle_SrcType: { |
| 103 SkScalar w = SkIntToScalar(W); | 105 SkScalar w = SkIntToScalar(W); |
| 104 SkScalar h = SkIntToScalar(H); | 106 SkScalar h = SkIntToScalar(H); |
| 105 SkRect r = SkRect::MakeXYWH(x + w / 3, y + h / 3, | 107 SkRect r = SkRect::MakeXYWH(x + w / 3, y + h / 3, |
| 106 w * 37 / 60, h * 37 / 60); | 108 w * 37 / 60, h * 37 / 60); |
| 107 p.setColor(0xFF66AAFF); | 109 p.setColor(0xFF66AAFF); |
| 108 canvas->drawRect(r, p); | 110 canvas->drawRect(r, p); |
| (...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 261 private: | 263 private: |
| 262 typedef GM INHERITED; | 264 typedef GM INHERITED; |
| 263 }; | 265 }; |
| 264 | 266 |
| 265 ////////////////////////////////////////////////////////////////////////////// | 267 ////////////////////////////////////////////////////////////////////////////// |
| 266 | 268 |
| 267 static GM* MyFactory(void*) { return new XfermodesGM; } | 269 static GM* MyFactory(void*) { return new XfermodesGM; } |
| 268 static GMRegistry reg(MyFactory); | 270 static GMRegistry reg(MyFactory); |
| 269 | 271 |
| 270 } | 272 } |
| OLD | NEW |