sdlxBindGpuFragmentStorageBuffers function gpu

void sdlxBindGpuFragmentStorageBuffers(
  1. Pointer<SdlGpuRenderPass> renderPass, {
  2. required List<Pointer<SdlGpuBuffer>> storageBuffers,
  3. int firstSlot = 0,
})

Binds storage buffers for use on the fragment shader.

These buffers must have been created with SDL_GPU_BUFFERUSAGE_GRAPHICS_STORAGE_READ.

Be sure your shader is set up according to the requirements documented in SDL_CreateGPUShader().

\param render_pass a render pass handle. \param first_slot the fragment storage buffer slot to begin binding from. \param storage_buffers an array of storage buffers. \param num_bindings the number of storage buffers to bind from the array.

\since This function is available since SDL 3.2.0.

\sa SDL_CreateGPUShader

extern SDL_DECLSPEC void SDLCALL SDL_BindGPUFragmentStorageBuffers( SDL_GPURenderPass *render_pass, Uint32 first_slot, SDL_GPUBuffer *const *storage_buffers, Uint32 num_bindings)

Implementation

void sdlxBindGpuFragmentStorageBuffers(
  Pointer<SdlGpuRenderPass> renderPass, {
  required List<Pointer<SdlGpuBuffer>> storageBuffers,
  int firstSlot = 0,
}) {
  final pointer = ffi.calloc<Pointer<SdlGpuBuffer>>(storageBuffers.length);
  for (var i = 0; i < storageBuffers.length; i++) {
    pointer[i] = storageBuffers[i];
  }
  sdlBindGpuFragmentStorageBuffers(
    renderPass,
    firstSlot,
    pointer,
    storageBuffers.length,
  );
  pointer.callocFree();
}