OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2008 The Android Open Source Project | 2 * Copyright 2008 The Android Open Source Project |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
6 */ | 6 */ |
7 | 7 |
8 #include "SkCanvas.h" | 8 #include "SkCanvas.h" |
9 #include "SkCanvasDrawable.h" | 9 #include "SkCanvasDrawable.h" |
10 #include "SkCanvasPriv.h" | 10 #include "SkCanvasPriv.h" |
(...skipping 24 matching lines...) Expand all Loading... |
35 #endif | 35 #endif |
36 | 36 |
37 static bool gIgnoreSaveLayerBounds; | 37 static bool gIgnoreSaveLayerBounds; |
38 void SkCanvas::Internal_Private_SetIgnoreSaveLayerBounds(bool ignore) { | 38 void SkCanvas::Internal_Private_SetIgnoreSaveLayerBounds(bool ignore) { |
39 gIgnoreSaveLayerBounds = ignore; | 39 gIgnoreSaveLayerBounds = ignore; |
40 } | 40 } |
41 bool SkCanvas::Internal_Private_GetIgnoreSaveLayerBounds() { | 41 bool SkCanvas::Internal_Private_GetIgnoreSaveLayerBounds() { |
42 return gIgnoreSaveLayerBounds; | 42 return gIgnoreSaveLayerBounds; |
43 } | 43 } |
44 | 44 |
| 45 static bool gTreatSpriteAsBitmap; |
| 46 void SkCanvas::Internal_Private_SetTreatSpriteAsBitmap(bool spriteAsBitmap) { |
| 47 gTreatSpriteAsBitmap = spriteAsBitmap; |
| 48 } |
| 49 bool SkCanvas::Internal_Private_GetTreatSpriteAsBitmap() { |
| 50 return gTreatSpriteAsBitmap; |
| 51 } |
| 52 |
45 // experimental for faster tiled drawing... | 53 // experimental for faster tiled drawing... |
46 //#define SK_ENABLE_CLIP_QUICKREJECT | 54 //#define SK_ENABLE_CLIP_QUICKREJECT |
47 | 55 |
48 //#define SK_TRACE_SAVERESTORE | 56 //#define SK_TRACE_SAVERESTORE |
49 | 57 |
50 #ifdef SK_TRACE_SAVERESTORE | 58 #ifdef SK_TRACE_SAVERESTORE |
51 static int gLayerCounter; | 59 static int gLayerCounter; |
52 static void inc_layer() { ++gLayerCounter; printf("----- inc layer %d\n", gL
ayerCounter); } | 60 static void inc_layer() { ++gLayerCounter; printf("----- inc layer %d\n", gL
ayerCounter); } |
53 static void dec_layer() { --gLayerCounter; printf("----- dec layer %d\n", gL
ayerCounter); } | 61 static void dec_layer() { --gLayerCounter; printf("----- dec layer %d\n", gL
ayerCounter); } |
54 | 62 |
(...skipping 1128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1183 } | 1191 } |
1184 } else { | 1192 } else { |
1185 dstDev->drawDevice(iter, srcDev, pos.x(), pos.y(), *paint); | 1193 dstDev->drawDevice(iter, srcDev, pos.x(), pos.y(), *paint); |
1186 } | 1194 } |
1187 } | 1195 } |
1188 LOOPER_END | 1196 LOOPER_END |
1189 } | 1197 } |
1190 | 1198 |
1191 void SkCanvas::drawSprite(const SkBitmap& bitmap, int x, int y, | 1199 void SkCanvas::drawSprite(const SkBitmap& bitmap, int x, int y, |
1192 const SkPaint* paint) { | 1200 const SkPaint* paint) { |
| 1201 if (gTreatSpriteAsBitmap) { |
| 1202 this->save(); |
| 1203 this->resetMatrix(); |
| 1204 this->drawBitmap(bitmap, SkIntToScalar(x), SkIntToScalar(y), paint); |
| 1205 this->restore(); |
| 1206 return; |
| 1207 } |
| 1208 |
1193 TRACE_EVENT0("disabled-by-default-skia", "SkCanvas::drawSprite()"); | 1209 TRACE_EVENT0("disabled-by-default-skia", "SkCanvas::drawSprite()"); |
1194 if (bitmap.drawsNothing()) { | 1210 if (bitmap.drawsNothing()) { |
1195 return; | 1211 return; |
1196 } | 1212 } |
1197 SkDEBUGCODE(bitmap.validate();) | 1213 SkDEBUGCODE(bitmap.validate();) |
1198 | 1214 |
1199 SkPaint tmp; | 1215 SkPaint tmp; |
1200 if (NULL == paint) { | 1216 if (NULL == paint) { |
1201 paint = &tmp; | 1217 paint = &tmp; |
1202 } | 1218 } |
(...skipping 1302 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2505 } | 2521 } |
2506 | 2522 |
2507 if (matrix) { | 2523 if (matrix) { |
2508 canvas->concat(*matrix); | 2524 canvas->concat(*matrix); |
2509 } | 2525 } |
2510 } | 2526 } |
2511 | 2527 |
2512 SkAutoCanvasMatrixPaint::~SkAutoCanvasMatrixPaint() { | 2528 SkAutoCanvasMatrixPaint::~SkAutoCanvasMatrixPaint() { |
2513 fCanvas->restoreToCount(fSaveCount); | 2529 fCanvas->restoreToCount(fSaveCount); |
2514 } | 2530 } |
OLD | NEW |