8#ifndef GrBufferAllocPool_DEFINED
9#define GrBufferAllocPool_DEFINED
55 bool fCleared =
false;
57 std::unique_ptr<Buffer[]> fBuffers;
58 int fMaxBuffersToCache = 0;
156 bool createBlock(
size_t requestSize);
159 void flushCpuData(
const BufferBlock& block,
size_t flushSize);
160 void resetCpuData(
size_t newSize);
162 void validate(
bool unusedBlockAllowed =
false)
const;
164 size_t fBytesInUse = 0;
171 void* fBufferPtr =
nullptr;
244 int fallbackVertexCount,
247 int* actualVertexCount);
314 int fallbackIndexCount,
317 int* actualIndexCount);
static sk_sp< CpuBufferCache > Make(int maxBuffersToCache)
sk_sp< GrCpuBuffer > makeBuffer(size_t size, bool mustBeInitialized)
void putBack(size_t bytes)
void * makeSpaceAtLeast(size_t minSize, size_t fallbackSize, size_t alignment, sk_sp< const GrBuffer > *buffer, size_t *offset, size_t *actualSize)
void * makeSpace(size_t size, size_t alignment, sk_sp< const GrBuffer > *buffer, size_t *offset)
virtual ~GrBufferAllocPool()
static constexpr size_t kDefaultBufferSize
sk_sp< GrBuffer > getBuffer(size_t size)
void putBackIndexed(int drawCount)
GrDrawIndirectBufferAllocPool(GrGpu *gpu, sk_sp< CpuBufferCache > cpuBufferCache)
GrDrawIndirectWriter makeSpace(int drawCount, sk_sp< const GrBuffer > *buffer, size_t *offset)
void putBack(int drawCount)
GrDrawIndexedIndirectWriter makeIndexedSpace(int drawCount, sk_sp< const GrBuffer > *buffer, size_t *offset)
void * makeSpace(int indexCount, sk_sp< const GrBuffer > *buffer, int *startIndex)
void * makeSpaceAtLeast(int minIndexCount, int fallbackIndexCount, sk_sp< const GrBuffer > *buffer, int *startIndex, int *actualIndexCount)
void * makeSpace(size_t vertexSize, int vertexCount, sk_sp< const GrBuffer > *buffer, int *startVertex)
void * makeSpaceAtLeast(size_t vertexSize, int minVertexCount, int fallbackVertexCount, sk_sp< const GrBuffer > *buffer, int *startVertex, int *actualVertexCount)
static const uint8_t buffer[]