616#define SDL_GPU_TEXTUREUSAGE_SAMPLER (1u << 0)
617#define SDL_GPU_TEXTUREUSAGE_COLOR_TARGET (1u << 1)
618#define SDL_GPU_TEXTUREUSAGE_DEPTH_STENCIL_TARGET (1u << 2)
619#define SDL_GPU_TEXTUREUSAGE_GRAPHICS_STORAGE_READ (1u << 3)
620#define SDL_GPU_TEXTUREUSAGE_COMPUTE_STORAGE_READ (1u << 4)
621#define SDL_GPU_TEXTUREUSAGE_COMPUTE_STORAGE_WRITE (1u << 5)
622#define SDL_GPU_TEXTUREUSAGE_COMPUTE_STORAGE_SIMULTANEOUS_READ_WRITE (1u << 6)
692#define SDL_GPU_BUFFERUSAGE_VERTEX (1u << 0)
693#define SDL_GPU_BUFFERUSAGE_INDEX (1u << 1)
694#define SDL_GPU_BUFFERUSAGE_INDIRECT (1u << 2)
695#define SDL_GPU_BUFFERUSAGE_GRAPHICS_STORAGE_READ (1u << 3)
696#define SDL_GPU_BUFFERUSAGE_COMPUTE_STORAGE_READ (1u << 4)
697#define SDL_GPU_BUFFERUSAGE_COMPUTE_STORAGE_WRITE (1u << 5)
739#define SDL_GPU_SHADERFORMAT_INVALID 0
740#define SDL_GPU_SHADERFORMAT_PRIVATE (1u << 0)
741#define SDL_GPU_SHADERFORMAT_SPIRV (1u << 1)
742#define SDL_GPU_SHADERFORMAT_DXBC (1u << 2)
743#define SDL_GPU_SHADERFORMAT_DXIL (1u << 3)
744#define SDL_GPU_SHADERFORMAT_MSL (1u << 4)
745#define SDL_GPU_SHADERFORMAT_METALLIB (1u << 5)
967#define SDL_GPU_COLORCOMPONENT_R (1u << 0)
968#define SDL_GPU_COLORCOMPONENT_G (1u << 1)
969#define SDL_GPU_COLORCOMPONENT_B (1u << 2)
970#define SDL_GPU_COLORCOMPONENT_A (1u << 3)
1459#define SDL_PROP_GPU_CREATETEXTURE_D3D12_CLEAR_R_FLOAT "SDL.gpu.createtexture.d3d12.clear.r"
1460#define SDL_PROP_GPU_CREATETEXTURE_D3D12_CLEAR_G_FLOAT "SDL.gpu.createtexture.d3d12.clear.g"
1461#define SDL_PROP_GPU_CREATETEXTURE_D3D12_CLEAR_B_FLOAT "SDL.gpu.createtexture.d3d12.clear.b"
1462#define SDL_PROP_GPU_CREATETEXTURE_D3D12_CLEAR_A_FLOAT "SDL.gpu.createtexture.d3d12.clear.a"
1463#define SDL_PROP_GPU_CREATETEXTURE_D3D12_CLEAR_DEPTH_FLOAT "SDL.gpu.createtexture.d3d12.clear.depth"
1464#define SDL_PROP_GPU_CREATETEXTURE_D3D12_CLEAR_STENCIL_UINT8 "SDL.gpu.createtexture.d3d12.clear.stencil"
1948#define SDL_PROP_GPU_DEVICE_CREATE_DEBUGMODE_BOOL "SDL.gpu.device.create.debugmode"
1949#define SDL_PROP_GPU_DEVICE_CREATE_PREFERLOWPOWER_BOOL "SDL.gpu.device.create.preferlowpower"
1950#define SDL_PROP_GPU_DEVICE_CREATE_NAME_STRING "SDL.gpu.device.create.name"
1951#define SDL_PROP_GPU_DEVICE_CREATE_SHADERS_PRIVATE_BOOL "SDL.gpu.device.create.shaders.private"
1952#define SDL_PROP_GPU_DEVICE_CREATE_SHADERS_SPIRV_BOOL "SDL.gpu.device.create.shaders.spirv"
1953#define SDL_PROP_GPU_DEVICE_CREATE_SHADERS_DXBC_BOOL "SDL.gpu.device.create.shaders.dxbc"
1954#define SDL_PROP_GPU_DEVICE_CREATE_SHADERS_DXIL_BOOL "SDL.gpu.device.create.shaders.dxil"
1955#define SDL_PROP_GPU_DEVICE_CREATE_SHADERS_MSL_BOOL "SDL.gpu.device.create.shaders.msl"
1956#define SDL_PROP_GPU_DEVICE_CREATE_SHADERS_METALLIB_BOOL "SDL.gpu.device.create.shaders.metallib"
1957#define SDL_PROP_GPU_DEVICE_CREATE_D3D12_SEMANTIC_NAME_STRING "SDL.gpu.device.create.d3d12.semantic"
2620 Uint32 num_color_targets,
2993 Uint32 num_storage_texture_bindings,
2995 Uint32 num_storage_buffer_bindings);
3508 Uint32 *swapchain_texture_width,
3509 Uint32 *swapchain_texture_height);
3673#ifdef SDL_PLATFORM_GDK
3688extern SDL_DECLSPEC
void SDLCALL SDL_GDKSuspendGPU(
SDL_GPUDevice *device);
3703extern SDL_DECLSPEC
void SDLCALL SDL_GDKResumeGPU(
SDL_GPUDevice *device);
void SDL_BindGPUComputeStorageTextures(SDL_GPUComputePass *compute_pass, Uint32 first_slot, SDL_GPUTexture *const *storage_textures, Uint32 num_bindings)
void SDL_EndGPUComputePass(SDL_GPUComputePass *compute_pass)
void SDL_DestroyGPUDevice(SDL_GPUDevice *device)
SDL_GPUTransferBuffer * SDL_CreateGPUTransferBuffer(SDL_GPUDevice *device, const SDL_GPUTransferBufferCreateInfo *createinfo)
@ SDL_GPU_CUBEMAPFACE_NEGATIVEY
@ SDL_GPU_CUBEMAPFACE_POSITIVEY
@ SDL_GPU_CUBEMAPFACE_NEGATIVEX
@ SDL_GPU_CUBEMAPFACE_NEGATIVEZ
@ SDL_GPU_CUBEMAPFACE_POSITIVEX
@ SDL_GPU_CUBEMAPFACE_POSITIVEZ
SDL_GPUDevice * SDL_CreateGPUDevice(SDL_GPUShaderFormat format_flags, bool debug_mode, const char *name)
void SDL_EndGPURenderPass(SDL_GPURenderPass *render_pass)
void SDL_ReleaseGPUComputePipeline(SDL_GPUDevice *device, SDL_GPUComputePipeline *compute_pipeline)
struct SDL_GPUTransferBuffer SDL_GPUTransferBuffer
void SDL_PushGPUDebugGroup(SDL_GPUCommandBuffer *command_buffer, const char *name)
@ SDL_GPU_FRONTFACE_COUNTER_CLOCKWISE
@ SDL_GPU_FRONTFACE_CLOCKWISE
SDL_GPUDevice * SDL_CreateGPUDeviceWithProperties(SDL_PropertiesID props)
@ SDL_GPU_VERTEXINPUTRATE_INSTANCE
@ SDL_GPU_VERTEXINPUTRATE_VERTEX
bool SDL_GPUTextureSupportsFormat(SDL_GPUDevice *device, SDL_GPUTextureFormat format, SDL_GPUTextureType type, SDL_GPUTextureUsageFlags usage)
SDL_GPUTexture * SDL_CreateGPUTexture(SDL_GPUDevice *device, const SDL_GPUTextureCreateInfo *createinfo)
bool SDL_SubmitGPUCommandBuffer(SDL_GPUCommandBuffer *command_buffer)
@ SDL_GPU_PRIMITIVETYPE_TRIANGLELIST
@ SDL_GPU_PRIMITIVETYPE_TRIANGLESTRIP
@ SDL_GPU_PRIMITIVETYPE_POINTLIST
@ SDL_GPU_PRIMITIVETYPE_LINESTRIP
@ SDL_GPU_PRIMITIVETYPE_LINELIST
void SDL_DownloadFromGPUBuffer(SDL_GPUCopyPass *copy_pass, const SDL_GPUBufferRegion *source, const SDL_GPUTransferBufferLocation *destination)
SDL_GPUShader * SDL_CreateGPUShader(SDL_GPUDevice *device, const SDL_GPUShaderCreateInfo *createinfo)
void SDL_PushGPUFragmentUniformData(SDL_GPUCommandBuffer *command_buffer, Uint32 slot_index, const void *data, Uint32 length)
SDL_GPUCommandBuffer * SDL_AcquireGPUCommandBuffer(SDL_GPUDevice *device)
void SDL_EndGPUCopyPass(SDL_GPUCopyPass *copy_pass)
Uint32 SDL_GPUShaderFormat
void SDL_SetGPUTextureName(SDL_GPUDevice *device, SDL_GPUTexture *texture, const char *text)
struct SDL_GPURenderPass SDL_GPURenderPass
SDL_GPUCopyPass * SDL_BeginGPUCopyPass(SDL_GPUCommandBuffer *command_buffer)
@ SDL_GPU_INDEXELEMENTSIZE_16BIT
@ SDL_GPU_INDEXELEMENTSIZE_32BIT
void SDL_PopGPUDebugGroup(SDL_GPUCommandBuffer *command_buffer)
void SDL_BindGPUVertexStorageTextures(SDL_GPURenderPass *render_pass, Uint32 first_slot, SDL_GPUTexture *const *storage_textures, Uint32 num_bindings)
@ SDL_GPU_BLENDFACTOR_ONE_MINUS_SRC_ALPHA
@ SDL_GPU_BLENDFACTOR_CONSTANT_COLOR
@ SDL_GPU_BLENDFACTOR_ONE_MINUS_DST_COLOR
@ SDL_GPU_BLENDFACTOR_INVALID
@ SDL_GPU_BLENDFACTOR_DST_ALPHA
@ SDL_GPU_BLENDFACTOR_ZERO
@ SDL_GPU_BLENDFACTOR_DST_COLOR
@ SDL_GPU_BLENDFACTOR_ONE_MINUS_DST_ALPHA
@ SDL_GPU_BLENDFACTOR_SRC_ALPHA
@ SDL_GPU_BLENDFACTOR_SRC_COLOR
@ SDL_GPU_BLENDFACTOR_ONE_MINUS_SRC_COLOR
@ SDL_GPU_BLENDFACTOR_SRC_ALPHA_SATURATE
@ SDL_GPU_BLENDFACTOR_ONE
@ SDL_GPU_BLENDFACTOR_ONE_MINUS_CONSTANT_COLOR
const char * SDL_GetGPUDriver(int index)
void SDL_CopyGPUBufferToBuffer(SDL_GPUCopyPass *copy_pass, const SDL_GPUBufferLocation *source, const SDL_GPUBufferLocation *destination, Uint32 size, bool cycle)
void SDL_InsertGPUDebugLabel(SDL_GPUCommandBuffer *command_buffer, const char *text)
bool SDL_WaitForGPUIdle(SDL_GPUDevice *device)
@ SDL_GPU_STOREOP_RESOLVE_AND_STORE
@ SDL_GPU_STOREOP_DONT_CARE
@ SDL_GPU_STOREOP_RESOLVE
SDL_GPUShaderFormat SDL_GetGPUShaderFormats(SDL_GPUDevice *device)
void SDL_BindGPUFragmentStorageTextures(SDL_GPURenderPass *render_pass, Uint32 first_slot, SDL_GPUTexture *const *storage_textures, Uint32 num_bindings)
void SDL_DispatchGPUComputeIndirect(SDL_GPUComputePass *compute_pass, SDL_GPUBuffer *buffer, Uint32 offset)
@ SDL_GPU_SAMPLERMIPMAPMODE_NEAREST
@ SDL_GPU_SAMPLERMIPMAPMODE_LINEAR
bool SDL_ClaimWindowForGPUDevice(SDL_GPUDevice *device, SDL_Window *window)
struct SDL_GPUSampler SDL_GPUSampler
struct SDL_GPUCommandBuffer SDL_GPUCommandBuffer
@ SDL_GPU_LOADOP_DONT_CARE
@ SDL_GPU_STENCILOP_DECREMENT_AND_WRAP
@ SDL_GPU_STENCILOP_INVERT
@ SDL_GPU_STENCILOP_REPLACE
@ SDL_GPU_STENCILOP_DECREMENT_AND_CLAMP
@ SDL_GPU_STENCILOP_INCREMENT_AND_CLAMP
@ SDL_GPU_STENCILOP_INCREMENT_AND_WRAP
@ SDL_GPU_STENCILOP_INVALID
struct SDL_GPUFence SDL_GPUFence
Uint32 SDL_GPUTextureFormatTexelBlockSize(SDL_GPUTextureFormat format)
@ SDL_GPU_BLENDOP_INVALID
@ SDL_GPU_BLENDOP_REVERSE_SUBTRACT
@ SDL_GPU_BLENDOP_SUBTRACT
void SDL_DrawGPUPrimitives(SDL_GPURenderPass *render_pass, Uint32 num_vertices, Uint32 num_instances, Uint32 first_vertex, Uint32 first_instance)
bool SDL_WindowSupportsGPUPresentMode(SDL_GPUDevice *device, SDL_Window *window, SDL_GPUPresentMode present_mode)
int SDL_GetNumGPUDrivers(void)
void SDL_ReleaseGPUSampler(SDL_GPUDevice *device, SDL_GPUSampler *sampler)
void SDL_GenerateMipmapsForGPUTexture(SDL_GPUCommandBuffer *command_buffer, SDL_GPUTexture *texture)
void SDL_BindGPUComputeStorageBuffers(SDL_GPUComputePass *compute_pass, Uint32 first_slot, SDL_GPUBuffer *const *storage_buffers, Uint32 num_bindings)
SDL_GPUGraphicsPipeline * SDL_CreateGPUGraphicsPipeline(SDL_GPUDevice *device, const SDL_GPUGraphicsPipelineCreateInfo *createinfo)
Uint8 SDL_GPUColorComponentFlags
SDL_GPUSampler * SDL_CreateGPUSampler(SDL_GPUDevice *device, const SDL_GPUSamplerCreateInfo *createinfo)
void SDL_SetGPUStencilReference(SDL_GPURenderPass *render_pass, Uint8 reference)
struct SDL_GPUGraphicsPipeline SDL_GPUGraphicsPipeline
void SDL_SetGPUBlendConstants(SDL_GPURenderPass *render_pass, SDL_FColor blend_constants)
void SDL_DispatchGPUCompute(SDL_GPUComputePass *compute_pass, Uint32 groupcount_x, Uint32 groupcount_y, Uint32 groupcount_z)
bool SDL_WindowSupportsGPUSwapchainComposition(SDL_GPUDevice *device, SDL_Window *window, SDL_GPUSwapchainComposition swapchain_composition)
void SDL_ReleaseGPUTexture(SDL_GPUDevice *device, SDL_GPUTexture *texture)
void SDL_UnmapGPUTransferBuffer(SDL_GPUDevice *device, SDL_GPUTransferBuffer *transfer_buffer)
void SDL_PushGPUVertexUniformData(SDL_GPUCommandBuffer *command_buffer, Uint32 slot_index, const void *data, Uint32 length)
SDL_GPUVertexElementFormat
@ SDL_GPU_VERTEXELEMENTFORMAT_INT4
@ SDL_GPU_VERTEXELEMENTFORMAT_INT
@ SDL_GPU_VERTEXELEMENTFORMAT_INVALID
@ SDL_GPU_VERTEXELEMENTFORMAT_HALF2
@ SDL_GPU_VERTEXELEMENTFORMAT_BYTE2
@ SDL_GPU_VERTEXELEMENTFORMAT_UBYTE4
@ SDL_GPU_VERTEXELEMENTFORMAT_USHORT4
@ SDL_GPU_VERTEXELEMENTFORMAT_INT2
@ SDL_GPU_VERTEXELEMENTFORMAT_BYTE2_NORM
@ SDL_GPU_VERTEXELEMENTFORMAT_UINT2
@ SDL_GPU_VERTEXELEMENTFORMAT_BYTE4
@ SDL_GPU_VERTEXELEMENTFORMAT_SHORT2_NORM
@ SDL_GPU_VERTEXELEMENTFORMAT_FLOAT4
@ SDL_GPU_VERTEXELEMENTFORMAT_UBYTE2_NORM
@ SDL_GPU_VERTEXELEMENTFORMAT_UINT3
@ SDL_GPU_VERTEXELEMENTFORMAT_UINT
@ SDL_GPU_VERTEXELEMENTFORMAT_UINT4
@ SDL_GPU_VERTEXELEMENTFORMAT_USHORT2_NORM
@ SDL_GPU_VERTEXELEMENTFORMAT_FLOAT3
@ SDL_GPU_VERTEXELEMENTFORMAT_UBYTE2
@ SDL_GPU_VERTEXELEMENTFORMAT_FLOAT2
@ SDL_GPU_VERTEXELEMENTFORMAT_SHORT4
@ SDL_GPU_VERTEXELEMENTFORMAT_FLOAT
@ SDL_GPU_VERTEXELEMENTFORMAT_SHORT2
@ SDL_GPU_VERTEXELEMENTFORMAT_BYTE4_NORM
@ SDL_GPU_VERTEXELEMENTFORMAT_HALF4
@ SDL_GPU_VERTEXELEMENTFORMAT_USHORT2
@ SDL_GPU_VERTEXELEMENTFORMAT_UBYTE4_NORM
@ SDL_GPU_VERTEXELEMENTFORMAT_SHORT4_NORM
@ SDL_GPU_VERTEXELEMENTFORMAT_USHORT4_NORM
@ SDL_GPU_VERTEXELEMENTFORMAT_INT3
void SDL_BindGPUComputeSamplers(SDL_GPUComputePass *compute_pass, Uint32 first_slot, const SDL_GPUTextureSamplerBinding *texture_sampler_bindings, Uint32 num_bindings)
void SDL_ReleaseGPUShader(SDL_GPUDevice *device, SDL_GPUShader *shader)
void SDL_BlitGPUTexture(SDL_GPUCommandBuffer *command_buffer, const SDL_GPUBlitInfo *info)
struct SDL_GPUComputePipeline SDL_GPUComputePipeline
SDL_GPURenderPass * SDL_BeginGPURenderPass(SDL_GPUCommandBuffer *command_buffer, const SDL_GPUColorTargetInfo *color_target_infos, Uint32 num_color_targets, const SDL_GPUDepthStencilTargetInfo *depth_stencil_target_info)
void SDL_BindGPUComputePipeline(SDL_GPUComputePass *compute_pass, SDL_GPUComputePipeline *compute_pipeline)
struct SDL_GPUTexture SDL_GPUTexture
void SDL_ReleaseGPUBuffer(SDL_GPUDevice *device, SDL_GPUBuffer *buffer)
Uint32 SDL_GPUTextureUsageFlags
void SDL_ReleaseGPUFence(SDL_GPUDevice *device, SDL_GPUFence *fence)
Uint32 SDL_GPUBufferUsageFlags
SDL_GPUComputePass * SDL_BeginGPUComputePass(SDL_GPUCommandBuffer *command_buffer, const SDL_GPUStorageTextureReadWriteBinding *storage_texture_bindings, Uint32 num_storage_texture_bindings, const SDL_GPUStorageBufferReadWriteBinding *storage_buffer_bindings, Uint32 num_storage_buffer_bindings)
@ SDL_GPU_PRESENTMODE_VSYNC
@ SDL_GPU_PRESENTMODE_IMMEDIATE
@ SDL_GPU_PRESENTMODE_MAILBOX
void SDL_BindGPUVertexBuffers(SDL_GPURenderPass *render_pass, Uint32 first_slot, const SDL_GPUBufferBinding *bindings, Uint32 num_bindings)
void SDL_CopyGPUTextureToTexture(SDL_GPUCopyPass *copy_pass, const SDL_GPUTextureLocation *source, const SDL_GPUTextureLocation *destination, Uint32 w, Uint32 h, Uint32 d, bool cycle)
void SDL_BindGPUIndexBuffer(SDL_GPURenderPass *render_pass, const SDL_GPUBufferBinding *binding, SDL_GPUIndexElementSize index_element_size)
SDL_GPUBuffer * SDL_CreateGPUBuffer(SDL_GPUDevice *device, const SDL_GPUBufferCreateInfo *createinfo)
void SDL_UploadToGPUBuffer(SDL_GPUCopyPass *copy_pass, const SDL_GPUTransferBufferLocation *source, const SDL_GPUBufferRegion *destination, bool cycle)
bool SDL_GPUTextureSupportsSampleCount(SDL_GPUDevice *device, SDL_GPUTextureFormat format, SDL_GPUSampleCount sample_count)
bool SDL_AcquireGPUSwapchainTexture(SDL_GPUCommandBuffer *command_buffer, SDL_Window *window, SDL_GPUTexture **swapchain_texture, Uint32 *swapchain_texture_width, Uint32 *swapchain_texture_height)
struct SDL_GPUBuffer SDL_GPUBuffer
@ SDL_GPU_COMPAREOP_NEVER
@ SDL_GPU_COMPAREOP_INVALID
@ SDL_GPU_COMPAREOP_GREATER
@ SDL_GPU_COMPAREOP_GREATER_OR_EQUAL
@ SDL_GPU_COMPAREOP_ALWAYS
@ SDL_GPU_COMPAREOP_LESS_OR_EQUAL
@ SDL_GPU_COMPAREOP_NOT_EQUAL
@ SDL_GPU_COMPAREOP_EQUAL
void SDL_BindGPUVertexSamplers(SDL_GPURenderPass *render_pass, Uint32 first_slot, const SDL_GPUTextureSamplerBinding *texture_sampler_bindings, Uint32 num_bindings)
struct SDL_GPUCopyPass SDL_GPUCopyPass
bool SDL_WaitForGPUFences(SDL_GPUDevice *device, bool wait_all, SDL_GPUFence *const *fences, Uint32 num_fences)
SDL_GPUComputePipeline * SDL_CreateGPUComputePipeline(SDL_GPUDevice *device, const SDL_GPUComputePipelineCreateInfo *createinfo)
bool SDL_QueryGPUFence(SDL_GPUDevice *device, SDL_GPUFence *fence)
SDL_GPUFence * SDL_SubmitGPUCommandBufferAndAcquireFence(SDL_GPUCommandBuffer *command_buffer)
void SDL_DrawGPUIndexedPrimitives(SDL_GPURenderPass *render_pass, Uint32 num_indices, Uint32 num_instances, Uint32 first_index, Sint32 vertex_offset, Uint32 first_instance)
SDL_GPUTransferBufferUsage
@ SDL_GPU_TRANSFERBUFFERUSAGE_DOWNLOAD
@ SDL_GPU_TRANSFERBUFFERUSAGE_UPLOAD
void SDL_DrawGPUPrimitivesIndirect(SDL_GPURenderPass *render_pass, SDL_GPUBuffer *buffer, Uint32 offset, Uint32 draw_count)
void SDL_BindGPUGraphicsPipeline(SDL_GPURenderPass *render_pass, SDL_GPUGraphicsPipeline *graphics_pipeline)
void SDL_SetGPUViewport(SDL_GPURenderPass *render_pass, const SDL_GPUViewport *viewport)
struct SDL_GPUShader SDL_GPUShader
SDL_GPUTextureFormat SDL_GetGPUSwapchainTextureFormat(SDL_GPUDevice *device, SDL_Window *window)
bool SDL_SetGPUSwapchainParameters(SDL_GPUDevice *device, SDL_Window *window, SDL_GPUSwapchainComposition swapchain_composition, SDL_GPUPresentMode present_mode)
SDL_GPUSwapchainComposition
@ SDL_GPU_SWAPCHAINCOMPOSITION_HDR10_ST2048
@ SDL_GPU_SWAPCHAINCOMPOSITION_SDR_LINEAR
@ SDL_GPU_SWAPCHAINCOMPOSITION_SDR
@ SDL_GPU_SWAPCHAINCOMPOSITION_HDR_EXTENDED_LINEAR
void SDL_PushGPUComputeUniformData(SDL_GPUCommandBuffer *command_buffer, Uint32 slot_index, const void *data, Uint32 length)
void SDL_SetGPUScissor(SDL_GPURenderPass *render_pass, const SDL_Rect *scissor)
void SDL_ReleaseGPUTransferBuffer(SDL_GPUDevice *device, SDL_GPUTransferBuffer *transfer_buffer)
@ SDL_GPU_SHADERSTAGE_FRAGMENT
@ SDL_GPU_SHADERSTAGE_VERTEX
void SDL_ReleaseWindowFromGPUDevice(SDL_GPUDevice *device, SDL_Window *window)
void SDL_SetGPUBufferName(SDL_GPUDevice *device, SDL_GPUBuffer *buffer, const char *text)
void SDL_BindGPUFragmentStorageBuffers(SDL_GPURenderPass *render_pass, Uint32 first_slot, SDL_GPUBuffer *const *storage_buffers, Uint32 num_bindings)
const char * SDL_GetGPUDeviceDriver(SDL_GPUDevice *device)
@ SDL_GPU_TEXTURETYPE_CUBE_ARRAY
@ SDL_GPU_TEXTURETYPE_CUBE
@ SDL_GPU_TEXTURETYPE_2D_ARRAY
void SDL_UploadToGPUTexture(SDL_GPUCopyPass *copy_pass, const SDL_GPUTextureTransferInfo *source, const SDL_GPUTextureRegion *destination, bool cycle)
void SDL_DrawGPUIndexedPrimitivesIndirect(SDL_GPURenderPass *render_pass, SDL_GPUBuffer *buffer, Uint32 offset, Uint32 draw_count)
void SDL_BindGPUFragmentSamplers(SDL_GPURenderPass *render_pass, Uint32 first_slot, const SDL_GPUTextureSamplerBinding *texture_sampler_bindings, Uint32 num_bindings)
SDL_GPUSamplerAddressMode
@ SDL_GPU_SAMPLERADDRESSMODE_MIRRORED_REPEAT
@ SDL_GPU_SAMPLERADDRESSMODE_CLAMP_TO_EDGE
@ SDL_GPU_SAMPLERADDRESSMODE_REPEAT
void SDL_ReleaseGPUGraphicsPipeline(SDL_GPUDevice *device, SDL_GPUGraphicsPipeline *graphics_pipeline)
@ SDL_GPU_TEXTUREFORMAT_B8G8R8A8_UNORM
@ SDL_GPU_TEXTUREFORMAT_D16_UNORM
@ SDL_GPU_TEXTUREFORMAT_R16G16_INT
@ SDL_GPU_TEXTUREFORMAT_R16G16B16A16_UINT
@ SDL_GPU_TEXTUREFORMAT_R8_UINT
@ SDL_GPU_TEXTUREFORMAT_R8G8_SNORM
@ SDL_GPU_TEXTUREFORMAT_R16G16B16A16_UNORM
@ SDL_GPU_TEXTUREFORMAT_A8_UNORM
@ SDL_GPU_TEXTUREFORMAT_BC6H_RGB_FLOAT
@ SDL_GPU_TEXTUREFORMAT_R16_UINT
@ SDL_GPU_TEXTUREFORMAT_R16G16B16A16_SNORM
@ SDL_GPU_TEXTUREFORMAT_BC5_RG_UNORM
@ SDL_GPU_TEXTUREFORMAT_R32_INT
@ SDL_GPU_TEXTUREFORMAT_R16_INT
@ SDL_GPU_TEXTUREFORMAT_R32G32B32A32_UINT
@ SDL_GPU_TEXTUREFORMAT_R32G32_INT
@ SDL_GPU_TEXTUREFORMAT_BC4_R_UNORM
@ SDL_GPU_TEXTUREFORMAT_R32G32_FLOAT
@ SDL_GPU_TEXTUREFORMAT_R32_UINT
@ SDL_GPU_TEXTUREFORMAT_R8G8B8A8_UNORM_SRGB
@ SDL_GPU_TEXTUREFORMAT_R8G8B8A8_SNORM
@ SDL_GPU_TEXTUREFORMAT_R16_UNORM
@ SDL_GPU_TEXTUREFORMAT_D32_FLOAT_S8_UINT
@ SDL_GPU_TEXTUREFORMAT_BC6H_RGB_UFLOAT
@ SDL_GPU_TEXTUREFORMAT_BC7_RGBA_UNORM
@ SDL_GPU_TEXTUREFORMAT_BC2_RGBA_UNORM
@ SDL_GPU_TEXTUREFORMAT_R32G32B32A32_FLOAT
@ SDL_GPU_TEXTUREFORMAT_R8_SNORM
@ SDL_GPU_TEXTUREFORMAT_BC1_RGBA_UNORM_SRGB
@ SDL_GPU_TEXTUREFORMAT_R8_UNORM
@ SDL_GPU_TEXTUREFORMAT_D24_UNORM
@ SDL_GPU_TEXTUREFORMAT_BC2_RGBA_UNORM_SRGB
@ SDL_GPU_TEXTUREFORMAT_INVALID
@ SDL_GPU_TEXTUREFORMAT_BC3_RGBA_UNORM
@ SDL_GPU_TEXTUREFORMAT_R16G16_SNORM
@ SDL_GPU_TEXTUREFORMAT_B4G4R4A4_UNORM
@ SDL_GPU_TEXTUREFORMAT_R8G8_INT
@ SDL_GPU_TEXTUREFORMAT_D32_FLOAT
@ SDL_GPU_TEXTUREFORMAT_R32G32B32A32_INT
@ SDL_GPU_TEXTUREFORMAT_R8_INT
@ SDL_GPU_TEXTUREFORMAT_R8G8_UINT
@ SDL_GPU_TEXTUREFORMAT_R16G16_FLOAT
@ SDL_GPU_TEXTUREFORMAT_B5G5R5A1_UNORM
@ SDL_GPU_TEXTUREFORMAT_BC3_RGBA_UNORM_SRGB
@ SDL_GPU_TEXTUREFORMAT_BC1_RGBA_UNORM
@ SDL_GPU_TEXTUREFORMAT_BC7_RGBA_UNORM_SRGB
@ SDL_GPU_TEXTUREFORMAT_R32_FLOAT
@ SDL_GPU_TEXTUREFORMAT_D24_UNORM_S8_UINT
@ SDL_GPU_TEXTUREFORMAT_R32G32_UINT
@ SDL_GPU_TEXTUREFORMAT_R8G8_UNORM
@ SDL_GPU_TEXTUREFORMAT_B8G8R8A8_UNORM_SRGB
@ SDL_GPU_TEXTUREFORMAT_B5G6R5_UNORM
@ SDL_GPU_TEXTUREFORMAT_R16G16_UNORM
@ SDL_GPU_TEXTUREFORMAT_R8G8B8A8_UNORM
@ SDL_GPU_TEXTUREFORMAT_R11G11B10_UFLOAT
@ SDL_GPU_TEXTUREFORMAT_R16G16B16A16_INT
@ SDL_GPU_TEXTUREFORMAT_R8G8B8A8_UINT
@ SDL_GPU_TEXTUREFORMAT_R16G16_UINT
@ SDL_GPU_TEXTUREFORMAT_R16G16B16A16_FLOAT
@ SDL_GPU_TEXTUREFORMAT_R16_SNORM
@ SDL_GPU_TEXTUREFORMAT_R8G8B8A8_INT
@ SDL_GPU_TEXTUREFORMAT_R10G10B10A2_UNORM
@ SDL_GPU_TEXTUREFORMAT_R16_FLOAT
struct SDL_GPUComputePass SDL_GPUComputePass
bool SDL_GPUSupportsProperties(SDL_PropertiesID props)
bool SDL_GPUSupportsShaderFormats(SDL_GPUShaderFormat format_flags, const char *name)
void * SDL_MapGPUTransferBuffer(SDL_GPUDevice *device, SDL_GPUTransferBuffer *transfer_buffer, bool cycle)
void SDL_BindGPUVertexStorageBuffers(SDL_GPURenderPass *render_pass, Uint32 first_slot, SDL_GPUBuffer *const *storage_buffers, Uint32 num_bindings)
struct SDL_GPUDevice SDL_GPUDevice
void SDL_DownloadFromGPUTexture(SDL_GPUCopyPass *copy_pass, const SDL_GPUTextureRegion *source, const SDL_GPUTextureTransferInfo *destination)
struct SDL_Window SDL_Window
SDL_GPUBlitRegion destination
Uint32 layer_or_depth_plane
SDL_GPUBufferUsageFlags usage
SDL_GPUBlendOp color_blend_op
SDL_GPUColorComponentFlags color_write_mask
SDL_GPUBlendFactor src_alpha_blendfactor
bool enable_color_write_mask
SDL_GPUBlendOp alpha_blend_op
SDL_GPUBlendFactor dst_alpha_blendfactor
SDL_GPUBlendFactor src_color_blendfactor
SDL_GPUBlendFactor dst_color_blendfactor
SDL_GPUColorTargetBlendState blend_state
SDL_GPUTextureFormat format
Uint32 layer_or_depth_plane
bool cycle_resolve_texture
SDL_GPUTexture * resolve_texture
Uint32 num_readonly_storage_buffers
Uint32 num_readwrite_storage_buffers
Uint32 num_uniform_buffers
Uint32 num_readonly_storage_textures
Uint32 num_readwrite_storage_textures
SDL_GPUShaderFormat format
SDL_GPUStencilOpState back_stencil_state
SDL_GPUCompareOp compare_op
SDL_GPUStencilOpState front_stencil_state
SDL_GPUStoreOp stencil_store_op
SDL_GPULoadOp stencil_load_op
SDL_GPUShader * vertex_shader
SDL_GPUShader * fragment_shader
SDL_GPUMultisampleState multisample_state
SDL_GPUPrimitiveType primitive_type
SDL_GPUDepthStencilState depth_stencil_state
SDL_GPUGraphicsPipelineTargetInfo target_info
SDL_GPUVertexInputState vertex_input_state
SDL_GPURasterizerState rasterizer_state
SDL_GPUTextureFormat depth_stencil_format
bool has_depth_stencil_target
const SDL_GPUColorTargetDescription * color_target_descriptions
SDL_GPUSampleCount sample_count
float depth_bias_slope_factor
SDL_GPUFrontFace front_face
SDL_GPUCullMode cull_mode
float depth_bias_constant_factor
SDL_GPUFillMode fill_mode
SDL_GPUSamplerAddressMode address_mode_u
SDL_GPUSamplerMipmapMode mipmap_mode
SDL_GPUSamplerAddressMode address_mode_v
SDL_GPUSamplerAddressMode address_mode_w
SDL_GPUCompareOp compare_op
Uint32 num_storage_textures
SDL_GPUShaderFormat format
Uint32 num_storage_buffers
Uint32 num_uniform_buffers
SDL_GPUStencilOp depth_fail_op
SDL_GPUCompareOp compare_op
SDL_GPUTextureUsageFlags usage
SDL_GPUTextureFormat format
SDL_GPUSampleCount sample_count
Uint32 layer_count_or_depth
SDL_GPUTransferBuffer * transfer_buffer
SDL_GPUTransferBufferUsage usage
SDL_GPUTransferBuffer * transfer_buffer
SDL_GPUVertexElementFormat format
SDL_GPUVertexInputRate input_rate
Uint32 instance_step_rate