Set write buffer flags only in SkWriteBuffer and SkFlatController constructors.

This is a baby step toward refactored (and faster in-process) typeface and flattenable factory encoding and decoding.  The sooner SkWriteBuffer knows its flags, the better.

Next steps will be to rearrange Sk{Read,Write}Buffer members into disjoint strategies to handle typefaces and flattenable factories: one for in-process, one for cross-process, one when validating.

BUG=skia:
R=reed@google.com, scroggo@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/138803005

git-svn-id: http://skia.googlecode.com/svn/trunk@13253 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/include/core/SkWriteBuffer.h b/include/core/SkWriteBuffer.h
index ab56f9d..332dfae 100644
--- a/include/core/SkWriteBuffer.h
+++ b/include/core/SkWriteBuffer.h
@@ -24,18 +24,15 @@
 
 class SkWriteBuffer {
 public:
-    SkWriteBuffer();
-    SkWriteBuffer(void* initialStorage, size_t storageSize);
-    ~SkWriteBuffer();
-
     enum Flags {
         kCrossProcess_Flag  = 1 << 0,
         kValidation_Flag    = 1 << 1,
     };
-    void setFlags(uint32_t flags) { fFlags = flags; }
-    uint32_t getFlags() const { return fFlags; }
 
-    bool isValidating() const { return SkToBool(fFlags & kValidation_Flag); }
+    SkWriteBuffer(uint32_t flags = 0);
+    SkWriteBuffer(void* initialStorage, size_t storageSize, uint32_t flags = 0);
+    ~SkWriteBuffer();
+
     bool isCrossProcess() const {
         return this->isValidating() || SkToBool(fFlags & kCrossProcess_Flag);
     }
@@ -107,7 +104,9 @@
     void setBitmapEncoder(SkPicture::EncodeBitmap bitmapEncoder);
 
 private:
-    uint32_t fFlags;
+    bool isValidating() const { return SkToBool(fFlags & kValidation_Flag); }
+
+    const uint32_t fFlags;
     SkFactorySet* fFactorySet;
     SkNamedFactorySet* fNamedFactorySet;
     SkWriter32 fWriter;