sdlCreateGpuTexture function

Pointer<SdlGpuTexture> sdlCreateGpuTexture(
  1. Pointer<SdlGpuDevice> device,
  2. Pointer<SdlGpuTextureCreateInfo> createinfo
)

Creates a texture object to be used in graphics or compute workflows.

The contents of this texture are undefined until data is written to the texture.

Note that certain combinations of usage flags are invalid. For example, a texture cannot have both the SAMPLER and GRAPHICS_STORAGE_READ flags.

If you request a sample count higher than the hardware supports, the implementation will automatically fall back to the highest available sample count.

There are optional properties that can be provided through SDL_GPUTextureCreateInfo's props. These are the supported properties:

  • SDL_PROP_PROCESS_CREATE_ARGS_POINTER: an array of strings containing the program to run, any arguments, and a NULL pointer, e.g. const char *args[] = { "myprogram", "argument", NULL }. This is a required property.
  • SDL_PROP_GPU_CREATETEXTURE_D3D12_CLEAR_R_FLOAT: (Direct3D 12 only) if the texture usage is SDL_GPU_TEXTUREUSAGE_COLOR_TARGET, clear the texture to a color with this red intensity. Defaults to zero.
  • SDL_PROP_GPU_CREATETEXTURE_D3D12_CLEAR_G_FLOAT: (Direct3D 12 only) if the texture usage is SDL_GPU_TEXTUREUSAGE_COLOR_TARGET, clear the texture to a color with this green intensity. Defaults to zero.
  • SDL_PROP_GPU_CREATETEXTURE_D3D12_CLEAR_B_FLOAT: (Direct3D 12 only) if the texture usage is SDL_GPU_TEXTUREUSAGE_COLOR_TARGET, clear the texture to a color with this blue intensity. Defaults to zero.
  • SDL_PROP_GPU_CREATETEXTURE_D3D12_CLEAR_A_FLOAT: (Direct3D 12 only) if the texture usage is SDL_GPU_TEXTUREUSAGE_COLOR_TARGET, clear the texture to a color with this alpha intensity. Defaults to zero.
  • SDL_PROP_GPU_CREATETEXTURE_D3D12_CLEAR_DEPTH_FLOAT: (Direct3D 12 only) if the texture usage is SDL_GPU_TEXTUREUSAGE_DEPTH_STENCIL_TARGET, clear the texture to a depth of this value. Defaults to zero.
  • SDL_PROP_GPU_CREATETEXTURE_D3D12_CLEAR_STENCIL_UINT8: (Direct3D 12 only) if the texture usage is SDL_GPU_TEXTUREUSAGE_DEPTH_STENCIL_TARGET, clear the texture to a stencil of this value. Defaults to zero.

\param device a GPU Context. \param createinfo a struct describing the state of the texture to create. \returns a texture object on success, or NULL on failure; call SDL_GetError() for more information.

\since This function is available since SDL 3.1.3.

\sa SDL_UploadToGPUTexture \sa SDL_DownloadFromGPUTexture \sa SDL_BindGPUVertexSamplers \sa SDL_BindGPUVertexStorageTextures \sa SDL_BindGPUFragmentSamplers \sa SDL_BindGPUFragmentStorageTextures \sa SDL_BindGPUComputeStorageTextures \sa SDL_BlitGPUTexture \sa SDL_ReleaseGPUTexture \sa SDL_GPUTextureSupportsFormat

extern SDL_DECLSPEC SDL_GPUTexture *SDLCALL SDL_CreateGPUTexture( SDL_GPUDevice *device, const SDL_GPUTextureCreateInfo *createinfo)

Implementation

Pointer<SdlGpuTexture> sdlCreateGpuTexture(
    Pointer<SdlGpuDevice> device, Pointer<SdlGpuTextureCreateInfo> createinfo) {
  final sdlCreateGpuTextureLookupFunction = libSdl3.lookupFunction<
      Pointer<SdlGpuTexture> Function(Pointer<SdlGpuDevice> device,
          Pointer<SdlGpuTextureCreateInfo> createinfo),
      Pointer<SdlGpuTexture> Function(Pointer<SdlGpuDevice> device,
          Pointer<SdlGpuTextureCreateInfo> createinfo)>('SDL_CreateGPUTexture');
  return sdlCreateGpuTextureLookupFunction(device, createinfo);
}