Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(461)

Side by Side Diff: src/core/SkCanvas.cpp

Issue 203203004: Consolidate SkCanvas matrix virtuals. (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698