Fixes for factory GM.

Skip cross process pipe playback in gm/factory.cpp. Add a new flag to
gm.h to skip only this form of pipe playback.

In gmmain.cpp, use a bitmap encoder function for serialization that
stores the encoded data if present, and use a bitmap decoder on
deserialization. This allows gm/factory to work through serialization.
Also respect the new pipe skipping flag.

BUG=https://code.google.com/p/skia/issues/detail?id=1231
R=borenet@google.com

Author: scroggo@google.com

Review URL: https://chromiumcodereview.appspot.com/23192004

git-svn-id: http://skia.googlecode.com/svn/trunk@10786 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/gm/factory.cpp b/gm/factory.cpp
index a7356a9..6734235 100644
--- a/gm/factory.cpp
+++ b/gm/factory.cpp
@@ -57,6 +57,11 @@
         canvas->drawBitmap(fBitmap, 0, 0);
     }
 
+    // Skip cross process pipe due to https://code.google.com/p/skia/issues/detail?id=1520
+    virtual uint32_t onGetFlags() const {
+        return INHERITED::onGetFlags() | kSkipPipeCrossProcess_Flag;
+    }
+
 private:
     SkBitmap fBitmap;