Create macro for registering classes for deserialization
Review URL: https://codereview.appspot.com/5909063
git-svn-id: http://skia.googlecode.com/svn/trunk@3494 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/gm/imagefiltersbase.cpp b/gm/imagefiltersbase.cpp
index bde2612..130ba5b 100644
--- a/gm/imagefiltersbase.cpp
+++ b/gm/imagefiltersbase.cpp
@@ -17,8 +17,8 @@
class FailImageFilter : public SkImageFilter {
public:
FailImageFilter() {}
- virtual Factory getFactory() SK_OVERRIDE { return CreateProc; };
-
+
+ SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(FailImageFilter)
protected:
virtual bool onFilterImage(Proxy*, const SkBitmap& src, const SkMatrix&,
SkBitmap* result, SkIPoint* offset) {
@@ -28,18 +28,18 @@
FailImageFilter(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) {}
private:
- static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) {
- return new FailImageFilter(buffer);
- }
-
typedef SkImageFilter INHERITED;
};
+// register the filter with the flattenable registry
+static SkFlattenable::Registrar gFailImageFilterReg("FailImageFilter",
+ FailImageFilter::CreateProc);
+
class IdentityImageFilter : public SkImageFilter {
public:
IdentityImageFilter() {}
- virtual Factory getFactory() SK_OVERRIDE { return CreateProc; };
+ SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(IdentityImageFilter)
protected:
virtual bool onFilterImage(Proxy*, const SkBitmap& src, const SkMatrix&,
SkBitmap* result, SkIPoint* offset) {
@@ -50,13 +50,14 @@
IdentityImageFilter(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) {}
private:
- static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) {
- return new IdentityImageFilter(buffer);
- }
-
typedef SkImageFilter INHERITED;
};
+// register the filter with the flattenable registry
+static SkFlattenable::Registrar gIdentityImageFilterReg("IdentityImageFilter",
+ IdentityImageFilter::CreateProc);
+
+
///////////////////////////////////////////////////////////////////////////////
static void draw_paint(SkCanvas* canvas, const SkRect& r, SkImageFilter* imf) {