Store content streams in an SkStream instead of an SkString (64k size limit).

Review URL: http://codereview.appspot.com/4272070

git-svn-id: http://skia.googlecode.com/svn/trunk@1011 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/pdf/SkPDFUtils.cpp b/src/pdf/SkPDFUtils.cpp
index 874ee8f..8bd9c8f 100644
--- a/src/pdf/SkPDFUtils.cpp
+++ b/src/pdf/SkPDFUtils.cpp
@@ -17,6 +17,7 @@
 #include "SkPaint.h"
 #include "SkPath.h"
 #include "SkPDFUtils.h"
+#include "SkStream.h"
 #include "SkString.h"
 #include "SkPDFTypes.h"
 
@@ -34,59 +35,59 @@
 }
 
 // static
-void SkPDFUtils::MoveTo(SkScalar x, SkScalar y, SkString* content) {
+void SkPDFUtils::MoveTo(SkScalar x, SkScalar y, SkWStream* content) {
     SkPDFScalar::Append(x, content);
-    content->append(" ");
+    content->writeText(" ");
     SkPDFScalar::Append(y, content);
-    content->append(" m\n");
+    content->writeText(" m\n");
 }
 
 // static
-void SkPDFUtils::AppendLine(SkScalar x, SkScalar y, SkString* content) {
+void SkPDFUtils::AppendLine(SkScalar x, SkScalar y, SkWStream* content) {
     SkPDFScalar::Append(x, content);
-    content->append(" ");
+    content->writeText(" ");
     SkPDFScalar::Append(y, content);
-    content->append(" l\n");
+    content->writeText(" l\n");
 }
 
 // static
 void SkPDFUtils::AppendCubic(SkScalar ctl1X, SkScalar ctl1Y,
                              SkScalar ctl2X, SkScalar ctl2Y,
-                             SkScalar dstX, SkScalar dstY, SkString* content) {
+                             SkScalar dstX, SkScalar dstY, SkWStream* content) {
     SkString cmd("y\n");
     SkPDFScalar::Append(ctl1X, content);
-    content->append(" ");
+    content->writeText(" ");
     SkPDFScalar::Append(ctl1Y, content);
-    content->append(" ");
+    content->writeText(" ");
     if (ctl2X != dstX || ctl2Y != dstY) {
         cmd.set("c\n");
         SkPDFScalar::Append(ctl2X, content);
-        content->append(" ");
+        content->writeText(" ");
         SkPDFScalar::Append(ctl2Y, content);
-        content->append(" ");
+        content->writeText(" ");
     }
     SkPDFScalar::Append(dstX, content);
-    content->append(" ");
+    content->writeText(" ");
     SkPDFScalar::Append(dstY, content);
-    content->append(" ");
-    content->append(cmd);
+    content->writeText(" ");
+    content->writeText(cmd.c_str());
 }
 
 // static
 void SkPDFUtils::AppendRectangle(SkScalar x, SkScalar y,
-                                 SkScalar w, SkScalar h, SkString* content) {
+                                 SkScalar w, SkScalar h, SkWStream* content) {
     SkPDFScalar::Append(x, content);
-    content->append(" ");
+    content->writeText(" ");
     SkPDFScalar::Append(y, content);
-    content->append(" ");
+    content->writeText(" ");
     SkPDFScalar::Append(w, content);
-    content->append(" ");
+    content->writeText(" ");
     SkPDFScalar::Append(h, content);
-    content->append(" re\n");
+    content->writeText(" re\n");
 }
 
-// static 
-void SkPDFUtils::EmitPath(const SkPath& path, SkString* content) {
+// static
+void SkPDFUtils::EmitPath(const SkPath& path, SkWStream* content) {
     SkPoint args[4];
     SkPath::Iter iter(path, false);
     for (SkPath::Verb verb = iter.next(args);
@@ -129,32 +130,31 @@
 }
 
 // static
-void SkPDFUtils::ClosePath(SkString* content) {
-    content->append("h\n");
+void SkPDFUtils::ClosePath(SkWStream* content) {
+    content->writeText("h\n");
 }
 
 // static
 void SkPDFUtils::PaintPath(SkPaint::Style style, SkPath::FillType fill,
-                           SkString* content) {
+                           SkWStream* content) {
     if (style == SkPaint::kFill_Style)
-        content->append("f");
+        content->writeText("f");
     else if (style == SkPaint::kStrokeAndFill_Style)
-        content->append("B");
+        content->writeText("B");
     else if (style == SkPaint::kStroke_Style)
-        content->append("S");
+        content->writeText("S");
 
     if (style != SkPaint::kStroke_Style) {
-        // Not supported yet.
         NOT_IMPLEMENTED(fill == SkPath::kInverseEvenOdd_FillType, false);
         NOT_IMPLEMENTED(fill == SkPath::kInverseWinding_FillType, false);
         if (fill == SkPath::kEvenOdd_FillType)
-            content->append("*");
+            content->writeText("*");
     }
-    content->append("\n");
+    content->writeText("\n");
 }
 
 // static
-void SkPDFUtils::StrokePath(SkString* content) {
+void SkPDFUtils::StrokePath(SkWStream* content) {
     SkPDFUtils::PaintPath(
         SkPaint::kStroke_Style, SkPath::kWinding_FillType, content);
 }