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 SK_REGISTER_FLATTENABLE(SkColorFilterShader); 55 SkRegisterColorShaderFlattenable(); 56 SkRegisterCoordClampShaderFlattenable(); 57 SkRegisterEmptyShaderFlattenable(); 58 SK_REGISTER_FLATTENABLE(SkLocalMatrixShader); 59 SK_REGISTER_FLATTENABLE(SkPictureShader); 60 SkRegisterConicalGradientShaderFlattenable(); 61 SkRegisterLinearGradientShaderFlattenable(); 62 SkRegisterRadialGradientShaderFlattenable(); 63 SkRegisterSweepGradientShaderFlattenable(); 64 SkRegisterPerlinNoiseShaderFlattenable(); 65 SkShaderBase::RegisterFlattenables(); 66 67 // Color filters. 68 SkRegisterMatrixColorFilterFlattenable(); 69 SkRegisterComposeColorFilterFlattenable(); 70 SkRegisterModeColorFilterFlattenable(); 71 SkRegisterSkColorSpaceXformColorFilterFlattenable(); 72 SkRegisterWorkingFormatColorFilterFlattenable(); 73 SkRegisterTableColorFilterFlattenable(); 74 75 // Blenders. 76 SK_REGISTER_FLATTENABLE(SkBlendModeBlender); 77 78 // Runtime shaders, color filters, and blenders. 79 SkRuntimeEffect::RegisterFlattenables(); 80 81 // Mask filters. 82 SK_REGISTER_FLATTENABLE(SkEmbossMaskFilter); 83 SkMaskFilter::RegisterFlattenables(); 84 SkShaderMaskFilter::RegisterFlattenables(); 85 86 // Path effects. 87 SkCornerPathEffect::RegisterFlattenables(); 88 SK_REGISTER_FLATTENABLE(SkDashImpl); 89 SkDiscretePathEffect::RegisterFlattenables(); 90 SkLine2DPathEffect::RegisterFlattenables(); 91 SkPath2DPathEffect::RegisterFlattenables(); 92 SkPath1DPathEffect::RegisterFlattenables(); 93 SK_REGISTER_FLATTENABLE(SkTrimPE); 94 SkPathEffectBase::RegisterFlattenables(); 95 96 // Misc. 97 SK_REGISTER_FLATTENABLE(SkRecordedDrawable); 98 } 99 100 /* 101 * Register SkImageFilters for deserialization. 102 * 103 * None of these are strictly required for Skia to operate, so if you're 104 * not using deserialization yourself, you can define 105 * SK_DISABLE_EFFECT_SERIALIZATION, or modify/replace this file as needed. 106 */ InitImageFilters()107 void SkFlattenable::PrivateInitializer::InitImageFilters() { 108 SkRegisterBlendImageFilterFlattenable(); 109 SkRegisterBlurImageFilterFlattenable(); 110 SkRegisterColorFilterImageFilterFlattenable(); 111 SkRegisterComposeImageFilterFlattenable(); 112 SkRegisterCropImageFilterFlattenable(); 113 SkRegisterDisplacementMapImageFilterFlattenable(); 114 SkRegisterImageImageFilterFlattenable(); 115 SkRegisterLightingImageFilterFlattenables(); 116 SkRegisterMagnifierImageFilterFlattenable(); 117 SkRegisterMatrixConvolutionImageFilterFlattenable(); 118 SkRegisterMatrixTransformImageFilterFlattenable(); 119 SkRegisterMergeImageFilterFlattenable(); 120 SkRegisterMorphologyImageFilterFlattenables(); 121 SkRegisterPictureImageFilterFlattenable(); 122 SkRegisterRuntimeImageFilterFlattenable(); 123 SkRegisterShaderImageFilterFlattenable(); 124 SK_REGISTER_FLATTENABLE(SkLocalMatrixImageFilter); 125 126 SkRegisterLegacyDropShadowImageFilterFlattenable(); 127 } 128 129 #endif 130