| 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..ac37073eb3114fd1605e25e9171edb9148c47a75
|
| --- /dev/null
|
| +++ b/src/core/SkGlobalInitialization_core.cpp
|
| @@ -0,0 +1,59 @@
|
| +/*
|
| + * 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"
|
| +
|
| +/*
|
| + * Registers all of the required effects subclasses for picture deserialization.
|
| + *
|
| + * Optional subclasses (e.g. Blur) should be registered in the ports/ version of this file,
|
| + * inside the InitEffects() method.
|
| + */
|
| +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 optional/additional effects (implemented in src/ports)
|
| + InitEffects();
|
| +};
|
| +
|
| +SK_DECLARE_STATIC_ONCE(once);
|
| +void SkFlattenable::InitializeFlattenablesIfNeeded() {
|
| + SkOnce(&once, SkFlattenable::PrivateInitializer::InitCore);
|
| +}
|
|
|