• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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