| Index: include/core/SkCanvas.h
|
| diff --git a/include/core/SkCanvas.h b/include/core/SkCanvas.h
|
| index c23d748e7817735328108bf6de3d6029b008b79a..1b4571a09c9c65b9b3fdcfde71431636a1d39736 100644
|
| --- a/include/core/SkCanvas.h
|
| +++ b/include/core/SkCanvas.h
|
| @@ -22,6 +22,7 @@ class GrRenderTarget;
|
| class SkBaseDevice;
|
| class SkCanvasClipVisitor;
|
| class SkClipStack;
|
| +class SkData;
|
| class SkDraw;
|
| class SkDrawable;
|
| class SkDrawFilter;
|
| @@ -1072,6 +1073,18 @@ public:
|
| void drawDrawable(SkDrawable* drawable, const SkMatrix* = NULL);
|
| void drawDrawable(SkDrawable*, SkScalar x, SkScalar y);
|
|
|
| + /**
|
| + * Send an "annotation" to the canvas. The annotation is a key/value pair, where the key is
|
| + * a null-terminated utf8 string, and the value is a blob of data stored in an SkData
|
| + * (which may be null). The annotation is associated with the specified rectangle.
|
| + *
|
| + * The caller still retains its ownership of the data (if any).
|
| + *
|
| + * Note: on may canvas types, this information is ignored, but some canvases (e.g. recording
|
| + * a picture or drawing to a PDF document) will pass on this information.
|
| + */
|
| + void drawAnnotation(const SkRect&, const char key[], SkData* value);
|
| +
|
| //////////////////////////////////////////////////////////////////////////
|
| #ifdef SK_INTERNAL
|
| #ifndef SK_SUPPORT_LEGACY_DRAWFILTER
|
| @@ -1221,6 +1234,7 @@ protected:
|
| virtual void didConcat(const SkMatrix&) {}
|
| virtual void didSetMatrix(const SkMatrix&) {}
|
|
|
| + virtual void onDrawAnnotation(const SkRect&, const char key[], SkData* value);
|
| virtual void onDrawDRRect(const SkRRect&, const SkRRect&, const SkPaint&);
|
|
|
| virtual void onDrawText(const void* text, size_t byteLength, SkScalar x,
|
|
|