OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2011 Google Inc. | 2 * Copyright 2011 Google Inc. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
6 */ | 6 */ |
7 | 7 |
8 #include "SkTypes.h" | 8 #include "SkTypes.h" |
9 | 9 |
10 #include "SkBitmapProcShader.h" | 10 #include "SkBitmapProcShader.h" |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
52 #include "SkPictureImageFilter.h" | 52 #include "SkPictureImageFilter.h" |
53 #include "SkPictureShader.h" | 53 #include "SkPictureShader.h" |
54 #include "SkPixelXorXfermode.h" | 54 #include "SkPixelXorXfermode.h" |
55 #include "SkRectShaderImageFilter.h" | 55 #include "SkRectShaderImageFilter.h" |
56 #include "SkTableColorFilter.h" | 56 #include "SkTableColorFilter.h" |
57 #include "SkTestImageFilters.h" | 57 #include "SkTestImageFilters.h" |
58 #include "SkTileImageFilter.h" | 58 #include "SkTileImageFilter.h" |
59 #include "SkMatrixImageFilter.h" | 59 #include "SkMatrixImageFilter.h" |
60 #include "SkXfermodeImageFilter.h" | 60 #include "SkXfermodeImageFilter.h" |
61 | 61 |
62 static void InitializeFlattenables() { | 62 class SkPrivateEffectInitializer { |
63 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkAvoidXfermode) | 63 public: |
64 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkBitmapProcShader) | 64 static void Init() { |
65 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkBitmapSource) | 65 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkAvoidXfermode) |
66 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkBlurDrawLooper) | 66 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkBitmapProcShader) |
67 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkBlurImageFilter) | 67 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkBitmapSource) |
68 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkColorMatrixFilter) | 68 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkBlurDrawLooper) |
69 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkColorShader) | 69 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkBlurImageFilter) |
70 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkComposePathEffect) | 70 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkColorMatrixFilter) |
71 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkComposeShader) | 71 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkColorShader) |
72 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkCornerPathEffect) | 72 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkComposePathEffect) |
73 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkDashPathEffect) | 73 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkComposeShader) |
74 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkDilateImageFilter) | 74 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkCornerPathEffect) |
75 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkDiscretePathEffect) | 75 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkDashPathEffect) |
76 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkDisplacementMapEffect) | 76 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkDilateImageFilter) |
77 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkDropShadowImageFilter) | 77 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkDiscretePathEffect) |
78 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkEmbossMaskFilter) | 78 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkDisplacementMapEffect) |
79 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkEmptyShader) | 79 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkDropShadowImageFilter) |
80 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkErodeImageFilter) | 80 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkEmbossMaskFilter) |
81 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLayerDrawLooper) | 81 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkEmptyShader) |
82 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLayerRasterizer) | 82 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkErodeImageFilter) |
83 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLerpXfermode) | 83 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLayerDrawLooper) |
84 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLocalMatrixShader) | 84 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLayerRasterizer) |
85 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLumaColorFilter) | 85 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLerpXfermode) |
86 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkPath1DPathEffect) | 86 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLocalMatrixShader) |
87 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLine2DPathEffect) | 87 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLumaColorFilter) |
88 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkPath2DPathEffect) | 88 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkPath1DPathEffect) |
89 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkPerlinNoiseShader) | 89 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLine2DPathEffect) |
90 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkPictureImageFilter) | 90 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkPath2DPathEffect) |
91 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkPictureShader) | 91 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkPerlinNoiseShader) |
92 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkPixelXorXfermode) | 92 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkPictureImageFilter) |
93 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkRectShaderImageFilter) | 93 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkPictureShader) |
94 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkSumPathEffect) | 94 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkPixelXorXfermode) |
95 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkTileImageFilter) | 95 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkRectShaderImageFilter) |
96 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkMatrixImageFilter) | 96 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkSumPathEffect) |
97 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkXfermodeImageFilter) | 97 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkTileImageFilter) |
98 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkMagnifierImageFilter) | 98 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkMatrixImageFilter) |
99 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkMatrixConvolutionImageFilter) | 99 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkXfermodeImageFilter) |
| 100 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkMagnifierImageFilter) |
| 101 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkMatrixConvolutionImageFilter) |
100 | 102 |
101 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkOffsetImageFilter) | 103 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkOffsetImageFilter) |
102 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkComposeImageFilter) | 104 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkComposeImageFilter) |
103 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkMergeImageFilter) | 105 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkMergeImageFilter) |
104 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkColorFilterImageFilter) | 106 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkColorFilterImageFilter) |
105 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkDownSampleImageFilter) | 107 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkDownSampleImageFilter) |
106 | 108 |
107 SkArithmeticMode::InitializeFlattenables(); | 109 SkArithmeticMode::InitializeFlattenables(); |
108 SkBlurMaskFilter::InitializeFlattenables(); | 110 SkBlurMaskFilter::InitializeFlattenables(); |
109 SkColorFilter::InitializeFlattenables(); | 111 SkColorFilter::InitializeFlattenables(); |
110 SkGradientShader::InitializeFlattenables(); | 112 SkGradientShader::InitializeFlattenables(); |
111 SkLightingImageFilter::InitializeFlattenables(); | 113 SkLightingImageFilter::InitializeFlattenables(); |
112 SkTableColorFilter::InitializeFlattenables(); | 114 SkTableColorFilter::InitializeFlattenables(); |
113 SkXfermode::InitializeFlattenables(); | 115 SkXfermode::InitializeFlattenables(); |
114 } | 116 } |
| 117 }; |
115 | 118 |
116 void SkFlattenable::InitializeFlattenablesIfNeeded() { | 119 void SkFlattenable::InitializeFlattenablesIfNeeded() { |
117 SK_DECLARE_STATIC_ONCE(once); | 120 SK_DECLARE_STATIC_ONCE(once); |
118 SkOnce(&once, InitializeFlattenables); | 121 SkOnce(&once, SkPrivateEffectInitializer::Init); |
119 } | 122 } |
OLD | NEW |