33template <
typename Base, GrGpuBufferType Type>
46 if (data && !
buffer->updateData(data, 0, size,
false)) {
56template <
typename Base, GrGpuBufferType Type>
61 if (!dc || dc != fBuffer->getContext()) {
69 std::move(ownedData), fBuffer,
offset);
74 size_t tempOffset = 0;
77 auto [sliceBuffer, sliceOffset, ptr] = sbm->allocateStagingBufferSlice(size, alignment);
79 std::memcpy(ptr, data, size);
81 tempOffset = sliceOffset;
93 if (!tempBuffer->updateData(data, 0, size,
false)) {
99 std::move(tempBuffer), tempOffset, fBuffer,
offset, size);
118 const void* data = ib->peek();
140 const void* data = vb->peek();
@ kDynamic_GrAccessPattern
@ kStatic_GrAccessPattern
const GrCaps * caps() const
bool transferFromBufferToBufferSupport() const
size_t transferFromBufferToBufferAlignment() const
GrResourceProvider * resourceProvider()
bool abandoned() override
DirectContextID directContextID() const
GrDirectContextPriv priv()
void newBufferUpdateTask(sk_sp< SkData > src, sk_sp< GrGpuBuffer > dst, size_t dstOffset)
void newBufferTransferTask(sk_sp< GrGpuBuffer > src, size_t srcOffset, sk_sp< GrGpuBuffer > dst, size_t dstOffset, size_t size)
virtual GrStagingBufferManager * stagingBufferManager()
static sk_sp< Base > Make(GrDirectContext *, const void *data, size_t size)
bool onUpdate(GrDirectContext *, const void *data, size_t offset, size_t size) override
GrDrawingManager * drawingManager()
static std::enable_if_t< std::is_base_of_v< GrGpuResource, T >, void > ReturnResourceFromThread(sk_sp< T > &&resource, GrDirectContext::DirectContextID id)
sk_sp< GrGpuBuffer > createBuffer(size_t size, GrGpuBufferType, GrAccessPattern, ZeroInit)
static sk_sp< SkData > MakeWithCopy(const void *data, size_t length)
void reset(T *ptr=nullptr)
static const uint8_t buffer[]
SK_API sk_sp< SkMesh::IndexBuffer > CopyIndexBuffer(const sk_sp< SkMesh::IndexBuffer > &)
SK_API sk_sp< SkMesh::IndexBuffer > MakeIndexBuffer(const void *data, size_t size)
SK_API sk_sp< SkMesh::VertexBuffer > MakeVertexBuffer(const void *, size_t size)
SK_API sk_sp< SkMesh::VertexBuffer > CopyVertexBuffer(const sk_sp< SkMesh::VertexBuffer > &)