#include "include/core/SkColor.h"
#include "include/core/SkPaint.h"
#include "include/core/SkRefCnt.h"
#include "include/core/SkScalar.h"
#include "include/private/base/SkAssert.h"
#include "modules/skottie/src/Adapter.h"
#include "modules/skottie/src/SkottieJson.h"
#include "modules/skottie/src/SkottiePriv.h"
#include "modules/skottie/src/SkottieValue.h"
#include "modules/skottie/src/animator/Animator.h"
#include "modules/skottie/src/layers/shapelayer/ShapeLayer.h"
#include "modules/sksg/include/SkSGGeometryEffect.h"
#include "modules/sksg/include/SkSGGeometryNode.h"
#include "modules/sksg/include/SkSGPaint.h"
#include "src/utils/SkJSON.h"
#include <algorithm>
#include <cstddef>
#include <utility>
#include <vector>
namespace skottie {
namespace internal {
namespace {
class FillStrokeAdapter final : public DiscardableAdapterBase<FillStrokeAdapter, sksg::PaintNode> { … };
class DashAdapter final : public DiscardableAdapterBase<DashAdapter, sksg::DashEffect> { … };
}
sk_sp<sksg::PaintNode> ShapeBuilder::AttachFill(const skjson::ObjectValue& jpaint,
const AnimationBuilder* abuilder,
sk_sp<sksg::PaintNode> paint_node,
sk_sp<AnimatablePropertyContainer> gradient) { … }
sk_sp<sksg::PaintNode> ShapeBuilder::AttachStroke(const skjson::ObjectValue& jpaint,
const AnimationBuilder* abuilder,
sk_sp<sksg::PaintNode> paint_node,
sk_sp<AnimatablePropertyContainer> gradient) { … }
sk_sp<sksg::PaintNode> ShapeBuilder::AttachColorFill(const skjson::ObjectValue& jpaint,
const AnimationBuilder* abuilder) { … }
sk_sp<sksg::PaintNode> ShapeBuilder::AttachColorStroke(const skjson::ObjectValue& jpaint,
const AnimationBuilder* abuilder) { … }
std::vector<sk_sp<sksg::GeometryNode>> ShapeBuilder::AdjustStrokeGeometry(
const skjson::ObjectValue& jstroke,
const AnimationBuilder* abuilder,
std::vector<sk_sp<sksg::GeometryNode>>&& geos) { … }
}
}