chromium/third_party/skia/modules/skottie/src/layers/shapelayer/ShapeLayer.cpp

/*
 * Copyright 2018 Google Inc.
 *
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file.
 */

#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"  // IWYU pragma: keep
#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[] =;

// Some paint types (looking at you dashed-stroke) mess with the local geometry.
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 {};

} // namespace

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 {}

} // namespace internal
} // namespace skottie