Flutter Engine
The Flutter Engine
ShapeLayer.h
Go to the documentation of this file.
1/*
2 * Copyright 2020 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 SkottieShapeLayer_DEFINED
9#define SkottieShapeLayer_DEFINED
10
14
15#include <vector>
16
17namespace skjson {
18
19class ObjectValue;
20
21} // namespace skjson
22
23namespace sksg {
24
25class GeometryNode;
26class PaintNode;
27class RenderNode;
28
29} // namespace sksg
30
31namespace skottie {
32namespace internal {
33class AnimatablePropertyContainer;
34class AnimationBuilder;
35
36// TODO/TRANSITIONAL: not much state here yet, but will eventually hold ShapeLayer-related stuff.
38public:
41
43 const AnimationBuilder*);
45 const AnimationBuilder*);
47 const AnimationBuilder*);
49 const AnimationBuilder*);
50
52 const AnimationBuilder*);
54 const AnimationBuilder*);
56 const AnimationBuilder*);
58 const AnimationBuilder*);
59
60 static std::vector<sk_sp<sksg::GeometryNode>> AttachMergeGeometryEffect(
62 std::vector<sk_sp<sksg::GeometryNode>>&&);
63 static std::vector<sk_sp<sksg::GeometryNode>> AttachTrimGeometryEffect(
65 const AnimationBuilder*,
66 std::vector<sk_sp<sksg::GeometryNode>>&&);
67 static std::vector<sk_sp<sksg::GeometryNode>> AttachRoundGeometryEffect(
69 std::vector<sk_sp<sksg::GeometryNode>>&&);
70 static std::vector<sk_sp<sksg::GeometryNode>> AttachOffsetGeometryEffect(
72 std::vector<sk_sp<sksg::GeometryNode>>&&);
73 static std::vector<sk_sp<sksg::GeometryNode>> AttachPuckerBloatGeometryEffect(
75 std::vector<sk_sp<sksg::GeometryNode>>&&);
76 static std::vector<sk_sp<sksg::GeometryNode>> AdjustStrokeGeometry(
78 std::vector<sk_sp<sksg::GeometryNode>>&&);
79
80 static std::vector<sk_sp<sksg::RenderNode>> AttachRepeaterDrawEffect(
82 const AnimationBuilder*,
83 std::vector<sk_sp<sksg::RenderNode>>&&);
84
85private:
86 static sk_sp<sksg::PaintNode> AttachFill(const skjson::ObjectValue&,
87 const AnimationBuilder*,
90 static sk_sp<sksg::PaintNode> AttachStroke(const skjson::ObjectValue&,
91 const AnimationBuilder*,
94};
95
96} // namespace internal
97} // namespace skottie
98
99#endif // SkottieShapeLayer_DEFINED
static sk_sp< sksg::GeometryNode > AttachPathGeometry(const skjson::ObjectValue &, const AnimationBuilder *)
Definition: ShapeLayer.cpp:153
static sk_sp< sksg::GeometryNode > AttachPolystarGeometry(const skjson::ObjectValue &, const AnimationBuilder *)
Definition: Polystar.cpp:101
static std::vector< sk_sp< sksg::RenderNode > > AttachRepeaterDrawEffect(const skjson::ObjectValue &, const AnimationBuilder *, std::vector< sk_sp< sksg::RenderNode > > &&)
Definition: Repeater.cpp:184
static std::vector< sk_sp< sksg::GeometryNode > > AttachOffsetGeometryEffect(const skjson::ObjectValue &, const AnimationBuilder *, std::vector< sk_sp< sksg::GeometryNode > > &&)
Definition: OffsetPaths.cpp:61
static sk_sp< sksg::PaintNode > AttachColorStroke(const skjson::ObjectValue &, const AnimationBuilder *)
Definition: FillStroke.cpp:173
static sk_sp< sksg::PaintNode > AttachColorFill(const skjson::ObjectValue &, const AnimationBuilder *)
Definition: FillStroke.cpp:165
static std::vector< sk_sp< sksg::GeometryNode > > AdjustStrokeGeometry(const skjson::ObjectValue &, const AnimationBuilder *, std::vector< sk_sp< sksg::GeometryNode > > &&)
Definition: FillStroke.cpp:181
static std::vector< sk_sp< sksg::GeometryNode > > AttachRoundGeometryEffect(const skjson::ObjectValue &, const AnimationBuilder *, std::vector< sk_sp< sksg::GeometryNode > > &&)
static sk_sp< sksg::PaintNode > AttachGradientStroke(const skjson::ObjectValue &, const AnimationBuilder *)
Definition: Gradient.cpp:259
static sk_sp< sksg::GeometryNode > AttachEllipseGeometry(const skjson::ObjectValue &, const AnimationBuilder *)
Definition: Ellipse.cpp:57
static std::vector< sk_sp< sksg::GeometryNode > > AttachMergeGeometryEffect(const skjson::ObjectValue &, const AnimationBuilder *, std::vector< sk_sp< sksg::GeometryNode > > &&)
Definition: MergePaths.cpp:37
static sk_sp< sksg::GeometryNode > AttachRRectGeometry(const skjson::ObjectValue &, const AnimationBuilder *)
Definition: Rectangle.cpp:59
static sk_sp< sksg::PaintNode > AttachGradientFill(const skjson::ObjectValue &, const AnimationBuilder *)
Definition: Gradient.cpp:250
static sk_sp< sksg::Merge > MergeGeometry(std::vector< sk_sp< sksg::GeometryNode > > &&, sksg::Merge::Mode)
Definition: MergePaths.cpp:24
static std::vector< sk_sp< sksg::GeometryNode > > AttachPuckerBloatGeometryEffect(const skjson::ObjectValue &, const AnimationBuilder *, std::vector< sk_sp< sksg::GeometryNode > > &&)
static std::vector< sk_sp< sksg::GeometryNode > > AttachTrimGeometryEffect(const skjson::ObjectValue &, const AnimationBuilder *, std::vector< sk_sp< sksg::GeometryNode > > &&)
Definition: TrimPaths.cpp:81
Definition: Skottie.h:32