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