add serialization to SkLayerRasterizer



git-svn-id: http://skia.googlecode.com/svn/trunk@2088 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/include/effects/SkLayerRasterizer.h b/include/effects/SkLayerRasterizer.h
index 88dc858..50758b1 100644
--- a/include/effects/SkLayerRasterizer.h
+++ b/include/effects/SkLayerRasterizer.h
@@ -36,6 +36,8 @@
     virtual Factory getFactory();
     virtual void    flatten(SkFlattenableWriteBuffer&);
 
+    static SkFlattenable* CreateProc(SkFlattenableReadBuffer&);
+
 protected:
     SkLayerRasterizer(SkFlattenableReadBuffer&);
 
@@ -46,8 +48,6 @@
 
 private:
     SkDeque fLayers;
-    
-    static SkFlattenable* CreateProc(SkFlattenableReadBuffer&);
 
     typedef SkRasterizer INHERITED;
 };
diff --git a/samplecode/SampleSlides.cpp b/samplecode/SampleSlides.cpp
index 5fab682..fc26016 100644
--- a/samplecode/SampleSlides.cpp
+++ b/samplecode/SampleSlides.cpp
@@ -94,23 +94,18 @@
     paint->setPathEffect(new SkDiscretePathEffect(10, 4))->unref();
 }
 
-class TilePathEffect : public Sk2DPathEffect {
-    static SkMatrix make_mat() {
-        SkMatrix m;
-        m.setScale(12, 12);
-        return m;
-    }
-public:
-    TilePathEffect() : Sk2DPathEffect(make_mat()) {}
+static SkPathEffect* MakeTileEffect() {
+    SkMatrix m;
+    m.setScale(SkIntToScalar(12), SkIntToScalar(12));
 
-protected:
-    virtual void next(const SkPoint& loc, int u, int v, SkPath* dst) {
-        dst->addCircle(loc.fX, loc.fY, 5);
-    }
-};
+    SkPath path;
+    path.addCircle(0, 0, SkIntToScalar(5));
+    
+    return new SkPath2DPathEffect(m, path);
+}
 
 static void tile_pe(SkPaint* paint) {
-    paint->setPathEffect(new TilePathEffect)->unref();
+    paint->setPathEffect(MakeTileEffect())->unref();
 }
 
 static const PE_Proc gPE2[] = { fill_pe, discrete_pe, tile_pe };
diff --git a/src/effects/SkLayerRasterizer.cpp b/src/effects/SkLayerRasterizer.cpp
index 86eeccd..5a7be9d 100644
--- a/src/effects/SkLayerRasterizer.cpp
+++ b/src/effects/SkLayerRasterizer.cpp
@@ -223,3 +223,6 @@
     return CreateProc;
 }
 
+static SkFlattenable::Registrar gReg("SkLayerRasterizer",
+                                     SkLayerRasterizer::CreateProc);
+