diff options
Diffstat (limited to 'include/effects')
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 |