xref: /aosp_15_r20/external/skia/src/ports/SkGlobalInitialization_default.cpp (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
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