| Index: src/pipe/SkGPipeRead.cpp
|
| diff --git a/src/pipe/SkGPipeRead.cpp b/src/pipe/SkGPipeRead.cpp
|
| index e48baf38122e92b0224720a108cd5486a0fd4781..4bd4fa6a5c84385a4d403400145c27a0a29400c5 100644
|
| --- a/src/pipe/SkGPipeRead.cpp
|
| +++ b/src/pipe/SkGPipeRead.cpp
|
| @@ -26,6 +26,7 @@
|
| #include "SkRasterizer.h"
|
| #include "SkRRect.h"
|
| #include "SkShader.h"
|
| +#include "SkTextBlob.h"
|
| #include "SkTypeface.h"
|
| #include "SkXfermode.h"
|
|
|
| @@ -672,7 +673,19 @@ static void drawPicture_rp(SkCanvas* canvas, SkReader32* reader, uint32_t op32,
|
|
|
| static void drawTextBlob_rp(SkCanvas* canvas, SkReader32* reader, uint32_t op32,
|
| SkGPipeState* state) {
|
| - UNIMPLEMENTED
|
| + SkScalar x = reader->readScalar();
|
| + SkScalar y = reader->readScalar();
|
| +
|
| + size_t blobSize = reader->readU32();
|
| + const void* data = reader->skip(SkAlign4(blobSize));
|
| +
|
| + if (state->shouldDraw()) {
|
| + SkReadBuffer blobBuffer(data, blobSize);
|
| + SkAutoTUnref<const SkTextBlob> blob(SkTextBlob::CreateFromBuffer(blobBuffer));
|
| + SkASSERT(blob.get());
|
| +
|
| + canvas->drawTextBlob(blob, x, y, state->paint());
|
| + }
|
| }
|
| ///////////////////////////////////////////////////////////////////////////////
|
|
|
|
|