aboutsummaryrefslogtreecommitdiffhomepage
path: root/include/effects
diff options
context:
space:
mode:
Diffstat (limited to 'include/effects')
-rw-r--r--include/effects/Sk1DPathEffect.h7
-rw-r--r--include/effects/Sk2DPathEffect.h13
-rw-r--r--include/effects/SkAlphaThresholdFilter.h2
-rw-r--r--include/effects/SkArithmeticImageFilter.h2
-rw-r--r--include/effects/SkColorFilterImageFilter.h6
-rw-r--r--include/effects/SkComposeImageFilter.h7
-rw-r--r--include/effects/SkCornerPathEffect.h6
-rw-r--r--include/effects/SkDiscretePathEffect.h7
-rw-r--r--include/effects/SkDisplacementMapEffect.h7
-rw-r--r--include/effects/SkDropShadowImageFilter.h6
-rw-r--r--include/effects/SkGradientShader.h2
-rw-r--r--include/effects/SkHighContrastFilter.h3
-rw-r--r--include/effects/SkImageSource.h6
-rw-r--r--include/effects/SkLightingImageFilter.h2
-rw-r--r--include/effects/SkLumaColorFilter.h8
-rw-r--r--include/effects/SkMagnifierImageFilter.h6
-rw-r--r--include/effects/SkMatrixConvolutionImageFilter.h7
-rw-r--r--include/effects/SkMergeImageFilter.h6
-rw-r--r--include/effects/SkMorphologyImageFilter.h11
-rw-r--r--include/effects/SkOffsetImageFilter.h6
-rw-r--r--include/effects/SkOverdrawColorFilter.h2
-rw-r--r--include/effects/SkPaintImageFilter.h6
-rw-r--r--include/effects/SkPerlinNoiseShader.h2
-rw-r--r--include/effects/SkPictureImageFilter.h6
-rw-r--r--include/effects/SkTableColorFilter.h2
-rw-r--r--include/effects/SkTileImageFilter.h6
-rw-r--r--include/effects/SkToSRGBColorFilter.h6
-rw-r--r--include/effects/SkXfermodeImageFilter.h2
28 files changed, 121 insertions, 31 deletions
diff --git a/include/effects/Sk1DPathEffect.h b/include/effects/Sk1DPathEffect.h
index 88a36ff7c6..a78aded601 100644
--- a/include/effects/Sk1DPathEffect.h
+++ b/include/effects/Sk1DPathEffect.h
@@ -8,6 +8,7 @@
#ifndef Sk1DPathEffect_DEFINED
#define Sk1DPathEffect_DEFINED
+#include "SkFlattenable.h"
#include "SkPathEffect.h"
#include "SkPath.h"
@@ -62,7 +63,8 @@ public:
SkStrokeRec*, const SkRect*) const override;
void toString(SkString* str) const override;
- SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkPath1DPathEffect)
+
+ Factory getFactory() const override { return CreateProc; }
protected:
SkPath1DPathEffect(const SkPath& path, SkScalar advance, SkScalar phase, Style);
@@ -73,6 +75,9 @@ protected:
SkScalar next(SkPath*, SkScalar, SkPathMeasure&) const override;
private:
+ static sk_sp<SkFlattenable> CreateProc(SkReadBuffer&);
+ friend class SkFlattenable::PrivateInitializer;
+
SkPath fPath; // copied from constructor
SkScalar fAdvance; // copied from constructor
SkScalar fInitialOffset; // computed from phase
diff --git a/include/effects/Sk2DPathEffect.h b/include/effects/Sk2DPathEffect.h
index 5ebadab0d5..841e5b8ab2 100644
--- a/include/effects/Sk2DPathEffect.h
+++ b/include/effects/Sk2DPathEffect.h
@@ -8,6 +8,7 @@
#ifndef Sk2DPathEffect_DEFINED
#define Sk2DPathEffect_DEFINED
+#include "SkFlattenable.h"
#include "SkPath.h"
#include "SkPathEffect.h"
#include "SkMatrix.h"
@@ -66,7 +67,8 @@ public:
SkStrokeRec*, const SkRect*) const override;
void toString(SkString* str) const override;
- SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkLine2DPathEffect)
+
+ Factory getFactory() const override { return CreateProc; }
protected:
SkLine2DPathEffect(SkScalar width, const SkMatrix& matrix)
@@ -78,6 +80,9 @@ protected:
void nextSpan(int u, int v, int ucount, SkPath*) const override;
private:
+ static sk_sp<SkFlattenable> CreateProc(SkReadBuffer&);
+ friend class SkFlattenable::PrivateInitializer;
+
SkScalar fWidth;
typedef Sk2DPathEffect INHERITED;
@@ -94,7 +99,8 @@ public:
}
void toString(SkString* str) const override;
- SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkPath2DPathEffect)
+
+ Factory getFactory() const override { return CreateProc; }
protected:
SkPath2DPathEffect(const SkMatrix&, const SkPath&);
@@ -103,6 +109,9 @@ protected:
void next(const SkPoint&, int u, int v, SkPath*) const override;
private:
+ static sk_sp<SkFlattenable> CreateProc(SkReadBuffer&);
+ friend class SkFlattenable::PrivateInitializer;
+
SkPath fPath;
typedef Sk2DPathEffect INHERITED;
diff --git a/include/effects/SkAlphaThresholdFilter.h b/include/effects/SkAlphaThresholdFilter.h
index 9bb69f004d..884efff389 100644
--- a/include/effects/SkAlphaThresholdFilter.h
+++ b/include/effects/SkAlphaThresholdFilter.h
@@ -26,7 +26,7 @@ public:
const SkImageFilter::CropRect* cropRect = nullptr);
- SK_DECLARE_FLATTENABLE_REGISTRAR_GROUP();
+ static void InitializeFlattenables();
};
#endif
diff --git a/include/effects/SkArithmeticImageFilter.h b/include/effects/SkArithmeticImageFilter.h
index a8b7100abb..40b91e8fd6 100644
--- a/include/effects/SkArithmeticImageFilter.h
+++ b/include/effects/SkArithmeticImageFilter.h
@@ -17,7 +17,7 @@ public:
sk_sp<SkImageFilter> foreground,
const SkImageFilter::CropRect* cropRect);
- SK_DECLARE_FLATTENABLE_REGISTRAR_GROUP();
+ static void InitializeFlattenables();
private:
SkArithmeticImageFilter(); // can't instantiate
diff --git a/include/effects/SkColorFilterImageFilter.h b/include/effects/SkColorFilterImageFilter.h
index 491a2b05b0..f422b0901a 100644
--- a/include/effects/SkColorFilterImageFilter.h
+++ b/include/effects/SkColorFilterImageFilter.h
@@ -8,6 +8,7 @@
#ifndef SkColorFilterImageFilter_DEFINED
#define SkColorFilterImageFilter_DEFINED
+#include "SkFlattenable.h"
#include "SkImageFilter.h"
class SkColorFilter;
@@ -19,7 +20,8 @@ public:
const CropRect* cropRect = nullptr);
void toString(SkString* str) const override;
- SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkColorFilterImageFilter)
+
+ Factory getFactory() const override { return CreateProc; }
protected:
void flatten(SkWriteBuffer&) const override;
@@ -34,6 +36,8 @@ private:
SkColorFilterImageFilter(sk_sp<SkColorFilter> cf,
sk_sp<SkImageFilter> input,
const CropRect* cropRect);
+ static sk_sp<SkFlattenable> CreateProc(SkReadBuffer&);
+ friend class SkFlattenable::PrivateInitializer;
sk_sp<SkColorFilter> fColorFilter;
diff --git a/include/effects/SkComposeImageFilter.h b/include/effects/SkComposeImageFilter.h
index 0bfb7d8c5c..7c86126638 100644
--- a/include/effects/SkComposeImageFilter.h
+++ b/include/effects/SkComposeImageFilter.h
@@ -8,6 +8,7 @@
#ifndef SkComposeImageFilter_DEFINED
#define SkComposeImageFilter_DEFINED
+#include "SkFlattenable.h"
#include "SkImageFilter.h"
class SK_API SkComposeImageFilter : public SkImageFilter {
@@ -17,7 +18,8 @@ public:
SkRect computeFastBounds(const SkRect& src) const override;
void toString(SkString* str) const override;
- SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkComposeImageFilter)
+
+ Factory getFactory() const override { return CreateProc; }
protected:
explicit SkComposeImageFilter(sk_sp<SkImageFilter> inputs[2]) : INHERITED(inputs, 2, nullptr) {
@@ -32,6 +34,9 @@ protected:
bool onCanHandleComplexCTM() const override { return true; }
private:
+ static sk_sp<SkFlattenable> CreateProc(SkReadBuffer&);
+ friend class SkFlattenable::PrivateInitializer;
+
typedef SkImageFilter INHERITED;
};
diff --git a/include/effects/SkCornerPathEffect.h b/include/effects/SkCornerPathEffect.h
index ac9401a7bc..0f052b880d 100644
--- a/include/effects/SkCornerPathEffect.h
+++ b/include/effects/SkCornerPathEffect.h
@@ -8,6 +8,7 @@
#ifndef SkCornerPathEffect_DEFINED
#define SkCornerPathEffect_DEFINED
+#include "SkFlattenable.h"
#include "SkPathEffect.h"
/** \class SkCornerPathEffect
@@ -28,7 +29,8 @@ public:
SkStrokeRec*, const SkRect*) const override;
void toString(SkString* str) const override;
- SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkCornerPathEffect)
+
+ Factory getFactory() const override { return CreateProc; }
#ifdef SK_BUILD_FOR_ANDROID_FRAMEWORK
bool exposedInAndroidJavaAPI() const override { return true; }
@@ -36,6 +38,8 @@ public:
protected:
~SkCornerPathEffect() override;
+ static sk_sp<SkFlattenable> CreateProc(SkReadBuffer&);
+ friend class SkFlattenable::PrivateInitializer;
explicit SkCornerPathEffect(SkScalar radius);
void flatten(SkWriteBuffer&) const override;
diff --git a/include/effects/SkDiscretePathEffect.h b/include/effects/SkDiscretePathEffect.h
index eb2a994982..252e6de8a3 100644
--- a/include/effects/SkDiscretePathEffect.h
+++ b/include/effects/SkDiscretePathEffect.h
@@ -8,6 +8,7 @@
#ifndef SkDiscretePathEffect_DEFINED
#define SkDiscretePathEffect_DEFINED
+#include "SkFlattenable.h"
#include "SkPathEffect.h"
/** \class SkDiscretePathEffect
@@ -35,7 +36,8 @@ public:
SkStrokeRec*, const SkRect*) const override;
void toString(SkString* str) const override;
- SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkDiscretePathEffect)
+
+ Factory getFactory() const override { return CreateProc; }
#ifdef SK_BUILD_FOR_ANDROID_FRAMEWORK
bool exposedInAndroidJavaAPI() const override { return true; }
@@ -48,6 +50,9 @@ protected:
void flatten(SkWriteBuffer&) const override;
private:
+ static sk_sp<SkFlattenable> CreateProc(SkReadBuffer&);
+ friend class SkFlattenable::PrivateInitializer;
+
SkScalar fSegLength, fPerterb;
/* Caller-supplied 32 bit seed assist */
diff --git a/include/effects/SkDisplacementMapEffect.h b/include/effects/SkDisplacementMapEffect.h
index daf03d742c..929086cabd 100644
--- a/include/effects/SkDisplacementMapEffect.h
+++ b/include/effects/SkDisplacementMapEffect.h
@@ -31,8 +31,6 @@ public:
sk_sp<SkImageFilter> color,
const CropRect* cropRect = nullptr);
- SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkDisplacementMapEffect)
-
SkRect computeFastBounds(const SkRect& src) const override;
virtual SkIRect onFilterBounds(const SkIRect& src, const SkMatrix& ctm,
@@ -43,6 +41,8 @@ public:
void toString(SkString* str) const override;
+ Factory getFactory() const override { return CreateProc; }
+
protected:
sk_sp<SkSpecialImage> onFilterImage(SkSpecialImage* source, const Context&,
SkIPoint* offset) const override;
@@ -54,6 +54,9 @@ protected:
void flatten(SkWriteBuffer&) const override;
private:
+ static sk_sp<SkFlattenable> CreateProc(SkReadBuffer&);
+ friend class SkFlattenable::PrivateInitializer;
+
ChannelSelectorType fXChannelSelector;
ChannelSelectorType fYChannelSelector;
SkScalar fScale;
diff --git a/include/effects/SkDropShadowImageFilter.h b/include/effects/SkDropShadowImageFilter.h
index d1ee44c168..e8c5740f9d 100644
--- a/include/effects/SkDropShadowImageFilter.h
+++ b/include/effects/SkDropShadowImageFilter.h
@@ -9,6 +9,7 @@
#define SkDropShadowImageFilter_DEFINED
#include "SkColor.h"
+#include "SkFlattenable.h"
#include "SkImageFilter.h"
#include "SkScalar.h"
@@ -30,7 +31,8 @@ public:
SkRect computeFastBounds(const SkRect&) const override;
void toString(SkString* str) const override;
- SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkDropShadowImageFilter)
+
+ Factory getFactory() const override { return CreateProc; }
protected:
void flatten(SkWriteBuffer&) const override;
@@ -44,6 +46,8 @@ private:
SkDropShadowImageFilter(SkScalar dx, SkScalar dy, SkScalar sigmaX, SkScalar sigmaY, SkColor,
ShadowMode shadowMode, sk_sp<SkImageFilter> input,
const CropRect* cropRect);
+ static sk_sp<SkFlattenable> CreateProc(SkReadBuffer&);
+ friend class SkFlattenable::PrivateInitializer;
SkScalar fDx, fDy, fSigmaX, fSigmaY;
SkColor fColor;
diff --git a/include/effects/SkGradientShader.h b/include/effects/SkGradientShader.h
index 9821c4be82..278fc25735 100644
--- a/include/effects/SkGradientShader.h
+++ b/include/effects/SkGradientShader.h
@@ -224,7 +224,7 @@ public:
return MakeSweep(cx, cy, colors, std::move(colorSpace), pos, count, 0, nullptr);
}
- SK_DECLARE_FLATTENABLE_REGISTRAR_GROUP()
+ static void InitializeFlattenables();
};
#endif
diff --git a/include/effects/SkHighContrastFilter.h b/include/effects/SkHighContrastFilter.h
index fd97c7d48d..ed33576bb4 100644
--- a/include/effects/SkHighContrastFilter.h
+++ b/include/effects/SkHighContrastFilter.h
@@ -72,12 +72,13 @@ struct SkHighContrastConfig {
* not valid, e.g. if you try to call it with a contrast outside the range of
* -1.0 to 1.0.
*/
+
class SK_API SkHighContrastFilter {
public:
// Returns the filter, or nullptr if the config is invalid.
static sk_sp<SkColorFilter> Make(const SkHighContrastConfig& config);
- SK_DECLARE_FLATTENABLE_REGISTRAR_GROUP()
+ static void InitializeFlattenables();
};
#endif
diff --git a/include/effects/SkImageSource.h b/include/effects/SkImageSource.h
index 6ef855ab93..d25cb6dc36 100644
--- a/include/effects/SkImageSource.h
+++ b/include/effects/SkImageSource.h
@@ -8,6 +8,7 @@
#ifndef SkImageSource_DEFINED
#define SkImageSource_DEFINED
+#include "SkFlattenable.h"
#include "SkImage.h"
#include "SkImageFilter.h"
@@ -22,7 +23,8 @@ public:
SkRect computeFastBounds(const SkRect& src) const override;
void toString(SkString* str) const override;
- SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkImageSource)
+
+ Factory getFactory() const override { return CreateProc; }
protected:
void flatten(SkWriteBuffer&) const override;
@@ -40,6 +42,8 @@ private:
const SkRect& srcRect,
const SkRect& dstRect,
SkFilterQuality);
+ static sk_sp<SkFlattenable> CreateProc(SkReadBuffer&);
+ friend class SkFlattenable::PrivateInitializer;
sk_sp<SkImage> fImage;
SkRect fSrcRect, fDstRect;
diff --git a/include/effects/SkLightingImageFilter.h b/include/effects/SkLightingImageFilter.h
index ce941bc124..5c25020637 100644
--- a/include/effects/SkLightingImageFilter.h
+++ b/include/effects/SkLightingImageFilter.h
@@ -39,7 +39,7 @@ public:
SkScalar shininess, sk_sp<SkImageFilter> input, const CropRect* cropRect = nullptr);
~SkLightingImageFilter() override;
- SK_DECLARE_FLATTENABLE_REGISTRAR_GROUP()
+ static void InitializeFlattenables();
protected:
SkLightingImageFilter(sk_sp<SkImageFilterLight> light,
diff --git a/include/effects/SkLumaColorFilter.h b/include/effects/SkLumaColorFilter.h
index bdf02d322e..14f2d4f773 100644
--- a/include/effects/SkLumaColorFilter.h
+++ b/include/effects/SkLumaColorFilter.h
@@ -24,6 +24,9 @@ class SkRasterPipeline;
* C' = [ Lum * a, 0, 0, 0 ]
*
*/
+
+ #include "SkFlattenable.h"
+
class SK_API SkLumaColorFilter : public SkColorFilter {
public:
static sk_sp<SkColorFilter> Make();
@@ -34,7 +37,8 @@ public:
#endif
void toString(SkString* str) const override;
- SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkLumaColorFilter)
+
+ Factory getFactory() const override { return CreateProc; }
protected:
void flatten(SkWriteBuffer&) const override;
@@ -43,6 +47,8 @@ private:
SkLumaColorFilter();
void onAppendStages(SkRasterPipeline*, SkColorSpace*, SkArenaAlloc*,
bool shaderIsOpaque) const override;
+ static sk_sp<SkFlattenable> CreateProc(SkReadBuffer&);
+ friend class SkFlattenable::PrivateInitializer;
typedef SkColorFilter INHERITED;
};
diff --git a/include/effects/SkMagnifierImageFilter.h b/include/effects/SkMagnifierImageFilter.h
index dda4190322..382f62bc52 100644
--- a/include/effects/SkMagnifierImageFilter.h
+++ b/include/effects/SkMagnifierImageFilter.h
@@ -19,7 +19,8 @@ public:
const CropRect* cropRect = nullptr);
void toString(SkString* str) const override;
- SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkMagnifierImageFilter)
+
+ Factory getFactory() const override { return CreateProc; }
protected:
SkMagnifierImageFilter(const SkRect& srcRect,
@@ -33,6 +34,9 @@ protected:
sk_sp<SkImageFilter> onMakeColorSpace(SkColorSpaceXformer*) const override;
private:
+ static sk_sp<SkFlattenable> CreateProc(SkReadBuffer&);
+ friend class SkFlattenable::PrivateInitializer;
+
SkRect fSrcRect;
SkScalar fInset;
diff --git a/include/effects/SkMatrixConvolutionImageFilter.h b/include/effects/SkMatrixConvolutionImageFilter.h
index 5361fef928..cb4f087a75 100644
--- a/include/effects/SkMatrixConvolutionImageFilter.h
+++ b/include/effects/SkMatrixConvolutionImageFilter.h
@@ -8,6 +8,7 @@
#ifndef SkMatrixConvolutionImageFilter_DEFINED
#define SkMatrixConvolutionImageFilter_DEFINED
+#include "SkFlattenable.h"
#include "SkImageFilter.h"
#include "SkScalar.h"
#include "SkSize.h"
@@ -68,7 +69,8 @@ public:
const CropRect* cropRect = nullptr);
void toString(SkString* str) const override;
- SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkMatrixConvolutionImageFilter)
+
+ Factory getFactory() const override { return CreateProc; }
protected:
SkMatrixConvolutionImageFilter(const SkISize& kernelSize,
@@ -90,6 +92,9 @@ protected:
bool affectsTransparentBlack() const override;
private:
+ static sk_sp<SkFlattenable> CreateProc(SkReadBuffer&);
+ friend class SkFlattenable::PrivateInitializer;
+
SkISize fKernelSize;
SkScalar* fKernel;
SkScalar fGain;
diff --git a/include/effects/SkMergeImageFilter.h b/include/effects/SkMergeImageFilter.h
index b1a85d5c74..5fc6bcb010 100644
--- a/include/effects/SkMergeImageFilter.h
+++ b/include/effects/SkMergeImageFilter.h
@@ -8,6 +8,7 @@
#ifndef SkMergeImageFilter_DEFINED
#define SkMergeImageFilter_DEFINED
+#include "SkFlattenable.h"
#include "SkImageFilter.h"
class SK_API SkMergeImageFilter : public SkImageFilter {
@@ -25,7 +26,8 @@ public:
}
void toString(SkString* str) const override;
- SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkMergeImageFilter)
+
+ Factory getFactory() const override { return CreateProc; }
protected:
void flatten(SkWriteBuffer&) const override;
@@ -36,6 +38,8 @@ protected:
private:
SkMergeImageFilter(sk_sp<SkImageFilter>* const filters, int count, const CropRect* cropRect);
+ static sk_sp<SkFlattenable> CreateProc(SkReadBuffer&);
+ friend class SkFlattenable::PrivateInitializer;
typedef SkImageFilter INHERITED;
};
diff --git a/include/effects/SkMorphologyImageFilter.h b/include/effects/SkMorphologyImageFilter.h
index d88a31dc65..ceb4867a79 100644
--- a/include/effects/SkMorphologyImageFilter.h
+++ b/include/effects/SkMorphologyImageFilter.h
@@ -9,6 +9,7 @@
#define SkMorphologyImageFilter_DEFINED
#include "SkColor.h"
+#include "SkFlattenable.h"
#include "SkImageFilter.h"
#include "SkSize.h"
@@ -62,7 +63,8 @@ public:
const CropRect* cropRect = nullptr);
void toString(SkString* str) const override;
- SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkDilateImageFilter)
+
+ Factory getFactory() const override { return CreateProc; }
protected:
Op op() const override { return kDilate_Op; }
@@ -72,6 +74,8 @@ private:
sk_sp<SkImageFilter> input,
const CropRect* cropRect)
: INHERITED(radiusX, radiusY, input, cropRect) {}
+ static sk_sp<SkFlattenable> CreateProc(SkReadBuffer&);
+ friend class SkFlattenable::PrivateInitializer;
typedef SkMorphologyImageFilter INHERITED;
};
@@ -84,7 +88,8 @@ public:
const CropRect* cropRect = nullptr);
void toString(SkString* str) const override;
- SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkErodeImageFilter)
+
+ Factory getFactory() const override { return CreateProc; }
protected:
Op op() const override { return kErode_Op; }
@@ -93,6 +98,8 @@ private:
SkErodeImageFilter(int radiusX, int radiusY,
sk_sp<SkImageFilter> input, const CropRect* cropRect)
: INHERITED(radiusX, radiusY, input, cropRect) {}
+ static sk_sp<SkFlattenable> CreateProc(SkReadBuffer&);
+ friend class SkFlattenable::PrivateInitializer;
typedef SkMorphologyImageFilter INHERITED;
};
diff --git a/include/effects/SkOffsetImageFilter.h b/include/effects/SkOffsetImageFilter.h
index 2d7b14f652..f352a76e07 100644
--- a/include/effects/SkOffsetImageFilter.h
+++ b/include/effects/SkOffsetImageFilter.h
@@ -8,6 +8,7 @@
#ifndef SkOffsetImageFilter_DEFINED
#define SkOffsetImageFilter_DEFINED
+#include "SkFlattenable.h"
#include "SkImageFilter.h"
#include "SkPoint.h"
@@ -20,7 +21,8 @@ public:
SkRect computeFastBounds(const SkRect& src) const override;
void toString(SkString* str) const override;
- SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkOffsetImageFilter)
+
+ Factory getFactory() const override { return CreateProc; }
protected:
void flatten(SkWriteBuffer&) const override;
@@ -32,6 +34,8 @@ protected:
private:
SkOffsetImageFilter(SkScalar dx, SkScalar dy, sk_sp<SkImageFilter> input, const CropRect*);
+ static sk_sp<SkFlattenable> CreateProc(SkReadBuffer&);
+ friend class SkFlattenable::PrivateInitializer;
SkVector fOffset;
diff --git a/include/effects/SkOverdrawColorFilter.h b/include/effects/SkOverdrawColorFilter.h
index 63f636a0cc..33eb27fcc2 100644
--- a/include/effects/SkOverdrawColorFilter.h
+++ b/include/effects/SkOverdrawColorFilter.h
@@ -36,7 +36,7 @@ public:
static sk_sp<SkFlattenable> CreateProc(SkReadBuffer& buffer);
Factory getFactory() const override { return CreateProc; }
- SK_DECLARE_FLATTENABLE_REGISTRAR_GROUP()
+ static void InitializeFlattenables();
protected:
void flatten(SkWriteBuffer& buffer) const override;
diff --git a/include/effects/SkPaintImageFilter.h b/include/effects/SkPaintImageFilter.h
index b27c2624b1..bf7c51b50e 100644
--- a/include/effects/SkPaintImageFilter.h
+++ b/include/effects/SkPaintImageFilter.h
@@ -8,6 +8,7 @@
#ifndef SkPaintImageFilter_DEFINED
#define SkPaintImageFilter_DEFINED
+#include "SkFlattenable.h"
#include "SkImageFilter.h"
#include "SkPaint.h"
@@ -27,7 +28,8 @@ public:
bool affectsTransparentBlack() const override;
void toString(SkString* str) const override;
- SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkPaintImageFilter)
+
+ Factory getFactory() const override { return CreateProc; }
protected:
void flatten(SkWriteBuffer&) const override;
@@ -37,6 +39,8 @@ protected:
private:
SkPaintImageFilter(const SkPaint& paint, const CropRect* rect);
+ static sk_sp<SkFlattenable> CreateProc(SkReadBuffer&);
+ friend class SkFlattenable::PrivateInitializer;
SkPaint fPaint;
diff --git a/include/effects/SkPerlinNoiseShader.h b/include/effects/SkPerlinNoiseShader.h
index 6b9bcd86d1..1623520cd6 100644
--- a/include/effects/SkPerlinNoiseShader.h
+++ b/include/effects/SkPerlinNoiseShader.h
@@ -51,7 +51,7 @@ public:
static sk_sp<SkShader> MakeImprovedNoise(SkScalar baseFrequencyX, SkScalar baseFrequencyY,
int numOctaves, SkScalar z);
- SK_DECLARE_FLATTENABLE_REGISTRAR_GROUP()
+ static void InitializeFlattenables();
private:
SkPerlinNoiseShader() = delete;
diff --git a/include/effects/SkPictureImageFilter.h b/include/effects/SkPictureImageFilter.h
index 1885cfe6ae..0cde3988c5 100644
--- a/include/effects/SkPictureImageFilter.h
+++ b/include/effects/SkPictureImageFilter.h
@@ -8,6 +8,7 @@
#ifndef SkPictureImageFilter_DEFINED
#define SkPictureImageFilter_DEFINED
+#include "SkFlattenable.h"
#include "SkImageFilter.h"
#include "SkPicture.h"
@@ -25,7 +26,8 @@ public:
static sk_sp<SkImageFilter> Make(sk_sp<SkPicture> picture, const SkRect& cropRect);
void toString(SkString* str) const override;
- SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkPictureImageFilter)
+
+ Factory getFactory() const override { return CreateProc; }
protected:
/* Constructs an SkPictureImageFilter object from an SkReadBuffer.
@@ -42,6 +44,8 @@ protected:
private:
explicit SkPictureImageFilter(sk_sp<SkPicture> picture);
SkPictureImageFilter(sk_sp<SkPicture> picture, const SkRect& cropRect, sk_sp<SkColorSpace>);
+ static sk_sp<SkFlattenable> CreateProc(SkReadBuffer&);
+ friend class SkFlattenable::PrivateInitializer;
sk_sp<SkPicture> fPicture;
SkRect fCropRect;
diff --git a/include/effects/SkTableColorFilter.h b/include/effects/SkTableColorFilter.h
index 2695f42357..3989b5ac2d 100644
--- a/include/effects/SkTableColorFilter.h
+++ b/include/effects/SkTableColorFilter.h
@@ -36,7 +36,7 @@ public:
const uint8_t tableG[256],
const uint8_t tableB[256]);
- SK_DECLARE_FLATTENABLE_REGISTRAR_GROUP()
+ static void InitializeFlattenables();
};
#endif
diff --git a/include/effects/SkTileImageFilter.h b/include/effects/SkTileImageFilter.h
index f62d8a02d4..c2e38823d0 100644
--- a/include/effects/SkTileImageFilter.h
+++ b/include/effects/SkTileImageFilter.h
@@ -8,6 +8,7 @@
#ifndef SkTileImageFilter_DEFINED
#define SkTileImageFilter_DEFINED
+#include "SkFlattenable.h"
#include "SkImageFilter.h"
class SK_API SkTileImageFilter : public SkImageFilter {
@@ -28,7 +29,8 @@ public:
SkRect computeFastBounds(const SkRect& src) const override;
void toString(SkString* str) const override;
- SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkTileImageFilter)
+
+ Factory getFactory() const override { return CreateProc; }
protected:
void flatten(SkWriteBuffer& buffer) const override;
@@ -40,6 +42,8 @@ protected:
private:
SkTileImageFilter(const SkRect& srcRect, const SkRect& dstRect, sk_sp<SkImageFilter> input)
: INHERITED(&input, 1, nullptr), fSrcRect(srcRect), fDstRect(dstRect) {}
+ static sk_sp<SkFlattenable> CreateProc(SkReadBuffer&);
+ friend class SkFlattenable::PrivateInitializer;
SkRect fSrcRect;
SkRect fDstRect;
diff --git a/include/effects/SkToSRGBColorFilter.h b/include/effects/SkToSRGBColorFilter.h
index 03bb37b172..797e9d81dc 100644
--- a/include/effects/SkToSRGBColorFilter.h
+++ b/include/effects/SkToSRGBColorFilter.h
@@ -8,6 +8,7 @@
#ifndef SkToSRGBColorFilter_DEFINED
#define SkToSRGBColorFilter_DEFINED
+#include "SkFlattenable.h"
#include "SkColorFilter.h"
#include "SkRefCnt.h"
@@ -27,13 +28,16 @@ public:
#endif
void toString(SkString* str) const override;
- SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkToSRGBColorFilter)
+
+ Factory getFactory() const override { return CreateProc; }
private:
void flatten(SkWriteBuffer&) const override;
SkToSRGBColorFilter(sk_sp<SkColorSpace>);
void onAppendStages(SkRasterPipeline*, SkColorSpace*, SkArenaAlloc*,
bool shaderIsOpaque) const override;
+ static sk_sp<SkFlattenable> CreateProc(SkReadBuffer&);
+ friend class SkFlattenable::PrivateInitializer;
sk_sp<SkColorSpace> fSrcColorSpace;
diff --git a/include/effects/SkXfermodeImageFilter.h b/include/effects/SkXfermodeImageFilter.h
index e677813288..c403d2fbe6 100644
--- a/include/effects/SkXfermodeImageFilter.h
+++ b/include/effects/SkXfermodeImageFilter.h
@@ -25,7 +25,7 @@ public:
return Make(mode, std::move(background), nullptr, nullptr);
}
- SK_DECLARE_FLATTENABLE_REGISTRAR_GROUP();
+ static void InitializeFlattenables();
private:
SkXfermodeImageFilter(); // can't instantiate