diff options
author | 2012-04-12 13:24:04 +0000 | |
---|---|---|
committer | 2012-04-12 13:24:04 +0000 | |
commit | 2b2ede3e713065e1bac461787b0aafb03eaf871f (patch) | |
tree | 180a113560b219569ef06556982ec99fcac5ca36 /include/core/SkWriter32.h | |
parent | 7463f190972f45157242d2f1f4368de78e5863d7 (diff) |
Decouple the SkFlattenable from SkReader32/SkWriter32.
The current impl for SkFlattenable read/write buffers is
that they extend from SkReader32 and SkWriter32, but that
dependency must be abstract if we are to add any other
serialization format.
Review URL: https://codereview.appspot.com/5999045
git-svn-id: http://skia.googlecode.com/svn/trunk@3654 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'include/core/SkWriter32.h')
-rw-r--r-- | include/core/SkWriter32.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/include/core/SkWriter32.h b/include/core/SkWriter32.h index d7159ff290..1b475958fb 100644 --- a/include/core/SkWriter32.h +++ b/include/core/SkWriter32.h @@ -15,6 +15,8 @@ #include "SkScalar.h" #include "SkPoint.h" #include "SkRect.h" +#include "SkMatrix.h" +#include "SkRegion.h" class SkStream; class SkWStream; @@ -76,7 +78,19 @@ public: void writeRect(const SkRect& rect) { *(SkRect*)this->reserve(sizeof(rect)) = rect; } + + void writeMatrix(const SkMatrix& matrix) { + size_t size = matrix.flatten(NULL); + SkASSERT(SkAlign4(size) == size); + matrix.flatten(this->reserve(size)); + } + void writeRegion(const SkRegion& rgn) { + size_t size = rgn.flatten(NULL); + SkASSERT(SkAlign4(size) == size); + rgn.flatten(this->reserve(size)); + } + // write count bytes (must be a multiple of 4) void writeMul4(const void* values, size_t size) { this->write(values, size); |