Line data Source code
1 : /*
2 : * Copyright 2016 Google Inc.
3 : *
4 : * Use of this source code is governed by a BSD-style license that can be
5 : * found in the LICENSE file.
6 : */
7 :
8 : #include "SkBitmapProcShader.h"
9 : #include "SkColorFilter.h"
10 : #include "SkColorFilterShader.h"
11 : #include "SkColorShader.h"
12 : #include "SkComposeShader.h"
13 : #include "SkEmptyShader.h"
14 : #include "SkFlattenable.h"
15 : #include "SkImageShader.h"
16 : #include "SkLocalMatrixShader.h"
17 : #include "SkMatrixImageFilter.h"
18 : #include "SkOnce.h"
19 : #include "SkPathEffect.h"
20 : #include "SkPictureShader.h"
21 : #include "SkRecordedDrawable.h"
22 :
23 : /*
24 : * Registers all of the required effects subclasses for picture deserialization.
25 : *
26 : * Optional subclasses (e.g. Blur) should be registered in the ports/ version of this file,
27 : * inside the InitEffects() method.
28 : */
29 0 : void SkFlattenable::PrivateInitializer::InitCore() {
30 : // Shader
31 0 : SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkColorFilterShader)
32 0 : SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkColorShader)
33 0 : SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkColor4Shader)
34 0 : SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkComposeShader)
35 0 : SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkEmptyShader)
36 0 : SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLocalMatrixShader)
37 0 : SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkPictureShader)
38 :
39 :
40 : // ImageFilter
41 0 : SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkMatrixImageFilter)
42 :
43 0 : SkColorFilter::InitializeFlattenables();
44 0 : SkPathEffect::InitializeFlattenables();
45 0 : SkShader::InitializeFlattenables();
46 0 : SkXfermode::InitializeFlattenables();
47 :
48 : // Drawable
49 0 : SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkRecordedDrawable)
50 :
51 : // Now initialize any optional/additional effects (implemented in src/ports)
52 0 : InitEffects();
53 0 : };
54 :
55 0 : void SkFlattenable::InitializeFlattenablesIfNeeded() {
56 : static SkOnce once;
57 0 : once(SkFlattenable::PrivateInitializer::InitCore);
58 0 : }
|