| Index: src/core/SkRecorder.cpp
|
| diff --git a/src/core/SkRecorder.cpp b/src/core/SkRecorder.cpp
|
| index 0605d17fc3563d3bd58f73fd9716ede17fd47b93..a3c9513168ec02f7d21b4dcf11d6c2c019c360b2 100644
|
| --- a/src/core/SkRecorder.cpp
|
| +++ b/src/core/SkRecorder.cpp
|
| @@ -158,11 +158,16 @@ void SkRecorder::onDrawDRRect(const SkRRect& outer, const SkRRect& inner, const
|
| }
|
|
|
| void SkRecorder::onDrawDrawable(SkDrawable* drawable, const SkMatrix* matrix) {
|
| - if (!fDrawableList) {
|
| - fDrawableList.reset(new SkDrawableList);
|
| + if (fDrawPictureMode == Record_DrawPictureMode) {
|
| + if (!fDrawableList) {
|
| + fDrawableList.reset(new SkDrawableList);
|
| + }
|
| + fDrawableList->append(drawable);
|
| + APPEND(DrawDrawable, this->copy(matrix), drawable->getBounds(), fDrawableList->count() - 1);
|
| + } else {
|
| + SkASSERT(fDrawPictureMode == Playback_DrawPictureMode);
|
| + drawable->draw(this, matrix);
|
| }
|
| - fDrawableList->append(drawable);
|
| - APPEND(DrawDrawable, this->copy(matrix), drawable->getBounds(), fDrawableList->count() - 1);
|
| }
|
|
|
| void SkRecorder::onDrawPath(const SkPath& path, const SkPaint& paint) {
|
|
|