SkGlobalInitialization_chromium.cpp revision 5970f625e96cdc007c563ae72f343ae0d71719a1
1d26147adbbdca85f07dff432025afee0c8614387caryclark@google.com/* 2d26147adbbdca85f07dff432025afee0c8614387caryclark@google.com * Copyright 2011 Google Inc. 3d26147adbbdca85f07dff432025afee0c8614387caryclark@google.com * 4d26147adbbdca85f07dff432025afee0c8614387caryclark@google.com * Use of this source code is governed by a BSD-style license that can be 5d26147adbbdca85f07dff432025afee0c8614387caryclark@google.com * found in the LICENSE file. 6d26147adbbdca85f07dff432025afee0c8614387caryclark@google.com */ 7d26147adbbdca85f07dff432025afee0c8614387caryclark@google.com 8c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org#include "SkTypes.h" 9c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org 10d26147adbbdca85f07dff432025afee0c8614387caryclark@google.com#include "SkBitmapProcShader.h" 11c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org#include "SkMallocPixelRef.h" 12c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org#include "SkPathEffect.h" 13c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org#include "SkPixelRef.h" 14c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org#include "SkXfermode.h" 15c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org 16c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org#include "Sk1DPathEffect.h" 17c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org#include "Sk2DPathEffect.h" 18c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org#include "SkArithmeticMode.h" 19c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org#include "SkAvoidXfermode.h" 20c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org#include "SkBicubicImageFilter.h" 21c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org#include "SkBitmapSource.h" 22c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org#include "SkBlurDrawLooper.h" 23d26147adbbdca85f07dff432025afee0c8614387caryclark@google.com#include "SkBlurImageFilter.h" 24d26147adbbdca85f07dff432025afee0c8614387caryclark@google.com#include "SkBlurMaskFilter.h" 25d26147adbbdca85f07dff432025afee0c8614387caryclark@google.com#include "SkColorFilter.h" 26c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org#include "SkColorFilterImageFilter.h" 27c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org#include "SkColorMatrixFilter.h" 28c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org#include "SkColorShader.h" 29c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org#include "SkComposeImageFilter.h" 30c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org#include "SkComposeShader.h" 31d26147adbbdca85f07dff432025afee0c8614387caryclark@google.com#include "SkCornerPathEffect.h" 32d26147adbbdca85f07dff432025afee0c8614387caryclark@google.com#include "SkDashPathEffect.h" 33c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org#include "SkDiscretePathEffect.h" 34c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org#include "SkDisplacementMapEffect.h" 35c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org#include "SkDropShadowImageFilter.h" 36c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org#include "SkEmptyShader.h" 37c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org#include "SkEmbossMaskFilter.h" 38c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org#include "SkFlattenable.h" 39d26147adbbdca85f07dff432025afee0c8614387caryclark@google.com#include "SkGradientShader.h" 40c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org#include "SkImages.h" 41d26147adbbdca85f07dff432025afee0c8614387caryclark@google.com#include "SkLayerDrawLooper.h" 42c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org#include "SkLayerRasterizer.h" 43c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org#include "SkLerpXfermode.h" 44c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org#include "SkLightingImageFilter.h" 455970f625e96cdc007c563ae72f343ae0d71719a1commit-bot@chromium.org#include "SkLocalMatrixShader.h" 466c1ee2d4e727357451c8a6fcf4a08e75890b5d6dcommit-bot@chromium.org#include "SkLumaColorFilter.h" 47b8bf9ce1034cc5d50ff0945ba9841e113522b26ctomhudson@google.com#include "SkMagnifierImageFilter.h" 48c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org#include "SkMatrixConvolutionImageFilter.h" 49c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org#include "SkMergeImageFilter.h" 50c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org#include "SkMorphologyImageFilter.h" 51c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org#include "SkOffsetImageFilter.h" 52c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org#include "SkOnce.h" 53c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org#include "SkPerlinNoiseShader.h" 549e5f85e89d03a850d435fc951e74e9861a0c1bddcommit-bot@chromium.org#include "SkPictureImageFilter.h" 55c5d9bb0f677069f62ec76373b9730e70e7352455commit-bot@chromium.org#include "SkPictureShader.h" 56c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org#include "SkPixelXorXfermode.h" 57c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org#include "SkRectShaderImageFilter.h" 58c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org#include "SkStippleMaskFilter.h" 59c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org#include "SkTableColorFilter.h" 60c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org#include "SkTestImageFilters.h" 61c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org#include "SkTileImageFilter.h" 62fd0ec2c76a27ce26a62da23eb75017839959e7cbsenorblanco@chromium.org#include "SkMatrixImageFilter.h" 63c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org#include "SkXfermodeImageFilter.h" 64d26147adbbdca85f07dff432025afee0c8614387caryclark@google.com 65c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.orgstatic void InitializeFlattenables(int*) { 66c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkAvoidXfermode) 67c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkBicubicImageFilter) 68a2ca41e3afdd8fad5e0e924dec029f33918e0a67djsollen@google.com SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkBitmapProcShader) 69c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkBitmapSource) 70c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkBlurDrawLooper) 71a2ca41e3afdd8fad5e0e924dec029f33918e0a67djsollen@google.com SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkBlurImageFilter) 72c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkColorMatrixFilter) 73c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkColorShader) 74c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkComposePathEffect) 75c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkComposeShader) 76a2ca41e3afdd8fad5e0e924dec029f33918e0a67djsollen@google.com SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkCornerPathEffect) 77a2ca41e3afdd8fad5e0e924dec029f33918e0a67djsollen@google.com SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkDashPathEffect) 78c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkDilateImageFilter) 79c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkDiscretePathEffect) 80c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkDisplacementMapEffect) 81c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkDropShadowImageFilter) 82c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkEmbossMaskFilter) 83c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkEmptyShader) 84c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkErodeImageFilter) 85a2ca41e3afdd8fad5e0e924dec029f33918e0a67djsollen@google.com SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLayerDrawLooper) 86c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLayerRasterizer) 87c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLerpXfermode) 885970f625e96cdc007c563ae72f343ae0d71719a1commit-bot@chromium.org SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLocalMatrixShader) 896c1ee2d4e727357451c8a6fcf4a08e75890b5d6dcommit-bot@chromium.org SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLumaColorFilter) 90c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkPath1DPathEffect) 91c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(Sk2DPathEffect) 92c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLine2DPathEffect) 93c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkPath2DPathEffect) 94c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkPerlinNoiseShader) 959e5f85e89d03a850d435fc951e74e9861a0c1bddcommit-bot@chromium.org SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkPictureImageFilter) 96c5d9bb0f677069f62ec76373b9730e70e7352455commit-bot@chromium.org SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkPictureShader) 97c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkPixelXorXfermode) 98c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkRectShaderImageFilter) 99c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkStippleMaskFilter) 100c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkSumPathEffect) 101c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkTileImageFilter) 102fd0ec2c76a27ce26a62da23eb75017839959e7cbsenorblanco@chromium.org SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkMatrixImageFilter) 103c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkXfermodeImageFilter) 104b8bf9ce1034cc5d50ff0945ba9841e113522b26ctomhudson@google.com SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkMagnifierImageFilter) 105c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkMatrixConvolutionImageFilter) 106c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org 107c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkOffsetImageFilter) 108c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkComposeImageFilter) 109c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkMergeImageFilter) 110c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkColorFilterImageFilter) 111c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkDownSampleImageFilter) 112c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkMallocPixelRef) 113a2ca41e3afdd8fad5e0e924dec029f33918e0a67djsollen@google.com 114c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org SkArithmeticMode::InitializeFlattenables(); 115a2ca41e3afdd8fad5e0e924dec029f33918e0a67djsollen@google.com SkBlurMaskFilter::InitializeFlattenables(); 116a2ca41e3afdd8fad5e0e924dec029f33918e0a67djsollen@google.com SkColorFilter::InitializeFlattenables(); 117a2ca41e3afdd8fad5e0e924dec029f33918e0a67djsollen@google.com SkGradientShader::InitializeFlattenables(); 118c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org SkImages::InitializeFlattenables(); 119c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org SkLightingImageFilter::InitializeFlattenables(); 120c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org SkTableColorFilter::InitializeFlattenables(); 121a2ca41e3afdd8fad5e0e924dec029f33918e0a67djsollen@google.com SkXfermode::InitializeFlattenables(); 122d26147adbbdca85f07dff432025afee0c8614387caryclark@google.com} 123c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org 124c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.orgvoid SkFlattenable::InitializeFlattenablesIfNeeded() { 125c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org int dummy; 126c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org SK_DECLARE_STATIC_ONCE(once); 127c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org SkOnce(&once, InitializeFlattenables, &dummy); 128c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cfcommit-bot@chromium.org} 129