chromium/third_party/skia/src/gpu/ganesh/GrMeshDrawTarget.h

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

#ifndef GrMeshDrawTarget_DEFINED
#define GrMeshDrawTarget_DEFINED

#include "include/core/SkRefCnt.h"  // IWYU pragma: keep
#include "include/private/base/SkTArray.h"
#include "src/base/SkArenaAlloc.h"
#include "src/gpu/ganesh/GrAppliedClip.h"
#include "src/gpu/ganesh/GrDrawIndirectCommand.h"
#include "src/gpu/ganesh/GrSimpleMesh.h"

#include <cstddef>
#include <cstdint>

class GrAtlasManager;
class GrBuffer;
class GrCaps;
class GrDeferredUploadTarget;
class GrDstProxyView;
class GrGeometryProcessor;
class GrRenderTargetProxy;
class GrResourceProvider;
class GrSurfaceProxy;
class GrSurfaceProxyView;
class GrThreadSafeCache;
enum class GrLoadOp;
enum class GrPrimitiveType : uint8_t;
enum class GrXferBarrierFlags;

namespace skgpu::ganesh {
class SmallPathAtlasMgr;
}

namespace skgpu {
struct IndexWriter;
struct VertexWriter;
}  // namespace skgpu

namespace sktext::gpu {
class StrikeCache;
}

/*
 * Abstract interface that supports creating vertices, indices, and meshes, as well as
 * invoking GPU draw operations.
 */
class GrMeshDrawTarget {};

#endif