Index: src/core/SkPicturePlayback.cpp |
diff --git a/src/core/SkPicturePlayback.cpp b/src/core/SkPicturePlayback.cpp |
index 6b8930436f1117c2c3bc5ba1ae8fc19cfaf3effa..df91777a565d26df1e85584b38f7f6e37a6afd84 100644 |
--- a/src/core/SkPicturePlayback.cpp |
+++ b/src/core/SkPicturePlayback.cpp |
@@ -6,6 +6,7 @@ |
*/ |
#include "SkCanvas.h" |
+#include "SkCanvasPriv.h" |
#include "SkPatchUtils.h" |
#include "SkPictureData.h" |
#include "SkPicturePlayback.h" |
@@ -248,6 +249,15 @@ void SkPicturePlayback::handleOp(SkReadBuffer* reader, |
reader->readRect(&dst); |
canvas->drawBitmapNine(bitmap, src, dst, paint); |
} break; |
+ case DRAW_BITMAP_NINE_DIVS: { |
+ const SkPaint* paint = fPictureData->getPaint(reader); |
+ const SkBitmap bitmap = shallow_copy(fPictureData->getBitmap(reader)); |
+ sk_sp<SkData> divData = reader->readByteArrayAsData(); |
+ const SkCanvas::NinePatchDivs divs = SkNinePatchDivs::FromData(divData.get()); |
+ SkRect dst; |
+ reader->readRect(&dst); |
+ canvas->drawBitmapNine(bitmap, divs, dst, paint); |
+ } break; |
case DRAW_CLEAR: |
canvas->clear(reader->readInt()); |
break; |