flatten/unflatten fSegmentMask
authorreed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>
Wed, 21 Sep 2011 18:40:27 +0000 (18:40 +0000)
committerreed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>
Wed, 21 Sep 2011 18:40:27 +0000 (18:40 +0000)
git-svn-id: http://skia.googlecode.com/svn/trunk@2300 2bbb7eff-a529-9590-31e7-b0007b416f81

src/core/SkPath.cpp

index cf4e63a2322653531d93f08696eb8ef577d182fb..4c7a8a3aec6a4dca8ba6178c7ddeb378d5e2ccfb 100644 (file)
@@ -1323,7 +1323,7 @@ void SkPath::flatten(SkWriter32& buffer) const {
 
     buffer.write32(fPts.count());
     buffer.write32(fVerbs.count());
-    buffer.write32(fFillType);
+    buffer.write32((fFillType << 8) | fSegmentMask);
     buffer.writeMul4(fPts.begin(), sizeof(SkPoint) * fPts.count());
     buffer.writePad(fVerbs.begin(), fVerbs.count());
 }
@@ -1331,7 +1331,9 @@ void SkPath::flatten(SkWriter32& buffer) const {
 void SkPath::unflatten(SkReader32& buffer) {
     fPts.setCount(buffer.readS32());
     fVerbs.setCount(buffer.readS32());
-    fFillType = buffer.readS32();
+    uint32_t packed = buffer.readS32();
+    fFillType = packed >> 8;
+    fSegmentMask = packed & 0xFF;
     buffer.read(fPts.begin(), sizeof(SkPoint) * fPts.count());
     buffer.read(fVerbs.begin(), fVerbs.count());