sdlCreateGpuTexture function gpu

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, either via SDL_UploadToGPUTexture or by performing a render or compute pass with this texture as a target.

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_GPU_TEXTURE_CREATE_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_TEXTURE_CREATE_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_TEXTURE_CREATE_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_TEXTURE_CREATE_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_TEXTURE_CREATE_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_TEXTURE_CREATE_D3D12_CLEAR_STENCIL_NUMBER: (Direct3D 12 only) if the texture usage is SDL_GPU_TEXTUREUSAGE_DEPTH_STENCIL_TARGET, clear the texture to a stencil of this Uint8 value. Defaults to zero.
  • SDL_PROP_GPU_TEXTURE_CREATE_NAME_STRING: a name that can be displayed in debugging tools.

\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.2.0.

\sa SDL_UploadToGPUTexture \sa SDL_DownloadFromGPUTexture \sa SDL_BeginGPURenderPass \sa SDL_BeginGPUComputePass \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 = _libSdl
      .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);
}