aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--gm/imagefiltersbase.cpp23
-rw-r--r--include/core/SkColorFilter.h6
-rw-r--r--include/core/SkColorShader.h4
-rw-r--r--include/core/SkComposeShader.h5
-rw-r--r--include/core/SkEmptyShader.h6
-rw-r--r--include/core/SkFlattenable.h9
-rw-r--r--include/core/SkPaint.h4
-rw-r--r--include/core/SkPathEffect.h19
-rw-r--r--include/core/SkShape.h5
-rw-r--r--include/core/SkXfermode.h5
-rw-r--r--include/effects/Sk1DPathEffect.h5
-rw-r--r--include/effects/Sk2DPathEffect.h7
-rw-r--r--include/effects/SkAvoidXfermode.h8
-rw-r--r--include/effects/SkBlurDrawLooper.h5
-rw-r--r--include/effects/SkBlurImageFilter.h5
-rw-r--r--include/effects/SkColorMatrixFilter.h5
-rw-r--r--include/effects/SkCornerPathEffect.h5
-rw-r--r--include/effects/SkDiscretePathEffect.h5
-rw-r--r--include/effects/SkEmbossMaskFilter.h7
-rw-r--r--include/effects/SkGroupShape.h4
-rw-r--r--include/effects/SkKernel33MaskFilter.h3
-rw-r--r--include/effects/SkLayerDrawLooper.h6
-rw-r--r--include/effects/SkLayerRasterizer.h3
-rw-r--r--include/effects/SkMorphologyImageFilter.h11
-rw-r--r--include/effects/SkPixelXorXfermode.h7
-rw-r--r--include/effects/SkRectShape.h4
-rw-r--r--include/effects/SkTableMaskFilter.h3
-rwxr-xr-xinclude/effects/SkTestImageFilters.h25
-rw-r--r--include/effects/SkTransparentShader.h6
-rw-r--r--include/utils/SkUnitMappers.h11
-rw-r--r--samplecode/ClockFaceView.cpp17
-rw-r--r--samplecode/SampleAll.cpp12
-rw-r--r--samplecode/SampleSlides.cpp8
-rw-r--r--samplecode/SampleText.cpp17
-rw-r--r--samplecode/SampleTextEffects.cpp6
-rw-r--r--src/animator/SkDrawExtraPathEffect.cpp3
-rw-r--r--src/animator/SkDrawGradient.cpp3
-rw-r--r--src/core/SkBitmapProcShader.h6
-rw-r--r--src/core/SkBlitter.cpp10
-rw-r--r--src/core/SkDraw.cpp7
-rw-r--r--src/core/SkPathEffect.cpp8
-rw-r--r--src/core/SkShader.cpp10
-rw-r--r--src/core/SkShape.cpp8
-rw-r--r--src/core/SkXfermode.cpp25
-rw-r--r--src/effects/Sk2DPathEffect.cpp16
-rw-r--r--src/effects/SkArithmeticMode.cpp9
-rw-r--r--src/effects/SkAvoidXfermode.cpp10
-rw-r--r--src/effects/SkBlurMaskFilter.cpp11
-rw-r--r--src/effects/SkColorFilters.cpp52
-rw-r--r--src/effects/SkColorMatrixFilter.cpp6
-rw-r--r--src/effects/SkCornerPathEffect.cpp8
-rw-r--r--src/effects/SkDiscretePathEffect.cpp8
-rw-r--r--src/effects/SkEmbossMaskFilter.cpp8
-rw-r--r--src/effects/SkGradientShader.cpp29
-rw-r--r--src/effects/SkGroupShape.cpp8
-rw-r--r--src/effects/SkKernel33MaskFilter.cpp8
-rw-r--r--src/effects/SkLayerRasterizer.cpp8
-rw-r--r--src/effects/SkPixelXorXfermode.cpp8
-rw-r--r--src/effects/SkRectShape.cpp8
-rw-r--r--src/effects/SkTableColorFilter.cpp9
-rw-r--r--src/effects/SkTableMaskFilter.cpp8
-rwxr-xr-xsrc/effects/SkTestImageFilters.cpp20
-rw-r--r--src/effects/SkTransparentShader.cpp4
-rw-r--r--src/utils/SkUnitMappers.cpp16
-rw-r--r--tests/QuickRejectTest.cpp4
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) {