aboutsummaryrefslogtreecommitdiffhomepage
path: root/include/core/SkWriter32.h
diff options
context:
space:
mode:
authorGravatar djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2012-04-12 13:24:04 +0000
committerGravatar djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2012-04-12 13:24:04 +0000
commit2b2ede3e713065e1bac461787b0aafb03eaf871f (patch)
tree180a113560b219569ef06556982ec99fcac5ca36 /include/core/SkWriter32.h
parent7463f190972f45157242d2f1f4368de78e5863d7 (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.h14
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);