44 void upload(SDL_GPUCommandBuffer* cmd,
const void* data, uint32_t count, uint32_t stride);
Manages a GPU storage buffer + CPU-side transfer buffer pair for particle data.
Definition GpuParticleBuffer.hpp:26
void bindAsVertex(SDL_GPURenderPass *pass) const
Bind as a vertex buffer at binding index 0.
Definition GpuParticleBuffer.cpp:89
SDL_GPUDevice * device_
Definition GpuParticleBuffer.hpp:58
uint32_t liveCount_
Updated by upload().
Definition GpuParticleBuffer.hpp:62
uint32_t liveCount() const
Definition GpuParticleBuffer.hpp:54
void bindAsVertexStorage(SDL_GPURenderPass *pass, uint32_t slot) const
Bind as a vertex storage buffer at the given slot.
Definition GpuParticleBuffer.cpp:83
void upload(SDL_GPUCommandBuffer *cmd, const void *data, uint32_t count, uint32_t stride)
Upload count * stride bytes from data to the GPU buffer.
Definition GpuParticleBuffer.cpp:46
uint32_t capacity_
Bytes allocated.
Definition GpuParticleBuffer.hpp:61
SDL_GPUTransferBuffer * transfer_
Definition GpuParticleBuffer.hpp:60
void quit()
Release all GPU resources.
Definition GpuParticleBuffer.cpp:31
SDL_GPUBuffer * gpuBuf_
Definition GpuParticleBuffer.hpp:59
Mode
Definition GpuParticleBuffer.hpp:29
@ Storage
Definition GpuParticleBuffer.hpp:30
void init(SDL_GPUDevice *dev, uint32_t maxBytes, Mode mode=Mode::Storage)
Allocate GPU + transfer buffers of maxBytes each.
Definition GpuParticleBuffer.cpp:8
uint32_t capacityBytes() const
Definition GpuParticleBuffer.hpp:55
Forward-declared — owned by Game, registered via setParticleSystem().
Definition NewRenderer.hpp:40