Chromium Code Reviews| Index: src/core/SkGlobalInitialization_core.cpp |
| diff --git a/src/core/SkGlobalInitialization_core.cpp b/src/core/SkGlobalInitialization_core.cpp |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..181320cbf5ddbdf4eb1c48596f2c4651cbf02ead |
| --- /dev/null |
| +++ b/src/core/SkGlobalInitialization_core.cpp |
| @@ -0,0 +1,53 @@ |
| +/* |
| + * Copyright 2016 Google Inc. |
| + * |
| + * Use of this source code is governed by a BSD-style license that can be |
| + * found in the LICENSE file. |
| + */ |
| + |
| +#include "SkBitmapProcShader.h" |
| +#include "SkColorFilter.h" |
| +#include "SkColorFilterShader.h" |
| +#include "SkColorShader.h" |
| +#include "SkComposeShader.h" |
| +#include "SkEmptyShader.h" |
| +#include "SkFlattenable.h" |
| +#include "SkImageShader.h" |
| +#include "SkLocalMatrixShader.h" |
| +#include "SkOnce.h" |
| +#include "SkPathEffect.h" |
| +#include "SkPictureShader.h" |
| +#include "SkMatrixImageFilter.h" |
| +#include "SkXfermode.h" |
| + |
|
mtklein
2016/01/13 14:15:55
Might be nice to explain what belongs here too lik
reed1
2016/01/13 15:03:18
Done.
|
| +void SkFlattenable::PrivateInitializer::InitCore() { |
| + // Shader |
| + SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkBitmapProcShader) |
| + SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkColorFilterShader) |
| + SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkColorShader) |
| + SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkComposeShader) |
| + SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkEmptyShader) |
| + SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkImageShader) |
| + SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLocalMatrixShader) |
| + SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkPictureShader) |
| + |
| + // PathEffect |
| + SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkComposePathEffect) |
| + |
| + // ImageFilter |
| + SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkMatrixImageFilter) |
| + |
| + // ColorFilter |
| + SkColorFilter::InitializeFlattenables(); |
| + |
| + // Xfermode |
| + SkXfermode::InitializeFlattenables(); |
| + |
| + // Now initialize any effects (implemented in src/ports) |
| + InitEffects(); |
| +}; |
| + |
| +SK_DECLARE_STATIC_ONCE(once); |
| +void SkFlattenable::InitializeFlattenablesIfNeeded() { |
| + SkOnce(&once, SkFlattenable::PrivateInitializer::InitCore); |
| +} |