/* * 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 GrVertexChunkArray_DEFINED #define GrVertexChunkArray_DEFINED #include "include/core/SkRefCnt.h" #include "include/core/SkTypes.h" #include "include/private/base/SkDebug.h" #include "include/private/base/SkNoncopyable.h" #include "include/private/base/SkTArray.h" #include "include/private/base/SkTypeTraits.h" #include "src/gpu/BufferWriter.h" #include "src/gpu/ganesh/GrBuffer.h" #include <cstddef> #include <type_traits> #include <utility> class GrMeshDrawTarget; // Represents a chunk of vertex data. Use with GrVertexChunkArray and GrVertexChunkBuilder. We write // the data out in chunks when we don't start out knowing exactly how many vertices (or instances) // we will end up writing. struct GrVertexChunk { … }; // Represents an array of GrVertexChunks. // // We only preallocate 1 chunk because if the array needs to grow, then we're also allocating a // brand new GPU buffer anyway. using GrVertexChunkArray = skia_private::STArray<1, GrVertexChunk>; // Builds a GrVertexChunkArray. The provided Target must not be used externally throughout the // entire lifetime of this object. class GrVertexChunkBuilder : SkNoncopyable { … }; #endif