#include "modules/skottie/src/layers/shapelayer/ShapeLayer.h"
#include "include/private/base/SkAssert.h"
#include "include/private/base/SkDebug.h"
#include "modules/skottie/include/Skottie.h"
#include "modules/skottie/include/SkottieProperty.h"
#include "modules/skottie/src/SkottieJson.h"
#include "modules/skottie/src/SkottiePriv.h"
#include "modules/skottie/src/animator/Animator.h"
#include "modules/sksg/include/SkSGDraw.h"
#include "modules/sksg/include/SkSGGeometryEffect.h"
#include "modules/sksg/include/SkSGGeometryNode.h"
#include "modules/sksg/include/SkSGGroup.h"
#include "modules/sksg/include/SkSGMerge.h"
#include "modules/sksg/include/SkSGPaint.h"
#include "modules/sksg/include/SkSGPath.h"
#include "modules/sksg/include/SkSGRenderNode.h"
#include "modules/sksg/include/SkSGTransform.h"
#include "src/utils/SkJSON.h"
#include <string.h>
#include <algorithm>
#include <cstdint>
#include <cstdlib>
#include <iterator>
#include <utility>
namespace skottie {
namespace internal {
namespace {
GeometryAttacherT;
static constexpr GeometryAttacherT gGeometryAttachers[] = …;
GeometryEffectAttacherT;
static constexpr GeometryEffectAttacherT gGeometryEffectAttachers[] = …;
PaintAttacherT;
static constexpr PaintAttacherT gPaintAttachers[] = …;
static constexpr GeometryEffectAttacherT gPaintGeometryAdjusters[] = …;
static_assert …;
DrawEffectAttacherT;
static constexpr DrawEffectAttacherT gDrawEffectAttachers[] = …;
enum class ShapeType { … };
enum ShapeFlags : uint16_t { … };
struct ShapeInfo { … };
const ShapeInfo* FindShapeInfo(const skjson::ObjectValue& jshape) { … }
struct GeometryEffectRec { … };
}
sk_sp<sksg::GeometryNode> ShapeBuilder::AttachPathGeometry(const skjson::ObjectValue& jpath,
const AnimationBuilder* abuilder) { … }
struct AnimationBuilder::AttachShapeContext { … };
sk_sp<sksg::RenderNode> AnimationBuilder::attachShape(const skjson::ArrayValue* jshape,
AttachShapeContext* ctx,
bool suppress_draws) const { … }
sk_sp<sksg::RenderNode> AnimationBuilder::attachShapeLayer(const skjson::ObjectValue& layer,
LayerInfo*) const { … }
}
}