sdlxBindGpuComputeStorageTextures function gpu

void sdlxBindGpuComputeStorageTextures(
  1. Pointer<SdlGpuComputePass> computePass, {
  2. required List<Pointer<SdlGpuTexture>> storageTextures,
  3. int firstSlot = 0,
})

Binds storage textures as readonly for use on the compute pipeline.

These textures must have been created with SDL_GPU_TEXTUREUSAGE_COMPUTE_STORAGE_READ.

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

\param compute_pass a compute pass handle. \param first_slot the compute storage texture slot to begin binding from. \param storage_textures an array of storage textures. \param num_bindings the number of storage textures to bind from the array.

\since This function is available since SDL 3.2.0.

\sa SDL_CreateGPUComputePipeline

extern SDL_DECLSPEC void SDLCALL SDL_BindGPUComputeStorageTextures( SDL_GPUComputePass *compute_pass, Uint32 first_slot, SDL_GPUTexture *const *storage_textures, Uint32 num_bindings)

Implementation

void sdlxBindGpuComputeStorageTextures(
  Pointer<SdlGpuComputePass> computePass, {
  required List<Pointer<SdlGpuTexture>> storageTextures,
  int firstSlot = 0,
}) {
  final pointer = ffi.calloc<Pointer<SdlGpuTexture>>(storageTextures.length);
  for (var i = 0; i < storageTextures.length; i++) {
    pointer[i] = storageTextures[i];
  }
  sdlBindGpuComputeStorageTextures(
    computePass,
    firstSlot,
    pointer,
    storageTextures.length,
  );
  pointer.callocFree();
}