Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1207)

Unified Diff: src/pipe/SkGPipeWrite.cpp

Issue 26606004: change SkAnnotation to not inherit from SkFlattenable (does not need dynamic factories) (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/pipe/SkGPipeRead.cpp ('k') | src/ports/SkGlobalInitialization_default.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
+ }
+ }
}
///////////////////////////////////////////////////////////////////////////////
« no previous file with comments | « src/pipe/SkGPipeRead.cpp ('k') | src/ports/SkGlobalInitialization_default.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698