| OLD | NEW |
| 1 | 1 |
| 2 /* | 2 /* |
| 3 * Copyright 2008 The Android Open Source Project | 3 * Copyright 2008 The Android Open Source Project |
| 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 | 8 |
| 9 | 9 |
| 10 #include "SkCanvas.h" | 10 #include "SkCanvas.h" |
| (...skipping 1253 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1264 tmpUnfiltered); | 1264 tmpUnfiltered); |
| 1265 } | 1265 } |
| 1266 } else { | 1266 } else { |
| 1267 iter.fDevice->drawSprite(iter, bitmap, pos.x(), pos.y(), *paint); | 1267 iter.fDevice->drawSprite(iter, bitmap, pos.x(), pos.y(), *paint); |
| 1268 } | 1268 } |
| 1269 } | 1269 } |
| 1270 LOOPER_END | 1270 LOOPER_END |
| 1271 } | 1271 } |
| 1272 | 1272 |
| 1273 ///////////////////////////////////////////////////////////////////////////// | 1273 ///////////////////////////////////////////////////////////////////////////// |
| 1274 void SkCanvas::didTranslate(SkScalar, SkScalar) { | 1274 void SkCanvas::translate(SkScalar dx, SkScalar dy) { |
| 1275 // Do nothing. Subclasses may do something. | 1275 if (!dx && !dy) { |
| 1276 } | 1276 return; |
| 1277 } |
| 1277 | 1278 |
| 1278 void SkCanvas::translate(SkScalar dx, SkScalar dy) { | |
| 1279 fDeviceCMDirty = true; | 1279 fDeviceCMDirty = true; |
| 1280 fCachedLocalClipBoundsDirty = true; | 1280 fCachedLocalClipBoundsDirty = true; |
| 1281 fMCRec->fMatrix->preTranslate(dx, dy); | 1281 fMCRec->fMatrix->preTranslate(dx, dy); |
| 1282 | 1282 |
| 1283 this->didTranslate(dx, dy); | 1283 SkMatrix m; |
| 1284 } | 1284 m.setTranslate(dx, dy); |
| 1285 | 1285 this->didConcat(m); |
| 1286 void SkCanvas::didScale(SkScalar, SkScalar) { | |
| 1287 // Do nothing. Subclasses may do something. | |
| 1288 } | 1286 } |
| 1289 | 1287 |
| 1290 void SkCanvas::scale(SkScalar sx, SkScalar sy) { | 1288 void SkCanvas::scale(SkScalar sx, SkScalar sy) { |
| 1289 if (1 == sx && 1 == sy) { |
| 1290 return; |
| 1291 } |
| 1292 |
| 1291 fDeviceCMDirty = true; | 1293 fDeviceCMDirty = true; |
| 1292 fCachedLocalClipBoundsDirty = true; | 1294 fCachedLocalClipBoundsDirty = true; |
| 1293 fMCRec->fMatrix->preScale(sx, sy); | 1295 fMCRec->fMatrix->preScale(sx, sy); |
| 1294 | 1296 |
| 1295 this->didScale(sx, sy); | 1297 SkMatrix m; |
| 1296 } | 1298 m.setScale(sx, sy); |
| 1297 | 1299 this->didConcat(m); |
| 1298 void SkCanvas::didRotate(SkScalar) { | |
| 1299 // Do nothing. Subclasses may do something. | |
| 1300 } | 1300 } |
| 1301 | 1301 |
| 1302 void SkCanvas::rotate(SkScalar degrees) { | 1302 void SkCanvas::rotate(SkScalar degrees) { |
| 1303 fDeviceCMDirty = true; | 1303 fDeviceCMDirty = true; |
| 1304 fCachedLocalClipBoundsDirty = true; | 1304 fCachedLocalClipBoundsDirty = true; |
| 1305 fMCRec->fMatrix->preRotate(degrees); | 1305 fMCRec->fMatrix->preRotate(degrees); |
| 1306 | 1306 |
| 1307 this->didRotate(degrees); | 1307 SkMatrix m; |
| 1308 } | 1308 m.setRotate(degrees); |
| 1309 | 1309 this->didConcat(m); |
| 1310 void SkCanvas::didSkew(SkScalar, SkScalar) { | |
| 1311 // Do nothing. Subclasses may do something. | |
| 1312 } | 1310 } |
| 1313 | 1311 |
| 1314 void SkCanvas::skew(SkScalar sx, SkScalar sy) { | 1312 void SkCanvas::skew(SkScalar sx, SkScalar sy) { |
| 1315 fDeviceCMDirty = true; | 1313 fDeviceCMDirty = true; |
| 1316 fCachedLocalClipBoundsDirty = true; | 1314 fCachedLocalClipBoundsDirty = true; |
| 1317 fMCRec->fMatrix->preSkew(sx, sy); | 1315 fMCRec->fMatrix->preSkew(sx, sy); |
| 1318 | 1316 |
| 1319 this->didSkew(sx, sy); | 1317 SkMatrix m; |
| 1318 m.setSkew(sx, sy); |
| 1319 this->didConcat(m); |
| 1320 } | 1320 } |
| 1321 | 1321 |
| 1322 void SkCanvas::didConcat(const SkMatrix&) { | 1322 void SkCanvas::didConcat(const SkMatrix&) { |
| 1323 // Do nothing. Subclasses may do something. | 1323 // Do nothing. Subclasses may do something. |
| 1324 } | 1324 } |
| 1325 | 1325 |
| 1326 void SkCanvas::concat(const SkMatrix& matrix) { | 1326 void SkCanvas::concat(const SkMatrix& matrix) { |
| 1327 if (matrix.isIdentity()) { |
| 1328 return; |
| 1329 } |
| 1330 |
| 1327 fDeviceCMDirty = true; | 1331 fDeviceCMDirty = true; |
| 1328 fCachedLocalClipBoundsDirty = true; | 1332 fCachedLocalClipBoundsDirty = true; |
| 1329 fMCRec->fMatrix->preConcat(matrix); | 1333 fMCRec->fMatrix->preConcat(matrix); |
| 1330 | 1334 |
| 1331 this->didConcat(matrix); | 1335 this->didConcat(matrix); |
| 1332 } | 1336 } |
| 1333 | 1337 |
| 1334 void SkCanvas::didSetMatrix(const SkMatrix&) { | 1338 void SkCanvas::didSetMatrix(const SkMatrix&) { |
| 1335 // Do nothing. Subclasses may do something. | 1339 // Do nothing. Subclasses may do something. |
| 1336 } | 1340 } |
| (...skipping 1283 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2620 if (!bitmap.installPixels(info, pixels, rowBytes)) { | 2624 if (!bitmap.installPixels(info, pixels, rowBytes)) { |
| 2621 return NULL; | 2625 return NULL; |
| 2622 } | 2626 } |
| 2623 | 2627 |
| 2624 // should this functionality be moved into allocPixels()? | 2628 // should this functionality be moved into allocPixels()? |
| 2625 if (!bitmap.info().isOpaque()) { | 2629 if (!bitmap.info().isOpaque()) { |
| 2626 bitmap.eraseColor(0); | 2630 bitmap.eraseColor(0); |
| 2627 } | 2631 } |
| 2628 return SkNEW_ARGS(SkCanvas, (bitmap)); | 2632 return SkNEW_ARGS(SkCanvas, (bitmap)); |
| 2629 } | 2633 } |
| OLD | NEW |