diff options
author | 2013-05-29 13:24:23 +0000 | |
---|---|---|
committer | 2013-05-29 13:24:23 +0000 | |
commit | 0a4805e33f8ddb445a2fd061462e715e1707f049 (patch) | |
tree | 5af3146040fbaa1a6ea768833ab85453af30e5c2 /include/core | |
parent | 960d114777ae75da1eeb289aabd9e4638cdc7caa (diff) |
First pass at Comment API
https://codereview.chromium.org/13957009/
git-svn-id: http://skia.googlecode.com/svn/trunk@9310 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'include/core')
-rw-r--r-- | include/core/SkCanvas.h | 40 |
1 files changed, 39 insertions, 1 deletions
diff --git a/include/core/SkCanvas.h b/include/core/SkCanvas.h index 2bf5a54a51..821f86b5ad 100644 --- a/include/core/SkCanvas.h +++ b/include/core/SkCanvas.h @@ -852,7 +852,24 @@ public: subclasses like SkPicture's recording canvas, that can store the data and then play it back later (via another call to drawData). */ - virtual void drawData(const void* data, size_t length); + virtual void drawData(const void* data, size_t length) { + // do nothing. Subclasses may do something with the data + } + + /** Add comments. beginCommentGroup/endCommentGroup open/close a new group. + Each comment added via addComment is notionally attached to its + enclosing group. Top-level comments simply belong to no group. + */ + virtual void beginCommentGroup(const char* description) { + // do nothing. Subclasses may do something + } + virtual void addComment(const char* kywd, const char* value) { + // do nothing. Subclasses may do something + } + virtual void endCommentGroup() { + // do nothing. Subclasses may do something + } + ////////////////////////////////////////////////////////////////////////// @@ -1138,4 +1155,25 @@ private: int fSaveCount; }; +/** Stack helper class to automatically open and close a comment block + */ +class SkAutoCommentBlock : SkNoncopyable { +public: + SkAutoCommentBlock(SkCanvas* canvas, const char* description) { + fCanvas = canvas; + if (NULL != fCanvas) { + fCanvas->beginCommentGroup(description); + } + } + + ~SkAutoCommentBlock() { + if (NULL != fCanvas) { + fCanvas->endCommentGroup(); + } + } + +private: + SkCanvas* fCanvas; +}; + #endif |