Index: src/core/SkPicturePlayback.cpp |
diff --git a/src/core/SkPicturePlayback.cpp b/src/core/SkPicturePlayback.cpp |
index 3cbcdbbd2f3f55cf1da6dd23a187d1df36ab9071..6b8930436f1117c2c3bc5ba1ae8fc19cfaf3effa 100644 |
--- a/src/core/SkPicturePlayback.cpp |
+++ b/src/core/SkPicturePlayback.cpp |
@@ -501,6 +501,19 @@ void SkPicturePlayback::handleOp(SkReadBuffer* reader, |
canvas->drawTextOnPath(text.text(), text.length(), path, &matrix, *paint); |
} |
} break; |
+ case DRAW_TEXT_RSXFORM: { |
+ const SkPaint* paint = fPictureData->getPaint(reader); |
+ int count = reader->readInt(); |
+ uint32_t flags = reader->read32(); |
+ TextContainer text; |
+ get_text(reader, &text); |
+ const SkRSXform* xform = (const SkRSXform*)reader->skip(count * sizeof(SkRSXform)); |
+ const SkRect* cull = nullptr; |
+ if (flags & DRAW_TEXT_RSXFORM_HAS_CULL) { |
+ cull = (const SkRect*)reader->skip(sizeof(SkRect)); |
+ } |
+ canvas->drawTextRSXform(text.text(), text.length(), xform, cull, *paint); |
+ } break; |
case DRAW_VERTICES: { |
sk_sp<SkXfermode> xfer; |
const SkPaint* paint = fPictureData->getPaint(reader); |