Backlog/lib/sdl3/parser/SDL_gpu.json

190 lines
58 KiB
JSON

{
"header": "SDL_gpu.h",
"opaque_types": [
{"name": "SDL_GPUDevice"},
{"name": "SDL_GPUBuffer"},
{"name": "SDL_GPUTransferBuffer"},
{"name": "SDL_GPUTexture"},
{"name": "SDL_GPUSampler"},
{"name": "SDL_GPUShader"},
{"name": "SDL_GPUComputePipeline"},
{"name": "SDL_GPUGraphicsPipeline"},
{"name": "SDL_GPUCommandBuffer"},
{"name": "SDL_GPURenderPass"},
{"name": "SDL_GPUComputePass"},
{"name": "SDL_GPUCopyPass"},
{"name": "SDL_GPUFence"}
],
"typedefs": [
{"name": "SDL_GPUShaderFormat", "underlying_type": "Uint32"}
],
"function_pointers": [
],
"enums": [
{"name": "SDL_GPUPrimitiveType", "values": []},
{"name": "SDL_GPULoadOp", "values": []},
{"name": "SDL_GPUStoreOp", "values": []},
{"name": "SDL_GPUIndexElementSize", "values": []},
{"name": "SDL_GPUTextureFormat", "values": [{"name": "SDL_GPU_TEXTUREFORMAT_INVALID"}, {"name": "SDL_GPU_TEXTUREFORMAT_A8_UNORM"}, {"name": "SDL_GPU_TEXTUREFORMAT_R8_UNORM"}, {"name": "SDL_GPU_TEXTUREFORMAT_R8G8_UNORM"}, {"name": "SDL_GPU_TEXTUREFORMAT_R8G8B8A8_UNORM"}, {"name": "SDL_GPU_TEXTUREFORMAT_R16_UNORM"}, {"name": "SDL_GPU_TEXTUREFORMAT_R16G16_UNORM"}, {"name": "SDL_GPU_TEXTUREFORMAT_R16G16B16A16_UNORM"}, {"name": "SDL_GPU_TEXTUREFORMAT_R10G10B10A2_UNORM"}, {"name": "SDL_GPU_TEXTUREFORMAT_B5G6R5_UNORM"}, {"name": "SDL_GPU_TEXTUREFORMAT_B5G5R5A1_UNORM"}, {"name": "SDL_GPU_TEXTUREFORMAT_B4G4R4A4_UNORM"}, {"name": "SDL_GPU_TEXTUREFORMAT_B8G8R8A8_UNORM"}, {"name": "SDL_GPU_TEXTUREFORMAT_BC1_RGBA_UNORM"}, {"name": "SDL_GPU_TEXTUREFORMAT_BC2_RGBA_UNORM"}, {"name": "SDL_GPU_TEXTUREFORMAT_BC3_RGBA_UNORM"}, {"name": "SDL_GPU_TEXTUREFORMAT_BC4_R_UNORM"}, {"name": "SDL_GPU_TEXTUREFORMAT_BC5_RG_UNORM"}, {"name": "SDL_GPU_TEXTUREFORMAT_BC7_RGBA_UNORM"}, {"name": "SDL_GPU_TEXTUREFORMAT_BC6H_RGB_FLOAT"}, {"name": "SDL_GPU_TEXTUREFORMAT_BC6H_RGB_UFLOAT"}, {"name": "SDL_GPU_TEXTUREFORMAT_R8_SNORM"}, {"name": "SDL_GPU_TEXTUREFORMAT_R8G8_SNORM"}, {"name": "SDL_GPU_TEXTUREFORMAT_R8G8B8A8_SNORM"}, {"name": "SDL_GPU_TEXTUREFORMAT_R16_SNORM"}, {"name": "SDL_GPU_TEXTUREFORMAT_R16G16_SNORM"}, {"name": "SDL_GPU_TEXTUREFORMAT_R16G16B16A16_SNORM"}, {"name": "SDL_GPU_TEXTUREFORMAT_R16_FLOAT"}, {"name": "SDL_GPU_TEXTUREFORMAT_R16G16_FLOAT"}, {"name": "SDL_GPU_TEXTUREFORMAT_R16G16B16A16_FLOAT"}, {"name": "SDL_GPU_TEXTUREFORMAT_R32_FLOAT"}, {"name": "SDL_GPU_TEXTUREFORMAT_R32G32_FLOAT"}, {"name": "SDL_GPU_TEXTUREFORMAT_R32G32B32A32_FLOAT"}, {"name": "SDL_GPU_TEXTUREFORMAT_R11G11B10_UFLOAT"}, {"name": "SDL_GPU_TEXTUREFORMAT_R8_UINT"}, {"name": "SDL_GPU_TEXTUREFORMAT_R8G8_UINT"}, {"name": "SDL_GPU_TEXTUREFORMAT_R8G8B8A8_UINT"}, {"name": "SDL_GPU_TEXTUREFORMAT_R16_UINT"}, {"name": "SDL_GPU_TEXTUREFORMAT_R16G16_UINT"}, {"name": "SDL_GPU_TEXTUREFORMAT_R16G16B16A16_UINT"}, {"name": "SDL_GPU_TEXTUREFORMAT_R32_UINT"}, {"name": "SDL_GPU_TEXTUREFORMAT_R32G32_UINT"}, {"name": "SDL_GPU_TEXTUREFORMAT_R32G32B32A32_UINT"}, {"name": "SDL_GPU_TEXTUREFORMAT_R8_INT"}, {"name": "SDL_GPU_TEXTUREFORMAT_R8G8_INT"}, {"name": "SDL_GPU_TEXTUREFORMAT_R8G8B8A8_INT"}, {"name": "SDL_GPU_TEXTUREFORMAT_R16_INT"}, {"name": "SDL_GPU_TEXTUREFORMAT_R16G16_INT"}, {"name": "SDL_GPU_TEXTUREFORMAT_R16G16B16A16_INT"}, {"name": "SDL_GPU_TEXTUREFORMAT_R32_INT"}, {"name": "SDL_GPU_TEXTUREFORMAT_R32G32_INT"}, {"name": "SDL_GPU_TEXTUREFORMAT_R32G32B32A32_INT"}, {"name": "SDL_GPU_TEXTUREFORMAT_R8G8B8A8_UNORM_SRGB"}, {"name": "SDL_GPU_TEXTUREFORMAT_B8G8R8A8_UNORM_SRGB"}, {"name": "SDL_GPU_TEXTUREFORMAT_BC1_RGBA_UNORM_SRGB"}, {"name": "SDL_GPU_TEXTUREFORMAT_BC2_RGBA_UNORM_SRGB"}, {"name": "SDL_GPU_TEXTUREFORMAT_BC3_RGBA_UNORM_SRGB"}, {"name": "SDL_GPU_TEXTUREFORMAT_BC7_RGBA_UNORM_SRGB"}, {"name": "SDL_GPU_TEXTUREFORMAT_D16_UNORM"}, {"name": "SDL_GPU_TEXTUREFORMAT_D24_UNORM"}, {"name": "SDL_GPU_TEXTUREFORMAT_D32_FLOAT"}, {"name": "SDL_GPU_TEXTUREFORMAT_D24_UNORM_S8_UINT"}, {"name": "SDL_GPU_TEXTUREFORMAT_D32_FLOAT_S8_UINT"}, {"name": "SDL_GPU_TEXTUREFORMAT_ASTC_4x4_UNORM"}, {"name": "SDL_GPU_TEXTUREFORMAT_ASTC_5x4_UNORM"}, {"name": "SDL_GPU_TEXTUREFORMAT_ASTC_5x5_UNORM"}, {"name": "SDL_GPU_TEXTUREFORMAT_ASTC_6x5_UNORM"}, {"name": "SDL_GPU_TEXTUREFORMAT_ASTC_6x6_UNORM"}, {"name": "SDL_GPU_TEXTUREFORMAT_ASTC_8x5_UNORM"}, {"name": "SDL_GPU_TEXTUREFORMAT_ASTC_8x6_UNORM"}, {"name": "SDL_GPU_TEXTUREFORMAT_ASTC_8x8_UNORM"}, {"name": "SDL_GPU_TEXTUREFORMAT_ASTC_10x5_UNORM"}, {"name": "SDL_GPU_TEXTUREFORMAT_ASTC_10x6_UNORM"}, {"name": "SDL_GPU_TEXTUREFORMAT_ASTC_10x8_UNORM"}, {"name": "SDL_GPU_TEXTUREFORMAT_ASTC_10x10_UNORM"}, {"name": "SDL_GPU_TEXTUREFORMAT_ASTC_12x10_UNORM"}, {"name": "SDL_GPU_TEXTUREFORMAT_ASTC_12x12_UNORM"}, {"name": "SDL_GPU_TEXTUREFORMAT_ASTC_4x4_UNORM_SRGB"}, {"name": "SDL_GPU_TEXTUREFORMAT_ASTC_5x4_UNORM_SRGB"}, {"name": "SDL_GPU_TEXTUREFORMAT_ASTC_5x5_UNORM_SRGB"}, {"name": "SDL_GPU_TEXTUREFORMAT_ASTC_6x5_UNORM_SRGB"}, {"name": "SDL_GPU_TEXTUREFORMAT_ASTC_6x6_UNORM_SRGB"}, {"name": "SDL_GPU_TEXTUREFORMAT_ASTC_8x5_UNORM_SRGB"}, {"name": "SDL_GPU_TEXTUREFORMAT_ASTC_8x6_UNORM_SRGB"}, {"name": "SDL_GPU_TEXTUREFORMAT_ASTC_8x8_UNORM_SRGB"}, {"name": "SDL_GPU_TEXTUREFORMAT_ASTC_10x5_UNORM_SRGB"}, {"name": "SDL_GPU_TEXTUREFORMAT_ASTC_10x6_UNORM_SRGB"}, {"name": "SDL_GPU_TEXTUREFORMAT_ASTC_10x8_UNORM_SRGB"}, {"name": "SDL_GPU_TEXTUREFORMAT_ASTC_10x10_UNORM_SRGB"}, {"name": "SDL_GPU_TEXTUREFORMAT_ASTC_12x10_UNORM_SRGB"}, {"name": "SDL_GPU_TEXTUREFORMAT_ASTC_12x12_UNORM_SRGB"}, {"name": "SDL_GPU_TEXTUREFORMAT_ASTC_4x4_FLOAT"}, {"name": "SDL_GPU_TEXTUREFORMAT_ASTC_5x4_FLOAT"}, {"name": "SDL_GPU_TEXTUREFORMAT_ASTC_5x5_FLOAT"}, {"name": "SDL_GPU_TEXTUREFORMAT_ASTC_6x5_FLOAT"}, {"name": "SDL_GPU_TEXTUREFORMAT_ASTC_6x6_FLOAT"}, {"name": "SDL_GPU_TEXTUREFORMAT_ASTC_8x5_FLOAT"}, {"name": "SDL_GPU_TEXTUREFORMAT_ASTC_8x6_FLOAT"}, {"name": "SDL_GPU_TEXTUREFORMAT_ASTC_8x8_FLOAT"}, {"name": "SDL_GPU_TEXTUREFORMAT_ASTC_10x5_FLOAT"}, {"name": "SDL_GPU_TEXTUREFORMAT_ASTC_10x6_FLOAT"}, {"name": "SDL_GPU_TEXTUREFORMAT_ASTC_10x8_FLOAT"}, {"name": "SDL_GPU_TEXTUREFORMAT_ASTC_10x10_FLOAT"}, {"name": "SDL_GPU_TEXTUREFORMAT_ASTC_12x10_FLOAT"}, {"name": "SDL_GPU_TEXTUREFORMAT_ASTC_12x12_FLOAT"}]},
{"name": "SDL_GPUTextureType", "values": []},
{"name": "SDL_GPUSampleCount", "values": []},
{"name": "SDL_GPUCubeMapFace", "values": [{"name": "SDL_GPU_CUBEMAPFACE_POSITIVEX"}, {"name": "SDL_GPU_CUBEMAPFACE_NEGATIVEX"}, {"name": "SDL_GPU_CUBEMAPFACE_POSITIVEY"}, {"name": "SDL_GPU_CUBEMAPFACE_NEGATIVEY"}, {"name": "SDL_GPU_CUBEMAPFACE_POSITIVEZ"}, {"name": "SDL_GPU_CUBEMAPFACE_NEGATIVEZ"}]},
{"name": "SDL_GPUTransferBufferUsage", "values": [{"name": "SDL_GPU_TRANSFERBUFFERUSAGE_UPLOAD"}, {"name": "SDL_GPU_TRANSFERBUFFERUSAGE_DOWNLOAD"}]},
{"name": "SDL_GPUShaderStage", "values": [{"name": "SDL_GPU_SHADERSTAGE_VERTEX"}, {"name": "SDL_GPU_SHADERSTAGE_FRAGMENT"}]},
{"name": "SDL_GPUVertexElementFormat", "values": [{"name": "SDL_GPU_VERTEXELEMENTFORMAT_INVALID"}, {"name": "SDL_GPU_VERTEXELEMENTFORMAT_INT"}, {"name": "SDL_GPU_VERTEXELEMENTFORMAT_INT2"}, {"name": "SDL_GPU_VERTEXELEMENTFORMAT_INT3"}, {"name": "SDL_GPU_VERTEXELEMENTFORMAT_INT4"}, {"name": "SDL_GPU_VERTEXELEMENTFORMAT_UINT"}, {"name": "SDL_GPU_VERTEXELEMENTFORMAT_UINT2"}, {"name": "SDL_GPU_VERTEXELEMENTFORMAT_UINT3"}, {"name": "SDL_GPU_VERTEXELEMENTFORMAT_UINT4"}, {"name": "SDL_GPU_VERTEXELEMENTFORMAT_FLOAT"}, {"name": "SDL_GPU_VERTEXELEMENTFORMAT_FLOAT2"}, {"name": "SDL_GPU_VERTEXELEMENTFORMAT_FLOAT3"}, {"name": "SDL_GPU_VERTEXELEMENTFORMAT_FLOAT4"}, {"name": "SDL_GPU_VERTEXELEMENTFORMAT_BYTE2"}, {"name": "SDL_GPU_VERTEXELEMENTFORMAT_BYTE4"}, {"name": "SDL_GPU_VERTEXELEMENTFORMAT_UBYTE2"}, {"name": "SDL_GPU_VERTEXELEMENTFORMAT_UBYTE4"}, {"name": "SDL_GPU_VERTEXELEMENTFORMAT_BYTE2_NORM"}, {"name": "SDL_GPU_VERTEXELEMENTFORMAT_BYTE4_NORM"}, {"name": "SDL_GPU_VERTEXELEMENTFORMAT_UBYTE2_NORM"}, {"name": "SDL_GPU_VERTEXELEMENTFORMAT_UBYTE4_NORM"}, {"name": "SDL_GPU_VERTEXELEMENTFORMAT_SHORT2"}, {"name": "SDL_GPU_VERTEXELEMENTFORMAT_SHORT4"}, {"name": "SDL_GPU_VERTEXELEMENTFORMAT_USHORT2"}, {"name": "SDL_GPU_VERTEXELEMENTFORMAT_USHORT4"}, {"name": "SDL_GPU_VERTEXELEMENTFORMAT_SHORT2_NORM"}, {"name": "SDL_GPU_VERTEXELEMENTFORMAT_SHORT4_NORM"}, {"name": "SDL_GPU_VERTEXELEMENTFORMAT_USHORT2_NORM"}, {"name": "SDL_GPU_VERTEXELEMENTFORMAT_USHORT4_NORM"}, {"name": "SDL_GPU_VERTEXELEMENTFORMAT_HALF2"}, {"name": "SDL_GPU_VERTEXELEMENTFORMAT_HALF4"}]},
{"name": "SDL_GPUVertexInputRate", "values": []},
{"name": "SDL_GPUFillMode", "values": []},
{"name": "SDL_GPUCullMode", "values": []},
{"name": "SDL_GPUFrontFace", "values": []},
{"name": "SDL_GPUCompareOp", "values": [{"name": "SDL_GPU_COMPAREOP_INVALID"}]},
{"name": "SDL_GPUStencilOp", "values": [{"name": "SDL_GPU_STENCILOP_INVALID"}]},
{"name": "SDL_GPUBlendOp", "values": [{"name": "SDL_GPU_BLENDOP_INVALID"}]},
{"name": "SDL_GPUBlendFactor", "values": [{"name": "SDL_GPU_BLENDFACTOR_INVALID"}]},
{"name": "SDL_GPUFilter", "values": []},
{"name": "SDL_GPUSamplerMipmapMode", "values": []},
{"name": "SDL_GPUSamplerAddressMode", "values": []},
{"name": "SDL_GPUPresentMode", "values": [{"name": "SDL_GPU_PRESENTMODE_VSYNC"}, {"name": "SDL_GPU_PRESENTMODE_IMMEDIATE"}, {"name": "SDL_GPU_PRESENTMODE_MAILBOX"}]},
{"name": "SDL_GPUSwapchainComposition", "values": [{"name": "SDL_GPU_SWAPCHAINCOMPOSITION_SDR"}, {"name": "SDL_GPU_SWAPCHAINCOMPOSITION_SDR_LINEAR"}, {"name": "SDL_GPU_SWAPCHAINCOMPOSITION_HDR_EXTENDED_LINEAR"}, {"name": "SDL_GPU_SWAPCHAINCOMPOSITION_HDR10_ST2084"}]}
],
"structs": [
{"name": "SDL_GPUViewport", "fields": [{"name": "x", "type": "float", "comment": "The left offset of the viewport."}, {"name": "y", "type": "float", "comment": "The top offset of the viewport."}, {"name": "w", "type": "float", "comment": "The width of the viewport."}, {"name": "h", "type": "float", "comment": "The height of the viewport."}, {"name": "min_depth", "type": "float", "comment": "The minimum depth of the viewport."}, {"name": "max_depth", "type": "float", "comment": "The maximum depth of the viewport."}]},
{"name": "SDL_GPUTextureTransferInfo", "fields": [{"name": "transfer_buffer", "type": "SDL_GPUTransferBuffer *", "comment": "The transfer buffer used in the transfer operation."}, {"name": "offset", "type": "Uint32", "comment": "The starting byte of the image data in the transfer buffer."}, {"name": "pixels_per_row", "type": "Uint32", "comment": "The number of pixels from one row to the next."}, {"name": "rows_per_layer", "type": "Uint32", "comment": "The number of rows from one layer/depth-slice to the next."}]},
{"name": "SDL_GPUTransferBufferLocation", "fields": [{"name": "transfer_buffer", "type": "SDL_GPUTransferBuffer *", "comment": "The transfer buffer used in the transfer operation."}, {"name": "offset", "type": "Uint32", "comment": "The starting byte of the buffer data in the transfer buffer."}]},
{"name": "SDL_GPUTextureLocation", "fields": [{"name": "texture", "type": "SDL_GPUTexture *", "comment": "The texture used in the copy operation."}, {"name": "mip_level", "type": "Uint32", "comment": "The mip level index of the location."}, {"name": "layer", "type": "Uint32", "comment": "The layer index of the location."}, {"name": "x", "type": "Uint32", "comment": "The left offset of the location."}, {"name": "y", "type": "Uint32", "comment": "The top offset of the location."}, {"name": "z", "type": "Uint32", "comment": "The front offset of the location."}]},
{"name": "SDL_GPUTextureRegion", "fields": [{"name": "texture", "type": "SDL_GPUTexture *", "comment": "The texture used in the copy operation."}, {"name": "mip_level", "type": "Uint32", "comment": "The mip level index to transfer."}, {"name": "layer", "type": "Uint32", "comment": "The layer index to transfer."}, {"name": "x", "type": "Uint32", "comment": "The left offset of the region."}, {"name": "y", "type": "Uint32", "comment": "The top offset of the region."}, {"name": "z", "type": "Uint32", "comment": "The front offset of the region."}, {"name": "w", "type": "Uint32", "comment": "The width of the region."}, {"name": "h", "type": "Uint32", "comment": "The height of the region."}, {"name": "d", "type": "Uint32", "comment": "The depth of the region."}]},
{"name": "SDL_GPUBlitRegion", "fields": [{"name": "texture", "type": "SDL_GPUTexture *", "comment": "The texture."}, {"name": "mip_level", "type": "Uint32", "comment": "The mip level index of the region."}, {"name": "layer_or_depth_plane", "type": "Uint32", "comment": "The layer index or depth plane of the region. This value is treated as a layer index on 2D array and cube textures, and as a depth plane on 3D textures."}, {"name": "x", "type": "Uint32", "comment": "The left offset of the region."}, {"name": "y", "type": "Uint32", "comment": "The top offset of the region."}, {"name": "w", "type": "Uint32", "comment": "The width of the region."}, {"name": "h", "type": "Uint32", "comment": "The height of the region."}]},
{"name": "SDL_GPUBufferLocation", "fields": [{"name": "buffer", "type": "SDL_GPUBuffer *", "comment": "The buffer."}, {"name": "offset", "type": "Uint32", "comment": "The starting byte within the buffer."}]},
{"name": "SDL_GPUBufferRegion", "fields": [{"name": "buffer", "type": "SDL_GPUBuffer *", "comment": "The buffer."}, {"name": "offset", "type": "Uint32", "comment": "The starting byte within the buffer."}, {"name": "size", "type": "Uint32", "comment": "The size in bytes of the region."}]},
{"name": "SDL_GPUIndirectDrawCommand", "fields": [{"name": "num_vertices", "type": "Uint32", "comment": "The number of vertices to draw."}, {"name": "num_instances", "type": "Uint32", "comment": "The number of instances to draw."}, {"name": "first_vertex", "type": "Uint32", "comment": "The index of the first vertex to draw."}, {"name": "first_instance", "type": "Uint32", "comment": "The ID of the first instance to draw."}]},
{"name": "SDL_GPUIndexedIndirectDrawCommand", "fields": [{"name": "num_indices", "type": "Uint32", "comment": "The number of indices to draw per instance."}, {"name": "num_instances", "type": "Uint32", "comment": "The number of instances to draw."}, {"name": "first_index", "type": "Uint32", "comment": "The base index within the index buffer."}, {"name": "vertex_offset", "type": "Sint32", "comment": "The value added to the vertex index before indexing into the vertex buffer."}, {"name": "first_instance", "type": "Uint32", "comment": "The ID of the first instance to draw."}]},
{"name": "SDL_GPUIndirectDispatchCommand", "fields": [{"name": "groupcount_x", "type": "Uint32", "comment": "The number of local workgroups to dispatch in the X dimension."}, {"name": "groupcount_y", "type": "Uint32", "comment": "The number of local workgroups to dispatch in the Y dimension."}, {"name": "groupcount_z", "type": "Uint32", "comment": "The number of local workgroups to dispatch in the Z dimension."}]},
{"name": "SDL_GPUSamplerCreateInfo", "fields": [{"name": "min_filter", "type": "SDL_GPUFilter", "comment": "The minification filter to apply to lookups."}, {"name": "mag_filter", "type": "SDL_GPUFilter", "comment": "The magnification filter to apply to lookups."}, {"name": "mipmap_mode", "type": "SDL_GPUSamplerMipmapMode", "comment": "The mipmap filter to apply to lookups."}, {"name": "address_mode_u", "type": "SDL_GPUSamplerAddressMode", "comment": "The addressing mode for U coordinates outside [0, 1)."}, {"name": "address_mode_v", "type": "SDL_GPUSamplerAddressMode", "comment": "The addressing mode for V coordinates outside [0, 1)."}, {"name": "address_mode_w", "type": "SDL_GPUSamplerAddressMode", "comment": "The addressing mode for W coordinates outside [0, 1)."}, {"name": "mip_lod_bias", "type": "float", "comment": "The bias to be added to mipmap LOD calculation."}, {"name": "max_anisotropy", "type": "float", "comment": "The anisotropy value clamp used by the sampler. If enable_anisotropy is false, this is ignored."}, {"name": "compare_op", "type": "SDL_GPUCompareOp", "comment": "The comparison operator to apply to fetched data before filtering."}, {"name": "min_lod", "type": "float", "comment": "Clamps the minimum of the computed LOD value."}, {"name": "max_lod", "type": "float", "comment": "Clamps the maximum of the computed LOD value."}, {"name": "enable_anisotropy", "type": "bool", "comment": "true to enable anisotropic filtering."}, {"name": "enable_compare", "type": "bool", "comment": "true to enable comparison against a reference value during lookups."}, {"name": "padding1", "type": "Uint8"}, {"name": "padding2", "type": "Uint8"}, {"name": "props", "type": "SDL_PropertiesID", "comment": "A properties ID for extensions. Should be 0 if no extensions are needed."}]},
{"name": "SDL_GPUVertexBufferDescription", "fields": [{"name": "slot", "type": "Uint32", "comment": "The binding slot of the vertex buffer."}, {"name": "pitch", "type": "Uint32", "comment": "The byte pitch between consecutive elements of the vertex buffer."}, {"name": "input_rate", "type": "SDL_GPUVertexInputRate", "comment": "Whether attribute addressing is a function of the vertex index or instance index."}, {"name": "instance_step_rate", "type": "Uint32", "comment": "Reserved for future use. Must be set to 0."}]},
{"name": "SDL_GPUVertexAttribute", "fields": [{"name": "location", "type": "Uint32", "comment": "The shader input location index."}, {"name": "buffer_slot", "type": "Uint32", "comment": "The binding slot of the associated vertex buffer."}, {"name": "format", "type": "SDL_GPUVertexElementFormat", "comment": "The size and type of the attribute data."}, {"name": "offset", "type": "Uint32", "comment": "The byte offset of this attribute relative to the start of the vertex element."}]},
{"name": "SDL_GPUVertexInputState", "fields": [{"name": "vertex_buffer_descriptions", "type": "const SDL_GPUVertexBufferDescription *", "comment": "A pointer to an array of vertex buffer descriptions."}, {"name": "num_vertex_buffers", "type": "Uint32", "comment": "The number of vertex buffer descriptions in the above array."}, {"name": "vertex_attributes", "type": "const SDL_GPUVertexAttribute *", "comment": "A pointer to an array of vertex attribute descriptions."}, {"name": "num_vertex_attributes", "type": "Uint32", "comment": "The number of vertex attribute descriptions in the above array."}]},
{"name": "SDL_GPUStencilOpState", "fields": [{"name": "fail_op", "type": "SDL_GPUStencilOp", "comment": "The action performed on samples that fail the stencil test."}, {"name": "pass_op", "type": "SDL_GPUStencilOp", "comment": "The action performed on samples that pass the depth and stencil tests."}, {"name": "depth_fail_op", "type": "SDL_GPUStencilOp", "comment": "The action performed on samples that pass the stencil test and fail the depth test."}, {"name": "compare_op", "type": "SDL_GPUCompareOp", "comment": "The comparison operator used in the stencil test."}]},
{"name": "SDL_GPUColorTargetBlendState", "fields": [{"name": "src_color_blendfactor", "type": "SDL_GPUBlendFactor", "comment": "The value to be multiplied by the source RGB value."}, {"name": "dst_color_blendfactor", "type": "SDL_GPUBlendFactor", "comment": "The value to be multiplied by the destination RGB value."}, {"name": "color_blend_op", "type": "SDL_GPUBlendOp", "comment": "The blend operation for the RGB components."}, {"name": "src_alpha_blendfactor", "type": "SDL_GPUBlendFactor", "comment": "The value to be multiplied by the source alpha."}, {"name": "dst_alpha_blendfactor", "type": "SDL_GPUBlendFactor", "comment": "The value to be multiplied by the destination alpha."}, {"name": "alpha_blend_op", "type": "SDL_GPUBlendOp", "comment": "The blend operation for the alpha component."}, {"name": "color_write_mask", "type": "SDL_GPUColorComponentFlags", "comment": "A bitmask specifying which of the RGBA components are enabled for writing. Writes to all channels if enable_color_write_mask is false."}, {"name": "enable_blend", "type": "bool", "comment": "Whether blending is enabled for the color target."}, {"name": "enable_color_write_mask", "type": "bool", "comment": "Whether the color write mask is enabled."}, {"name": "padding1", "type": "Uint8"}, {"name": "padding2", "type": "Uint8"}]},
{"name": "SDL_GPUShaderCreateInfo", "fields": [{"name": "code_size", "type": "size_t", "comment": "The size in bytes of the code pointed to."}, {"name": "code", "type": "const Uint8 *", "comment": "A pointer to shader code."}, {"name": "entrypoint", "type": "const char *", "comment": "A pointer to a null-terminated UTF-8 string specifying the entry point function name for the shader."}, {"name": "format", "type": "SDL_GPUShaderFormat", "comment": "The format of the shader code."}, {"name": "stage", "type": "SDL_GPUShaderStage", "comment": "The stage the shader program corresponds to."}, {"name": "num_samplers", "type": "Uint32", "comment": "The number of samplers defined in the shader."}, {"name": "num_storage_textures", "type": "Uint32", "comment": "The number of storage textures defined in the shader."}, {"name": "num_storage_buffers", "type": "Uint32", "comment": "The number of storage buffers defined in the shader."}, {"name": "num_uniform_buffers", "type": "Uint32", "comment": "The number of uniform buffers defined in the shader."}, {"name": "props", "type": "SDL_PropertiesID", "comment": "A properties ID for extensions. Should be 0 if no extensions are needed."}]},
{"name": "SDL_GPUTextureCreateInfo", "fields": [{"name": "type", "type": "SDL_GPUTextureType", "comment": "The base dimensionality of the texture."}, {"name": "format", "type": "SDL_GPUTextureFormat", "comment": "The pixel format of the texture."}, {"name": "usage", "type": "SDL_GPUTextureUsageFlags", "comment": "How the texture is intended to be used by the client."}, {"name": "width", "type": "Uint32", "comment": "The width of the texture."}, {"name": "height", "type": "Uint32", "comment": "The height of the texture."}, {"name": "layer_count_or_depth", "type": "Uint32", "comment": "The layer count or depth of the texture. This value is treated as a layer count on 2D array textures, and as a depth value on 3D textures."}, {"name": "num_levels", "type": "Uint32", "comment": "The number of mip levels in the texture."}, {"name": "sample_count", "type": "SDL_GPUSampleCount", "comment": "The number of samples per texel. Only applies if the texture is used as a render target."}, {"name": "props", "type": "SDL_PropertiesID", "comment": "A properties ID for extensions. Should be 0 if no extensions are needed."}]},
{"name": "SDL_GPUBufferCreateInfo", "fields": [{"name": "usage", "type": "SDL_GPUBufferUsageFlags", "comment": "How the buffer is intended to be used by the client."}, {"name": "size", "type": "Uint32", "comment": "The size in bytes of the buffer."}, {"name": "props", "type": "SDL_PropertiesID", "comment": "A properties ID for extensions. Should be 0 if no extensions are needed."}]},
{"name": "SDL_GPUTransferBufferCreateInfo", "fields": [{"name": "usage", "type": "SDL_GPUTransferBufferUsage", "comment": "How the transfer buffer is intended to be used by the client."}, {"name": "size", "type": "Uint32", "comment": "The size in bytes of the transfer buffer."}, {"name": "props", "type": "SDL_PropertiesID", "comment": "A properties ID for extensions. Should be 0 if no extensions are needed."}]},
{"name": "SDL_GPURasterizerState", "fields": [{"name": "fill_mode", "type": "SDL_GPUFillMode", "comment": "Whether polygons will be filled in or drawn as lines."}, {"name": "cull_mode", "type": "SDL_GPUCullMode", "comment": "The facing direction in which triangles will be culled."}, {"name": "front_face", "type": "SDL_GPUFrontFace", "comment": "The vertex winding that will cause a triangle to be determined as front-facing."}, {"name": "depth_bias_constant_factor", "type": "float", "comment": "A scalar factor controlling the depth value added to each fragment."}, {"name": "depth_bias_clamp", "type": "float", "comment": "The maximum depth bias of a fragment."}, {"name": "depth_bias_slope_factor", "type": "float", "comment": "A scalar factor applied to a fragment's slope in depth calculations."}, {"name": "enable_depth_bias", "type": "bool", "comment": "true to bias fragment depth values."}, {"name": "enable_depth_clip", "type": "bool", "comment": "true to enable depth clip, false to enable depth clamp."}, {"name": "padding1", "type": "Uint8"}, {"name": "padding2", "type": "Uint8"}]},
{"name": "SDL_GPUMultisampleState", "fields": [{"name": "sample_count", "type": "SDL_GPUSampleCount", "comment": "The number of samples to be used in rasterization."}, {"name": "sample_mask", "type": "Uint32", "comment": "Reserved for future use. Must be set to 0."}, {"name": "enable_mask", "type": "bool", "comment": "Reserved for future use. Must be set to false."}, {"name": "padding1", "type": "Uint8"}, {"name": "padding2", "type": "Uint8"}, {"name": "padding3", "type": "Uint8"}]},
{"name": "SDL_GPUDepthStencilState", "fields": [{"name": "compare_op", "type": "SDL_GPUCompareOp", "comment": "The comparison operator used for depth testing."}, {"name": "back_stencil_state", "type": "SDL_GPUStencilOpState", "comment": "The stencil op state for back-facing triangles."}, {"name": "front_stencil_state", "type": "SDL_GPUStencilOpState", "comment": "The stencil op state for front-facing triangles."}, {"name": "compare_mask", "type": "Uint8", "comment": "Selects the bits of the stencil values participating in the stencil test."}, {"name": "write_mask", "type": "Uint8", "comment": "Selects the bits of the stencil values updated by the stencil test."}, {"name": "enable_depth_test", "type": "bool", "comment": "true enables the depth test."}, {"name": "enable_depth_write", "type": "bool", "comment": "true enables depth writes. Depth writes are always disabled when enable_depth_test is false."}, {"name": "enable_stencil_test", "type": "bool", "comment": "true enables the stencil test."}, {"name": "padding1", "type": "Uint8"}, {"name": "padding2", "type": "Uint8"}, {"name": "padding3", "type": "Uint8"}]},
{"name": "SDL_GPUColorTargetDescription", "fields": [{"name": "format", "type": "SDL_GPUTextureFormat", "comment": "The pixel format of the texture to be used as a color target."}, {"name": "blend_state", "type": "SDL_GPUColorTargetBlendState", "comment": "The blend state to be used for the color target."}]},
{"name": "SDL_GPUGraphicsPipelineTargetInfo", "fields": [{"name": "color_target_descriptions", "type": "const SDL_GPUColorTargetDescription *", "comment": "A pointer to an array of color target descriptions."}, {"name": "num_color_targets", "type": "Uint32", "comment": "The number of color target descriptions in the above array."}, {"name": "depth_stencil_format", "type": "SDL_GPUTextureFormat", "comment": "The pixel format of the depth-stencil target. Ignored if has_depth_stencil_target is false."}, {"name": "has_depth_stencil_target", "type": "bool", "comment": "true specifies that the pipeline uses a depth-stencil target."}, {"name": "padding1", "type": "Uint8"}, {"name": "padding2", "type": "Uint8"}, {"name": "padding3", "type": "Uint8"}]},
{"name": "SDL_GPUGraphicsPipelineCreateInfo", "fields": [{"name": "vertex_shader", "type": "SDL_GPUShader *", "comment": "The vertex shader used by the graphics pipeline."}, {"name": "fragment_shader", "type": "SDL_GPUShader *", "comment": "The fragment shader used by the graphics pipeline."}, {"name": "vertex_input_state", "type": "SDL_GPUVertexInputState", "comment": "The vertex layout of the graphics pipeline."}, {"name": "primitive_type", "type": "SDL_GPUPrimitiveType", "comment": "The primitive topology of the graphics pipeline."}, {"name": "rasterizer_state", "type": "SDL_GPURasterizerState", "comment": "The rasterizer state of the graphics pipeline."}, {"name": "multisample_state", "type": "SDL_GPUMultisampleState", "comment": "The multisample state of the graphics pipeline."}, {"name": "depth_stencil_state", "type": "SDL_GPUDepthStencilState", "comment": "The depth-stencil state of the graphics pipeline."}, {"name": "target_info", "type": "SDL_GPUGraphicsPipelineTargetInfo", "comment": "Formats and blend modes for the render targets of the graphics pipeline."}, {"name": "props", "type": "SDL_PropertiesID", "comment": "A properties ID for extensions. Should be 0 if no extensions are needed."}]},
{"name": "SDL_GPUComputePipelineCreateInfo", "fields": [{"name": "code_size", "type": "size_t", "comment": "The size in bytes of the compute shader code pointed to."}, {"name": "code", "type": "const Uint8 *", "comment": "A pointer to compute shader code."}, {"name": "entrypoint", "type": "const char *", "comment": "A pointer to a null-terminated UTF-8 string specifying the entry point function name for the shader."}, {"name": "format", "type": "SDL_GPUShaderFormat", "comment": "The format of the compute shader code."}, {"name": "num_samplers", "type": "Uint32", "comment": "The number of samplers defined in the shader."}, {"name": "num_readonly_storage_textures", "type": "Uint32", "comment": "The number of readonly storage textures defined in the shader."}, {"name": "num_readonly_storage_buffers", "type": "Uint32", "comment": "The number of readonly storage buffers defined in the shader."}, {"name": "num_readwrite_storage_textures", "type": "Uint32", "comment": "The number of read-write storage textures defined in the shader."}, {"name": "num_readwrite_storage_buffers", "type": "Uint32", "comment": "The number of read-write storage buffers defined in the shader."}, {"name": "num_uniform_buffers", "type": "Uint32", "comment": "The number of uniform buffers defined in the shader."}, {"name": "threadcount_x", "type": "Uint32", "comment": "The number of threads in the X dimension. This should match the value in the shader."}, {"name": "threadcount_y", "type": "Uint32", "comment": "The number of threads in the Y dimension. This should match the value in the shader."}, {"name": "threadcount_z", "type": "Uint32", "comment": "The number of threads in the Z dimension. This should match the value in the shader."}, {"name": "props", "type": "SDL_PropertiesID", "comment": "A properties ID for extensions. Should be 0 if no extensions are needed."}]},
{"name": "SDL_GPUColorTargetInfo", "fields": [{"name": "texture", "type": "SDL_GPUTexture *", "comment": "The texture that will be used as a color target by a render pass."}, {"name": "mip_level", "type": "Uint32", "comment": "The mip level to use as a color target."}, {"name": "layer_or_depth_plane", "type": "Uint32", "comment": "The layer index or depth plane to use as a color target. This value is treated as a layer index on 2D array and cube textures, and as a depth plane on 3D textures."}, {"name": "clear_color", "type": "SDL_FColor", "comment": "The color to clear the color target to at the start of the render pass. Ignored if SDL_GPU_LOADOP_CLEAR is not used."}, {"name": "load_op", "type": "SDL_GPULoadOp", "comment": "What is done with the contents of the color target at the beginning of the render pass."}, {"name": "store_op", "type": "SDL_GPUStoreOp", "comment": "What is done with the results of the render pass."}, {"name": "resolve_texture", "type": "SDL_GPUTexture *", "comment": "The texture that will receive the results of a multisample resolve operation. Ignored if a RESOLVE* store_op is not used."}, {"name": "resolve_mip_level", "type": "Uint32", "comment": "The mip level of the resolve texture to use for the resolve operation. Ignored if a RESOLVE* store_op is not used."}, {"name": "resolve_layer", "type": "Uint32", "comment": "The layer index of the resolve texture to use for the resolve operation. Ignored if a RESOLVE* store_op is not used."}, {"name": "cycle", "type": "bool", "comment": "true cycles the texture if the texture is bound and load_op is not LOAD"}, {"name": "cycle_resolve_texture", "type": "bool", "comment": "true cycles the resolve texture if the resolve texture is bound. Ignored if a RESOLVE* store_op is not used."}, {"name": "padding1", "type": "Uint8"}, {"name": "padding2", "type": "Uint8"}]},
{"name": "SDL_GPUDepthStencilTargetInfo", "fields": [{"name": "texture", "type": "SDL_GPUTexture *", "comment": "The texture that will be used as the depth stencil target by the render pass."}, {"name": "clear_depth", "type": "float", "comment": "The value to clear the depth component to at the beginning of the render pass. Ignored if SDL_GPU_LOADOP_CLEAR is not used."}, {"name": "load_op", "type": "SDL_GPULoadOp", "comment": "What is done with the depth contents at the beginning of the render pass."}, {"name": "store_op", "type": "SDL_GPUStoreOp", "comment": "What is done with the depth results of the render pass."}, {"name": "stencil_load_op", "type": "SDL_GPULoadOp", "comment": "What is done with the stencil contents at the beginning of the render pass."}, {"name": "stencil_store_op", "type": "SDL_GPUStoreOp", "comment": "What is done with the stencil results of the render pass."}, {"name": "cycle", "type": "bool", "comment": "true cycles the texture if the texture is bound and any load ops are not LOAD"}, {"name": "clear_stencil", "type": "Uint8", "comment": "The value to clear the stencil component to at the beginning of the render pass. Ignored if SDL_GPU_LOADOP_CLEAR is not used."}, {"name": "padding1", "type": "Uint8"}, {"name": "padding2", "type": "Uint8"}]},
{"name": "SDL_GPUBlitInfo", "fields": [{"name": "source", "type": "SDL_GPUBlitRegion", "comment": "The source region for the blit."}, {"name": "destination", "type": "SDL_GPUBlitRegion", "comment": "The destination region for the blit."}, {"name": "load_op", "type": "SDL_GPULoadOp", "comment": "What is done with the contents of the destination before the blit."}, {"name": "clear_color", "type": "SDL_FColor", "comment": "The color to clear the destination region to before the blit. Ignored if load_op is not SDL_GPU_LOADOP_CLEAR."}, {"name": "flip_mode", "type": "SDL_FlipMode", "comment": "The flip mode for the source region."}, {"name": "filter", "type": "SDL_GPUFilter", "comment": "The filter mode used when blitting."}, {"name": "cycle", "type": "bool", "comment": "true cycles the destination texture if it is already bound."}, {"name": "padding1", "type": "Uint8"}, {"name": "padding2", "type": "Uint8"}, {"name": "padding3", "type": "Uint8"}]},
{"name": "SDL_GPUBufferBinding", "fields": [{"name": "buffer", "type": "SDL_GPUBuffer *", "comment": "The buffer to bind. Must have been created with SDL_GPU_BUFFERUSAGE_VERTEX for SDL_BindGPUVertexBuffers, or SDL_GPU_BUFFERUSAGE_INDEX for SDL_BindGPUIndexBuffer."}, {"name": "offset", "type": "Uint32", "comment": "The starting byte of the data to bind in the buffer."}]},
{"name": "SDL_GPUTextureSamplerBinding", "fields": [{"name": "texture", "type": "SDL_GPUTexture *", "comment": "The texture to bind. Must have been created with SDL_GPU_TEXTUREUSAGE_SAMPLER."}, {"name": "sampler", "type": "SDL_GPUSampler *", "comment": "The sampler to bind."}]},
{"name": "SDL_GPUStorageBufferReadWriteBinding", "fields": [{"name": "buffer", "type": "SDL_GPUBuffer *", "comment": "The buffer to bind. Must have been created with SDL_GPU_BUFFERUSAGE_COMPUTE_STORAGE_WRITE."}, {"name": "cycle", "type": "bool", "comment": "true cycles the buffer if it is already bound."}, {"name": "padding1", "type": "Uint8"}, {"name": "padding2", "type": "Uint8"}, {"name": "padding3", "type": "Uint8"}]},
{"name": "SDL_GPUStorageTextureReadWriteBinding", "fields": [{"name": "texture", "type": "SDL_GPUTexture *", "comment": "The texture to bind. Must have been created with SDL_GPU_TEXTUREUSAGE_COMPUTE_STORAGE_WRITE or SDL_GPU_TEXTUREUSAGE_COMPUTE_STORAGE_SIMULTANEOUS_READ_WRITE."}, {"name": "mip_level", "type": "Uint32", "comment": "The mip level index to bind."}, {"name": "layer", "type": "Uint32", "comment": "The layer index to bind."}, {"name": "cycle", "type": "bool", "comment": "true cycles the texture if it is already bound."}, {"name": "padding1", "type": "Uint8"}, {"name": "padding2", "type": "Uint8"}, {"name": "padding3", "type": "Uint8"}]}
],
"unions": [
],
"flags": [
{"name": "SDL_GPUTextureUsageFlags", "underlying_type": "Uint32", "values": [{"name": "SDL_GPU_TEXTUREUSAGE_SAMPLER", "value": "(1u << 0)", "comment": "Texture supports sampling."}, {"name": "SDL_GPU_TEXTUREUSAGE_COLOR_TARGET", "value": "(1u << 1)", "comment": "Texture is a color render target."}, {"name": "SDL_GPU_TEXTUREUSAGE_DEPTH_STENCIL_TARGET", "value": "(1u << 2)", "comment": "Texture is a depth stencil target."}, {"name": "SDL_GPU_TEXTUREUSAGE_GRAPHICS_STORAGE_READ", "value": "(1u << 3)", "comment": "Texture supports storage reads in graphics stages."}, {"name": "SDL_GPU_TEXTUREUSAGE_COMPUTE_STORAGE_READ", "value": "(1u << 4)", "comment": "Texture supports storage reads in the compute stage."}, {"name": "SDL_GPU_TEXTUREUSAGE_COMPUTE_STORAGE_WRITE", "value": "(1u << 5)", "comment": "Texture supports storage writes in the compute stage."}, {"name": "SDL_GPU_TEXTUREUSAGE_COMPUTE_STORAGE_SIMULTANEOUS_READ_WRITE", "value": "(1u << 6)", "comment": "Texture supports reads and writes in the same compute shader. This is NOT equivalent to READ | WRITE."}]},
{"name": "SDL_GPUBufferUsageFlags", "underlying_type": "Uint32", "values": [{"name": "SDL_GPU_BUFFERUSAGE_VERTEX", "value": "(1u << 0)", "comment": "Buffer is a vertex buffer."}, {"name": "SDL_GPU_BUFFERUSAGE_INDEX", "value": "(1u << 1)", "comment": "Buffer is an index buffer."}, {"name": "SDL_GPU_BUFFERUSAGE_INDIRECT", "value": "(1u << 2)", "comment": "Buffer is an indirect buffer."}, {"name": "SDL_GPU_BUFFERUSAGE_GRAPHICS_STORAGE_READ", "value": "(1u << 3)", "comment": "Buffer supports storage reads in graphics stages."}, {"name": "SDL_GPU_BUFFERUSAGE_COMPUTE_STORAGE_READ", "value": "(1u << 4)", "comment": "Buffer supports storage reads in the compute stage."}, {"name": "SDL_GPU_BUFFERUSAGE_COMPUTE_STORAGE_WRITE", "value": "(1u << 5)", "comment": "Buffer supports storage writes in the compute stage."}]},
{"name": "SDL_GPUColorComponentFlags", "underlying_type": "Uint8", "values": [{"name": "SDL_GPU_COLORCOMPONENT_R", "value": "(1u << 0)", "comment": "the red component"}, {"name": "SDL_GPU_COLORCOMPONENT_G", "value": "(1u << 1)", "comment": "the green component"}, {"name": "SDL_GPU_COLORCOMPONENT_B", "value": "(1u << 2)", "comment": "the blue component"}, {"name": "SDL_GPU_COLORCOMPONENT_A", "value": "(1u << 3)", "comment": "the alpha component"}]}
],
"functions": [
{"name": "SDL_GPUSupportsShaderFormats", "return_type": "bool", "parameters": [{"name": "format_flags", "type": "SDL_GPUShaderFormat"}, {"name": "name", "type": "const char *"}]},
{"name": "SDL_GPUSupportsProperties", "return_type": "bool", "parameters": [{"name": "props", "type": "SDL_PropertiesID"}]},
{"name": "SDL_CreateGPUDevice", "return_type": "SDL_GPUDevice *", "parameters": [{"name": "format_flags", "type": "SDL_GPUShaderFormat"}, {"name": "debug_mode", "type": "bool"}, {"name": "name", "type": "const char *"}]},
{"name": "SDL_CreateGPUDeviceWithProperties", "return_type": "SDL_GPUDevice *", "parameters": [{"name": "props", "type": "SDL_PropertiesID"}]},
{"name": "SDL_DestroyGPUDevice", "return_type": "void", "parameters": [{"name": "device", "type": "SDL_GPUDevice *"}]},
{"name": "SDL_GetNumGPUDrivers", "return_type": "int", "parameters": []},
{"name": "SDL_GetGPUDriver", "return_type": "const char *", "parameters": [{"name": "index", "type": "int"}]},
{"name": "SDL_GetGPUDeviceDriver", "return_type": "const char *", "parameters": [{"name": "device", "type": "SDL_GPUDevice *"}]},
{"name": "SDL_GetGPUShaderFormats", "return_type": "SDL_GPUShaderFormat", "parameters": [{"name": "device", "type": "SDL_GPUDevice *"}]},
{"name": "SDL_CreateGPUComputePipeline", "return_type": "SDL_GPUComputePipeline *", "parameters": [{"name": "device", "type": "SDL_GPUDevice *"}, {"name": "createinfo", "type": "const SDL_GPUComputePipelineCreateInfo *"}]},
{"name": "SDL_CreateGPUGraphicsPipeline", "return_type": "SDL_GPUGraphicsPipeline *", "parameters": [{"name": "device", "type": "SDL_GPUDevice *"}, {"name": "createinfo", "type": "const SDL_GPUGraphicsPipelineCreateInfo *"}]},
{"name": "SDL_CreateGPUSampler", "return_type": "SDL_GPUSampler *", "parameters": [{"name": "device", "type": "SDL_GPUDevice *"}, {"name": "createinfo", "type": "const SDL_GPUSamplerCreateInfo *"}]},
{"name": "SDL_CreateGPUShader", "return_type": "SDL_GPUShader *", "parameters": [{"name": "device", "type": "SDL_GPUDevice *"}, {"name": "createinfo", "type": "const SDL_GPUShaderCreateInfo *"}]},
{"name": "SDL_CreateGPUTexture", "return_type": "SDL_GPUTexture *", "parameters": [{"name": "device", "type": "SDL_GPUDevice *"}, {"name": "createinfo", "type": "const SDL_GPUTextureCreateInfo *"}]},
{"name": "SDL_CreateGPUBuffer", "return_type": "SDL_GPUBuffer *", "parameters": [{"name": "device", "type": "SDL_GPUDevice *"}, {"name": "createinfo", "type": "const SDL_GPUBufferCreateInfo *"}]},
{"name": "SDL_CreateGPUTransferBuffer", "return_type": "SDL_GPUTransferBuffer *", "parameters": [{"name": "device", "type": "SDL_GPUDevice *"}, {"name": "createinfo", "type": "const SDL_GPUTransferBufferCreateInfo *"}]},
{"name": "SDL_SetGPUBufferName", "return_type": "void", "parameters": [{"name": "device", "type": "SDL_GPUDevice *"}, {"name": "buffer", "type": "SDL_GPUBuffer *"}, {"name": "text", "type": "const char *"}]},
{"name": "SDL_SetGPUTextureName", "return_type": "void", "parameters": [{"name": "device", "type": "SDL_GPUDevice *"}, {"name": "texture", "type": "SDL_GPUTexture *"}, {"name": "text", "type": "const char *"}]},
{"name": "SDL_InsertGPUDebugLabel", "return_type": "void", "parameters": [{"name": "command_buffer", "type": "SDL_GPUCommandBuffer *"}, {"name": "text", "type": "const char *"}]},
{"name": "SDL_PushGPUDebugGroup", "return_type": "void", "parameters": [{"name": "command_buffer", "type": "SDL_GPUCommandBuffer *"}, {"name": "name", "type": "const char *"}]},
{"name": "SDL_PopGPUDebugGroup", "return_type": "void", "parameters": [{"name": "command_buffer", "type": "SDL_GPUCommandBuffer *"}]},
{"name": "SDL_ReleaseGPUTexture", "return_type": "void", "parameters": [{"name": "device", "type": "SDL_GPUDevice *"}, {"name": "texture", "type": "SDL_GPUTexture *"}]},
{"name": "SDL_ReleaseGPUSampler", "return_type": "void", "parameters": [{"name": "device", "type": "SDL_GPUDevice *"}, {"name": "sampler", "type": "SDL_GPUSampler *"}]},
{"name": "SDL_ReleaseGPUBuffer", "return_type": "void", "parameters": [{"name": "device", "type": "SDL_GPUDevice *"}, {"name": "buffer", "type": "SDL_GPUBuffer *"}]},
{"name": "SDL_ReleaseGPUTransferBuffer", "return_type": "void", "parameters": [{"name": "device", "type": "SDL_GPUDevice *"}, {"name": "transfer_buffer", "type": "SDL_GPUTransferBuffer *"}]},
{"name": "SDL_ReleaseGPUComputePipeline", "return_type": "void", "parameters": [{"name": "device", "type": "SDL_GPUDevice *"}, {"name": "compute_pipeline", "type": "SDL_GPUComputePipeline *"}]},
{"name": "SDL_ReleaseGPUShader", "return_type": "void", "parameters": [{"name": "device", "type": "SDL_GPUDevice *"}, {"name": "shader", "type": "SDL_GPUShader *"}]},
{"name": "SDL_ReleaseGPUGraphicsPipeline", "return_type": "void", "parameters": [{"name": "device", "type": "SDL_GPUDevice *"}, {"name": "graphics_pipeline", "type": "SDL_GPUGraphicsPipeline *"}]},
{"name": "SDL_AcquireGPUCommandBuffer", "return_type": "SDL_GPUCommandBuffer *", "parameters": [{"name": "device", "type": "SDL_GPUDevice *"}]},
{"name": "SDL_PushGPUVertexUniformData", "return_type": "void", "parameters": [{"name": "command_buffer", "type": "SDL_GPUCommandBuffer *"}, {"name": "slot_index", "type": "Uint32"}, {"name": "data", "type": "const void *"}, {"name": "length", "type": "Uint32"}]},
{"name": "SDL_PushGPUFragmentUniformData", "return_type": "void", "parameters": [{"name": "command_buffer", "type": "SDL_GPUCommandBuffer *"}, {"name": "slot_index", "type": "Uint32"}, {"name": "data", "type": "const void *"}, {"name": "length", "type": "Uint32"}]},
{"name": "SDL_PushGPUComputeUniformData", "return_type": "void", "parameters": [{"name": "command_buffer", "type": "SDL_GPUCommandBuffer *"}, {"name": "slot_index", "type": "Uint32"}, {"name": "data", "type": "const void *"}, {"name": "length", "type": "Uint32"}]},
{"name": "SDL_BeginGPURenderPass", "return_type": "SDL_GPURenderPass *", "parameters": [{"name": "command_buffer", "type": "SDL_GPUCommandBuffer *"}, {"name": "color_target_infos", "type": "const SDL_GPUColorTargetInfo *"}, {"name": "num_color_targets", "type": "Uint32"}, {"name": "depth_stencil_target_info", "type": "const SDL_GPUDepthStencilTargetInfo *"}]},
{"name": "SDL_BindGPUGraphicsPipeline", "return_type": "void", "parameters": [{"name": "render_pass", "type": "SDL_GPURenderPass *"}, {"name": "graphics_pipeline", "type": "SDL_GPUGraphicsPipeline *"}]},
{"name": "SDL_SetGPUViewport", "return_type": "void", "parameters": [{"name": "render_pass", "type": "SDL_GPURenderPass *"}, {"name": "viewport", "type": "const SDL_GPUViewport *"}]},
{"name": "SDL_SetGPUScissor", "return_type": "void", "parameters": [{"name": "render_pass", "type": "SDL_GPURenderPass *"}, {"name": "scissor", "type": "const SDL_Rect *"}]},
{"name": "SDL_SetGPUBlendConstants", "return_type": "void", "parameters": [{"name": "render_pass", "type": "SDL_GPURenderPass *"}, {"name": "blend_constants", "type": "SDL_FColor"}]},
{"name": "SDL_SetGPUStencilReference", "return_type": "void", "parameters": [{"name": "render_pass", "type": "SDL_GPURenderPass *"}, {"name": "reference", "type": "Uint8"}]},
{"name": "SDL_BindGPUVertexBuffers", "return_type": "void", "parameters": [{"name": "render_pass", "type": "SDL_GPURenderPass *"}, {"name": "first_slot", "type": "Uint32"}, {"name": "bindings", "type": "const SDL_GPUBufferBinding *"}, {"name": "num_bindings", "type": "Uint32"}]},
{"name": "SDL_BindGPUIndexBuffer", "return_type": "void", "parameters": [{"name": "render_pass", "type": "SDL_GPURenderPass *"}, {"name": "binding", "type": "const SDL_GPUBufferBinding *"}, {"name": "index_element_size", "type": "SDL_GPUIndexElementSize"}]},
{"name": "SDL_BindGPUVertexSamplers", "return_type": "void", "parameters": [{"name": "render_pass", "type": "SDL_GPURenderPass *"}, {"name": "first_slot", "type": "Uint32"}, {"name": "texture_sampler_bindings", "type": "const SDL_GPUTextureSamplerBinding *"}, {"name": "num_bindings", "type": "Uint32"}]},
{"name": "SDL_BindGPUVertexStorageTextures", "return_type": "void", "parameters": [{"name": "render_pass", "type": "SDL_GPURenderPass *"}, {"name": "first_slot", "type": "Uint32"}, {"name": "storage_textures", "type": "SDL_GPUTexture *const *"}, {"name": "num_bindings", "type": "Uint32"}]},
{"name": "SDL_BindGPUVertexStorageBuffers", "return_type": "void", "parameters": [{"name": "render_pass", "type": "SDL_GPURenderPass *"}, {"name": "first_slot", "type": "Uint32"}, {"name": "storage_buffers", "type": "SDL_GPUBuffer *const *"}, {"name": "num_bindings", "type": "Uint32"}]},
{"name": "SDL_BindGPUFragmentSamplers", "return_type": "void", "parameters": [{"name": "render_pass", "type": "SDL_GPURenderPass *"}, {"name": "first_slot", "type": "Uint32"}, {"name": "texture_sampler_bindings", "type": "const SDL_GPUTextureSamplerBinding *"}, {"name": "num_bindings", "type": "Uint32"}]},
{"name": "SDL_BindGPUFragmentStorageTextures", "return_type": "void", "parameters": [{"name": "render_pass", "type": "SDL_GPURenderPass *"}, {"name": "first_slot", "type": "Uint32"}, {"name": "storage_textures", "type": "SDL_GPUTexture *const *"}, {"name": "num_bindings", "type": "Uint32"}]},
{"name": "SDL_BindGPUFragmentStorageBuffers", "return_type": "void", "parameters": [{"name": "render_pass", "type": "SDL_GPURenderPass *"}, {"name": "first_slot", "type": "Uint32"}, {"name": "storage_buffers", "type": "SDL_GPUBuffer *const *"}, {"name": "num_bindings", "type": "Uint32"}]},
{"name": "SDL_DrawGPUIndexedPrimitives", "return_type": "void", "parameters": [{"name": "render_pass", "type": "SDL_GPURenderPass *"}, {"name": "num_indices", "type": "Uint32"}, {"name": "num_instances", "type": "Uint32"}, {"name": "first_index", "type": "Uint32"}, {"name": "vertex_offset", "type": "Sint32"}, {"name": "first_instance", "type": "Uint32"}]},
{"name": "SDL_DrawGPUPrimitives", "return_type": "void", "parameters": [{"name": "render_pass", "type": "SDL_GPURenderPass *"}, {"name": "num_vertices", "type": "Uint32"}, {"name": "num_instances", "type": "Uint32"}, {"name": "first_vertex", "type": "Uint32"}, {"name": "first_instance", "type": "Uint32"}]},
{"name": "SDL_DrawGPUPrimitivesIndirect", "return_type": "void", "parameters": [{"name": "render_pass", "type": "SDL_GPURenderPass *"}, {"name": "buffer", "type": "SDL_GPUBuffer *"}, {"name": "offset", "type": "Uint32"}, {"name": "draw_count", "type": "Uint32"}]},
{"name": "SDL_DrawGPUIndexedPrimitivesIndirect", "return_type": "void", "parameters": [{"name": "render_pass", "type": "SDL_GPURenderPass *"}, {"name": "buffer", "type": "SDL_GPUBuffer *"}, {"name": "offset", "type": "Uint32"}, {"name": "draw_count", "type": "Uint32"}]},
{"name": "SDL_EndGPURenderPass", "return_type": "void", "parameters": [{"name": "render_pass", "type": "SDL_GPURenderPass *"}]},
{"name": "SDL_BeginGPUComputePass", "return_type": "SDL_GPUComputePass *", "parameters": [{"name": "command_buffer", "type": "SDL_GPUCommandBuffer *"}, {"name": "storage_texture_bindings", "type": "const SDL_GPUStorageTextureReadWriteBinding *"}, {"name": "num_storage_texture_bindings", "type": "Uint32"}, {"name": "storage_buffer_bindings", "type": "const SDL_GPUStorageBufferReadWriteBinding *"}, {"name": "num_storage_buffer_bindings", "type": "Uint32"}]},
{"name": "SDL_BindGPUComputePipeline", "return_type": "void", "parameters": [{"name": "compute_pass", "type": "SDL_GPUComputePass *"}, {"name": "compute_pipeline", "type": "SDL_GPUComputePipeline *"}]},
{"name": "SDL_BindGPUComputeSamplers", "return_type": "void", "parameters": [{"name": "compute_pass", "type": "SDL_GPUComputePass *"}, {"name": "first_slot", "type": "Uint32"}, {"name": "texture_sampler_bindings", "type": "const SDL_GPUTextureSamplerBinding *"}, {"name": "num_bindings", "type": "Uint32"}]},
{"name": "SDL_BindGPUComputeStorageTextures", "return_type": "void", "parameters": [{"name": "compute_pass", "type": "SDL_GPUComputePass *"}, {"name": "first_slot", "type": "Uint32"}, {"name": "storage_textures", "type": "SDL_GPUTexture *const *"}, {"name": "num_bindings", "type": "Uint32"}]},
{"name": "SDL_BindGPUComputeStorageBuffers", "return_type": "void", "parameters": [{"name": "compute_pass", "type": "SDL_GPUComputePass *"}, {"name": "first_slot", "type": "Uint32"}, {"name": "storage_buffers", "type": "SDL_GPUBuffer *const *"}, {"name": "num_bindings", "type": "Uint32"}]},
{"name": "SDL_DispatchGPUCompute", "return_type": "void", "parameters": [{"name": "compute_pass", "type": "SDL_GPUComputePass *"}, {"name": "groupcount_x", "type": "Uint32"}, {"name": "groupcount_y", "type": "Uint32"}, {"name": "groupcount_z", "type": "Uint32"}]},
{"name": "SDL_DispatchGPUComputeIndirect", "return_type": "void", "parameters": [{"name": "compute_pass", "type": "SDL_GPUComputePass *"}, {"name": "buffer", "type": "SDL_GPUBuffer *"}, {"name": "offset", "type": "Uint32"}]},
{"name": "SDL_EndGPUComputePass", "return_type": "void", "parameters": [{"name": "compute_pass", "type": "SDL_GPUComputePass *"}]},
{"name": "SDL_MapGPUTransferBuffer", "return_type": "void *", "parameters": [{"name": "device", "type": "SDL_GPUDevice *"}, {"name": "transfer_buffer", "type": "SDL_GPUTransferBuffer *"}, {"name": "cycle", "type": "bool"}]},
{"name": "SDL_UnmapGPUTransferBuffer", "return_type": "void", "parameters": [{"name": "device", "type": "SDL_GPUDevice *"}, {"name": "transfer_buffer", "type": "SDL_GPUTransferBuffer *"}]},
{"name": "SDL_BeginGPUCopyPass", "return_type": "SDL_GPUCopyPass *", "parameters": [{"name": "command_buffer", "type": "SDL_GPUCommandBuffer *"}]},
{"name": "SDL_UploadToGPUTexture", "return_type": "void", "parameters": [{"name": "copy_pass", "type": "SDL_GPUCopyPass *"}, {"name": "source", "type": "const SDL_GPUTextureTransferInfo *"}, {"name": "destination", "type": "const SDL_GPUTextureRegion *"}, {"name": "cycle", "type": "bool"}]},
{"name": "SDL_UploadToGPUBuffer", "return_type": "void", "parameters": [{"name": "copy_pass", "type": "SDL_GPUCopyPass *"}, {"name": "source", "type": "const SDL_GPUTransferBufferLocation *"}, {"name": "destination", "type": "const SDL_GPUBufferRegion *"}, {"name": "cycle", "type": "bool"}]},
{"name": "SDL_CopyGPUTextureToTexture", "return_type": "void", "parameters": [{"name": "copy_pass", "type": "SDL_GPUCopyPass *"}, {"name": "source", "type": "const SDL_GPUTextureLocation *"}, {"name": "destination", "type": "const SDL_GPUTextureLocation *"}, {"name": "w", "type": "Uint32"}, {"name": "h", "type": "Uint32"}, {"name": "d", "type": "Uint32"}, {"name": "cycle", "type": "bool"}]},
{"name": "SDL_CopyGPUBufferToBuffer", "return_type": "void", "parameters": [{"name": "copy_pass", "type": "SDL_GPUCopyPass *"}, {"name": "source", "type": "const SDL_GPUBufferLocation *"}, {"name": "destination", "type": "const SDL_GPUBufferLocation *"}, {"name": "size", "type": "Uint32"}, {"name": "cycle", "type": "bool"}]},
{"name": "SDL_DownloadFromGPUTexture", "return_type": "void", "parameters": [{"name": "copy_pass", "type": "SDL_GPUCopyPass *"}, {"name": "source", "type": "const SDL_GPUTextureRegion *"}, {"name": "destination", "type": "const SDL_GPUTextureTransferInfo *"}]},
{"name": "SDL_DownloadFromGPUBuffer", "return_type": "void", "parameters": [{"name": "copy_pass", "type": "SDL_GPUCopyPass *"}, {"name": "source", "type": "const SDL_GPUBufferRegion *"}, {"name": "destination", "type": "const SDL_GPUTransferBufferLocation *"}]},
{"name": "SDL_EndGPUCopyPass", "return_type": "void", "parameters": [{"name": "copy_pass", "type": "SDL_GPUCopyPass *"}]},
{"name": "SDL_GenerateMipmapsForGPUTexture", "return_type": "void", "parameters": [{"name": "command_buffer", "type": "SDL_GPUCommandBuffer *"}, {"name": "texture", "type": "SDL_GPUTexture *"}]},
{"name": "SDL_BlitGPUTexture", "return_type": "void", "parameters": [{"name": "command_buffer", "type": "SDL_GPUCommandBuffer *"}, {"name": "info", "type": "const SDL_GPUBlitInfo *"}]},
{"name": "SDL_WindowSupportsGPUSwapchainComposition", "return_type": "bool", "parameters": [{"name": "device", "type": "SDL_GPUDevice *"}, {"name": "window", "type": "SDL_Window *"}, {"name": "swapchain_composition", "type": "SDL_GPUSwapchainComposition"}]},
{"name": "SDL_WindowSupportsGPUPresentMode", "return_type": "bool", "parameters": [{"name": "device", "type": "SDL_GPUDevice *"}, {"name": "window", "type": "SDL_Window *"}, {"name": "present_mode", "type": "SDL_GPUPresentMode"}]},
{"name": "SDL_ClaimWindowForGPUDevice", "return_type": "bool", "parameters": [{"name": "device", "type": "SDL_GPUDevice *"}, {"name": "window", "type": "SDL_Window *"}]},
{"name": "SDL_ReleaseWindowFromGPUDevice", "return_type": "void", "parameters": [{"name": "device", "type": "SDL_GPUDevice *"}, {"name": "window", "type": "SDL_Window *"}]},
{"name": "SDL_SetGPUSwapchainParameters", "return_type": "bool", "parameters": [{"name": "device", "type": "SDL_GPUDevice *"}, {"name": "window", "type": "SDL_Window *"}, {"name": "swapchain_composition", "type": "SDL_GPUSwapchainComposition"}, {"name": "present_mode", "type": "SDL_GPUPresentMode"}]},
{"name": "SDL_SetGPUAllowedFramesInFlight", "return_type": "bool", "parameters": [{"name": "device", "type": "SDL_GPUDevice *"}, {"name": "allowed_frames_in_flight", "type": "Uint32"}]},
{"name": "SDL_GetGPUSwapchainTextureFormat", "return_type": "SDL_GPUTextureFormat", "parameters": [{"name": "device", "type": "SDL_GPUDevice *"}, {"name": "window", "type": "SDL_Window *"}]},
{"name": "SDL_AcquireGPUSwapchainTexture", "return_type": "bool", "parameters": [{"name": "command_buffer", "type": "SDL_GPUCommandBuffer *"}, {"name": "window", "type": "SDL_Window *"}, {"name": "swapchain_texture", "type": "SDL_GPUTexture **"}, {"name": "swapchain_texture_width", "type": "Uint32 *"}, {"name": "swapchain_texture_height", "type": "Uint32 *"}]},
{"name": "SDL_WaitForGPUSwapchain", "return_type": "bool", "parameters": [{"name": "device", "type": "SDL_GPUDevice *"}, {"name": "window", "type": "SDL_Window *"}]},
{"name": "SDL_WaitAndAcquireGPUSwapchainTexture", "return_type": "bool", "parameters": [{"name": "command_buffer", "type": "SDL_GPUCommandBuffer *"}, {"name": "window", "type": "SDL_Window *"}, {"name": "swapchain_texture", "type": "SDL_GPUTexture **"}, {"name": "swapchain_texture_width", "type": "Uint32 *"}, {"name": "swapchain_texture_height", "type": "Uint32 *"}]},
{"name": "SDL_SubmitGPUCommandBuffer", "return_type": "bool", "parameters": [{"name": "command_buffer", "type": "SDL_GPUCommandBuffer *"}]},
{"name": "SDL_SubmitGPUCommandBufferAndAcquireFence", "return_type": "SDL_GPUFence *", "parameters": [{"name": "command_buffer", "type": "SDL_GPUCommandBuffer *"}]},
{"name": "SDL_CancelGPUCommandBuffer", "return_type": "bool", "parameters": [{"name": "command_buffer", "type": "SDL_GPUCommandBuffer *"}]},
{"name": "SDL_WaitForGPUIdle", "return_type": "bool", "parameters": [{"name": "device", "type": "SDL_GPUDevice *"}]},
{"name": "SDL_WaitForGPUFences", "return_type": "bool", "parameters": [{"name": "device", "type": "SDL_GPUDevice *"}, {"name": "wait_all", "type": "bool"}, {"name": "fences", "type": "SDL_GPUFence *const *"}, {"name": "num_fences", "type": "Uint32"}]},
{"name": "SDL_QueryGPUFence", "return_type": "bool", "parameters": [{"name": "device", "type": "SDL_GPUDevice *"}, {"name": "fence", "type": "SDL_GPUFence *"}]},
{"name": "SDL_ReleaseGPUFence", "return_type": "void", "parameters": [{"name": "device", "type": "SDL_GPUDevice *"}, {"name": "fence", "type": "SDL_GPUFence *"}]},
{"name": "SDL_GPUTextureFormatTexelBlockSize", "return_type": "Uint32", "parameters": [{"name": "format", "type": "SDL_GPUTextureFormat"}]},
{"name": "SDL_GPUTextureSupportsFormat", "return_type": "bool", "parameters": [{"name": "device", "type": "SDL_GPUDevice *"}, {"name": "format", "type": "SDL_GPUTextureFormat"}, {"name": "type", "type": "SDL_GPUTextureType"}, {"name": "usage", "type": "SDL_GPUTextureUsageFlags"}]},
{"name": "SDL_GPUTextureSupportsSampleCount", "return_type": "bool", "parameters": [{"name": "device", "type": "SDL_GPUDevice *"}, {"name": "format", "type": "SDL_GPUTextureFormat"}, {"name": "sample_count", "type": "SDL_GPUSampleCount"}]},
{"name": "SDL_CalculateGPUTextureFormatSize", "return_type": "Uint32", "parameters": [{"name": "format", "type": "SDL_GPUTextureFormat"}, {"name": "width", "type": "Uint32"}, {"name": "height", "type": "Uint32"}, {"name": "depth_or_layer_count", "type": "Uint32"}]},
{"name": "SDL_GDKSuspendGPU", "return_type": "void", "parameters": [{"name": "device", "type": "SDL_GPUDevice *"}]},
{"name": "SDL_GDKResumeGPU", "return_type": "void", "parameters": [{"name": "device", "type": "SDL_GPUDevice *"}]}
]
}