aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--BUILD.gn11
-rw-r--r--gn/effects.gni34
-rw-r--r--gn/effects_imagefilters.gni44
-rw-r--r--gn/shared_sources.gni1
-rw-r--r--include/core/SkFlattenable.h1
-rw-r--r--src/core/SkGlobalInitialization_core.cpp1
-rw-r--r--src/effects/imagefilters/SkAlphaThresholdFilter.cpp (renamed from src/effects/SkAlphaThresholdFilter.cpp)0
-rw-r--r--src/effects/imagefilters/SkArithmeticImageFilter.cpp (renamed from src/effects/SkArithmeticImageFilter.cpp)0
-rw-r--r--src/effects/imagefilters/SkColorFilterImageFilter.cpp (renamed from src/effects/SkColorFilterImageFilter.cpp)0
-rw-r--r--src/effects/imagefilters/SkComposeImageFilter.cpp (renamed from src/effects/SkComposeImageFilter.cpp)0
-rw-r--r--src/effects/imagefilters/SkDisplacementMapEffect.cpp (renamed from src/effects/SkDisplacementMapEffect.cpp)0
-rw-r--r--src/effects/imagefilters/SkDropShadowImageFilter.cpp (renamed from src/effects/SkDropShadowImageFilter.cpp)0
-rw-r--r--src/effects/imagefilters/SkImageSource.cpp (renamed from src/effects/SkImageSource.cpp)0
-rw-r--r--src/effects/imagefilters/SkLightingImageFilter.cpp (renamed from src/effects/SkLightingImageFilter.cpp)0
-rw-r--r--src/effects/imagefilters/SkMagnifierImageFilter.cpp (renamed from src/effects/SkMagnifierImageFilter.cpp)0
-rw-r--r--src/effects/imagefilters/SkMatrixConvolutionImageFilter.cpp (renamed from src/effects/SkMatrixConvolutionImageFilter.cpp)0
-rw-r--r--src/effects/imagefilters/SkMergeImageFilter.cpp (renamed from src/effects/SkMergeImageFilter.cpp)0
-rw-r--r--src/effects/imagefilters/SkMorphologyImageFilter.cpp (renamed from src/effects/SkMorphologyImageFilter.cpp)0
-rw-r--r--src/effects/imagefilters/SkOffsetImageFilter.cpp (renamed from src/effects/SkOffsetImageFilter.cpp)0
-rw-r--r--src/effects/imagefilters/SkPaintImageFilter.cpp (renamed from src/effects/SkPaintImageFilter.cpp)0
-rw-r--r--src/effects/imagefilters/SkPictureImageFilter.cpp (renamed from src/effects/SkPictureImageFilter.cpp)0
-rw-r--r--src/effects/imagefilters/SkTileImageFilter.cpp (renamed from src/effects/SkTileImageFilter.cpp)0
-rw-r--r--src/effects/imagefilters/SkXfermodeImageFilter.cpp (renamed from src/effects/SkXfermodeImageFilter.cpp)0
-rw-r--r--src/ports/SkGlobalInitialization_default.cpp49
-rw-r--r--src/ports/SkGlobalInitialization_default_imagefilters.cpp57
-rw-r--r--src/ports/SkGlobalInitialization_none_imagefilters.cpp10
26 files changed, 124 insertions, 84 deletions
diff --git a/BUILD.gn b/BUILD.gn
index 94ac8f5dc5..3f58f4480b 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -34,6 +34,7 @@ declare_args() {
skia_android_serial = ""
skia_enable_discrete_gpu = true
skia_enable_effects = true
+ skia_enable_effects_imagefilters = true
skia_enable_flutter_defines = false
skia_enable_fontmgr_empty = false
skia_enable_gpu = true
@@ -371,7 +372,15 @@ optional("effects") {
]
sources =
skia_effects_sources + [ "src/ports/SkGlobalInitialization_default.cpp" ]
- sources_when_disabled = [ "src/ports/SkGlobalInitialization_none.cpp" ]
+ if (skia_enable_effects_imagefilters) {
+ sources += skia_effects_imagefilter_sources
+ } else {
+ sources += [ "src/ports/SkGlobalInitialization_none_imagefilters.cpp" ]
+ }
+ sources_when_disabled = [
+ "src/ports/SkGlobalInitialization_none.cpp",
+ "src/ports/SkGlobalInitialization_none_imagefilters.cpp",
+ ]
}
optional("fontmgr_android") {
diff --git a/gn/effects.gni b/gn/effects.gni
index 93dbf7ea1c..299d5e986d 100644
--- a/gn/effects.gni
+++ b/gn/effects.gni
@@ -12,43 +12,26 @@ skia_effects_sources = [
"$_src/effects/Sk1DPathEffect.cpp",
"$_src/effects/Sk2DPathEffect.cpp",
- "$_src/effects/SkAlphaThresholdFilter.cpp",
- "$_src/effects/SkArithmeticImageFilter.cpp",
- "$_src/effects/SkColorFilterImageFilter.cpp",
"$_src/effects/SkColorMatrix.cpp",
"$_src/effects/SkColorMatrixFilter.cpp",
- "$_src/effects/SkComposeImageFilter.cpp",
"$_src/effects/SkCornerPathEffect.cpp",
"$_src/effects/SkDashPathEffect.cpp",
"$_src/effects/SkDiscretePathEffect.cpp",
- "$_src/effects/SkDisplacementMapEffect.cpp",
- "$_src/effects/SkDropShadowImageFilter.cpp",
"$_src/effects/SkEmbossMask.cpp",
"$_src/effects/SkEmbossMask.h",
"$_src/effects/SkEmbossMaskFilter.cpp",
- "$_src/effects/SkImageSource.cpp",
"$_src/effects/SkHighContrastFilter.cpp",
"$_src/effects/SkLayerDrawLooper.cpp",
- "$_src/effects/SkLightingImageFilter.cpp",
"$_src/effects/SkLumaColorFilter.cpp",
- "$_src/effects/SkMagnifierImageFilter.cpp",
- "$_src/effects/SkMatrixConvolutionImageFilter.cpp",
- "$_src/effects/SkMergeImageFilter.cpp",
- "$_src/effects/SkMorphologyImageFilter.cpp",
- "$_src/effects/SkOffsetImageFilter.cpp",
"$_src/effects/SkOverdrawColorFilter.cpp",
"$_src/effects/SkPackBits.cpp",
"$_src/effects/SkPackBits.h",
"$_src/effects/SkPaintFlagsDrawFilter.cpp",
- "$_src/effects/SkPaintImageFilter.cpp",
- "$_src/effects/SkPictureImageFilter.cpp",
"$_src/effects/SkShaderMaskFilter.cpp",
"$_src/effects/SkTableColorFilter.cpp",
"$_src/effects/SkTableMaskFilter.cpp",
- "$_src/effects/SkTileImageFilter.cpp",
"$_src/effects/SkToSRGBColorFilter.cpp",
"$_src/effects/SkTrimPathEffect.cpp",
- "$_src/effects/SkXfermodeImageFilter.cpp",
"$_src/shaders/SkPerlinNoiseShader.cpp",
"$_src/shaders/gradients/Sk4fGradientBase.cpp",
@@ -73,37 +56,20 @@ skia_effects_sources = [
"$_include/effects/Sk1DPathEffect.h",
"$_include/effects/Sk2DPathEffect.h",
- "$_include/effects/SkAlphaThresholdFilter.h",
- "$_include/effects/SkArithmeticImageFilter.h",
"$_include/effects/SkBlurDrawLooper.h",
- "$_include/effects/SkBlurImageFilter.h",
"$_include/effects/SkBlurMaskFilter.h",
- "$_include/effects/SkColorFilterImageFilter.h",
"$_include/effects/SkColorMatrix.h",
"$_include/effects/SkColorMatrixFilter.h",
"$_include/effects/SkCornerPathEffect.h",
"$_include/effects/SkDashPathEffect.h",
"$_include/effects/SkDiscretePathEffect.h",
- "$_include/effects/SkDisplacementMapEffect.h",
- "$_include/effects/SkDropShadowImageFilter.h",
"$_include/effects/SkGradientShader.h",
- "$_include/effects/SkImageSource.h",
"$_include/effects/SkLayerDrawLooper.h",
- "$_include/effects/SkLightingImageFilter.h",
"$_include/effects/SkLumaColorFilter.h",
- "$_include/effects/SkMagnifierImageFilter.h",
- "$_include/effects/SkMorphologyImageFilter.h",
- "$_include/effects/SkOffsetImageFilter.h",
"$_include/effects/SkOverdrawColorFilter.h",
"$_include/effects/SkPaintFlagsDrawFilter.h",
- "$_include/effects/SkPaintImageFilter.h",
"$_include/effects/SkPerlinNoiseShader.h",
"$_include/effects/SkTableColorFilter.h",
"$_include/effects/SkTableMaskFilter.h",
- "$_include/effects/SkTileImageFilter.h",
"$_include/effects/SkToSRGBColorFilter.h",
- "$_include/effects/SkXfermodeImageFilter.h",
]
-
-# this will move to a real file after we land a reference to this in chrome
-skia_effects_imagefilter_sources = []
diff --git a/gn/effects_imagefilters.gni b/gn/effects_imagefilters.gni
new file mode 100644
index 0000000000..70c30c8d0b
--- /dev/null
+++ b/gn/effects_imagefilters.gni
@@ -0,0 +1,44 @@
+# Copyright 2016 Google Inc.
+#
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# Things are easiest for everyone if these source paths are absolute.
+_src = get_path_info("../src", "abspath")
+_include = get_path_info("../include", "abspath")
+
+skia_effects_imagefilter_sources = [
+ "$_src/ports/SkGlobalInitialization_default_imagefilters.cpp",
+
+ "$_src/effects/imagefilters/SkAlphaThresholdFilter.cpp",
+ "$_src/effects/imagefilters/SkArithmeticImageFilter.cpp",
+ "$_src/effects/imagefilters/SkColorFilterImageFilter.cpp",
+ "$_src/effects/imagefilters/SkComposeImageFilter.cpp",
+ "$_src/effects/imagefilters/SkDisplacementMapEffect.cpp",
+ "$_src/effects/imagefilters/SkDropShadowImageFilter.cpp",
+ "$_src/effects/imagefilters/SkImageSource.cpp",
+ "$_src/effects/imagefilters/SkLightingImageFilter.cpp",
+ "$_src/effects/imagefilters/SkMagnifierImageFilter.cpp",
+ "$_src/effects/imagefilters/SkMatrixConvolutionImageFilter.cpp",
+ "$_src/effects/imagefilters/SkMergeImageFilter.cpp",
+ "$_src/effects/imagefilters/SkMorphologyImageFilter.cpp",
+ "$_src/effects/imagefilters/SkOffsetImageFilter.cpp",
+ "$_src/effects/imagefilters/SkPaintImageFilter.cpp",
+ "$_src/effects/imagefilters/SkPictureImageFilter.cpp",
+ "$_src/effects/imagefilters/SkTileImageFilter.cpp",
+ "$_src/effects/imagefilters/SkXfermodeImageFilter.cpp",
+
+ "$_include/effects/SkAlphaThresholdFilter.h",
+ "$_include/effects/SkArithmeticImageFilter.h",
+ "$_include/effects/SkColorFilterImageFilter.h",
+ "$_include/effects/SkDisplacementMapEffect.h",
+ "$_include/effects/SkDropShadowImageFilter.h",
+ "$_include/effects/SkImageSource.h",
+ "$_include/effects/SkLightingImageFilter.h",
+ "$_include/effects/SkMagnifierImageFilter.h",
+ "$_include/effects/SkMorphologyImageFilter.h",
+ "$_include/effects/SkOffsetImageFilter.h",
+ "$_include/effects/SkPaintImageFilter.h",
+ "$_include/effects/SkTileImageFilter.h",
+ "$_include/effects/SkXfermodeImageFilter.h",
+]
diff --git a/gn/shared_sources.gni b/gn/shared_sources.gni
index 6df999921a..648d3ee7a9 100644
--- a/gn/shared_sources.gni
+++ b/gn/shared_sources.gni
@@ -5,6 +5,7 @@
import("core.gni")
import("effects.gni")
+import("effects_imagefilters.gni")
import("gpu.gni")
import("opts.gni")
import("pdf.gni")
diff --git a/include/core/SkFlattenable.h b/include/core/SkFlattenable.h
index 19fabe4086..1bee00a403 100644
--- a/include/core/SkFlattenable.h
+++ b/include/core/SkFlattenable.h
@@ -90,6 +90,7 @@ protected:
public:
static void InitCore();
static void InitEffects();
+ static void InitImageFilters();
};
private:
diff --git a/src/core/SkGlobalInitialization_core.cpp b/src/core/SkGlobalInitialization_core.cpp
index cb4d1d0549..27f801d6c1 100644
--- a/src/core/SkGlobalInitialization_core.cpp
+++ b/src/core/SkGlobalInitialization_core.cpp
@@ -50,6 +50,7 @@ void SkFlattenable::PrivateInitializer::InitCore() {
// Now initialize any optional/additional effects (implemented in src/ports)
InitEffects();
+ InitImageFilters();
// Finalize flattenable initialization.
SkFlattenable::Finalize();
diff --git a/src/effects/SkAlphaThresholdFilter.cpp b/src/effects/imagefilters/SkAlphaThresholdFilter.cpp
index 9dc8ae4b02..9dc8ae4b02 100644
--- a/src/effects/SkAlphaThresholdFilter.cpp
+++ b/src/effects/imagefilters/SkAlphaThresholdFilter.cpp
diff --git a/src/effects/SkArithmeticImageFilter.cpp b/src/effects/imagefilters/SkArithmeticImageFilter.cpp
index 3fc065536b..3fc065536b 100644
--- a/src/effects/SkArithmeticImageFilter.cpp
+++ b/src/effects/imagefilters/SkArithmeticImageFilter.cpp
diff --git a/src/effects/SkColorFilterImageFilter.cpp b/src/effects/imagefilters/SkColorFilterImageFilter.cpp
index fcbe2261db..fcbe2261db 100644
--- a/src/effects/SkColorFilterImageFilter.cpp
+++ b/src/effects/imagefilters/SkColorFilterImageFilter.cpp
diff --git a/src/effects/SkComposeImageFilter.cpp b/src/effects/imagefilters/SkComposeImageFilter.cpp
index 842588d9c6..842588d9c6 100644
--- a/src/effects/SkComposeImageFilter.cpp
+++ b/src/effects/imagefilters/SkComposeImageFilter.cpp
diff --git a/src/effects/SkDisplacementMapEffect.cpp b/src/effects/imagefilters/SkDisplacementMapEffect.cpp
index 8983fcacbd..8983fcacbd 100644
--- a/src/effects/SkDisplacementMapEffect.cpp
+++ b/src/effects/imagefilters/SkDisplacementMapEffect.cpp
diff --git a/src/effects/SkDropShadowImageFilter.cpp b/src/effects/imagefilters/SkDropShadowImageFilter.cpp
index 36a9d7110d..36a9d7110d 100644
--- a/src/effects/SkDropShadowImageFilter.cpp
+++ b/src/effects/imagefilters/SkDropShadowImageFilter.cpp
diff --git a/src/effects/SkImageSource.cpp b/src/effects/imagefilters/SkImageSource.cpp
index 960de37b33..960de37b33 100644
--- a/src/effects/SkImageSource.cpp
+++ b/src/effects/imagefilters/SkImageSource.cpp
diff --git a/src/effects/SkLightingImageFilter.cpp b/src/effects/imagefilters/SkLightingImageFilter.cpp
index 064c16d48a..064c16d48a 100644
--- a/src/effects/SkLightingImageFilter.cpp
+++ b/src/effects/imagefilters/SkLightingImageFilter.cpp
diff --git a/src/effects/SkMagnifierImageFilter.cpp b/src/effects/imagefilters/SkMagnifierImageFilter.cpp
index 40624ab05a..40624ab05a 100644
--- a/src/effects/SkMagnifierImageFilter.cpp
+++ b/src/effects/imagefilters/SkMagnifierImageFilter.cpp
diff --git a/src/effects/SkMatrixConvolutionImageFilter.cpp b/src/effects/imagefilters/SkMatrixConvolutionImageFilter.cpp
index 9e71ab629e..9e71ab629e 100644
--- a/src/effects/SkMatrixConvolutionImageFilter.cpp
+++ b/src/effects/imagefilters/SkMatrixConvolutionImageFilter.cpp
diff --git a/src/effects/SkMergeImageFilter.cpp b/src/effects/imagefilters/SkMergeImageFilter.cpp
index 3225ba8821..3225ba8821 100644
--- a/src/effects/SkMergeImageFilter.cpp
+++ b/src/effects/imagefilters/SkMergeImageFilter.cpp
diff --git a/src/effects/SkMorphologyImageFilter.cpp b/src/effects/imagefilters/SkMorphologyImageFilter.cpp
index 8b3e76cb5d..8b3e76cb5d 100644
--- a/src/effects/SkMorphologyImageFilter.cpp
+++ b/src/effects/imagefilters/SkMorphologyImageFilter.cpp
diff --git a/src/effects/SkOffsetImageFilter.cpp b/src/effects/imagefilters/SkOffsetImageFilter.cpp
index 8dacc11120..8dacc11120 100644
--- a/src/effects/SkOffsetImageFilter.cpp
+++ b/src/effects/imagefilters/SkOffsetImageFilter.cpp
diff --git a/src/effects/SkPaintImageFilter.cpp b/src/effects/imagefilters/SkPaintImageFilter.cpp
index c0be41fdb9..c0be41fdb9 100644
--- a/src/effects/SkPaintImageFilter.cpp
+++ b/src/effects/imagefilters/SkPaintImageFilter.cpp
diff --git a/src/effects/SkPictureImageFilter.cpp b/src/effects/imagefilters/SkPictureImageFilter.cpp
index b9c298dbac..b9c298dbac 100644
--- a/src/effects/SkPictureImageFilter.cpp
+++ b/src/effects/imagefilters/SkPictureImageFilter.cpp
diff --git a/src/effects/SkTileImageFilter.cpp b/src/effects/imagefilters/SkTileImageFilter.cpp
index 7ced09ec6e..7ced09ec6e 100644
--- a/src/effects/SkTileImageFilter.cpp
+++ b/src/effects/imagefilters/SkTileImageFilter.cpp
diff --git a/src/effects/SkXfermodeImageFilter.cpp b/src/effects/imagefilters/SkXfermodeImageFilter.cpp
index 7393ab9485..7393ab9485 100644
--- a/src/effects/SkXfermodeImageFilter.cpp
+++ b/src/effects/imagefilters/SkXfermodeImageFilter.cpp
diff --git a/src/ports/SkGlobalInitialization_default.cpp b/src/ports/SkGlobalInitialization_default.cpp
index 83a35acd4e..22aabc2314 100644
--- a/src/ports/SkGlobalInitialization_default.cpp
+++ b/src/ports/SkGlobalInitialization_default.cpp
@@ -7,48 +7,21 @@
#include "Sk1DPathEffect.h"
#include "Sk2DPathEffect.h"
-#include "SkAlphaThresholdFilter.h"
-#include "SkBlurImageFilter.h"
-#include "SkColorFilterImageFilter.h"
#include "SkColorMatrixFilterRowMajor255.h"
-#include "SkComposeImageFilter.h"
#include "SkCornerPathEffect.h"
#include "../../src/effects/SkDashImpl.h"
#include "SkDiscretePathEffect.h"
-#include "SkDisplacementMapEffect.h"
-#include "SkDropShadowImageFilter.h"
#include "../../src/effects/SkEmbossMaskFilter.h"
#include "SkGradientShader.h"
#include "SkHighContrastFilter.h"
-#include "SkImageSource.h"
#include "SkLayerDrawLooper.h"
-#include "SkLightingImageFilter.h"
-#include "SkLocalMatrixImageFilter.h"
#include "SkLumaColorFilter.h"
-#include "SkMagnifierImageFilter.h"
-#include "SkMatrixConvolutionImageFilter.h"
-#include "SkMergeImageFilter.h"
-#include "SkMorphologyImageFilter.h"
-#include "SkOffsetImageFilter.h"
#include "SkOverdrawColorFilter.h"
-#include "SkPaintImageFilter.h"
#include "SkPerlinNoiseShader.h"
-#include "SkPictureImageFilter.h"
#include "SkShaderMaskFilter.h"
#include "SkTableColorFilter.h"
-#include "SkTileImageFilter.h"
#include "SkToSRGBColorFilter.h"
#include "../../src/effects/SkTrimPE.h"
-#include "SkXfermodeImageFilter.h"
-
-// Security note:
-//
-// As new subclasses are added here, they should be reviewed by chrome security before they
-// support deserializing cross-process: chrome-security@google.com. SampleFilterFuzz.cpp should
-// also be amended to exercise the new subclass.
-//
-// See SkReadBuffer::isCrossProcess() and SkPicture::PictureIOSecurityPrecautionsEnabled()
-//
/*
* None of these are strictly "required" for Skia to operate.
@@ -71,7 +44,6 @@ void SkFlattenable::PrivateInitializer::InitEffects() {
SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkColorMatrixFilterRowMajor255)
SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLumaColorFilter)
SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkToSRGBColorFilter)
- SkAlphaThresholdFilter::InitializeFlattenables();
SkTableColorFilter::InitializeFlattenables();
SkOverdrawColorFilter::InitializeFlattenables();
SkHighContrastFilter::InitializeFlattenables();
@@ -88,25 +60,4 @@ void SkFlattenable::PrivateInitializer::InitEffects() {
SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLine2DPathEffect)
SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkPath2DPathEffect)
SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkTrimPE)
-
- // ImageFilter
- SkImageFilter::InitializeFlattenables();
- SkArithmeticImageFilter::InitializeFlattenables();
- SkXfermodeImageFilter::InitializeFlattenables();
- SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkDilateImageFilter)
- SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkDisplacementMapEffect)
- SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkDropShadowImageFilter)
- SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkErodeImageFilter)
- SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkImageSource)
- SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLocalMatrixImageFilter)
- SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkPaintImageFilter)
- SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkPictureImageFilter)
- SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkTileImageFilter)
- SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkMagnifierImageFilter)
- SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkMatrixConvolutionImageFilter)
- SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkOffsetImageFilter)
- SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkComposeImageFilter)
- SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkMergeImageFilter)
- SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkColorFilterImageFilter)
- SkLightingImageFilter::InitializeFlattenables();
}
diff --git a/src/ports/SkGlobalInitialization_default_imagefilters.cpp b/src/ports/SkGlobalInitialization_default_imagefilters.cpp
new file mode 100644
index 0000000000..5d731778e3
--- /dev/null
+++ b/src/ports/SkGlobalInitialization_default_imagefilters.cpp
@@ -0,0 +1,57 @@
+/*
+ * Copyright 2011 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#include "SkFlattenablePriv.h"
+#include "SkAlphaThresholdFilter.h"
+#include "SkBlurImageFilter.h"
+#include "SkColorFilterImageFilter.h"
+#include "SkComposeImageFilter.h"
+#include "SkDisplacementMapEffect.h"
+#include "SkDropShadowImageFilter.h"
+#include "SkImageSource.h"
+#include "SkLightingImageFilter.h"
+#include "SkLocalMatrixImageFilter.h"
+#include "SkMagnifierImageFilter.h"
+#include "SkMatrixConvolutionImageFilter.h"
+#include "SkMergeImageFilter.h"
+#include "SkMorphologyImageFilter.h"
+#include "SkOffsetImageFilter.h"
+#include "SkPaintImageFilter.h"
+#include "SkPictureImageFilter.h"
+#include "SkTileImageFilter.h"
+#include "SkXfermodeImageFilter.h"
+
+/*
+ * None of these are strictly "required" for Skia to operate.
+ *
+ * These are the bulk of our "effects" -- subclasses of various effects on SkPaint.
+ *
+ * Clients should feel free to dup this file and modify it as needed. This function "InitEffects"
+ * will automatically be called before any of skia's effects are asked to be deserialized.
+ */
+void SkFlattenable::PrivateInitializer::InitImageFilters() {
+ SkAlphaThresholdFilter::InitializeFlattenables();
+ SkImageFilter::InitializeFlattenables();
+ SkArithmeticImageFilter::InitializeFlattenables();
+ SkXfermodeImageFilter::InitializeFlattenables();
+ SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkDilateImageFilter)
+ SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkDisplacementMapEffect)
+ SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkDropShadowImageFilter)
+ SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkErodeImageFilter)
+ SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkImageSource)
+ SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLocalMatrixImageFilter)
+ SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkPaintImageFilter)
+ SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkPictureImageFilter)
+ SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkTileImageFilter)
+ SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkMagnifierImageFilter)
+ SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkMatrixConvolutionImageFilter)
+ SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkOffsetImageFilter)
+ SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkComposeImageFilter)
+ SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkMergeImageFilter)
+ SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkColorFilterImageFilter)
+ SkLightingImageFilter::InitializeFlattenables();
+}
diff --git a/src/ports/SkGlobalInitialization_none_imagefilters.cpp b/src/ports/SkGlobalInitialization_none_imagefilters.cpp
new file mode 100644
index 0000000000..c3b622fa1a
--- /dev/null
+++ b/src/ports/SkGlobalInitialization_none_imagefilters.cpp
@@ -0,0 +1,10 @@
+/*
+ * Copyright 2017 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#include "SkFlattenable.h"
+
+void SkFlattenable::PrivateInitializer::InitImageFilters() {}