Coverage Report

Created: 2021-08-22 09:07

/src/skia/modules/skottie/src/Composition.h
Line
Count
Source
1
/*
2
 * Copyright 2019 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
#ifndef SkottieComposition_DEFINED
9
#define SkottieComposition_DEFINED
10
11
#include "modules/skottie/src/SkottiePriv.h"
12
13
#include "include/private/SkTHash.h"
14
#include "modules/skottie/src/Layer.h"
15
16
#include <vector>
17
18
namespace skottie {
19
namespace internal {
20
21
class CompositionBuilder final : SkNoncopyable {
22
public:
23
    CompositionBuilder(const AnimationBuilder&, const SkSize&, const skjson::ObjectValue&);
24
    ~CompositionBuilder();
25
26
    sk_sp<sksg::RenderNode> build(const AnimationBuilder&);
27
28
    LayerBuilder* layerBuilder(int layer_index);
29
30
private:
31
13.7k
    const sk_sp<sksg::Transform>& getCameraTransform() const { return fCameraTransform; }
32
33
    friend class LayerBuilder;
34
35
    const SkSize              fSize;
36
37
    std::vector<LayerBuilder> fLayerBuilders;
38
    SkTHashMap<int, size_t>   fLayerIndexMap; // Maps layer "ind" to layer builder index.
39
40
    sk_sp<sksg::Transform>    fCameraTransform;
41
42
    size_t                    fMotionBlurSamples = 1;
43
    float                     fMotionBlurAngle   = 0,
44
                              fMotionBlurPhase   = 0;
45
};
46
47
} // namespace internal
48
} // namespace skottie
49
50
#endif // SkottieComposition_DEFINED