| Index: src/pipe/SkGPipeWrite.cpp
|
| diff --git a/src/pipe/SkGPipeWrite.cpp b/src/pipe/SkGPipeWrite.cpp
|
| index 58ba102988c8f6a32b586f9852e70d360f69fca3..05fbb484a5d941e976bf645c0eee1f42e1ff6585 100644
|
| --- a/src/pipe/SkGPipeWrite.cpp
|
| +++ b/src/pipe/SkGPipeWrite.cpp
|
| @@ -48,7 +48,6 @@ static SkFlattenable* get_paintflat(const SkPaint& paint, unsigned paintFlat) {
|
| case kShader_PaintFlat: return paint.getShader();
|
| case kImageFilter_PaintFlat: return paint.getImageFilter();
|
| case kXfermode_PaintFlat: return paint.getXfermode();
|
| - case kAnnotation_PaintFlat: return paint.getAnnotation();
|
| }
|
| SkDEBUGFAIL("never gets here");
|
| return NULL;
|
| @@ -1123,6 +1122,26 @@ void SkGPipeCanvas::writePaint(const SkPaint& paint) {
|
| // SkDebugf("[%d] %08X\n", i, storage[i]);
|
| }
|
| }
|
| +
|
| + //
|
| + // Do these after we've written kPaintOp_DrawOp
|
| +
|
| + if (base.getAnnotation() != paint.getAnnotation()) {
|
| + if (NULL == paint.getAnnotation()) {
|
| + this->writeOp(kSetAnnotation_DrawOp, 0, 0);
|
| + } else {
|
| + SkOrderedWriteBuffer buffer(1024);
|
| + paint.getAnnotation()->writeToBuffer(buffer);
|
| + size = buffer.bytesWritten();
|
| +
|
| + SkAutoMalloc storage(size);
|
| + buffer.writeToMemory(storage.get());
|
| +
|
| + this->writeOp(kSetAnnotation_DrawOp, 0, 1);
|
| + fWriter.write32(size);
|
| + fWriter.write(storage.get(), size);
|
| + }
|
| + }
|
| }
|
|
|
| ///////////////////////////////////////////////////////////////////////////////
|
|
|