chromium/third_party/skia/modules/sksg/include/SkSGPaint.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 SkSGPaint_DEFINED
#define SkSGPaint_DEFINED

#include "include/core/SkBlendMode.h"
#include "include/core/SkColor.h"
#include "include/core/SkPaint.h"
#include "include/core/SkRect.h"
#include "include/core/SkRefCnt.h"
#include "include/core/SkScalar.h"
#include "modules/sksg/include/SkSGNode.h"

class SkMatrix;

namespace skottie::internal {
class AnimationBuilder;
} // namespace skottie::internal

namespace sksg {
class InvalidationController;
class Shader;

/**
 * Base class for nodes which provide a 'paint' (as opposed to geometry) for
 * drawing (e.g. colors, gradients, patterns).
 *
 * Roughly equivalent to Skia's SkPaint.
 */
class PaintNode : public Node {};

/**
 * Concrete Paint node, wrapping an SkColor.
 */
class Color : public PaintNode {};

/**
 * Shader-based paint.
 */
class ShaderPaint final : public PaintNode {};

}  // namespace sksg

#endif // SkSGPaint_DEFINED