Chromium Code Reviews| Index: src/pipe/SkGPipeRead.cpp |
| diff --git a/src/pipe/SkGPipeRead.cpp b/src/pipe/SkGPipeRead.cpp |
| index a5f714480ecc50a5799d6f05b51f58c64c5a63b0..20089d4c56bd1243e628041a6283cdc578582ade 100644 |
| --- a/src/pipe/SkGPipeRead.cpp |
| +++ b/src/pipe/SkGPipeRead.cpp |
| @@ -15,6 +15,7 @@ |
| #include "SkReader32.h" |
| #include "SkStream.h" |
| +#include "SkAnnotation.h" |
| #include "SkColorFilter.h" |
| #include "SkDrawLooper.h" |
| #include "SkMaskFilter.h" |
| @@ -53,9 +54,6 @@ static void set_paintflat(SkPaint* paint, SkFlattenable* obj, unsigned paintFlat |
| case kXfermode_PaintFlat: |
| paint->setXfermode((SkXfermode*)obj); |
| break; |
| - case kAnnotation_PaintFlat: |
| - paint->setAnnotation((SkAnnotation*)obj); |
| - break; |
| default: |
| SkDEBUGFAIL("never gets here"); |
| } |
| @@ -672,6 +670,22 @@ static void typeface_rp(SkCanvas*, SkReader32* reader, uint32_t, |
| p->setTypeface(static_cast<SkTypeface*>(reader->readPtr())); |
| } |
| +static void annotation_rp(SkCanvas*, SkReader32* reader, uint32_t op32, |
| + SkGPipeState* state) { |
| + SkPaint* p = state->editPaint(); |
| + |
| + if (PaintOp_unpackData(op32)) { |
|
scroggo
2013/10/14 19:47:27
Will this fire a warning for turning unsigned to b
reed1
2013/10/14 19:55:44
Done.
|
| + const size_t size = reader->readU32(); |
| + SkAutoMalloc storage(size); |
| + |
| + reader->read(storage.get(), size); |
| + SkOrderedReadBuffer buffer(storage.get(), size); |
| + p->setAnnotation(SkNEW_ARGS(SkAnnotation, (buffer)))->unref(); |
| + } else { |
| + p->setAnnotation(NULL); |
| + } |
| +} |
| + |
| /////////////////////////////////////////////////////////////////////////////// |
| static void def_Typeface_rp(SkCanvas*, SkReader32*, uint32_t, SkGPipeState* state) { |
| @@ -755,6 +769,8 @@ static const ReadProc gReadTable[] = { |
| paintOp_rp, |
| typeface_rp, |
| + annotation_rp, |
| + |
| def_Typeface_rp, |
| def_PaintFlat_rp, |
| def_Bitmap_rp, |