{
  "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": [],
  "function_pointers": [],
  "c_type_aliases": [],
  "enums": [
    {
      "name": "SDL_GPUPrimitiveType",
      "values": [
        {
          "name": "SDL_GPU_PRIMITIVETYPE_TRIANGLELIST",
          "comment": "A series of separate triangles."
        },
        {
          "name": "SDL_GPU_PRIMITIVETYPE_TRIANGLESTRIP",
          "comment": "A series of connected triangles."
        },
        {
          "name": "SDL_GPU_PRIMITIVETYPE_LINELIST",
          "comment": "A series of separate lines."
        },
        {
          "name": "SDL_GPU_PRIMITIVETYPE_LINESTRIP",
          "comment": "A series of connected lines."
        },
        {
          "name": "SDL_GPU_PRIMITIVETYPE_POINTLIST",
          "comment": "A series of separate points."
        }
      ]
    },
    {
      "name": "SDL_GPULoadOp",
      "values": [
        {
          "name": "SDL_GPU_LOADOP_LOAD",
          "comment": "The previous contents of the texture will be preserved."
        },
        {
          "name": "SDL_GPU_LOADOP_CLEAR",
          "comment": "The contents of the texture will be cleared to a color."
        },
        {
          "name": "SDL_GPU_LOADOP_DONT_CARE",
          "comment": "The previous contents of the texture need not be preserved. The contents will be undefined."
        }
      ]
    },
    {
      "name": "SDL_GPUStoreOp",
      "values": [
        {
          "name": "SDL_GPU_STOREOP_STORE",
          "comment": "The contents generated during the render pass will be written to memory."
        },
        {
          "name": "SDL_GPU_STOREOP_DONT_CARE",
          "comment": "The contents generated during the render pass are not needed and may be discarded. The contents will be undefined."
        },
        {
          "name": "SDL_GPU_STOREOP_RESOLVE",
          "comment": "The multisample contents generated during the render pass will be resolved to a non-multisample texture. The contents in the multisample texture may then be discarded and will be undefined."
        },
        {
          "name": "SDL_GPU_STOREOP_RESOLVE_AND_STORE",
          "comment": "The multisample contents generated during the render pass will be resolved to a non-multisample texture. The contents in the multisample texture will be written to memory."
        }
      ]
    },
    {
      "name": "SDL_GPUIndexElementSize",
      "values": [
        {
          "name": "SDL_GPU_INDEXELEMENTSIZE_16BIT",
          "comment": "The index elements are 16-bit."
        },
        {
          "name": "SDL_GPU_INDEXELEMENTSIZE_32BIT",
          "comment": "The index elements are 32-bit."
        }
      ]
    },
    {
      "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_GPU_TEXTURETYPE_2D",
          "comment": "The texture is a 2-dimensional image."
        },
        {
          "name": "SDL_GPU_TEXTURETYPE_2D_ARRAY",
          "comment": "The texture is a 2-dimensional array image."
        },
        {
          "name": "SDL_GPU_TEXTURETYPE_3D",
          "comment": "The texture is a 3-dimensional image."
        },
        {
          "name": "SDL_GPU_TEXTURETYPE_CUBE",
          "comment": "The texture is a cube image."
        },
        {
          "name": "SDL_GPU_TEXTURETYPE_CUBE_ARRAY",
          "comment": "The texture is a cube array image."
        }
      ]
    },
    {
      "name": "SDL_GPUSampleCount",
      "values": [
        {
          "name": "SDL_GPU_SAMPLECOUNT_1",
          "comment": "No multisampling."
        },
        {
          "name": "SDL_GPU_SAMPLECOUNT_2",
          "comment": "MSAA 2x"
        },
        {
          "name": "SDL_GPU_SAMPLECOUNT_4",
          "comment": "MSAA 4x"
        },
        {
          "name": "SDL_GPU_SAMPLECOUNT_8",
          "comment": "MSAA 8x"
        }
      ]
    },
    {
      "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_GPU_VERTEXINPUTRATE_VERTEX",
          "comment": "Attribute addressing is a function of the vertex index."
        },
        {
          "name": "SDL_GPU_VERTEXINPUTRATE_INSTANCE",
          "comment": "Attribute addressing is a function of the instance index."
        }
      ]
    },
    {
      "name": "SDL_GPUFillMode",
      "values": [
        {
          "name": "SDL_GPU_FILLMODE_FILL",
          "comment": "Polygons will be rendered via rasterization."
        },
        {
          "name": "SDL_GPU_FILLMODE_LINE",
          "comment": "Polygon edges will be drawn as line segments."
        }
      ]
    },
    {
      "name": "SDL_GPUCullMode",
      "values": [
        {
          "name": "SDL_GPU_CULLMODE_NONE",
          "comment": "No triangles are culled."
        },
        {
          "name": "SDL_GPU_CULLMODE_FRONT",
          "comment": "Front-facing triangles are culled."
        },
        {
          "name": "SDL_GPU_CULLMODE_BACK",
          "comment": "Back-facing triangles are culled."
        }
      ]
    },
    {
      "name": "SDL_GPUFrontFace",
      "values": [
        {
          "name": "SDL_GPU_FRONTFACE_COUNTER_CLOCKWISE",
          "comment": "A triangle with counter-clockwise vertex winding will be considered front-facing."
        },
        {
          "name": "SDL_GPU_FRONTFACE_CLOCKWISE",
          "comment": "A triangle with clockwise vertex winding will be considered front-facing."
        }
      ]
    },
    {
      "name": "SDL_GPUCompareOp",
      "values": [
        {
          "name": "SDL_GPU_COMPAREOP_INVALID"
        },
        {
          "name": "SDL_GPU_COMPAREOP_NEVER",
          "comment": "The comparison always evaluates false."
        },
        {
          "name": "SDL_GPU_COMPAREOP_LESS",
          "comment": "The comparison evaluates reference < test."
        },
        {
          "name": "SDL_GPU_COMPAREOP_EQUAL",
          "comment": "The comparison evaluates reference == test."
        },
        {
          "name": "SDL_GPU_COMPAREOP_LESS_OR_EQUAL",
          "comment": "The comparison evaluates reference <= test."
        },
        {
          "name": "SDL_GPU_COMPAREOP_GREATER",
          "comment": "The comparison evaluates reference > test."
        },
        {
          "name": "SDL_GPU_COMPAREOP_NOT_EQUAL",
          "comment": "The comparison evaluates reference != test."
        },
        {
          "name": "SDL_GPU_COMPAREOP_GREATER_OR_EQUAL",
          "comment": "The comparison evalutes reference >= test."
        },
        {
          "name": "SDL_GPU_COMPAREOP_ALWAYS",
          "comment": "The comparison always evaluates true."
        }
      ]
    },
    {
      "name": "SDL_GPUStencilOp",
      "values": [
        {
          "name": "SDL_GPU_STENCILOP_INVALID"
        },
        {
          "name": "SDL_GPU_STENCILOP_KEEP",
          "comment": "Keeps the current value."
        },
        {
          "name": "SDL_GPU_STENCILOP_ZERO",
          "comment": "Sets the value to 0."
        },
        {
          "name": "SDL_GPU_STENCILOP_REPLACE",
          "comment": "Sets the value to reference."
        },
        {
          "name": "SDL_GPU_STENCILOP_INCREMENT_AND_CLAMP",
          "comment": "Increments the current value and clamps to the maximum value."
        },
        {
          "name": "SDL_GPU_STENCILOP_DECREMENT_AND_CLAMP",
          "comment": "Decrements the current value and clamps to 0."
        },
        {
          "name": "SDL_GPU_STENCILOP_INVERT",
          "comment": "Bitwise-inverts the current value."
        },
        {
          "name": "SDL_GPU_STENCILOP_INCREMENT_AND_WRAP",
          "comment": "Increments the current value and wraps back to 0."
        },
        {
          "name": "SDL_GPU_STENCILOP_DECREMENT_AND_WRAP",
          "comment": "Decrements the current value and wraps to the maximum value."
        }
      ]
    },
    {
      "name": "SDL_GPUBlendOp",
      "values": [
        {
          "name": "SDL_GPU_BLENDOP_INVALID"
        },
        {
          "name": "SDL_GPU_BLENDOP_ADD",
          "comment": "(source * source_factor) + (destination * destination_factor)"
        },
        {
          "name": "SDL_GPU_BLENDOP_SUBTRACT",
          "comment": "(source * source_factor) - (destination * destination_factor)"
        },
        {
          "name": "SDL_GPU_BLENDOP_REVERSE_SUBTRACT",
          "comment": "(destination * destination_factor) - (source * source_factor)"
        },
        {
          "name": "SDL_GPU_BLENDOP_MIN",
          "comment": "min(source, destination)"
        },
        {
          "name": "SDL_GPU_BLENDOP_MAX"
        }
      ]
    },
    {
      "name": "SDL_GPUBlendFactor",
      "values": [
        {
          "name": "SDL_GPU_BLENDFACTOR_INVALID"
        },
        {
          "name": "SDL_GPU_BLENDFACTOR_ZERO",
          "comment": "0"
        },
        {
          "name": "SDL_GPU_BLENDFACTOR_ONE",
          "comment": "1"
        },
        {
          "name": "SDL_GPU_BLENDFACTOR_SRC_COLOR",
          "comment": "source color"
        },
        {
          "name": "SDL_GPU_BLENDFACTOR_ONE_MINUS_SRC_COLOR",
          "comment": "1 - source color"
        },
        {
          "name": "SDL_GPU_BLENDFACTOR_DST_COLOR",
          "comment": "destination color"
        },
        {
          "name": "SDL_GPU_BLENDFACTOR_ONE_MINUS_DST_COLOR",
          "comment": "1 - destination color"
        },
        {
          "name": "SDL_GPU_BLENDFACTOR_SRC_ALPHA",
          "comment": "source alpha"
        },
        {
          "name": "SDL_GPU_BLENDFACTOR_ONE_MINUS_SRC_ALPHA",
          "comment": "1 - source alpha"
        },
        {
          "name": "SDL_GPU_BLENDFACTOR_DST_ALPHA",
          "comment": "destination alpha"
        },
        {
          "name": "SDL_GPU_BLENDFACTOR_ONE_MINUS_DST_ALPHA",
          "comment": "1 - destination alpha"
        },
        {
          "name": "SDL_GPU_BLENDFACTOR_CONSTANT_COLOR",
          "comment": "blend constant"
        },
        {
          "name": "SDL_GPU_BLENDFACTOR_ONE_MINUS_CONSTANT_COLOR",
          "comment": "1 - blend constant"
        },
        {
          "name": "SDL_GPU_BLENDFACTOR_SRC_ALPHA_SATURATE"
        }
      ]
    },
    {
      "name": "SDL_GPUFilter",
      "values": [
        {
          "name": "SDL_GPU_FILTER_NEAREST",
          "comment": "Point filtering."
        },
        {
          "name": "SDL_GPU_FILTER_LINEAR",
          "comment": "Linear filtering."
        }
      ]
    },
    {
      "name": "SDL_GPUSamplerMipmapMode",
      "values": [
        {
          "name": "SDL_GPU_SAMPLERMIPMAPMODE_NEAREST",
          "comment": "Point filtering."
        },
        {
          "name": "SDL_GPU_SAMPLERMIPMAPMODE_LINEAR",
          "comment": "Linear filtering."
        }
      ]
    },
    {
      "name": "SDL_GPUSamplerAddressMode",
      "values": [
        {
          "name": "SDL_GPU_SAMPLERADDRESSMODE_REPEAT",
          "comment": "Specifies that the coordinates will wrap around."
        },
        {
          "name": "SDL_GPU_SAMPLERADDRESSMODE_MIRRORED_REPEAT",
          "comment": "Specifies that the coordinates will wrap around mirrored."
        },
        {
          "name": "SDL_GPU_SAMPLERADDRESSMODE_CLAMP_TO_EDGE",
          "comment": "Specifies that the coordinates will clamp to the 0-1 range."
        }
      ]
    },
    {
      "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 size of a single element + the offset between elements."
        },
        {
          "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_GPUShaderFormat",
      "underlying_type": "Uint32",
      "values": [
        {
          "name": "SDL_GPU_SHADERFORMAT_PRIVATE",
          "value": "(1u << 0)",
          "comment": "Shaders for NDA'd platforms."
        },
        {
          "name": "SDL_GPU_SHADERFORMAT_SPIRV",
          "value": "(1u << 1)",
          "comment": "SPIR-V shaders for Vulkan."
        },
        {
          "name": "SDL_GPU_SHADERFORMAT_DXBC",
          "value": "(1u << 2)",
          "comment": "DXBC SM5_1 shaders for D3D12."
        },
        {
          "name": "SDL_GPU_SHADERFORMAT_DXIL",
          "value": "(1u << 3)",
          "comment": "DXIL SM6_0 shaders for D3D12."
        },
        {
          "name": "SDL_GPU_SHADERFORMAT_MSL",
          "value": "(1u << 4)",
          "comment": "MSL shaders for Metal."
        },
        {
          "name": "SDL_GPU_SHADERFORMAT_METALLIB",
          "value": "(1u << 5)",
          "comment": "Precompiled metallib shaders for Metal."
        }
      ]
    },
    {
      "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 *"
        }
      ]
    }
  ]
}