chromium/third_party/skia/modules/skottie/include/Skottie.h

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

#ifndef Skottie_DEFINED
#define Skottie_DEFINED

#include "include/core/SkRefCnt.h"
#include "include/core/SkScalar.h"
#include "include/core/SkSize.h"
#include "include/core/SkString.h"
#include "include/core/SkTypes.h"
#include "modules/skresources/include/SkResources.h"

// TODO(kjlubick) update clients and then remove the following:
#include "include/core/SkFontMgr.h"  // IWYU pragma: keep
#include "modules/skottie/include/ExternalLayer.h"  // IWYU pragma: keep
#include "modules/skottie/include/SkottieProperty.h"  // IWYU pragma: keep
#include "modules/skottie/include/SlotManager.h"  // IWYU pragma: keep

#include <cstddef>
#include <cstdint>
#include <vector>

class SkCanvas;
class SkStream;
struct SkRect;

namespace sksg {

class InvalidationController;
class RenderNode;

} // namespace sksg

namespace SkShapers { class Factory; }

namespace skottie {

namespace internal { class Animator; }

ImageAsset;
ResourceProvider;

/**
 * A Logger subclass can be used to receive Animation::Builder parsing errors and warnings.
 */
class SK_API Logger : public SkRefCnt {};

// Evaluates AE expressions.
template <class T>
class SK_API ExpressionEvaluator : public SkRefCnt {};

/**
 * Creates ExpressionEvaluators to evaluate AE expressions and return the results.
 */
class SK_API ExpressionManager : public SkRefCnt {};

/**
 * Interface for receiving AE composition markers at Animation build time.
 */
class SK_API MarkerObserver : public SkRefCnt {};

class SK_API Animation : public SkNVRefCnt<Animation> {};

} // namespace skottie

#endif // Skottie_DEFINED