change SkAnnotation to not inherit from SkFlattenable (does not need dynamic factories)
BUG=
R=scroggo@google.com
Review URL: https://codereview.chromium.org/26606004
git-svn-id: http://skia.googlecode.com/svn/trunk@11762 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/pipe/SkGPipeWrite.cpp b/src/pipe/SkGPipeWrite.cpp
index 58ba102..05fbb48 100644
--- a/src/pipe/SkGPipeWrite.cpp
+++ b/src/pipe/SkGPipeWrite.cpp
@@ -48,7 +48,6 @@
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 @@
// 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);
+ }
+ }
}
///////////////////////////////////////////////////////////////////////////////