diff options
65 files changed, 121 insertions, 498 deletions
diff --git a/gm/imagefiltersbase.cpp b/gm/imagefiltersbase.cpp index bde2612166..130ba5b3cb 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 @@ protected: 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 @@ protected: 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) { diff --git a/include/core/SkColorFilter.h b/include/core/SkColorFilter.h index 2151106859..2a886bc8eb 100644 --- a/include/core/SkColorFilter.h +++ b/include/core/SkColorFilter.h @@ -143,13 +143,13 @@ public: virtual void beginSession(); virtual void endSession(); + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkFilterShader) + protected: SkFilterShader(SkFlattenableReadBuffer& ); virtual void flatten(SkFlattenableWriteBuffer& ) SK_OVERRIDE; - virtual Factory getFactory() SK_OVERRIDE { return CreateProc; } + private: - static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) { - return SkNEW_ARGS(SkFilterShader, (buffer)); } SkShader* fShader; SkColorFilter* fFilter; diff --git a/include/core/SkColorShader.h b/include/core/SkColorShader.h index 6c6e11d767..356e87a90c 100644 --- a/include/core/SkColorShader.h +++ b/include/core/SkColorShader.h @@ -49,13 +49,11 @@ public: virtual GradientType asAGradient(GradientInfo* info) const SK_OVERRIDE; - static SkFlattenable* CreateProc(SkFlattenableReadBuffer&); + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkColorShader) protected: SkColorShader(SkFlattenableReadBuffer&); - virtual void flatten(SkFlattenableWriteBuffer&) SK_OVERRIDE; - virtual Factory getFactory() SK_OVERRIDE; private: diff --git a/include/core/SkComposeShader.h b/include/core/SkComposeShader.h index f2439542a1..2fc12395d4 100644 --- a/include/core/SkComposeShader.h +++ b/include/core/SkComposeShader.h @@ -40,14 +40,13 @@ public: virtual void beginSession(); virtual void endSession(); + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkComposeShader) + protected: SkComposeShader(SkFlattenableReadBuffer& ); virtual void flatten(SkFlattenableWriteBuffer& ); - virtual Factory getFactory() { return CreateProc; } private: - static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) { - return SkNEW_ARGS(SkComposeShader, (buffer)); } SkShader* fShaderA; SkShader* fShaderB; diff --git a/include/core/SkEmptyShader.h b/include/core/SkEmptyShader.h index 1541c89611..53e3d2b053 100644 --- a/include/core/SkEmptyShader.h +++ b/include/core/SkEmptyShader.h @@ -30,14 +30,10 @@ public: virtual void shadeSpan16(int x, int y, uint16_t span[], int count) SK_OVERRIDE; virtual void shadeSpanAlpha(int x, int y, uint8_t alpha[], int count) SK_OVERRIDE; - static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) { - return SkNEW_ARGS(SkEmptyShader, (buffer)); - } + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkEmptyShader) protected: SkEmptyShader(SkFlattenableReadBuffer&); - - virtual Factory getFactory() SK_OVERRIDE; virtual void flatten(SkFlattenableWriteBuffer&) SK_OVERRIDE; private: diff --git a/include/core/SkFlattenable.h b/include/core/SkFlattenable.h index 4170e260bb..554ffc035a 100644 --- a/include/core/SkFlattenable.h +++ b/include/core/SkFlattenable.h @@ -49,6 +49,15 @@ class SkString; #endif +#define SK_DECLARE_UNFLATTENABLE_OBJECT() \ + virtual Factory getFactory() SK_OVERRIDE { return NULL; }; \ + +#define SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(flattenable) \ + virtual Factory getFactory() SK_OVERRIDE { return CreateProc; }; \ + static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) { \ + return SkNEW_ARGS(flattenable, (buffer)); \ + } + /** \class SkFlattenable SkFlattenable is the base class for objects that need to be flattened diff --git a/include/core/SkPaint.h b/include/core/SkPaint.h index 26c4e6a527..4d4fbc6c11 100644 --- a/include/core/SkPaint.h +++ b/include/core/SkPaint.h @@ -943,9 +943,7 @@ public: // overrides for SkFlattenable virtual void flatten(SkFlattenableWriteBuffer&); - virtual Factory getFactory(); - - static SkFlattenable* CreateProc(SkFlattenableReadBuffer&); + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkStrokePathEffect) private: SkScalar fWidth, fMiter; diff --git a/include/core/SkPathEffect.h b/include/core/SkPathEffect.h index 880219fead..48181eea46 100644 --- a/include/core/SkPathEffect.h +++ b/include/core/SkPathEffect.h @@ -34,10 +34,15 @@ public: */ virtual bool filterPath(SkPath* dst, const SkPath& src, SkScalar* width) = 0; +protected: + SkPathEffect(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) {} + private: // illegal SkPathEffect(const SkPathEffect&); SkPathEffect& operator=(const SkPathEffect&); + + typedef SkFlattenable INHERITED; }; /** \class SkPairPathEffect @@ -80,12 +85,7 @@ public: virtual bool filterPath(SkPath* dst, const SkPath& src, SkScalar* width); - static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) { - return SkNEW_ARGS(SkComposePathEffect, (buffer)); - } - -protected: - virtual Factory getFactory() SK_OVERRIDE { return CreateProc; } + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkComposePathEffect) private: SkComposePathEffect(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) {} @@ -115,12 +115,7 @@ public: // overrides virtual bool filterPath(SkPath* dst, const SkPath& src, SkScalar* width); - static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) { - return SkNEW_ARGS(SkSumPathEffect, (buffer)); - } - -protected: - virtual Factory getFactory() SK_OVERRIDE { return CreateProc; } + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkSumPathEffect) private: SkSumPathEffect(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) {} diff --git a/include/core/SkShape.h b/include/core/SkShape.h index b40d886083..3968fce2ba 100644 --- a/include/core/SkShape.h +++ b/include/core/SkShape.h @@ -32,11 +32,8 @@ public: void drawMatrix(SkCanvas*, const SkMatrix&); // overrides - virtual Factory getFactory(); virtual void flatten(SkFlattenableWriteBuffer&); - - // public for Registrar - static SkFlattenable* CreateProc(SkFlattenableReadBuffer&); + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkShape) protected: virtual void onDraw(SkCanvas*); diff --git a/include/core/SkXfermode.h b/include/core/SkXfermode.h index 4f28bb2f50..65e0f0d41f 100644 --- a/include/core/SkXfermode.h +++ b/include/core/SkXfermode.h @@ -215,8 +215,8 @@ public: const SkAlpha aa[]) SK_OVERRIDE; // overrides from SkFlattenable - virtual Factory getFactory() SK_OVERRIDE { return CreateProc; } virtual void flatten(SkFlattenableWriteBuffer&) SK_OVERRIDE; + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkProcXfermode) protected: SkProcXfermode(SkFlattenableReadBuffer&); @@ -229,9 +229,6 @@ protected: private: SkXfermodeProc fProc; - static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) { - return SkNEW_ARGS(SkProcXfermode, (buffer)); } - typedef SkXfermode INHERITED; }; diff --git a/include/effects/Sk1DPathEffect.h b/include/effects/Sk1DPathEffect.h index 51a5a78686..53126f2b23 100644 --- a/include/effects/Sk1DPathEffect.h +++ b/include/effects/Sk1DPathEffect.h @@ -59,9 +59,7 @@ public: // override from SkPathEffect virtual bool filterPath(SkPath*, const SkPath&, SkScalar* width) SK_OVERRIDE; - static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) { - return SkNEW_ARGS(SkPath1DPathEffect, (buffer)); - } + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkPath1DPathEffect) protected: SkPath1DPathEffect(SkFlattenableReadBuffer& buffer); @@ -71,7 +69,6 @@ protected: virtual SkScalar next(SkPath*, SkScalar distance, SkPathMeasure&) SK_OVERRIDE; // overrides from SkFlattenable virtual void flatten(SkFlattenableWriteBuffer&) SK_OVERRIDE; - virtual Factory getFactory() SK_OVERRIDE { return CreateProc; } private: SkPath fPath; // copied from constructor diff --git a/include/effects/Sk2DPathEffect.h b/include/effects/Sk2DPathEffect.h index f0d60ca578..28c5aea069 100644 --- a/include/effects/Sk2DPathEffect.h +++ b/include/effects/Sk2DPathEffect.h @@ -23,7 +23,7 @@ public: // overrides from SkFlattenable virtual void flatten(SkFlattenableWriteBuffer&) SK_OVERRIDE; - virtual Factory getFactory() SK_OVERRIDE; + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(Sk2DPathEffect) protected: /** New virtual, to be overridden by subclasses. @@ -53,8 +53,6 @@ private: Sk2DPathEffect(const Sk2DPathEffect&); Sk2DPathEffect& operator=(const Sk2DPathEffect&); - static SkFlattenable* CreateProc(SkFlattenableReadBuffer&); - friend class Sk2DPathEffectBlitter; typedef SkPathEffect INHERITED; }; @@ -67,13 +65,12 @@ public: */ SkPath2DPathEffect(const SkMatrix&, const SkPath&); - static SkFlattenable* CreateProc(SkFlattenableReadBuffer&); + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkPath2DPathEffect) protected: SkPath2DPathEffect(SkFlattenableReadBuffer& buffer); virtual void flatten(SkFlattenableWriteBuffer&) SK_OVERRIDE; - virtual Factory getFactory() SK_OVERRIDE; virtual void next(const SkPoint&, int u, int v, SkPath* dst) SK_OVERRIDE; private: diff --git a/include/effects/SkAvoidXfermode.h b/include/effects/SkAvoidXfermode.h index 8497265ded..db14f25181 100644 --- a/include/effects/SkAvoidXfermode.h +++ b/include/effects/SkAvoidXfermode.h @@ -52,12 +52,8 @@ public: const SkAlpha aa[]) SK_OVERRIDE; // overrides from SkFlattenable - virtual Factory getFactory() SK_OVERRIDE; virtual void flatten(SkFlattenableWriteBuffer&) SK_OVERRIDE; - - static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) { - return SkNEW_ARGS(SkAvoidXfermode, (buffer)); - } + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkAvoidXfermode) protected: SkAvoidXfermode(SkFlattenableReadBuffer&); @@ -67,8 +63,6 @@ private: uint32_t fDistMul; // x.14 Mode fMode; - static SkFlattenable* Create(SkFlattenableReadBuffer&); - typedef SkXfermode INHERITED; }; diff --git a/include/effects/SkBlurDrawLooper.h b/include/effects/SkBlurDrawLooper.h index 46f72b9594..453a618f25 100644 --- a/include/effects/SkBlurDrawLooper.h +++ b/include/effects/SkBlurDrawLooper.h @@ -44,15 +44,12 @@ public: virtual void init(SkCanvas*); virtual bool next(SkCanvas*, SkPaint* paint); - static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) { - return SkNEW_ARGS(SkBlurDrawLooper, (buffer)); - } + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkBlurDrawLooper) protected: SkBlurDrawLooper(SkFlattenableReadBuffer&); // overrides from SkFlattenable virtual void flatten(SkFlattenableWriteBuffer& ); - virtual Factory getFactory() { return CreateProc; } private: SkMaskFilter* fBlur; diff --git a/include/effects/SkBlurImageFilter.h b/include/effects/SkBlurImageFilter.h index 2af31e86d1..846b900cb5 100644 --- a/include/effects/SkBlurImageFilter.h +++ b/include/effects/SkBlurImageFilter.h @@ -17,9 +17,7 @@ public: virtual bool asABlur(SkSize* sigma) const SK_OVERRIDE; - static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) { - return SkNEW_ARGS(SkBlurImageFilter, (buffer)); - } + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkBlurImageFilter) protected: explicit SkBlurImageFilter(SkFlattenableReadBuffer& buffer); @@ -27,7 +25,6 @@ protected: virtual bool onFilterImage(Proxy*, const SkBitmap& src, const SkMatrix&, SkBitmap* result, SkIPoint* offset) SK_OVERRIDE; virtual void flatten(SkFlattenableWriteBuffer& buffer) SK_OVERRIDE; - virtual Factory getFactory() SK_OVERRIDE { return CreateProc; } private: SkSize fSigma; diff --git a/include/effects/SkColorMatrixFilter.h b/include/effects/SkColorMatrixFilter.h index 62e8d3d267..abfd95d7d1 100644 --- a/include/effects/SkColorMatrixFilter.h +++ b/include/effects/SkColorMatrixFilter.h @@ -37,12 +37,9 @@ public: int32_t fResult[4]; }; - static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer); + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkColorMatrixFilter) protected: - // overrides for SkFlattenable - virtual Factory getFactory(); - SkColorMatrixFilter(SkFlattenableReadBuffer& buffer); private: diff --git a/include/effects/SkCornerPathEffect.h b/include/effects/SkCornerPathEffect.h index b4d7f860f5..8c5847628b 100644 --- a/include/effects/SkCornerPathEffect.h +++ b/include/effects/SkCornerPathEffect.h @@ -31,11 +31,8 @@ public: // overrides for SkFlattenable // This method is not exported to java. - virtual Factory getFactory(); - // This method is not exported to java. virtual void flatten(SkFlattenableWriteBuffer&); - - static SkFlattenable* CreateProc(SkFlattenableReadBuffer&); + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkCornerPathEffect) protected: SkCornerPathEffect(SkFlattenableReadBuffer&); diff --git a/include/effects/SkDiscretePathEffect.h b/include/effects/SkDiscretePathEffect.h index 02ef391086..76a35237a6 100644 --- a/include/effects/SkDiscretePathEffect.h +++ b/include/effects/SkDiscretePathEffect.h @@ -30,11 +30,8 @@ public: // overrides for SkFlattenable // This method is not exported to java. - virtual Factory getFactory(); - // This method is not exported to java. virtual void flatten(SkFlattenableWriteBuffer&); - - static SkFlattenable* CreateProc(SkFlattenableReadBuffer&); + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkDiscretePathEffect) protected: SkDiscretePathEffect(SkFlattenableReadBuffer&); diff --git a/include/effects/SkEmbossMaskFilter.h b/include/effects/SkEmbossMaskFilter.h index c0e6b7e1a1..a03a2832e4 100644 --- a/include/effects/SkEmbossMaskFilter.h +++ b/include/effects/SkEmbossMaskFilter.h @@ -35,11 +35,10 @@ public: SkIPoint* margin); // overrides from SkFlattenable - - // This method is not exported to java. - virtual Factory getFactory(); // This method is not exported to java. virtual void flatten(SkFlattenableWriteBuffer&); + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkEmbossMaskFilter) + protected: SkEmbossMaskFilter(SkFlattenableReadBuffer&); @@ -47,8 +46,6 @@ protected: private: Light fLight; SkScalar fBlurRadius; - - static SkFlattenable* CreateProc(SkFlattenableReadBuffer&); typedef SkMaskFilter INHERITED; }; diff --git a/include/effects/SkGroupShape.h b/include/effects/SkGroupShape.h index 76dd13d696..56e9d322b1 100644 --- a/include/effects/SkGroupShape.h +++ b/include/effects/SkGroupShape.h @@ -132,11 +132,9 @@ public: void removeAllShapes(); // overrides - virtual Factory getFactory(); virtual void flatten(SkFlattenableWriteBuffer&); - // public for Registrar - static SkFlattenable* CreateProc(SkFlattenableReadBuffer&); + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkGroupShape) protected: // overrides diff --git a/include/effects/SkKernel33MaskFilter.h b/include/effects/SkKernel33MaskFilter.h index 2b9e6d410e..9c43629179 100644 --- a/include/effects/SkKernel33MaskFilter.h +++ b/include/effects/SkKernel33MaskFilter.h @@ -50,14 +50,13 @@ public: // overrides from SkFlattenable virtual void flatten(SkFlattenableWriteBuffer& wb); - virtual Factory getFactory(); + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkKernel33MaskFilter) private: int fKernel[3][3]; int fShift; SkKernel33MaskFilter(SkFlattenableReadBuffer& rb); - static SkFlattenable* Create(SkFlattenableReadBuffer& rb); typedef SkKernel33ProcMaskFilter INHERITED; }; diff --git a/include/effects/SkLayerDrawLooper.h b/include/effects/SkLayerDrawLooper.h index b9b080232d..3e7306fb93 100644 --- a/include/effects/SkLayerDrawLooper.h +++ b/include/effects/SkLayerDrawLooper.h @@ -101,17 +101,13 @@ public: virtual void init(SkCanvas*); virtual bool next(SkCanvas*, SkPaint* paint); - // must be public for Registrar :( - static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) { - return SkNEW_ARGS(SkLayerDrawLooper, (buffer)); - } + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkLayerDrawLooper) protected: SkLayerDrawLooper(SkFlattenableReadBuffer&); // overrides from SkFlattenable virtual void flatten(SkFlattenableWriteBuffer& ); - virtual Factory getFactory() { return CreateProc; } private: struct Rec { diff --git a/include/effects/SkLayerRasterizer.h b/include/effects/SkLayerRasterizer.h index 50758b16dc..e31ed3362a 100644 --- a/include/effects/SkLayerRasterizer.h +++ b/include/effects/SkLayerRasterizer.h @@ -33,10 +33,9 @@ public: void addLayer(const SkPaint& paint, SkScalar dx, SkScalar dy); // overrides from SkFlattenable - virtual Factory getFactory(); virtual void flatten(SkFlattenableWriteBuffer&); - static SkFlattenable* CreateProc(SkFlattenableReadBuffer&); + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkLayerRasterizer) protected: SkLayerRasterizer(SkFlattenableReadBuffer&); diff --git a/include/effects/SkMorphologyImageFilter.h b/include/effects/SkMorphologyImageFilter.h index 8d9f453478..368d17b495 100644 --- a/include/effects/SkMorphologyImageFilter.h +++ b/include/effects/SkMorphologyImageFilter.h @@ -33,10 +33,8 @@ public: virtual bool asADilate(SkISize* radius) const SK_OVERRIDE; virtual bool onFilterImage(Proxy*, const SkBitmap& src, const SkMatrix&, SkBitmap* result, SkIPoint* offset) SK_OVERRIDE; - static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) { - return SkNEW_ARGS(SkDilateImageFilter, (buffer)); - } - virtual Factory getFactory() SK_OVERRIDE { return CreateProc; } + + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkDilateImageFilter) typedef SkMorphologyImageFilter INHERITED; }; @@ -50,10 +48,7 @@ public: virtual bool onFilterImage(Proxy*, const SkBitmap& src, const SkMatrix&, SkBitmap* result, SkIPoint* offset) SK_OVERRIDE; - static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) { - return SkNEW_ARGS(SkErodeImageFilter, (buffer)); - } - virtual Factory getFactory() SK_OVERRIDE { return CreateProc; } + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkErodeImageFilter) private: typedef SkMorphologyImageFilter INHERITED; diff --git a/include/effects/SkPixelXorXfermode.h b/include/effects/SkPixelXorXfermode.h index b9975cffa5..fe0536d31a 100644 --- a/include/effects/SkPixelXorXfermode.h +++ b/include/effects/SkPixelXorXfermode.h @@ -22,12 +22,9 @@ public: SkPixelXorXfermode(SkColor opColor) : fOpColor(opColor) {} // override from SkFlattenable - virtual Factory getFactory(); virtual void flatten(SkFlattenableWriteBuffer&); - static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) { - return SkNEW_ARGS(SkPixelXorXfermode, (buffer)); - } + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkPixelXorXfermode) protected: // override from SkXfermode @@ -37,8 +34,6 @@ private: SkColor fOpColor; SkPixelXorXfermode(SkFlattenableReadBuffer& rb); - // our private factory - static SkFlattenable* Create(SkFlattenableReadBuffer&); typedef SkXfermode INHERITED; }; diff --git a/include/effects/SkRectShape.h b/include/effects/SkRectShape.h index b521846ad5..b0efc28d16 100644 --- a/include/effects/SkRectShape.h +++ b/include/effects/SkRectShape.h @@ -41,11 +41,9 @@ public: void setRRect(const SkRect&, SkScalar rx, SkScalar ry); // overrides - virtual Factory getFactory(); virtual void flatten(SkFlattenableWriteBuffer&); - // public for Registrar - static SkFlattenable* CreateProc(SkFlattenableReadBuffer&); + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkRectShape) protected: SkRectShape(SkFlattenableReadBuffer&); diff --git a/include/effects/SkTableMaskFilter.h b/include/effects/SkTableMaskFilter.h index f213de773c..15bb930454 100644 --- a/include/effects/SkTableMaskFilter.h +++ b/include/effects/SkTableMaskFilter.h @@ -53,11 +53,10 @@ public: // overrides from SkFlattenable virtual void flatten(SkFlattenableWriteBuffer& wb); - virtual Factory getFactory(); + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkTableMaskFilter) protected: SkTableMaskFilter(SkFlattenableReadBuffer& rb); - static SkFlattenable* Factory(SkFlattenableReadBuffer&); private: uint8_t fTable[256]; diff --git a/include/effects/SkTestImageFilters.h b/include/effects/SkTestImageFilters.h index 55522c173b..e2c9cf4657 100755 --- a/include/effects/SkTestImageFilters.h +++ b/include/effects/SkTestImageFilters.h @@ -11,9 +11,7 @@ public: fOffset.set(dx, dy); } - static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) { - return SkNEW_ARGS(SkOffsetImageFilter, (buffer)); - } + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkOffsetImageFilter) protected: SkOffsetImageFilter(SkFlattenableReadBuffer& buffer); @@ -23,7 +21,6 @@ protected: virtual bool onFilterBounds(const SkIRect&, const SkMatrix&, SkIRect*) SK_OVERRIDE; // overrides from SkFlattenable virtual void flatten(SkFlattenableWriteBuffer&) SK_OVERRIDE; - virtual Factory getFactory() SK_OVERRIDE; private: SkVector fOffset; @@ -41,9 +38,7 @@ public: } virtual ~SkComposeImageFilter(); - static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) { - return SkNEW_ARGS(SkComposeImageFilter, (buffer)); - } + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkComposeImageFilter) protected: SkComposeImageFilter(SkFlattenableReadBuffer& buffer); @@ -53,7 +48,6 @@ protected: virtual bool onFilterBounds(const SkIRect&, const SkMatrix&, SkIRect*) SK_OVERRIDE; // overrides from SkFlattenable virtual void flatten(SkFlattenableWriteBuffer&) SK_OVERRIDE; - virtual Factory getFactory() SK_OVERRIDE; private: SkImageFilter* fOuter; @@ -72,9 +66,7 @@ public: const SkXfermode::Mode modes[] = NULL); virtual ~SkMergeImageFilter(); - static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) { - return SkNEW_ARGS(SkMergeImageFilter, (buffer)); - } + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkMergeImageFilter) protected: SkMergeImageFilter(SkFlattenableReadBuffer& buffer); @@ -84,7 +76,6 @@ protected: virtual bool onFilterBounds(const SkIRect&, const SkMatrix&, SkIRect*) SK_OVERRIDE; // overrides from SkFlattenable virtual void flatten(SkFlattenableWriteBuffer&) SK_OVERRIDE; - virtual Factory getFactory() SK_OVERRIDE; private: SkImageFilter** fFilters; @@ -108,9 +99,7 @@ public: } virtual ~SkColorFilterImageFilter(); - static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) { - return SkNEW_ARGS(SkColorFilterImageFilter, (buffer)); - } + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkColorFilterImageFilter) protected: SkColorFilterImageFilter(SkFlattenableReadBuffer& buffer); @@ -119,7 +108,6 @@ protected: SkBitmap* result, SkIPoint* loc) SK_OVERRIDE; // overrides from SkFlattenable virtual void flatten(SkFlattenableWriteBuffer&) SK_OVERRIDE; - virtual Factory getFactory() SK_OVERRIDE; private: SkColorFilter* fColorFilter; @@ -134,9 +122,7 @@ class SkDownSampleImageFilter : public SkImageFilter { public: SkDownSampleImageFilter(SkScalar scale) : fScale(scale) {} - static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) { - return SkNEW_ARGS(SkDownSampleImageFilter, (buffer)); - } + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkDownSampleImageFilter) protected: SkDownSampleImageFilter(SkFlattenableReadBuffer& buffer); @@ -145,7 +131,6 @@ protected: SkBitmap* result, SkIPoint* loc) SK_OVERRIDE; // overrides from SkFlattenable virtual void flatten(SkFlattenableWriteBuffer&) SK_OVERRIDE; - virtual Factory getFactory() SK_OVERRIDE; private: SkScalar fScale; diff --git a/include/effects/SkTransparentShader.h b/include/effects/SkTransparentShader.h index e951bba33d..0aa9192e78 100644 --- a/include/effects/SkTransparentShader.h +++ b/include/effects/SkTransparentShader.h @@ -24,8 +24,8 @@ public: virtual void shadeSpan16(int x, int y, uint16_t span[], int count) SK_OVERRIDE; // overrides for SkFlattenable - virtual Factory getFactory() SK_OVERRIDE; virtual void flatten(SkFlattenableWriteBuffer&) SK_OVERRIDE; + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkTransparentShader) private: // these are a cache from the call to setContext() @@ -34,10 +34,6 @@ private: SkTransparentShader(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) {} - static SkFlattenable* Create(SkFlattenableReadBuffer& buffer) { - return SkNEW_ARGS(SkTransparentShader, (buffer)); - } - typedef SkShader INHERITED; }; diff --git a/include/utils/SkUnitMappers.h b/include/utils/SkUnitMappers.h index a14f1af6bd..d8856aed41 100644 --- a/include/utils/SkUnitMappers.h +++ b/include/utils/SkUnitMappers.h @@ -20,17 +20,17 @@ public: // override from SkUnitMapper virtual uint16_t mapUnit16(uint16_t x); + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkDiscreteMapper) + protected: SkDiscreteMapper(SkFlattenableReadBuffer& ); // overrides from SkFlattenable virtual void flatten(SkFlattenableWriteBuffer& ); - virtual Factory getFactory(); + private: int fSegments; SkFract fScale; // computed from fSegments - static SkFlattenable* Create(SkFlattenableReadBuffer& buffer); - typedef SkUnitMapper INHERITED; }; @@ -43,13 +43,12 @@ public: // override from SkUnitMapper virtual uint16_t mapUnit16(uint16_t x); + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkCosineMapper) + protected: SkCosineMapper(SkFlattenableReadBuffer&); - // overrides from SkFlattenable - virtual Factory getFactory(); private: - static SkFlattenable* Create(SkFlattenableReadBuffer&); typedef SkUnitMapper INHERITED; }; diff --git a/samplecode/ClockFaceView.cpp b/samplecode/ClockFaceView.cpp index a479d9ced1..fe7bb90fed 100644 --- a/samplecode/ClockFaceView.cpp +++ b/samplecode/ClockFaceView.cpp @@ -76,7 +76,8 @@ public: buffer.writeScalar(fRadius); } - virtual Factory getFactory() { return CreateProc; } + + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(Dot2DPathEffect) protected: virtual void begin(const SkIRect& uvBounds, SkPath* dst) { @@ -103,11 +104,6 @@ private: SkScalar fRadius; SkTDArray<SkPoint>* fPts; - static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) - { - return new Dot2DPathEffect(buffer); - } - typedef Sk2DPathEffect INHERITED; }; @@ -119,13 +115,12 @@ public: dst->setFillType(SkPath::kInverseWinding_FillType); return true; } - virtual Factory getFactory() { return Factory; } + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(InverseFillPE) + protected: -// InverseFillPE(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) {} + InverseFillPE(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) {} private: - static SkFlattenable* Factory(SkFlattenableReadBuffer& buffer) { - return new InverseFillPE; - } + typedef SkPathEffect INHERITED; }; diff --git a/samplecode/SampleAll.cpp b/samplecode/SampleAll.cpp index 4321532f7c..8d2157fbf0 100644 --- a/samplecode/SampleAll.cpp +++ b/samplecode/SampleAll.cpp @@ -164,7 +164,7 @@ public: buffer.writeScalar(fRadius); } - virtual Factory getFactory() { return CreateProc; } + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(Dot2DPathEffect) protected: virtual void next(const SkPoint& loc, int u, int v, SkPath* dst) { @@ -177,10 +177,6 @@ protected: private: SkScalar fRadius; - static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) { - return new Dot2DPathEffect(buffer); - } - typedef Sk2DPathEffect INHERITED; }; @@ -222,11 +218,13 @@ public: return false; } - virtual Factory getFactory() { return CreateProc; } virtual void flatten(SkFlattenableWriteBuffer& buffer) { this->INHERITED::flatten(buffer); buffer.writeScalar(fWidth); } + + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(Line2DPathEffect) + protected: virtual void nextSpan(int u, int v, int ucount, SkPath* dst) { if (ucount > 1) { @@ -250,8 +248,6 @@ protected: private: SkScalar fWidth; - static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) { return new Line2DPathEffect(buffer); } - typedef Sk2DPathEffect INHERITED; }; diff --git a/samplecode/SampleSlides.cpp b/samplecode/SampleSlides.cpp index 9b72afb726..3c656e9b0d 100644 --- a/samplecode/SampleSlides.cpp +++ b/samplecode/SampleSlides.cpp @@ -612,12 +612,13 @@ public: return false; } - virtual Factory getFactory() { return CreateProc; } virtual void flatten(SkFlattenableWriteBuffer& buffer) { this->INHERITED::flatten(buffer); buffer.writeScalar(fWidth); } + + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(Line2DPathEffect) protected: virtual void nextSpan(int u, int v, int ucount, SkPath* dst) { @@ -644,11 +645,6 @@ protected: private: SkScalar fWidth; - static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) - { - return new Line2DPathEffect(buffer); - } - typedef Sk2DPathEffect INHERITED; }; diff --git a/samplecode/SampleText.cpp b/samplecode/SampleText.cpp index 6a0eba8f97..7ce1abe65c 100644 --- a/samplecode/SampleText.cpp +++ b/samplecode/SampleText.cpp @@ -54,12 +54,10 @@ public: // if (c < min) c = min; return c; } - virtual Factory getFactory() { return Create; } + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(ReduceNoise) + private: ReduceNoise(SkFlattenableReadBuffer& rb) : SkKernel33ProcMaskFilter(rb) {} - static SkFlattenable* Create(SkFlattenableReadBuffer& rb) { - return new ReduceNoise(rb); - } }; class Darken : public SkKernel33ProcMaskFilter { @@ -78,12 +76,10 @@ public: SkASSERT(f >= 0 && f <= 1); return (int)(f * 255); } - virtual Factory getFactory() { return Create; } + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(Darken) + private: Darken(SkFlattenableReadBuffer& rb) : SkKernel33ProcMaskFilter(rb) {} - static SkFlattenable* Create(SkFlattenableReadBuffer& rb) { - return new Darken(rb); - } }; static SkMaskFilter* makemf() { return new Darken(0x30); } @@ -136,11 +132,11 @@ public: typedef SkFlattenable* (*Factory)(SkFlattenableReadBuffer&); // overrides for SkFlattenable - virtual Factory getFactory() { return Create; } virtual void flatten(SkFlattenableWriteBuffer& b) { // this->INHERITED::flatten(b); How can we know if this is legal???? b.write32(SkScalarToFixed(fExp)); } + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkPowerMode) private: SkScalar fExp; // user's value @@ -151,9 +147,6 @@ private: // read the exponent this->init(SkFixedToScalar(b.readS32())); } - static SkFlattenable* Create(SkFlattenableReadBuffer& b) { - return SkNEW_ARGS(SkPowerMode, (b)); - } typedef SkXfermode INHERITED; }; diff --git a/samplecode/SampleTextEffects.cpp b/samplecode/SampleTextEffects.cpp index 6eadffd642..e6bca82656 100644 --- a/samplecode/SampleTextEffects.cpp +++ b/samplecode/SampleTextEffects.cpp @@ -189,11 +189,11 @@ public: return false; } - virtual Factory getFactory() { return CreateProc; } virtual void flatten(SkFlattenableWriteBuffer& buffer) { this->INHERITED::flatten(buffer); buffer.writeScalar(fWidth); } + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(Line2DPathEffect) protected: virtual void nextSpan(int u, int v, int ucount, SkPath* dst) { @@ -218,10 +218,6 @@ protected: private: SkScalar fWidth; - static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) { - return new Line2DPathEffect(buffer); - } - typedef Sk2DPathEffect INHERITED; }; diff --git a/src/animator/SkDrawExtraPathEffect.cpp b/src/animator/SkDrawExtraPathEffect.cpp index 12e0368043..c901df312a 100644 --- a/src/animator/SkDrawExtraPathEffect.cpp +++ b/src/animator/SkDrawExtraPathEffect.cpp @@ -91,6 +91,8 @@ public: fDraw(draw), fMaker(maker) { } + SK_DECLARE_UNFLATTENABLE_OBJECT() + protected: virtual SkScalar begin(SkScalar contourLength) { @@ -139,7 +141,6 @@ protected: private: virtual void flatten(SkFlattenableWriteBuffer& ) {} - virtual Factory getFactory() { return NULL; } static bool GetContourLength(const char* token, size_t len, void* clen, SkScriptValue* value) { if (SK_LITERAL_STR_EQUAL("contourLength", token, len)) { diff --git a/src/animator/SkDrawGradient.cpp b/src/animator/SkDrawGradient.cpp index 37fc7e8b8e..2cad72253b 100644 --- a/src/animator/SkDrawGradient.cpp +++ b/src/animator/SkDrawGradient.cpp @@ -35,8 +35,7 @@ public: SkGradientUnitMapper(SkAnimateMaker* maker, const char* script) : fMaker(maker), fScript(script) { } - // overrides for SkFlattenable - virtual Factory getFactory() { return NULL; } + SK_DECLARE_UNFLATTENABLE_OBJECT() protected: virtual uint16_t mapUnit16(uint16_t x) { diff --git a/src/core/SkBitmapProcShader.h b/src/core/SkBitmapProcShader.h index cd702793d1..6140259e6e 100644 --- a/src/core/SkBitmapProcShader.h +++ b/src/core/SkBitmapProcShader.h @@ -30,17 +30,13 @@ public: static bool CanDo(const SkBitmap&, TileMode tx, TileMode ty); - static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) { - return SkNEW_ARGS(SkBitmapProcShader, (buffer)); - } - // override from flattenable virtual bool toDumpString(SkString* str) const; + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkBitmapProcShader) protected: SkBitmapProcShader(SkFlattenableReadBuffer& ); virtual void flatten(SkFlattenableWriteBuffer& ); - virtual Factory getFactory() { return CreateProc; } SkBitmap fRawBitmap; // experimental for RLE encoding SkBitmapProcState fState; diff --git a/src/core/SkBlitter.cpp b/src/core/SkBlitter.cpp index df25b7c557..2ce0197d24 100644 --- a/src/core/SkBlitter.cpp +++ b/src/core/SkBlitter.cpp @@ -656,6 +656,8 @@ public: this->INHERITED::endSession(); } + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(Sk3DShader) + protected: Sk3DShader(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) { @@ -670,15 +672,7 @@ protected: buffer.write32(fPMColor); } - virtual Factory getFactory() { - return CreateProc; - } - private: - static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) { - return SkNEW_ARGS(Sk3DShader, (buffer)); - } - SkShader* fProxy; SkPMColor fPMColor; const SkMask* fMask; diff --git a/src/core/SkDraw.cpp b/src/core/SkDraw.cpp index c118d1e757..74d10b6891 100644 --- a/src/core/SkDraw.cpp +++ b/src/core/SkDraw.cpp @@ -2212,18 +2212,15 @@ public: virtual void shadeSpan(int x, int y, SkPMColor dstC[], int count); + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkTriColorShader) + protected: SkTriColorShader(SkFlattenableReadBuffer& buffer) : SkShader(buffer) {} - virtual Factory getFactory() { return CreateProc; } - private: SkMatrix fDstToUnit; SkPMColor fColors[3]; - static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) { - return SkNEW_ARGS(SkTriColorShader, (buffer)); - } typedef SkShader INHERITED; }; diff --git a/src/core/SkPathEffect.cpp b/src/core/SkPathEffect.cpp index 852c25f9da..0c0143da46 100644 --- a/src/core/SkPathEffect.cpp +++ b/src/core/SkPathEffect.cpp @@ -108,14 +108,6 @@ bool SkStrokePathEffect::filterPath(SkPath* dst, const SkPath& src, return true; } -SkFlattenable::Factory SkStrokePathEffect::getFactory() { - return CreateProc; -} - -SkFlattenable* SkStrokePathEffect::CreateProc(SkFlattenableReadBuffer& buffer) { - return SkNEW_ARGS(SkStrokePathEffect, (buffer)); -} - void SkStrokePathEffect::flatten(SkFlattenableWriteBuffer& buffer) { buffer.writeScalar(fWidth); buffer.writeScalar(fMiter); diff --git a/src/core/SkShader.cpp b/src/core/SkShader.cpp index 618b8d2745..a3b3b6a216 100644 --- a/src/core/SkShader.cpp +++ b/src/core/SkShader.cpp @@ -247,14 +247,6 @@ void SkColorShader::flatten(SkFlattenableWriteBuffer& buffer) { buffer.write32(fColor); } -SkFlattenable* SkColorShader::CreateProc(SkFlattenableReadBuffer& buffer) { - return SkNEW_ARGS(SkColorShader, (buffer)); -} - -SkFlattenable::Factory SkColorShader::getFactory() { - return CreateProc; -} - uint32_t SkColorShader::getFlags() { return fFlags; } @@ -359,8 +351,6 @@ void SkEmptyShader::shadeSpanAlpha(int x, int y, uint8_t alpha[], int count) { SkDEBUGFAIL("should never get called, since setContext() returned false"); } -SkFlattenable::Factory SkEmptyShader::getFactory() { return NULL; } - void SkEmptyShader::flatten(SkFlattenableWriteBuffer& buffer) { this->INHERITED::flatten(buffer); } diff --git a/src/core/SkShape.cpp b/src/core/SkShape.cpp index 339601af5f..0c4907e0e0 100644 --- a/src/core/SkShape.cpp +++ b/src/core/SkShape.cpp @@ -60,14 +60,6 @@ SkShape::SkShape(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) { inc_shape(this); } -SkFlattenable* SkShape::CreateProc(SkFlattenableReadBuffer& buffer) { - return SkNEW_ARGS(SkShape, (buffer)); -} - -SkFlattenable::Factory SkShape::getFactory() { - return CreateProc; -} - void SkShape::flatten(SkFlattenableWriteBuffer& buffer) { this->INHERITED::flatten(buffer); } diff --git a/src/core/SkXfermode.cpp b/src/core/SkXfermode.cpp index 952e0f2f20..bcb721d35f 100644 --- a/src/core/SkXfermode.cpp +++ b/src/core/SkXfermode.cpp @@ -729,15 +729,12 @@ public: return true; } - virtual Factory getFactory() { return CreateProc; } virtual void flatten(SkFlattenableWriteBuffer& buffer) { this->INHERITED::flatten(buffer); buffer.write32(fMode); } - static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) { - return SkNEW_ARGS(SkProcCoeffXfermode, (buffer)); - } + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkProcCoeffXfermode) protected: SkProcCoeffXfermode(SkFlattenableReadBuffer& buffer) @@ -768,11 +765,8 @@ public: virtual void xfer32(SkPMColor*, const SkPMColor*, int, const SkAlpha*) SK_OVERRIDE; virtual void xferA8(SkAlpha*, const SkPMColor*, int, const SkAlpha*) SK_OVERRIDE; - virtual Factory getFactory() SK_OVERRIDE { return CreateProc; } - static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) { - return SkNEW_ARGS(SkClearXfermode, (buffer)); - } + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkClearXfermode) private: SkClearXfermode(SkFlattenableReadBuffer& buffer) @@ -825,11 +819,8 @@ public: virtual void xfer32(SkPMColor*, const SkPMColor*, int, const SkAlpha*) SK_OVERRIDE; virtual void xferA8(SkAlpha*, const SkPMColor*, int, const SkAlpha*) SK_OVERRIDE; - virtual Factory getFactory() SK_OVERRIDE { return CreateProc; } - static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) { - return SkNEW_ARGS(SkSrcXfermode, (buffer)); - } + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkSrcXfermode) private: SkSrcXfermode(SkFlattenableReadBuffer& buffer) @@ -887,11 +878,8 @@ public: SkDstInXfermode(const ProcCoeff& rec) : SkProcCoeffXfermode(rec, kDstIn_Mode) {} virtual void xfer32(SkPMColor*, const SkPMColor*, int, const SkAlpha*) SK_OVERRIDE; - virtual Factory getFactory() SK_OVERRIDE { return CreateProc; } - static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) { - return SkNEW_ARGS(SkDstInXfermode, (buffer)); - } + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkDstInXfermode) private: SkDstInXfermode(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) {} @@ -926,11 +914,8 @@ public: SkDstOutXfermode(const ProcCoeff& rec) : SkProcCoeffXfermode(rec, kDstOut_Mode) {} virtual void xfer32(SkPMColor*, const SkPMColor*, int, const SkAlpha*) SK_OVERRIDE; - virtual Factory getFactory() SK_OVERRIDE { return CreateProc; } - static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) { - return SkNEW_ARGS(SkDstOutXfermode, (buffer)); - } + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkDstOutXfermode) private: SkDstOutXfermode(SkFlattenableReadBuffer& buffer) diff --git a/src/effects/Sk2DPathEffect.cpp b/src/effects/Sk2DPathEffect.cpp index 23037f7abc..60ec2576d3 100644 --- a/src/effects/Sk2DPathEffect.cpp +++ b/src/effects/Sk2DPathEffect.cpp @@ -80,14 +80,6 @@ Sk2DPathEffect::Sk2DPathEffect(SkFlattenableReadBuffer& buffer) { fMatrix.invert(&fInverse); } -SkFlattenable::Factory Sk2DPathEffect::getFactory() { - return CreateProc; -} - -SkFlattenable* Sk2DPathEffect::CreateProc(SkFlattenableReadBuffer& buffer) { - return SkNEW_ARGS(Sk2DPathEffect, (buffer)); -} - /////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// @@ -100,19 +92,11 @@ SkPath2DPathEffect::SkPath2DPathEffect(SkFlattenableReadBuffer& buffer) fPath.unflatten(buffer); } -SkFlattenable* SkPath2DPathEffect::CreateProc(SkFlattenableReadBuffer& buffer) { - return SkNEW_ARGS(SkPath2DPathEffect, (buffer)); -} - void SkPath2DPathEffect::flatten(SkFlattenableWriteBuffer& buffer) { this->INHERITED::flatten(buffer); fPath.flatten(buffer); } -SkFlattenable::Factory SkPath2DPathEffect::getFactory() { - return CreateProc; -} - void SkPath2DPathEffect::next(const SkPoint& loc, int u, int v, SkPath* dst) { dst->addPath(fPath, loc.fX, loc.fY); } diff --git a/src/effects/SkArithmeticMode.cpp b/src/effects/SkArithmeticMode.cpp index 8190b39f6b..cf651e1fcb 100644 --- a/src/effects/SkArithmeticMode.cpp +++ b/src/effects/SkArithmeticMode.cpp @@ -13,20 +13,13 @@ public: virtual void xfer32(SkPMColor dst[], const SkPMColor src[], int count, const SkAlpha aa[]) SK_OVERRIDE; - virtual Factory getFactory() SK_OVERRIDE; - static SkFlattenable* Create(SkFlattenableReadBuffer& buffer) { - return NULL; - } + SK_DECLARE_UNFLATTENABLE_OBJECT() private: SkScalar fK[4]; }; -SkFlattenable::Factory SkArithmeticMode_scalar::getFactory() { - return Create; -} - static int pinToByte(int value) { if (value < 0) { value = 0; diff --git a/src/effects/SkAvoidXfermode.cpp b/src/effects/SkAvoidXfermode.cpp index d19888439b..d6682226ca 100644 --- a/src/effects/SkAvoidXfermode.cpp +++ b/src/effects/SkAvoidXfermode.cpp @@ -38,16 +38,6 @@ void SkAvoidXfermode::flatten(SkFlattenableWriteBuffer& buffer) buffer.write8(fMode); } -SkFlattenable* SkAvoidXfermode::Create(SkFlattenableReadBuffer& rb) -{ - return SkNEW_ARGS(SkAvoidXfermode, (rb)); -} - -SkFlattenable::Factory SkAvoidXfermode::getFactory() -{ - return Create; -} - // returns 0..31 static unsigned color_dist16(uint16_t c, unsigned r, unsigned g, unsigned b) { diff --git a/src/effects/SkBlurMaskFilter.cpp b/src/effects/SkBlurMaskFilter.cpp index fe428d9a6c..eb64000007 100644 --- a/src/effects/SkBlurMaskFilter.cpp +++ b/src/effects/SkBlurMaskFilter.cpp @@ -25,10 +25,9 @@ public: virtual void computeFastBounds(const SkRect& src, SkRect* dst) SK_OVERRIDE; // overrides from SkFlattenable - virtual Factory getFactory() SK_OVERRIDE; virtual void flatten(SkFlattenableWriteBuffer&) SK_OVERRIDE; - static SkFlattenable* CreateProc(SkFlattenableReadBuffer&); + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkBlurMaskFilterImpl) private: SkScalar fRadius; @@ -104,14 +103,6 @@ void SkBlurMaskFilterImpl::computeFastBounds(const SkRect& src, SkRect* dst) { src.fRight + fRadius, src.fBottom + fRadius); } -SkFlattenable* SkBlurMaskFilterImpl::CreateProc(SkFlattenableReadBuffer& buffer) { - return SkNEW_ARGS(SkBlurMaskFilterImpl, (buffer)); -} - -SkFlattenable::Factory SkBlurMaskFilterImpl::getFactory() { - return CreateProc; -} - SkBlurMaskFilterImpl::SkBlurMaskFilterImpl(SkFlattenableReadBuffer& buffer) : SkMaskFilter(buffer) { fRadius = buffer.readScalar(); diff --git a/src/effects/SkColorFilters.cpp b/src/effects/SkColorFilters.cpp index e6262c1f75..2970c7c218 100644 --- a/src/effects/SkColorFilters.cpp +++ b/src/effects/SkColorFilters.cpp @@ -96,13 +96,9 @@ public: sk_memset16(result, SkPixel32ToPixel16(fPMColor), count); } - static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) { - return SkNEW_ARGS(Src_SkModeColorFilter, (buffer)); - } + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(Src_SkModeColorFilter) protected: - virtual Factory getFactory() { return CreateProc; } - Src_SkModeColorFilter(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) {} @@ -139,13 +135,9 @@ public: sk_memset16(result, SkPixel32ToPixel16(fPMColor), count); } - static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) { - return SkNEW_ARGS(SrcOver_SkModeColorFilter, (buffer)); - } + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SrcOver_SkModeColorFilter) protected: - virtual Factory getFactory() { return CreateProc; } - SrcOver_SkModeColorFilter(SkFlattenableReadBuffer& buffer) : INHERITED(buffer), fColor32Proc(NULL) {} @@ -198,9 +190,7 @@ public: } } - static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) { - return SkNEW_ARGS(Proc_SkModeColorFilter, (buffer)); - } + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(Proc_SkModeColorFilter) protected: virtual void flatten(SkFlattenableWriteBuffer& buffer) { @@ -209,10 +199,6 @@ protected: buffer.writeFunctionPtr((void*)fProc16); } - virtual Factory getFactory() { - return CreateProc; - } - Proc_SkModeColorFilter(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) { fProc = (SkXfermodeProc) buffer.readFunctionPtr(); fProc16 = (SkXfermodeProc16) buffer.readFunctionPtr(); @@ -323,9 +309,7 @@ public: } } - static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) { - return SkNEW_ARGS(SkLightingColorFilter, (buffer)); - } + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkLightingColorFilter) protected: virtual void flatten(SkFlattenableWriteBuffer& buffer) { @@ -334,10 +318,6 @@ protected: buffer.write32(fAdd); } - virtual Factory getFactory() { - return CreateProc; - } - SkLightingColorFilter(SkFlattenableReadBuffer& buffer) { fMul = buffer.readU32(); fAdd = buffer.readU32(); @@ -374,13 +354,9 @@ public: } } - static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) { - return SkNEW_ARGS(SkLightingColorFilter_JustAdd, (buffer)); - } + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkLightingColorFilter_JustAdd) protected: - virtual Factory getFactory() { return CreateProc; } - SkLightingColorFilter_JustAdd(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) {} @@ -412,13 +388,9 @@ public: } } - static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) { - return SkNEW_ARGS(SkLightingColorFilter_JustMul, (buffer)); - } + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkLightingColorFilter_JustMul) protected: - virtual Factory getFactory() { return CreateProc; } - SkLightingColorFilter_JustMul(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) {} @@ -453,13 +425,9 @@ public: } } - static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) { - return SkNEW_ARGS(SkLightingColorFilter_SingleMul, (buffer)); - } + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkLightingColorFilter_SingleMul) protected: - virtual Factory getFactory() { return CreateProc; } - SkLightingColorFilter_SingleMul(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) {} @@ -496,13 +464,9 @@ public: } } - static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) { - return SkNEW_ARGS(SkLightingColorFilter_NoPin, (buffer)); - } + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkLightingColorFilter_NoPin) protected: - virtual Factory getFactory() { return CreateProc; } - SkLightingColorFilter_NoPin(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) {} diff --git a/src/effects/SkColorMatrixFilter.cpp b/src/effects/SkColorMatrixFilter.cpp index 79fbea54aa..47ff8ad6ac 100644 --- a/src/effects/SkColorMatrixFilter.cpp +++ b/src/effects/SkColorMatrixFilter.cpp @@ -318,8 +318,6 @@ void SkColorMatrixFilter::flatten(SkFlattenableWriteBuffer& buffer) { buffer.write32(fFlags); } -SkFlattenable::Factory SkColorMatrixFilter::getFactory() { return CreateProc; } - SkColorMatrixFilter::SkColorMatrixFilter(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) { fProc = (Proc)buffer.readFunctionPtr(); @@ -344,10 +342,6 @@ bool SkColorMatrixFilter::asColorMatrix(SkScalar matrix[20]) { return true; } -SkFlattenable* SkColorMatrixFilter::CreateProc(SkFlattenableReadBuffer& buf) { - return SkNEW_ARGS(SkColorMatrixFilter, (buf)); -} - void SkColorMatrixFilter::setMatrix(const SkColorMatrix& matrix) { setup(matrix.fMat); } diff --git a/src/effects/SkCornerPathEffect.cpp b/src/effects/SkCornerPathEffect.cpp index 4da31aba7c..5eb94a438f 100644 --- a/src/effects/SkCornerPathEffect.cpp +++ b/src/effects/SkCornerPathEffect.cpp @@ -129,18 +129,10 @@ DONE: return true; } -SkFlattenable::Factory SkCornerPathEffect::getFactory() { - return CreateProc; -} - void SkCornerPathEffect::flatten(SkFlattenableWriteBuffer& buffer) { buffer.writeScalar(fRadius); } -SkFlattenable* SkCornerPathEffect::CreateProc(SkFlattenableReadBuffer& buffer) { - return SkNEW_ARGS(SkCornerPathEffect, (buffer)); -} - SkCornerPathEffect::SkCornerPathEffect(SkFlattenableReadBuffer& buffer) { fRadius = buffer.readScalar(); } diff --git a/src/effects/SkDiscretePathEffect.cpp b/src/effects/SkDiscretePathEffect.cpp index a4388598f8..089bed6757 100644 --- a/src/effects/SkDiscretePathEffect.cpp +++ b/src/effects/SkDiscretePathEffect.cpp @@ -67,14 +67,6 @@ bool SkDiscretePathEffect::filterPath(SkPath* dst, const SkPath& src, return true; } -SkFlattenable::Factory SkDiscretePathEffect::getFactory() { - return CreateProc; -} - -SkFlattenable* SkDiscretePathEffect::CreateProc(SkFlattenableReadBuffer& buffer) { - return SkNEW_ARGS(SkDiscretePathEffect, (buffer)); -} - void SkDiscretePathEffect::flatten(SkFlattenableWriteBuffer& buffer) { buffer.writeScalar(fSegLength); buffer.writeScalar(fPerterb); diff --git a/src/effects/SkEmbossMaskFilter.cpp b/src/effects/SkEmbossMaskFilter.cpp index ce37718cf1..26a5e2ec59 100644 --- a/src/effects/SkEmbossMaskFilter.cpp +++ b/src/effects/SkEmbossMaskFilter.cpp @@ -115,14 +115,6 @@ bool SkEmbossMaskFilter::filterMask(SkMask* dst, const SkMask& src, return true; } -SkFlattenable* SkEmbossMaskFilter::CreateProc(SkFlattenableReadBuffer& buffer) { - return SkNEW_ARGS(SkEmbossMaskFilter, (buffer)); -} - -SkFlattenable::Factory SkEmbossMaskFilter::getFactory() { - return CreateProc; -} - SkEmbossMaskFilter::SkEmbossMaskFilter(SkFlattenableReadBuffer& buffer) : SkMaskFilter(buffer) { buffer.read(&fLight, sizeof(fLight)); diff --git a/src/effects/SkGradientShader.cpp b/src/effects/SkGradientShader.cpp index c9929b4180..0fcb514585 100644 --- a/src/effects/SkGradientShader.cpp +++ b/src/effects/SkGradientShader.cpp @@ -849,10 +849,6 @@ public: SkScalar* twoPointRadialParams) const SK_OVERRIDE; virtual GradientType asAGradient(GradientInfo* info) const SK_OVERRIDE; - static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) { - return SkNEW_ARGS(Linear_Gradient, (buffer)); - } - virtual void flatten(SkFlattenableWriteBuffer& buffer) SK_OVERRIDE { this->INHERITED::flatten(buffer); buffer.writeScalar(fStart.fX); @@ -861,13 +857,14 @@ public: buffer.writeScalar(fEnd.fY); } + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(Linear_Gradient) + protected: Linear_Gradient(SkFlattenableReadBuffer& buffer) : Gradient_Shader(buffer), fStart(unflatten_point(buffer)), fEnd(unflatten_point(buffer)) { } - virtual Factory getFactory() SK_OVERRIDE { return CreateProc; } private: typedef Gradient_Shader INHERITED; @@ -1510,10 +1507,6 @@ public: return kRadial_GradientType; } - static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) { - return SkNEW_ARGS(Radial_Gradient, (buffer)); - } - virtual void flatten(SkFlattenableWriteBuffer& buffer) SK_OVERRIDE { this->INHERITED::flatten(buffer); buffer.writeScalar(fCenter.fX); @@ -1521,13 +1514,14 @@ public: buffer.writeScalar(fRadius); } + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(Radial_Gradient) + protected: Radial_Gradient(SkFlattenableReadBuffer& buffer) : Gradient_Shader(buffer), fCenter(unflatten_point(buffer)), fRadius(buffer.readScalar()) { } - virtual Factory getFactory() SK_OVERRIDE { return CreateProc; } private: typedef Gradient_Shader INHERITED; @@ -2045,10 +2039,6 @@ public: return true; } - static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) { - return SkNEW_ARGS(Two_Point_Radial_Gradient, (buffer)); - } - virtual void flatten(SkFlattenableWriteBuffer& buffer) SK_OVERRIDE { this->INHERITED::flatten(buffer); buffer.writeScalar(fCenter1.fX); @@ -2059,6 +2049,8 @@ public: buffer.writeScalar(fRadius2); } + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(Two_Point_Radial_Gradient) + protected: Two_Point_Radial_Gradient(SkFlattenableReadBuffer& buffer) : Gradient_Shader(buffer), @@ -2068,7 +2060,6 @@ protected: fRadius2(buffer.readScalar()) { init(); }; - virtual Factory getFactory() SK_OVERRIDE { return CreateProc; } private: typedef Gradient_Shader INHERITED; @@ -2134,24 +2125,20 @@ public: return kSweep_GradientType; } - static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) { - return SkNEW_ARGS(Sweep_Gradient, (buffer)); - } - virtual void flatten(SkFlattenableWriteBuffer& buffer) SK_OVERRIDE { this->INHERITED::flatten(buffer); buffer.writeScalar(fCenter.fX); buffer.writeScalar(fCenter.fY); } + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(Sweep_Gradient) + protected: Sweep_Gradient(SkFlattenableReadBuffer& buffer) : Gradient_Shader(buffer), fCenter(unflatten_point(buffer)) { } - virtual Factory getFactory() SK_OVERRIDE { return CreateProc; } - private: typedef Gradient_Shader INHERITED; const SkPoint fCenter; diff --git a/src/effects/SkGroupShape.cpp b/src/effects/SkGroupShape.cpp index fd741ee43b..b27026e8b9 100644 --- a/src/effects/SkGroupShape.cpp +++ b/src/effects/SkGroupShape.cpp @@ -83,10 +83,6 @@ void SkGroupShape::onDraw(SkCanvas* canvas) { } } -SkFlattenable::Factory SkGroupShape::getFactory() { - return CreateProc; -} - void SkGroupShape::flatten(SkFlattenableWriteBuffer& buffer) { this->INHERITED::flatten(buffer); @@ -127,9 +123,5 @@ SkGroupShape::SkGroupShape(SkFlattenableReadBuffer& buffer) : INHERITED(buffer){ } } -SkFlattenable* SkGroupShape::CreateProc(SkFlattenableReadBuffer& buffer) { - return SkNEW_ARGS(SkGroupShape, (buffer)); -} - SK_DEFINE_FLATTENABLE_REGISTRAR(SkGroupShape) diff --git a/src/effects/SkKernel33MaskFilter.cpp b/src/effects/SkKernel33MaskFilter.cpp index 852168c5cc..f01451c4fe 100644 --- a/src/effects/SkKernel33MaskFilter.cpp +++ b/src/effects/SkKernel33MaskFilter.cpp @@ -110,14 +110,6 @@ void SkKernel33MaskFilter::flatten(SkFlattenableWriteBuffer& wb) { wb.write32(fShift); } -SkFlattenable::Factory SkKernel33MaskFilter::getFactory() { - return Create; -} - -SkFlattenable* SkKernel33MaskFilter::Create(SkFlattenableReadBuffer& rb) { - return new SkKernel33MaskFilter(rb); -} - SkKernel33MaskFilter::SkKernel33MaskFilter(SkFlattenableReadBuffer& rb) : SkKernel33ProcMaskFilter(rb) { rb.read(fKernel, 9 * sizeof(int)); diff --git a/src/effects/SkLayerRasterizer.cpp b/src/effects/SkLayerRasterizer.cpp index 9b29550cc4..ae4eb2eb99 100644 --- a/src/effects/SkLayerRasterizer.cpp +++ b/src/effects/SkLayerRasterizer.cpp @@ -216,13 +216,5 @@ void SkLayerRasterizer::flatten(SkFlattenableWriteBuffer& buffer) { } } -SkFlattenable* SkLayerRasterizer::CreateProc(SkFlattenableReadBuffer& buffer) { - return SkNEW_ARGS(SkLayerRasterizer, (buffer)); -} - -SkFlattenable::Factory SkLayerRasterizer::getFactory() { - return CreateProc; -} - SK_DEFINE_FLATTENABLE_REGISTRAR(SkLayerRasterizer) diff --git a/src/effects/SkPixelXorXfermode.cpp b/src/effects/SkPixelXorXfermode.cpp index 935a475ee5..b4bbaf970c 100644 --- a/src/effects/SkPixelXorXfermode.cpp +++ b/src/effects/SkPixelXorXfermode.cpp @@ -28,12 +28,4 @@ SkPixelXorXfermode::SkPixelXorXfermode(SkFlattenableReadBuffer& rb) fOpColor = rb.readU32(); } -SkFlattenable::Factory SkPixelXorXfermode::getFactory() { - return Create; -} - -SkFlattenable* SkPixelXorXfermode::Create(SkFlattenableReadBuffer& rb) { - return SkNEW_ARGS(SkPixelXorXfermode, (rb)); -} - SK_DEFINE_FLATTENABLE_REGISTRAR(SkPixelXorXfermode) diff --git a/src/effects/SkRectShape.cpp b/src/effects/SkRectShape.cpp index 3e3707289c..d7e2628832 100644 --- a/src/effects/SkRectShape.cpp +++ b/src/effects/SkRectShape.cpp @@ -60,10 +60,6 @@ void SkRectShape::onDraw(SkCanvas* canvas) { } } -SkFlattenable::Factory SkRectShape::getFactory() { - return CreateProc; -} - void SkRectShape::flatten(SkFlattenableWriteBuffer& buffer) { this->INHERITED::flatten(buffer); @@ -76,10 +72,6 @@ SkRectShape::SkRectShape(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) { buffer.read(&fRadii, sizeof(fRadii)); } -SkFlattenable* SkRectShape::CreateProc(SkFlattenableReadBuffer& buffer) { - return SkNEW_ARGS(SkRectShape, (buffer)); -} - /////////////////////////////////////////////////////////////////////////////// void SkPaintShape::flatten(SkFlattenableWriteBuffer& buffer) { diff --git a/src/effects/SkTableColorFilter.cpp b/src/effects/SkTableColorFilter.cpp index 5d71e239e9..8b60326b40 100644 --- a/src/effects/SkTableColorFilter.cpp +++ b/src/effects/SkTableColorFilter.cpp @@ -36,11 +36,8 @@ public: virtual void filterSpan(const SkPMColor src[], int count, SkPMColor dst[]) SK_OVERRIDE; virtual void flatten(SkFlattenableWriteBuffer&) SK_OVERRIDE; - virtual Factory getFactory() SK_OVERRIDE; - static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) { - return SkNEW_ARGS(SkTable_ColorFilter, (buffer)); - } + SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkTable_ColorFilter) protected: SkTable_ColorFilter(SkFlattenableReadBuffer& buffer); @@ -139,10 +136,6 @@ void SkTable_ColorFilter::filterSpan(const SkPMColor src[], int count, } } -SkFlattenable::Factory SkTable_ColorFilter::getFactory() { - return CreateProc; -} - static const uint8_t gCountNibBits[] = { 0, 1, 1, 2, 1, 2, 2, 3, diff --git a/src/effects/SkTableMaskFilter.cpp b/src/effects/SkTableMaskFilter.cpp index 4024372a2e..3a3d0e596a 100644 --- a/src/effects/SkTableMaskFilter.cpp +++ b/src/effects/SkTableMaskFilter.cpp @@ -81,14 +81,6 @@ SkTableMaskFilter::SkTableMaskFilter(SkFlattenableReadBuffer& rb) rb.read(fTable, 256); } -SkFlattenable* SkTableMaskFilter::Factory(SkFlattenableReadBuffer& rb) { - return SkNEW_ARGS(SkTableMaskFilter, (rb)); -} - -SkFlattenable::Factory SkTableMaskFilter::getFactory() { - return SkTableMaskFilter::Factory; -} - /////////////////////////////////////////////////////////////////////////////// void SkTableMaskFilter::MakeGammaTable(uint8_t table[256], SkScalar gamma) { diff --git a/src/effects/SkTestImageFilters.cpp b/src/effects/SkTestImageFilters.cpp index 6378bc68b8..688e298cc1 100755 --- a/src/effects/SkTestImageFilters.cpp +++ b/src/effects/SkTestImageFilters.cpp @@ -43,10 +43,6 @@ SkOffsetImageFilter::SkOffsetImageFilter(SkFlattenableReadBuffer& buffer) : INHE fOffset.fY = buffer.readScalar(); } -SkFlattenable::Factory SkOffsetImageFilter::getFactory() { - return CreateProc; -} - /////////////////////////////////////////////////////////////////////////////// SkComposeImageFilter::~SkComposeImageFilter() { @@ -100,10 +96,6 @@ SkComposeImageFilter::SkComposeImageFilter(SkFlattenableReadBuffer& buffer) : IN fInner = (SkImageFilter*)buffer.readFlattenable(); } -SkFlattenable::Factory SkComposeImageFilter::getFactory() { - return CreateProc; -} - /////////////////////////////////////////////////////////////////////////////// template <typename T> T* SkSafeRefReturn(T* obj) { @@ -282,10 +274,6 @@ SkMergeImageFilter::SkMergeImageFilter(SkFlattenableReadBuffer& buffer) : INHERI } } -SkFlattenable::Factory SkMergeImageFilter::getFactory() { - return CreateProc; -} - /////////////////////////////////////////////////////////////////////////////// #include "SkColorFilter.h" @@ -329,10 +317,6 @@ SkColorFilterImageFilter::SkColorFilterImageFilter(SkFlattenableReadBuffer& buff fColorFilter = (SkColorFilter*)buffer.readFlattenable(); } -SkFlattenable::Factory SkColorFilterImageFilter::getFactory() { - return CreateProc; -} - /////////////////////////////////////////////////////////////////////////////// bool SkDownSampleImageFilter::onFilterImage(Proxy* proxy, const SkBitmap& src, @@ -395,10 +379,6 @@ SkDownSampleImageFilter::SkDownSampleImageFilter(SkFlattenableReadBuffer& buffer fScale = buffer.readScalar(); } -SkFlattenable::Factory SkDownSampleImageFilter::getFactory() { - return CreateProc; -} - SK_DEFINE_FLATTENABLE_REGISTRAR(SkOffsetImageFilter) SK_DEFINE_FLATTENABLE_REGISTRAR(SkComposeImageFilter) SK_DEFINE_FLATTENABLE_REGISTRAR(SkMergeImageFilter) diff --git a/src/effects/SkTransparentShader.cpp b/src/effects/SkTransparentShader.cpp index 486fc892f9..c827c111c0 100644 --- a/src/effects/SkTransparentShader.cpp +++ b/src/effects/SkTransparentShader.cpp @@ -126,10 +126,6 @@ void SkTransparentShader::shadeSpan16(int x, int y, uint16_t span[], int count) } } -SkFlattenable::Factory SkTransparentShader::getFactory() { - return Create; -} - void SkTransparentShader::flatten(SkFlattenableWriteBuffer& buffer) { this->INHERITED::flatten(buffer); } diff --git a/src/utils/SkUnitMappers.cpp b/src/utils/SkUnitMappers.cpp index 583d091791..dd238809fe 100644 --- a/src/utils/SkUnitMappers.cpp +++ b/src/utils/SkUnitMappers.cpp @@ -33,14 +33,6 @@ SkDiscreteMapper::SkDiscreteMapper(SkFlattenableReadBuffer& rb) fScale = rb.readU32(); } -SkFlattenable::Factory SkDiscreteMapper::getFactory() { - return Create; -} - -SkFlattenable* SkDiscreteMapper::Create(SkFlattenableReadBuffer& rb) { - return SkNEW_ARGS(SkDiscreteMapper, (rb)); -} - void SkDiscreteMapper::flatten(SkFlattenableWriteBuffer& wb) { this->INHERITED::flatten(wb); @@ -65,11 +57,3 @@ uint16_t SkCosineMapper::mapUnit16(uint16_t input) SkCosineMapper::SkCosineMapper(SkFlattenableReadBuffer& rb) : SkUnitMapper(rb) {} -SkFlattenable::Factory SkCosineMapper::getFactory() { - return Create; -} - -SkFlattenable* SkCosineMapper::Create(SkFlattenableReadBuffer& rb) { - return SkNEW_ARGS(SkCosineMapper, (rb)); -} - diff --git a/tests/QuickRejectTest.cpp b/tests/QuickRejectTest.cpp index 8cde32785a..b8fb989966 100644 --- a/tests/QuickRejectTest.cpp +++ b/tests/QuickRejectTest.cpp @@ -29,9 +29,7 @@ public: return false; } - virtual Factory getFactory() SK_OVERRIDE { - return NULL; - } + SK_DECLARE_UNFLATTENABLE_OBJECT() }; static void test_drawBitmap(skiatest::Reporter* reporter) { |