| 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 1198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1209 tmpUnfiltered); | 1209 tmpUnfiltered); |
| 1210 } | 1210 } |
| 1211 } else { | 1211 } else { |
| 1212 iter.fDevice->drawSprite(iter, bitmap, pos.x(), pos.y(), *paint); | 1212 iter.fDevice->drawSprite(iter, bitmap, pos.x(), pos.y(), *paint); |
| 1213 } | 1213 } |
| 1214 } | 1214 } |
| 1215 LOOPER_END | 1215 LOOPER_END |
| 1216 } | 1216 } |
| 1217 | 1217 |
| 1218 ///////////////////////////////////////////////////////////////////////////// | 1218 ///////////////////////////////////////////////////////////////////////////// |
| 1219 void SkCanvas::didTranslate(SkScalar, SkScalar) { |
| 1220 // Do nothing. Subclasses may do something. |
| 1221 } |
| 1219 | 1222 |
| 1220 bool SkCanvas::translate(SkScalar dx, SkScalar dy) { | 1223 bool SkCanvas::translate(SkScalar dx, SkScalar dy) { |
| 1221 fDeviceCMDirty = true; | 1224 fDeviceCMDirty = true; |
| 1222 fCachedLocalClipBoundsDirty = true; | 1225 fCachedLocalClipBoundsDirty = true; |
| 1223 return fMCRec->fMatrix->preTranslate(dx, dy); | 1226 bool res = fMCRec->fMatrix->preTranslate(dx, dy); |
| 1227 |
| 1228 this->didTranslate(dx, dy); |
| 1229 return res; |
| 1230 } |
| 1231 |
| 1232 void SkCanvas::didScale(SkScalar, SkScalar) { |
| 1233 // Do nothing. Subclasses may do something. |
| 1224 } | 1234 } |
| 1225 | 1235 |
| 1226 bool SkCanvas::scale(SkScalar sx, SkScalar sy) { | 1236 bool SkCanvas::scale(SkScalar sx, SkScalar sy) { |
| 1227 fDeviceCMDirty = true; | 1237 fDeviceCMDirty = true; |
| 1228 fCachedLocalClipBoundsDirty = true; | 1238 fCachedLocalClipBoundsDirty = true; |
| 1229 return fMCRec->fMatrix->preScale(sx, sy); | 1239 bool res = fMCRec->fMatrix->preScale(sx, sy); |
| 1240 |
| 1241 this->didScale(sx, sy); |
| 1242 return res; |
| 1243 } |
| 1244 |
| 1245 void SkCanvas::didRotate(SkScalar) { |
| 1246 // Do nothing. Subclasses may do something. |
| 1230 } | 1247 } |
| 1231 | 1248 |
| 1232 bool SkCanvas::rotate(SkScalar degrees) { | 1249 bool SkCanvas::rotate(SkScalar degrees) { |
| 1233 fDeviceCMDirty = true; | 1250 fDeviceCMDirty = true; |
| 1234 fCachedLocalClipBoundsDirty = true; | 1251 fCachedLocalClipBoundsDirty = true; |
| 1235 return fMCRec->fMatrix->preRotate(degrees); | 1252 bool res = fMCRec->fMatrix->preRotate(degrees); |
| 1253 |
| 1254 this->didRotate(degrees); |
| 1255 return res; |
| 1256 } |
| 1257 |
| 1258 void SkCanvas::didSkew(SkScalar, SkScalar) { |
| 1259 // Do nothing. Subclasses may do something. |
| 1236 } | 1260 } |
| 1237 | 1261 |
| 1238 bool SkCanvas::skew(SkScalar sx, SkScalar sy) { | 1262 bool SkCanvas::skew(SkScalar sx, SkScalar sy) { |
| 1239 fDeviceCMDirty = true; | 1263 fDeviceCMDirty = true; |
| 1240 fCachedLocalClipBoundsDirty = true; | 1264 fCachedLocalClipBoundsDirty = true; |
| 1241 return fMCRec->fMatrix->preSkew(sx, sy); | 1265 bool res = fMCRec->fMatrix->preSkew(sx, sy); |
| 1266 |
| 1267 this->didSkew(sx, sy); |
| 1268 return res; |
| 1269 } |
| 1270 |
| 1271 void SkCanvas::didConcat(const SkMatrix&) { |
| 1272 // Do nothing. Subclasses may do something. |
| 1242 } | 1273 } |
| 1243 | 1274 |
| 1244 bool SkCanvas::concat(const SkMatrix& matrix) { | 1275 bool SkCanvas::concat(const SkMatrix& matrix) { |
| 1245 fDeviceCMDirty = true; | 1276 fDeviceCMDirty = true; |
| 1246 fCachedLocalClipBoundsDirty = true; | 1277 fCachedLocalClipBoundsDirty = true; |
| 1247 return fMCRec->fMatrix->preConcat(matrix); | 1278 bool res = fMCRec->fMatrix->preConcat(matrix); |
| 1279 |
| 1280 this->didConcat(matrix); |
| 1281 return res; |
| 1282 } |
| 1283 |
| 1284 void SkCanvas::didSetMatrix(const SkMatrix&) { |
| 1285 // Do nothing. Subclasses may do something. |
| 1248 } | 1286 } |
| 1249 | 1287 |
| 1250 void SkCanvas::setMatrix(const SkMatrix& matrix) { | 1288 void SkCanvas::setMatrix(const SkMatrix& matrix) { |
| 1251 fDeviceCMDirty = true; | 1289 fDeviceCMDirty = true; |
| 1252 fCachedLocalClipBoundsDirty = true; | 1290 fCachedLocalClipBoundsDirty = true; |
| 1253 *fMCRec->fMatrix = matrix; | 1291 *fMCRec->fMatrix = matrix; |
| 1292 this->didSetMatrix(matrix); |
| 1254 } | 1293 } |
| 1255 | 1294 |
| 1256 // this is not virtual, so it must call a virtual method so that subclasses | |
| 1257 // will see its action | |
| 1258 void SkCanvas::resetMatrix() { | 1295 void SkCanvas::resetMatrix() { |
| 1259 SkMatrix matrix; | 1296 SkMatrix matrix; |
| 1260 | 1297 |
| 1261 matrix.reset(); | 1298 matrix.reset(); |
| 1262 this->setMatrix(matrix); | 1299 this->setMatrix(matrix); |
| 1263 } | 1300 } |
| 1264 | 1301 |
| 1265 ////////////////////////////////////////////////////////////////////////////// | 1302 ////////////////////////////////////////////////////////////////////////////// |
| 1266 | 1303 |
| 1267 void SkCanvas::clipRect(const SkRect& rect, SkRegion::Op op, bool doAA) { | 1304 void SkCanvas::clipRect(const SkRect& rect, SkRegion::Op op, bool doAA) { |
| (...skipping 1233 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2501 if (!bitmap.allocPixels(info)) { | 2538 if (!bitmap.allocPixels(info)) { |
| 2502 return NULL; | 2539 return NULL; |
| 2503 } | 2540 } |
| 2504 | 2541 |
| 2505 // should this functionality be moved into allocPixels()? | 2542 // should this functionality be moved into allocPixels()? |
| 2506 if (!bitmap.info().isOpaque()) { | 2543 if (!bitmap.info().isOpaque()) { |
| 2507 bitmap.eraseColor(0); | 2544 bitmap.eraseColor(0); |
| 2508 } | 2545 } |
| 2509 return SkNEW_ARGS(SkCanvas, (bitmap)); | 2546 return SkNEW_ARGS(SkCanvas, (bitmap)); |
| 2510 } | 2547 } |
| OLD | NEW |