| 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 |