Index: src/core/SkRecorder.cpp |
diff --git a/src/core/SkRecorder.cpp b/src/core/SkRecorder.cpp |
index 775a7e0c55c45328c46687d23a0d35a1d1dfbc01..7433a5b5bf9d8af2723576b071f38a88b3de8362 100644 |
--- a/src/core/SkRecorder.cpp |
+++ b/src/core/SkRecorder.cpp |
@@ -12,6 +12,8 @@ |
#include "SkPictureUtils.h" |
#include "SkRecorder.h" |
+//#define WRAP_BITMAP_AS_IMAGE |
+ |
SkDrawableList::~SkDrawableList() { |
fArray.unrefAll(); |
} |
@@ -170,7 +172,14 @@ void SkRecorder::onDrawBitmap(const SkBitmap& bitmap, |
SkScalar left, |
SkScalar top, |
const SkPaint* paint) { |
+#ifdef WRAP_BITMAP_AS_IMAGE |
+ SkAutoTUnref<SkImage> image(SkImage::NewFromBitmap(bitmap)); |
+ if (image) { |
+ this->onDrawImage(image, left, top, paint); |
+ } |
+#else |
APPEND(DrawBitmap, this->copy(paint), bitmap, left, top); |
+#endif |
} |
void SkRecorder::onDrawBitmapRect(const SkBitmap& bitmap, |
@@ -178,6 +187,13 @@ void SkRecorder::onDrawBitmapRect(const SkBitmap& bitmap, |
const SkRect& dst, |
const SkPaint* paint, |
DrawBitmapRectFlags flags) { |
+#ifdef WRAP_BITMAP_AS_IMAGE |
+ // TODO: need a way to support the flags for images... |
+ SkAutoTUnref<SkImage> image(SkImage::NewFromBitmap(bitmap)); |
+ if (image) { |
+ this->onDrawImageRect(image, src, dst, paint); |
+ } |
+#else |
TRY_MINIRECORDER(drawBitmapRectToRect, bitmap, src, dst, paint, flags); |
if (kBleed_DrawBitmapRectFlag == flags) { |
APPEND(DrawBitmapRectToRectBleed, |
@@ -187,13 +203,21 @@ void SkRecorder::onDrawBitmapRect(const SkBitmap& bitmap, |
SkASSERT(kNone_DrawBitmapRectFlag == flags); |
APPEND(DrawBitmapRectToRect, |
this->copy(paint), bitmap, this->copy(src), dst); |
+#endif |
} |
void SkRecorder::onDrawBitmapNine(const SkBitmap& bitmap, |
const SkIRect& center, |
const SkRect& dst, |
const SkPaint* paint) { |
+#ifdef WRAP_BITMAP_AS_IMAGE |
+ SkAutoTUnref<SkImage> image(SkImage::NewFromBitmap(bitmap)); |
+ if (image) { |
+ this->onDrawImageNine(image, center, dst, paint); |
+ } |
+#else |
APPEND(DrawBitmapNine, this->copy(paint), bitmap, center, dst); |
+#endif |
} |
void SkRecorder::onDrawImage(const SkImage* image, SkScalar left, SkScalar top, |