1*c8dee2aaSAndroid Build Coastguard Worker /* 2*c8dee2aaSAndroid Build Coastguard Worker * Copyright 2011 Google Inc. 3*c8dee2aaSAndroid Build Coastguard Worker * 4*c8dee2aaSAndroid Build Coastguard Worker * Use of this source code is governed by a BSD-style license that can be 5*c8dee2aaSAndroid Build Coastguard Worker * found in the LICENSE file. 6*c8dee2aaSAndroid Build Coastguard Worker */ 7*c8dee2aaSAndroid Build Coastguard Worker 8*c8dee2aaSAndroid Build Coastguard Worker #include "include/core/SkFlattenable.h" 9*c8dee2aaSAndroid Build Coastguard Worker 10*c8dee2aaSAndroid Build Coastguard Worker #if defined(SK_DISABLE_EFFECT_DESERIALIZATION) 11*c8dee2aaSAndroid Build Coastguard Worker InitEffects()12*c8dee2aaSAndroid Build Coastguard Worker void SkFlattenable::PrivateInitializer::InitEffects() {} InitImageFilters()13*c8dee2aaSAndroid Build Coastguard Worker void SkFlattenable::PrivateInitializer::InitImageFilters() {} 14*c8dee2aaSAndroid Build Coastguard Worker 15*c8dee2aaSAndroid Build Coastguard Worker #else 16*c8dee2aaSAndroid Build Coastguard Worker 17*c8dee2aaSAndroid Build Coastguard Worker #include "include/core/SkBBHFactory.h" 18*c8dee2aaSAndroid Build Coastguard Worker #include "include/core/SkColorFilter.h" 19*c8dee2aaSAndroid Build Coastguard Worker #include "include/core/SkPathEffect.h" 20*c8dee2aaSAndroid Build Coastguard Worker #include "include/effects/Sk1DPathEffect.h" 21*c8dee2aaSAndroid Build Coastguard Worker #include "include/effects/Sk2DPathEffect.h" 22*c8dee2aaSAndroid Build Coastguard Worker #include "include/effects/SkCornerPathEffect.h" 23*c8dee2aaSAndroid Build Coastguard Worker #include "include/effects/SkDiscretePathEffect.h" 24*c8dee2aaSAndroid Build Coastguard Worker #include "include/effects/SkImageFilters.h" 25*c8dee2aaSAndroid Build Coastguard Worker #include "include/effects/SkOverdrawColorFilter.h" 26*c8dee2aaSAndroid Build Coastguard Worker #include "include/effects/SkPerlinNoiseShader.h" 27*c8dee2aaSAndroid Build Coastguard Worker #include "include/effects/SkRuntimeEffect.h" 28*c8dee2aaSAndroid Build Coastguard Worker #include "include/effects/SkShaderMaskFilter.h" 29*c8dee2aaSAndroid Build Coastguard Worker #include "src/core/SkBlendModeBlender.h" 30*c8dee2aaSAndroid Build Coastguard Worker #include "src/core/SkImageFilter_Base.h" 31*c8dee2aaSAndroid Build Coastguard Worker #include "src/core/SkLocalMatrixImageFilter.h" 32*c8dee2aaSAndroid Build Coastguard Worker #include "src/core/SkRecordedDrawable.h" 33*c8dee2aaSAndroid Build Coastguard Worker #include "src/effects/SkDashImpl.h" 34*c8dee2aaSAndroid Build Coastguard Worker #include "src/effects/SkEmbossMaskFilter.h" 35*c8dee2aaSAndroid Build Coastguard Worker #include "src/effects/SkTrimPE.h" 36*c8dee2aaSAndroid Build Coastguard Worker #include "src/shaders/SkBitmapProcShader.h" 37*c8dee2aaSAndroid Build Coastguard Worker #include "src/shaders/SkColorFilterShader.h" 38*c8dee2aaSAndroid Build Coastguard Worker #include "src/shaders/SkImageShader.h" 39*c8dee2aaSAndroid Build Coastguard Worker #include "src/shaders/SkLocalMatrixShader.h" 40*c8dee2aaSAndroid Build Coastguard Worker #include "src/shaders/SkPictureShader.h" 41*c8dee2aaSAndroid Build Coastguard Worker #include "src/shaders/SkShaderBase.h" 42*c8dee2aaSAndroid Build Coastguard Worker #include "src/shaders/gradients/SkGradientBaseShader.h" 43*c8dee2aaSAndroid Build Coastguard Worker 44*c8dee2aaSAndroid Build Coastguard Worker /** 45*c8dee2aaSAndroid Build Coastguard Worker * Register most effects for deserialization. 46*c8dee2aaSAndroid Build Coastguard Worker * 47*c8dee2aaSAndroid Build Coastguard Worker * None of these are strictly required for Skia to operate, so if you're 48*c8dee2aaSAndroid Build Coastguard Worker * not using deserialization yourself, you can define 49*c8dee2aaSAndroid Build Coastguard Worker * SK_DISABLE_EFFECT_SERIALIZATION, or modify/replace this file as needed. 50*c8dee2aaSAndroid Build Coastguard Worker */ InitEffects()51*c8dee2aaSAndroid Build Coastguard Worker void SkFlattenable::PrivateInitializer::InitEffects() { 52*c8dee2aaSAndroid Build Coastguard Worker // Shaders. 53*c8dee2aaSAndroid Build Coastguard Worker SkRegisterBlendShaderFlattenable(); 54*c8dee2aaSAndroid Build Coastguard Worker SkRegisterColor4ShaderFlattenable(); 55*c8dee2aaSAndroid Build Coastguard Worker SK_REGISTER_FLATTENABLE(SkColorFilterShader); 56*c8dee2aaSAndroid Build Coastguard Worker SkRegisterColorShaderFlattenable(); 57*c8dee2aaSAndroid Build Coastguard Worker SkRegisterCoordClampShaderFlattenable(); 58*c8dee2aaSAndroid Build Coastguard Worker SkRegisterEmptyShaderFlattenable(); 59*c8dee2aaSAndroid Build Coastguard Worker SK_REGISTER_FLATTENABLE(SkLocalMatrixShader); 60*c8dee2aaSAndroid Build Coastguard Worker SK_REGISTER_FLATTENABLE(SkPictureShader); 61*c8dee2aaSAndroid Build Coastguard Worker SkRegisterConicalGradientShaderFlattenable(); 62*c8dee2aaSAndroid Build Coastguard Worker SkRegisterLinearGradientShaderFlattenable(); 63*c8dee2aaSAndroid Build Coastguard Worker SkRegisterRadialGradientShaderFlattenable(); 64*c8dee2aaSAndroid Build Coastguard Worker SkRegisterSweepGradientShaderFlattenable(); 65*c8dee2aaSAndroid Build Coastguard Worker SkRegisterPerlinNoiseShaderFlattenable(); 66*c8dee2aaSAndroid Build Coastguard Worker SkShaderBase::RegisterFlattenables(); 67*c8dee2aaSAndroid Build Coastguard Worker 68*c8dee2aaSAndroid Build Coastguard Worker // Color filters. 69*c8dee2aaSAndroid Build Coastguard Worker SkRegisterMatrixColorFilterFlattenable(); 70*c8dee2aaSAndroid Build Coastguard Worker SkRegisterComposeColorFilterFlattenable(); 71*c8dee2aaSAndroid Build Coastguard Worker SkRegisterModeColorFilterFlattenable(); 72*c8dee2aaSAndroid Build Coastguard Worker SkRegisterSkColorSpaceXformColorFilterFlattenable(); 73*c8dee2aaSAndroid Build Coastguard Worker SkRegisterWorkingFormatColorFilterFlattenable(); 74*c8dee2aaSAndroid Build Coastguard Worker SkRegisterTableColorFilterFlattenable(); 75*c8dee2aaSAndroid Build Coastguard Worker 76*c8dee2aaSAndroid Build Coastguard Worker // Blenders. 77*c8dee2aaSAndroid Build Coastguard Worker SK_REGISTER_FLATTENABLE(SkBlendModeBlender); 78*c8dee2aaSAndroid Build Coastguard Worker 79*c8dee2aaSAndroid Build Coastguard Worker // Runtime shaders, color filters, and blenders. 80*c8dee2aaSAndroid Build Coastguard Worker SkRuntimeEffect::RegisterFlattenables(); 81*c8dee2aaSAndroid Build Coastguard Worker 82*c8dee2aaSAndroid Build Coastguard Worker // Mask filters. 83*c8dee2aaSAndroid Build Coastguard Worker SK_REGISTER_FLATTENABLE(SkEmbossMaskFilter); 84*c8dee2aaSAndroid Build Coastguard Worker SkMaskFilter::RegisterFlattenables(); 85*c8dee2aaSAndroid Build Coastguard Worker SkShaderMaskFilter::RegisterFlattenables(); 86*c8dee2aaSAndroid Build Coastguard Worker 87*c8dee2aaSAndroid Build Coastguard Worker // Path effects. 88*c8dee2aaSAndroid Build Coastguard Worker SkCornerPathEffect::RegisterFlattenables(); 89*c8dee2aaSAndroid Build Coastguard Worker SK_REGISTER_FLATTENABLE(SkDashImpl); 90*c8dee2aaSAndroid Build Coastguard Worker SkDiscretePathEffect::RegisterFlattenables(); 91*c8dee2aaSAndroid Build Coastguard Worker SkLine2DPathEffect::RegisterFlattenables(); 92*c8dee2aaSAndroid Build Coastguard Worker SkPath2DPathEffect::RegisterFlattenables(); 93*c8dee2aaSAndroid Build Coastguard Worker SkPath1DPathEffect::RegisterFlattenables(); 94*c8dee2aaSAndroid Build Coastguard Worker SK_REGISTER_FLATTENABLE(SkTrimPE); 95*c8dee2aaSAndroid Build Coastguard Worker SkPathEffectBase::RegisterFlattenables(); 96*c8dee2aaSAndroid Build Coastguard Worker 97*c8dee2aaSAndroid Build Coastguard Worker // Misc. 98*c8dee2aaSAndroid Build Coastguard Worker SK_REGISTER_FLATTENABLE(SkRecordedDrawable); 99*c8dee2aaSAndroid Build Coastguard Worker } 100*c8dee2aaSAndroid Build Coastguard Worker 101*c8dee2aaSAndroid Build Coastguard Worker /* 102*c8dee2aaSAndroid Build Coastguard Worker * Register SkImageFilters for deserialization. 103*c8dee2aaSAndroid Build Coastguard Worker * 104*c8dee2aaSAndroid Build Coastguard Worker * None of these are strictly required for Skia to operate, so if you're 105*c8dee2aaSAndroid Build Coastguard Worker * not using deserialization yourself, you can define 106*c8dee2aaSAndroid Build Coastguard Worker * SK_DISABLE_EFFECT_SERIALIZATION, or modify/replace this file as needed. 107*c8dee2aaSAndroid Build Coastguard Worker */ InitImageFilters()108*c8dee2aaSAndroid Build Coastguard Worker void SkFlattenable::PrivateInitializer::InitImageFilters() { 109*c8dee2aaSAndroid Build Coastguard Worker SkRegisterBlendImageFilterFlattenable(); 110*c8dee2aaSAndroid Build Coastguard Worker SkRegisterBlurImageFilterFlattenable(); 111*c8dee2aaSAndroid Build Coastguard Worker SkRegisterColorFilterImageFilterFlattenable(); 112*c8dee2aaSAndroid Build Coastguard Worker SkRegisterComposeImageFilterFlattenable(); 113*c8dee2aaSAndroid Build Coastguard Worker SkRegisterCropImageFilterFlattenable(); 114*c8dee2aaSAndroid Build Coastguard Worker SkRegisterDisplacementMapImageFilterFlattenable(); 115*c8dee2aaSAndroid Build Coastguard Worker SkRegisterImageImageFilterFlattenable(); 116*c8dee2aaSAndroid Build Coastguard Worker SkRegisterLightingImageFilterFlattenables(); 117*c8dee2aaSAndroid Build Coastguard Worker SkRegisterMagnifierImageFilterFlattenable(); 118*c8dee2aaSAndroid Build Coastguard Worker SkRegisterMatrixConvolutionImageFilterFlattenable(); 119*c8dee2aaSAndroid Build Coastguard Worker SkRegisterMatrixTransformImageFilterFlattenable(); 120*c8dee2aaSAndroid Build Coastguard Worker SkRegisterMergeImageFilterFlattenable(); 121*c8dee2aaSAndroid Build Coastguard Worker SkRegisterMorphologyImageFilterFlattenables(); 122*c8dee2aaSAndroid Build Coastguard Worker SkRegisterPictureImageFilterFlattenable(); 123*c8dee2aaSAndroid Build Coastguard Worker SkRegisterRuntimeImageFilterFlattenable(); 124*c8dee2aaSAndroid Build Coastguard Worker SkRegisterShaderImageFilterFlattenable(); 125*c8dee2aaSAndroid Build Coastguard Worker SK_REGISTER_FLATTENABLE(SkLocalMatrixImageFilter); 126*c8dee2aaSAndroid Build Coastguard Worker 127*c8dee2aaSAndroid Build Coastguard Worker SkRegisterLegacyDropShadowImageFilterFlattenable(); 128*c8dee2aaSAndroid Build Coastguard Worker } 129*c8dee2aaSAndroid Build Coastguard Worker 130*c8dee2aaSAndroid Build Coastguard Worker #endif 131