4#include <SDL3/SDL_gpu.h>
5#include "SDL3pp_pixels.h"
6#include "SDL3pp_properties.h"
7#include "SDL3pp_rect.h"
8#include "SDL3pp_stdinc.h"
9#include "SDL3pp_surface.h"
10#include "SDL3pp_video.h"
500 : m_gPUBuffer(gPUBuffer)
554 constexpr operator GPUBufferRaw() const noexcept {
return m_gPUBuffer; }
594 : m_gPUTransferBuffer(gPUTransferBuffer)
635 return m_gPUTransferBuffer;
685 : m_gPUTexture(gPUTexture)
794 : m_gPUSampler(gPUSampler)
860 : m_gPUShader(gPUShader)
944 constexpr operator GPUShaderRaw() const noexcept {
return m_gPUShader; }
980 : m_gPUComputePipeline(gPUComputePipeline)
1039 return m_gPUComputePipeline;
1082 : m_gPUGraphicsPipeline(gPUGraphicsPipeline)
1117 return m_gPUGraphicsPipeline;
1150 SDL_GPU_INDEXELEMENTSIZE_16BIT;
1153 SDL_GPU_INDEXELEMENTSIZE_32BIT;
1189 : m_gPURenderPass(gPURenderPass)
1200 return m_gPURenderPass;
1264 std::span<const GPUBufferBinding> bindings);
1297 std::span<const GPUTextureSamplerBinding> texture_sampler_bindings);
1355 std::span<const GPUTextureSamplerBinding> texture_sampler_bindings);
1519 : m_gPUComputePass(gPUComputePass)
1530 return m_gPUComputePass;
1560 std::span<const GPUTextureSamplerBinding> texture_sampler_bindings);
1754 : m_gPUCopyPass(gPUCopyPass)
2047 : m_gPUCommandBuffer(gPUCommandBuffer)
2058 return m_gPUCommandBuffer;
2200 std::span<const GPUColorTargetInfo> color_target_infos,
2236 std::span<const GPUStorageTextureReadWriteBinding> storage_texture_bindings,
2237 std::span<const GPUStorageBufferReadWriteBinding> storage_buffer_bindings);
2323 Uint32* swapchain_texture_width =
nullptr,
2324 Uint32* swapchain_texture_height =
nullptr);
2367 Uint32* swapchain_texture_width =
nullptr,
2368 Uint32* swapchain_texture_height =
nullptr);
2451 SDL_GPU_SHADERFORMAT_INVALID;
2454 SDL_GPU_SHADERFORMAT_PRIVATE;
2457 SDL_GPU_SHADERFORMAT_SPIRV;
2460 SDL_GPU_SHADERFORMAT_DXBC;
2463 SDL_GPU_SHADERFORMAT_DXIL;
2466 SDL_GPU_SHADERFORMAT_MSL;
2469 SDL_GPU_SHADERFORMAT_METALLIB;
2499 SDL_GPU_SWAPCHAINCOMPOSITION_SDR;
2502 SDL_GPU_SWAPCHAINCOMPOSITION_SDR_LINEAR;
2505 SDL_GPU_SWAPCHAINCOMPOSITION_HDR_EXTENDED_LINEAR;
2508 SDL_GPU_SWAPCHAINCOMPOSITION_HDR10_ST2084;
2538 SDL_GPU_PRESENTMODE_VSYNC;
2541 SDL_GPU_PRESENTMODE_IMMEDIATE;
2544 SDL_GPU_PRESENTMODE_MAILBOX;
2630 SDL_GPU_TEXTUREFORMAT_INVALID;
2633 SDL_GPU_TEXTUREFORMAT_A8_UNORM;
2636 SDL_GPU_TEXTUREFORMAT_R8_UNORM;
2639 SDL_GPU_TEXTUREFORMAT_R8G8_UNORM;
2642 SDL_GPU_TEXTUREFORMAT_R8G8B8A8_UNORM;
2645 SDL_GPU_TEXTUREFORMAT_R16_UNORM;
2648 SDL_GPU_TEXTUREFORMAT_R16G16_UNORM;
2651 SDL_GPU_TEXTUREFORMAT_R16G16B16A16_UNORM;
2654 SDL_GPU_TEXTUREFORMAT_R10G10B10A2_UNORM;
2657 SDL_GPU_TEXTUREFORMAT_B5G6R5_UNORM;
2660 SDL_GPU_TEXTUREFORMAT_B5G5R5A1_UNORM;
2663 SDL_GPU_TEXTUREFORMAT_B4G4R4A4_UNORM;
2666 SDL_GPU_TEXTUREFORMAT_B8G8R8A8_UNORM;
2669 SDL_GPU_TEXTUREFORMAT_BC1_RGBA_UNORM;
2672 SDL_GPU_TEXTUREFORMAT_BC2_RGBA_UNORM;
2675 SDL_GPU_TEXTUREFORMAT_BC3_RGBA_UNORM;
2678 SDL_GPU_TEXTUREFORMAT_BC4_R_UNORM;
2681 SDL_GPU_TEXTUREFORMAT_BC5_RG_UNORM;
2684 SDL_GPU_TEXTUREFORMAT_BC7_RGBA_UNORM;
2687 SDL_GPU_TEXTUREFORMAT_BC6H_RGB_FLOAT;
2690 SDL_GPU_TEXTUREFORMAT_BC6H_RGB_UFLOAT;
2693 SDL_GPU_TEXTUREFORMAT_R8_SNORM;
2696 SDL_GPU_TEXTUREFORMAT_R8G8_SNORM;
2699 SDL_GPU_TEXTUREFORMAT_R8G8B8A8_SNORM;
2702 SDL_GPU_TEXTUREFORMAT_R16_SNORM;
2705 SDL_GPU_TEXTUREFORMAT_R16G16_SNORM;
2708 SDL_GPU_TEXTUREFORMAT_R16G16B16A16_SNORM;
2711 SDL_GPU_TEXTUREFORMAT_R16_FLOAT;
2714 SDL_GPU_TEXTUREFORMAT_R16G16_FLOAT;
2717 SDL_GPU_TEXTUREFORMAT_R16G16B16A16_FLOAT;
2720 SDL_GPU_TEXTUREFORMAT_R32_FLOAT;
2723 SDL_GPU_TEXTUREFORMAT_R32G32_FLOAT;
2726 SDL_GPU_TEXTUREFORMAT_R32G32B32A32_FLOAT;
2729 SDL_GPU_TEXTUREFORMAT_R11G11B10_UFLOAT;
2732 SDL_GPU_TEXTUREFORMAT_R8_UINT;
2735 SDL_GPU_TEXTUREFORMAT_R8G8_UINT;
2738 SDL_GPU_TEXTUREFORMAT_R8G8B8A8_UINT;
2741 SDL_GPU_TEXTUREFORMAT_R16_UINT;
2744 SDL_GPU_TEXTUREFORMAT_R16G16_UINT;
2747 SDL_GPU_TEXTUREFORMAT_R16G16B16A16_UINT;
2750 SDL_GPU_TEXTUREFORMAT_R32_UINT;
2753 SDL_GPU_TEXTUREFORMAT_R32G32_UINT;
2756 SDL_GPU_TEXTUREFORMAT_R32G32B32A32_UINT;
2759 SDL_GPU_TEXTUREFORMAT_R8_INT;
2762 SDL_GPU_TEXTUREFORMAT_R8G8_INT;
2765 SDL_GPU_TEXTUREFORMAT_R8G8B8A8_INT;
2768 SDL_GPU_TEXTUREFORMAT_R16_INT;
2771 SDL_GPU_TEXTUREFORMAT_R16G16_INT;
2774 SDL_GPU_TEXTUREFORMAT_R16G16B16A16_INT;
2777 SDL_GPU_TEXTUREFORMAT_R32_INT;
2780 SDL_GPU_TEXTUREFORMAT_R32G32_INT;
2783 SDL_GPU_TEXTUREFORMAT_R32G32B32A32_INT;
2786 SDL_GPU_TEXTUREFORMAT_R8G8B8A8_UNORM_SRGB;
2789 SDL_GPU_TEXTUREFORMAT_B8G8R8A8_UNORM_SRGB;
2792 SDL_GPU_TEXTUREFORMAT_BC1_RGBA_UNORM_SRGB;
2795 SDL_GPU_TEXTUREFORMAT_BC2_RGBA_UNORM_SRGB;
2798 SDL_GPU_TEXTUREFORMAT_BC3_RGBA_UNORM_SRGB;
2801 SDL_GPU_TEXTUREFORMAT_BC7_RGBA_UNORM_SRGB;
2804 SDL_GPU_TEXTUREFORMAT_D16_UNORM;
2807 SDL_GPU_TEXTUREFORMAT_D24_UNORM;
2810 SDL_GPU_TEXTUREFORMAT_D32_FLOAT;
2813 SDL_GPU_TEXTUREFORMAT_D24_UNORM_S8_UINT;
2816 SDL_GPU_TEXTUREFORMAT_D32_FLOAT_S8_UINT;
2819 SDL_GPU_TEXTUREFORMAT_ASTC_4x4_UNORM;
2822 SDL_GPU_TEXTUREFORMAT_ASTC_5x4_UNORM;
2825 SDL_GPU_TEXTUREFORMAT_ASTC_5x5_UNORM;
2828 SDL_GPU_TEXTUREFORMAT_ASTC_6x5_UNORM;
2831 SDL_GPU_TEXTUREFORMAT_ASTC_6x6_UNORM;
2834 SDL_GPU_TEXTUREFORMAT_ASTC_8x5_UNORM;
2837 SDL_GPU_TEXTUREFORMAT_ASTC_8x6_UNORM;
2840 SDL_GPU_TEXTUREFORMAT_ASTC_8x8_UNORM;
2843 SDL_GPU_TEXTUREFORMAT_ASTC_10x5_UNORM;
2846 SDL_GPU_TEXTUREFORMAT_ASTC_10x6_UNORM;
2849 SDL_GPU_TEXTUREFORMAT_ASTC_10x8_UNORM;
2852 SDL_GPU_TEXTUREFORMAT_ASTC_10x10_UNORM;
2855 SDL_GPU_TEXTUREFORMAT_ASTC_12x10_UNORM;
2858 SDL_GPU_TEXTUREFORMAT_ASTC_12x12_UNORM;
2861 SDL_GPU_TEXTUREFORMAT_ASTC_4x4_UNORM_SRGB;
2864 SDL_GPU_TEXTUREFORMAT_ASTC_5x4_UNORM_SRGB;
2867 SDL_GPU_TEXTUREFORMAT_ASTC_5x5_UNORM_SRGB;
2870 SDL_GPU_TEXTUREFORMAT_ASTC_6x5_UNORM_SRGB;
2873 SDL_GPU_TEXTUREFORMAT_ASTC_6x6_UNORM_SRGB;
2876 SDL_GPU_TEXTUREFORMAT_ASTC_8x5_UNORM_SRGB;
2879 SDL_GPU_TEXTUREFORMAT_ASTC_8x6_UNORM_SRGB;
2882 SDL_GPU_TEXTUREFORMAT_ASTC_8x8_UNORM_SRGB;
2885 SDL_GPU_TEXTUREFORMAT_ASTC_10x5_UNORM_SRGB;
2888 SDL_GPU_TEXTUREFORMAT_ASTC_10x6_UNORM_SRGB;
2891 SDL_GPU_TEXTUREFORMAT_ASTC_10x8_UNORM_SRGB;
2894 SDL_GPU_TEXTUREFORMAT_ASTC_10x10_UNORM_SRGB;
2897 SDL_GPU_TEXTUREFORMAT_ASTC_12x10_UNORM_SRGB;
2900 SDL_GPU_TEXTUREFORMAT_ASTC_12x12_UNORM_SRGB;
2903 SDL_GPU_TEXTUREFORMAT_ASTC_4x4_FLOAT;
2906 SDL_GPU_TEXTUREFORMAT_ASTC_5x4_FLOAT;
2909 SDL_GPU_TEXTUREFORMAT_ASTC_5x5_FLOAT;
2912 SDL_GPU_TEXTUREFORMAT_ASTC_6x5_FLOAT;
2915 SDL_GPU_TEXTUREFORMAT_ASTC_6x6_FLOAT;
2918 SDL_GPU_TEXTUREFORMAT_ASTC_8x5_FLOAT;
2921 SDL_GPU_TEXTUREFORMAT_ASTC_8x6_FLOAT;
2924 SDL_GPU_TEXTUREFORMAT_ASTC_8x8_FLOAT;
2927 SDL_GPU_TEXTUREFORMAT_ASTC_10x5_FLOAT;
2930 SDL_GPU_TEXTUREFORMAT_ASTC_10x6_FLOAT;
2933 SDL_GPU_TEXTUREFORMAT_ASTC_10x8_FLOAT;
2936 SDL_GPU_TEXTUREFORMAT_ASTC_10x10_FLOAT;
2939 SDL_GPU_TEXTUREFORMAT_ASTC_12x10_FLOAT;
2942 SDL_GPU_TEXTUREFORMAT_ASTC_12x12_FLOAT;
2954 SDL_GPU_TEXTURETYPE_2D;
2957 SDL_GPU_TEXTURETYPE_2D_ARRAY;
2960 SDL_GPU_TEXTURETYPE_3D;
2963 SDL_GPU_TEXTURETYPE_CUBE;
2966 SDL_GPU_TEXTURETYPE_CUBE_ARRAY;
2991 SDL_GPU_TEXTUREUSAGE_SAMPLER;
2994 SDL_GPU_TEXTUREUSAGE_COLOR_TARGET;
2997 SDL_GPU_TEXTUREUSAGE_DEPTH_STENCIL_TARGET;
3001 SDL_GPU_TEXTUREUSAGE_GRAPHICS_STORAGE_READ;
3006 SDL_GPU_TEXTUREUSAGE_COMPUTE_STORAGE_READ;
3010 SDL_GPU_TEXTUREUSAGE_COMPUTE_STORAGE_WRITE;
3018 SDL_GPU_TEXTUREUSAGE_COMPUTE_STORAGE_SIMULTANEOUS_READ_WRITE;
3034 SDL_GPU_SAMPLECOUNT_1;
3079#if SDL_VERSION_ATLEAST(3, 4, 0)
3821 void WaitForFences(
bool wait_all, std::span<GPUFence* const> fences);
3875#ifdef SDL_PLATFORM_GDK
3915 using GPUDeviceBase::GPUDeviceBase;
4110 SDL_GPU_PRIMITIVETYPE_TRIANGLELIST;
4113 SDL_GPU_PRIMITIVETYPE_TRIANGLESTRIP;
4116 SDL_GPU_PRIMITIVETYPE_LINELIST;
4119 SDL_GPU_PRIMITIVETYPE_LINESTRIP;
4122 SDL_GPU_PRIMITIVETYPE_POINTLIST;
4178 SDL_GPU_STOREOP_RESOLVE_AND_STORE;
4190 SDL_GPU_CUBEMAPFACE_POSITIVEX;
4193 SDL_GPU_CUBEMAPFACE_NEGATIVEX;
4196 SDL_GPU_CUBEMAPFACE_POSITIVEY;
4199 SDL_GPU_CUBEMAPFACE_NEGATIVEY;
4202 SDL_GPU_CUBEMAPFACE_POSITIVEZ;
4205 SDL_GPU_CUBEMAPFACE_NEGATIVEZ;
4227 SDL_GPU_BUFFERUSAGE_VERTEX;
4230 SDL_GPU_BUFFERUSAGE_INDEX;
4233 SDL_GPU_BUFFERUSAGE_INDIRECT;
4236 SDL_GPU_BUFFERUSAGE_GRAPHICS_STORAGE_READ;
4241 SDL_GPU_BUFFERUSAGE_COMPUTE_STORAGE_READ;
4245 SDL_GPU_BUFFERUSAGE_COMPUTE_STORAGE_WRITE;
4260 SDL_GPU_TRANSFERBUFFERUSAGE_UPLOAD;
4263 SDL_GPU_TRANSFERBUFFERUSAGE_DOWNLOAD;
4275 SDL_GPU_SHADERSTAGE_VERTEX;
4278 SDL_GPU_SHADERSTAGE_FRAGMENT;
4290 SDL_GPU_VERTEXELEMENTFORMAT_INVALID;
4293 SDL_GPU_VERTEXELEMENTFORMAT_INT;
4296 SDL_GPU_VERTEXELEMENTFORMAT_INT2;
4299 SDL_GPU_VERTEXELEMENTFORMAT_INT3;
4302 SDL_GPU_VERTEXELEMENTFORMAT_INT4;
4305 SDL_GPU_VERTEXELEMENTFORMAT_UINT;
4308 SDL_GPU_VERTEXELEMENTFORMAT_UINT2;
4311 SDL_GPU_VERTEXELEMENTFORMAT_UINT3;
4314 SDL_GPU_VERTEXELEMENTFORMAT_UINT4;
4317 SDL_GPU_VERTEXELEMENTFORMAT_FLOAT;
4320 SDL_GPU_VERTEXELEMENTFORMAT_FLOAT2;
4323 SDL_GPU_VERTEXELEMENTFORMAT_FLOAT3;
4326 SDL_GPU_VERTEXELEMENTFORMAT_FLOAT4;
4329 SDL_GPU_VERTEXELEMENTFORMAT_BYTE2;
4332 SDL_GPU_VERTEXELEMENTFORMAT_BYTE4;
4335 SDL_GPU_VERTEXELEMENTFORMAT_UBYTE2;
4338 SDL_GPU_VERTEXELEMENTFORMAT_UBYTE4;
4341 SDL_GPU_VERTEXELEMENTFORMAT_BYTE2_NORM;
4344 SDL_GPU_VERTEXELEMENTFORMAT_BYTE4_NORM;
4347 SDL_GPU_VERTEXELEMENTFORMAT_UBYTE2_NORM;
4350 SDL_GPU_VERTEXELEMENTFORMAT_UBYTE4_NORM;
4353 SDL_GPU_VERTEXELEMENTFORMAT_SHORT2;
4356 SDL_GPU_VERTEXELEMENTFORMAT_SHORT4;
4359 SDL_GPU_VERTEXELEMENTFORMAT_USHORT2;
4362 SDL_GPU_VERTEXELEMENTFORMAT_USHORT4;
4365 SDL_GPU_VERTEXELEMENTFORMAT_SHORT2_NORM;
4368 SDL_GPU_VERTEXELEMENTFORMAT_SHORT4_NORM;
4371 SDL_GPU_VERTEXELEMENTFORMAT_USHORT2_NORM;
4374 SDL_GPU_VERTEXELEMENTFORMAT_USHORT4_NORM;
4377 SDL_GPU_VERTEXELEMENTFORMAT_HALF2;
4380 SDL_GPU_VERTEXELEMENTFORMAT_HALF4;
4393 SDL_GPU_VERTEXINPUTRATE_VERTEX;
4397 SDL_GPU_VERTEXINPUTRATE_INSTANCE;
4409 SDL_GPU_FILLMODE_FILL;
4412 SDL_GPU_FILLMODE_LINE;
4424 SDL_GPU_CULLMODE_NONE;
4427 SDL_GPU_CULLMODE_FRONT;
4430 SDL_GPU_CULLMODE_BACK;
4447 SDL_GPU_FRONTFACE_COUNTER_CLOCKWISE;
4462 SDL_GPU_COMPAREOP_INVALID;
4465 SDL_GPU_COMPAREOP_NEVER;
4468 SDL_GPU_COMPAREOP_LESS;
4471 SDL_GPU_COMPAREOP_EQUAL;
4474 SDL_GPU_COMPAREOP_LESS_OR_EQUAL;
4478 SDL_GPU_COMPAREOP_GREATER;
4481 SDL_GPU_COMPAREOP_NOT_EQUAL;
4484 SDL_GPU_COMPAREOP_GREATER_OR_EQUAL;
4488 SDL_GPU_COMPAREOP_ALWAYS;
4501 SDL_GPU_STENCILOP_INVALID;
4504 SDL_GPU_STENCILOP_KEEP;
4507 SDL_GPU_STENCILOP_ZERO;
4510 SDL_GPU_STENCILOP_REPLACE;
4514 SDL_GPU_STENCILOP_INCREMENT_AND_CLAMP;
4517 SDL_GPU_STENCILOP_DECREMENT_AND_CLAMP;
4521 SDL_GPU_STENCILOP_INVERT;
4524 SDL_GPU_STENCILOP_INCREMENT_AND_WRAP;
4529 SDL_GPU_STENCILOP_DECREMENT_AND_WRAP;
4545 SDL_GPU_BLENDOP_INVALID;
4555 SDL_GPU_BLENDOP_REVERSE_SUBTRACT;
4558 SDL_GPU_BLENDOP_MIN;
4561 SDL_GPU_BLENDOP_MAX;
4577 SDL_GPU_BLENDFACTOR_INVALID;
4584 SDL_GPU_BLENDFACTOR_SRC_COLOR;
4587 SDL_GPU_BLENDFACTOR_ONE_MINUS_SRC_COLOR;
4590 SDL_GPU_BLENDFACTOR_DST_COLOR;
4593 SDL_GPU_BLENDFACTOR_ONE_MINUS_DST_COLOR;
4596 SDL_GPU_BLENDFACTOR_SRC_ALPHA;
4599 SDL_GPU_BLENDFACTOR_ONE_MINUS_SRC_ALPHA;
4602 SDL_GPU_BLENDFACTOR_DST_ALPHA;
4605 SDL_GPU_BLENDFACTOR_ONE_MINUS_DST_ALPHA;
4608 SDL_GPU_BLENDFACTOR_CONSTANT_COLOR;
4611 SDL_GPU_BLENDFACTOR_ONE_MINUS_CONSTANT_COLOR;
4614 SDL_GPU_BLENDFACTOR_SRC_ALPHA_SATURATE;
4627 SDL_GPU_COLORCOMPONENT_R;
4630 SDL_GPU_COLORCOMPONENT_G;
4633 SDL_GPU_COLORCOMPONENT_B;
4636 SDL_GPU_COLORCOMPONENT_A;
4648 SDL_GPU_FILTER_NEAREST;
4651 SDL_GPU_FILTER_LINEAR;
4663 SDL_GPU_SAMPLERMIPMAPMODE_NEAREST;
4666 SDL_GPU_SAMPLERMIPMAPMODE_LINEAR;
4679 SDL_GPU_SAMPLERADDRESSMODE_REPEAT;
4684 SDL_GPU_SAMPLERADDRESSMODE_MIRRORED_REPEAT;
4688 SDL_GPU_SAMPLERADDRESSMODE_CLAMP_TO_EDGE;
4883 return SDL_GPUSupportsShaderFormats(format_flags, name);
4898 return SDL_GPUSupportsProperties(props);
4931 return GPUDevice(format_flags, debug_mode, std::move(name));
5070 SDL_PROP_GPU_DEVICE_CREATE_DEBUGMODE_BOOLEAN;
5073 SDL_PROP_GPU_DEVICE_CREATE_PREFERLOWPOWER_BOOLEAN;
5075#if SDL_VERSION_ATLEAST(3, 4, 0)
5078 SDL_PROP_GPU_DEVICE_CREATE_VERBOSE_BOOLEAN;
5083 SDL_PROP_GPU_DEVICE_CREATE_NAME_STRING;
5085#if SDL_VERSION_ATLEAST(3, 4, 0)
5088 SDL_PROP_GPU_DEVICE_CREATE_FEATURE_CLIP_DISTANCE_BOOLEAN;
5092 SDL_PROP_GPU_DEVICE_CREATE_FEATURE_DEPTH_CLAMPING_BOOLEAN;
5097 SDL_PROP_GPU_DEVICE_CREATE_FEATURE_INDIRECT_DRAW_FIRST_INSTANCE_BOOLEAN;
5100 SDL_PROP_GPU_DEVICE_CREATE_FEATURE_ANISOTROPY_BOOLEAN;
5106 SDL_PROP_GPU_DEVICE_CREATE_SHADERS_PRIVATE_BOOLEAN;
5110 SDL_PROP_GPU_DEVICE_CREATE_SHADERS_SPIRV_BOOLEAN;
5113 SDL_PROP_GPU_DEVICE_CREATE_SHADERS_DXBC_BOOLEAN;
5116 SDL_PROP_GPU_DEVICE_CREATE_SHADERS_DXIL_BOOLEAN;
5119 SDL_PROP_GPU_DEVICE_CREATE_SHADERS_MSL_BOOLEAN;
5122 SDL_PROP_GPU_DEVICE_CREATE_SHADERS_METALLIB_BOOLEAN;
5125#if SDL_VERSION_ATLEAST(3, 4, 0)
5128 SDL_PROP_GPU_DEVICE_CREATE_D3D12_ALLOW_FEWER_RESOURCE_SLOTS_BOOLEAN;
5138 SDL_PROP_GPU_DEVICE_CREATE_D3D12_SEMANTIC_NAME_STRING;
5141#if SDL_VERSION_ATLEAST(3, 4, 2)
5144 SDL_PROP_GPU_DEVICE_CREATE_D3D12_AGILITY_SDK_VERSION_NUMBER;
5150 SDL_PROP_GPU_DEVICE_CREATE_D3D12_AGILITY_SDK_PATH_STRING;
5156#if SDL_VERSION_ATLEAST(3, 4, 0)
5159 SDL_PROP_GPU_DEVICE_CREATE_VULKAN_REQUIRE_HARDWARE_ACCELERATION_BOOLEAN;
5162 SDL_PROP_GPU_DEVICE_CREATE_VULKAN_OPTIONS_POINTER;
5167#if SDL_VERSION_ATLEAST(3, 4, 2)
5170 SDL_PROP_GPU_DEVICE_CREATE_METAL_ALLOW_MACFAMILY1_BOOLEAN;
5178#if SDL_VERSION_ATLEAST(3, 4, 0)
5211 SDL_DestroyGPUDevice(device);
5244inline const char*
GetGPUDriver(
int index) {
return SDL_GetGPUDriver(index); }
5256 return SDL_GetGPUDeviceDriver(device);
5275 return SDL_GetGPUShaderFormats(device);
5283#if SDL_VERSION_ATLEAST(3, 4, 0)
5388 return CheckError(SDL_GetGPUDeviceProperties(device));
5411 SDL_PROP_GPU_DEVICE_NAME_STRING;
5414 SDL_PROP_GPU_DEVICE_DRIVER_NAME_STRING;
5417 SDL_PROP_GPU_DEVICE_DRIVER_VERSION_STRING;
5420 SDL_PROP_GPU_DEVICE_DRIVER_INFO_STRING;
5487 : m_gPUComputePipeline(
5488 CheckError(SDL_CreateGPUComputePipeline(device, &createinfo)))
5500 SDL_PROP_GPU_COMPUTEPIPELINE_CREATE_NAME_STRING;
5541 : m_gPUGraphicsPipeline(
5542 CheckError(SDL_CreateGPUGraphicsPipeline(device, &createinfo)))
5554 SDL_PROP_GPU_GRAPHICSPIPELINE_CREATE_NAME_STRING;
5593 : m_gPUSampler(
CheckError(SDL_CreateGPUSampler(device, &createinfo)))
5605 SDL_PROP_GPU_SAMPLER_CREATE_NAME_STRING;
5694 : m_gPUShader(
CheckError(SDL_CreateGPUShader(device, &createinfo)))
5706 SDL_PROP_GPU_SHADER_CREATE_NAME_STRING;
5782 : m_gPUTexture(
CheckError(SDL_CreateGPUTexture(device, &createinfo)))
5794 SDL_PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_R_FLOAT;
5797 SDL_PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_G_FLOAT;
5800 SDL_PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_B_FLOAT;
5803 SDL_PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_A_FLOAT;
5806 SDL_PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_DEPTH_FLOAT;
5809#if SDL_VERSION_ATLEAST(3, 2, 12)
5812 SDL_PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_STENCIL_NUMBER;
5818 SDL_PROP_GPU_TEXTURE_CREATE_NAME_STRING;
5879 : m_gPUBuffer(
CheckError(SDL_CreateGPUBuffer(device, &createinfo)))
5891 SDL_PROP_GPU_BUFFER_CREATE_NAME_STRING;
5938 : m_gPUTransferBuffer(
5939 CheckError(SDL_CreateGPUTransferBuffer(device, &createinfo)))
5951 SDL_PROP_GPU_TRANSFERBUFFER_CREATE_NAME_STRING;
5976 SDL_SetGPUBufferName(device, buffer, text);
6005 SDL_SetGPUTextureName(device, texture, text);
6031 SDL_InsertGPUDebugLabel(command_buffer, text);
6067 SDL_PushGPUDebugGroup(command_buffer, name);
6091 SDL_PopGPUDebugGroup(command_buffer);
6111 SDL_ReleaseGPUTexture(device, texture);
6131 SDL_ReleaseGPUSampler(device, sampler);
6151 SDL_ReleaseGPUBuffer(device, buffer);
6172 SDL_ReleaseGPUTransferBuffer(device, transfer_buffer);
6194 SDL_ReleaseGPUComputePipeline(device, compute_pipeline);
6215 SDL_ReleaseGPUShader(device, shader);
6236 SDL_ReleaseGPUGraphicsPipeline(device, graphics_pipeline);
6271 return CheckError(SDL_AcquireGPUCommandBuffer(device));
6301 SDL_PushGPUVertexUniformData(
6309 m_gPUCommandBuffer, slot_index, std::move(data));
6331 SDL_PushGPUFragmentUniformData(
6339 m_gPUCommandBuffer, slot_index, std::move(data));
6361 SDL_PushGPUComputeUniformData(
6369 m_gPUCommandBuffer, slot_index, std::move(data));
6405 std::span<const GPUColorTargetInfo> color_target_infos,
6408 return SDL_BeginGPURenderPass(command_buffer,
6409 color_target_infos.data(),
6411 depth_stencil_target_info);
6415 std::span<const GPUColorTargetInfo> color_target_infos,
6419 m_gPUCommandBuffer, color_target_infos, depth_stencil_target_info);
6435 SDL_BindGPUGraphicsPipeline(render_pass, graphics_pipeline);
6454 SDL_SetGPUViewport(render_pass, &viewport);
6472 SDL_SetGPUScissor(render_pass, &scissor);
6494 SDL_SetGPUBlendConstants(render_pass, blend_constants);
6512 SDL_SetGPUStencilReference(render_pass, reference);
6532 std::span<const GPUBufferBinding> bindings)
6534 SDL_BindGPUVertexBuffers(
6535 render_pass, first_slot, bindings.data(),
narrowU32(bindings.size()));
6540 std::span<const GPUBufferBinding> bindings)
6559 SDL_BindGPUIndexBuffer(render_pass, &binding, index_element_size);
6588 std::span<const GPUTextureSamplerBinding> texture_sampler_bindings)
6590 SDL_BindGPUVertexSamplers(render_pass,
6592 texture_sampler_bindings.data(),
6593 narrowU32(texture_sampler_bindings.size()));
6598 std::span<const GPUTextureSamplerBinding> texture_sampler_bindings)
6601 m_gPURenderPass, first_slot, texture_sampler_bindings);
6626 SDL_BindGPUVertexStorageTextures(render_pass,
6628 storage_textures.
data(),
6637 m_gPURenderPass, first_slot, storage_textures);
6662 SDL_BindGPUVertexStorageBuffers(render_pass,
6664 storage_buffers.
data(),
6673 m_gPURenderPass, first_slot, storage_buffers);
6695 std::span<const GPUTextureSamplerBinding> texture_sampler_bindings)
6697 SDL_BindGPUFragmentSamplers(render_pass,
6699 texture_sampler_bindings.data(),
6700 narrowU32(texture_sampler_bindings.size()));
6705 std::span<const GPUTextureSamplerBinding> texture_sampler_bindings)
6708 m_gPURenderPass, first_slot, texture_sampler_bindings);
6733 SDL_BindGPUFragmentStorageTextures(render_pass,
6735 storage_textures.
data(),
6744 m_gPURenderPass, first_slot, storage_textures);
6769 SDL_BindGPUFragmentStorageBuffers(render_pass,
6771 storage_buffers.
data(),
6780 m_gPURenderPass, first_slot, storage_buffers);
6813 SDL_DrawGPUIndexedPrimitives(render_pass,
6861 SDL_DrawGPUPrimitives(
6862 render_pass, num_vertices, num_instances, first_vertex, first_instance);
6871 m_gPURenderPass, num_vertices, num_instances, first_vertex, first_instance);
6895 SDL_DrawGPUPrimitivesIndirect(render_pass, buffer, offset, draw_count);
6926 SDL_DrawGPUIndexedPrimitivesIndirect(render_pass, buffer, offset, draw_count);
6934 m_gPURenderPass, buffer, offset, draw_count);
6949 SDL_EndGPURenderPass(render_pass);
6989 std::span<const GPUStorageTextureReadWriteBinding> storage_texture_bindings,
6990 std::span<const GPUStorageBufferReadWriteBinding> storage_buffer_bindings)
6992 return SDL_BeginGPUComputePass(command_buffer,
6993 storage_texture_bindings.data(),
6994 narrowU32(storage_texture_bindings.size()),
6995 storage_buffer_bindings.data(),
6996 narrowU32(storage_buffer_bindings.size()));
7000 std::span<const GPUStorageTextureReadWriteBinding> storage_texture_bindings,
7001 std::span<const GPUStorageBufferReadWriteBinding> storage_buffer_bindings)
7004 m_gPUCommandBuffer, storage_texture_bindings, storage_buffer_bindings);
7018 SDL_BindGPUComputePipeline(compute_pass, compute_pipeline);
7045 std::span<const GPUTextureSamplerBinding> texture_sampler_bindings)
7047 SDL_BindGPUComputeSamplers(compute_pass,
7049 texture_sampler_bindings.data(),
7050 narrowU32(texture_sampler_bindings.size()));
7055 std::span<const GPUTextureSamplerBinding> texture_sampler_bindings)
7058 m_gPUComputePass, first_slot, texture_sampler_bindings);
7083 SDL_BindGPUComputeStorageTextures(compute_pass,
7085 storage_textures.
data(),
7094 m_gPUComputePass, first_slot, storage_textures);
7119 SDL_BindGPUComputeStorageBuffers(compute_pass,
7121 storage_buffers.
data(),
7130 m_gPUComputePass, first_slot, storage_buffers);
7158 SDL_DispatchGPUCompute(
7159 compute_pass, groupcount_x, groupcount_y, groupcount_z);
7167 m_gPUComputePass, groupcount_x, groupcount_y, groupcount_z);
7191 SDL_DispatchGPUComputeIndirect(compute_pass, buffer, offset);
7211 SDL_EndGPUComputePass(compute_pass);
7235 return CheckError(SDL_MapGPUTransferBuffer(device, transfer_buffer, cycle));
7255 SDL_UnmapGPUTransferBuffer(device, transfer_buffer);
7280 return SDL_BeginGPUCopyPass(command_buffer);
7310 SDL_UploadToGPUTexture(copy_pass, &source, &destination, cycle);
7339 SDL_UploadToGPUBuffer(copy_pass, &source, &destination, cycle);
7377 SDL_CopyGPUTextureToTexture(copy_pass, &source, &destination, w, h, d, cycle);
7389 m_gPUCopyPass, source, destination, w, h, d, cycle);
7413 SDL_CopyGPUBufferToBuffer(copy_pass, &source, &destination, size, cycle);
7442 SDL_DownloadFromGPUTexture(copy_pass, &source, &destination);
7468 SDL_DownloadFromGPUBuffer(copy_pass, &source, &destination);
7487 SDL_EndGPUCopyPass(copy_pass);
7505 SDL_GenerateMipmapsForGPUTexture(command_buffer, texture);
7526 SDL_BlitGPUTexture(command_buffer, &info);
7553 return SDL_WindowSupportsGPUSwapchainComposition(
7554 device, window, swapchain_composition);
7562 get(), window, swapchain_composition);
7583 return SDL_WindowSupportsGPUPresentMode(device, window, present_mode);
7620 CheckError(SDL_ClaimWindowForGPUDevice(device, window));
7640 SDL_ReleaseWindowFromGPUDevice(device, window);
7676 return SDL_SetGPUSwapchainParameters(
7677 device, window, swapchain_composition, present_mode);
7686 get(), window, swapchain_composition, present_mode);
7715 Uint32 allowed_frames_in_flight)
7717 return SDL_SetGPUAllowedFramesInFlight(device, allowed_frames_in_flight);
7721 Uint32 allowed_frames_in_flight)
7740 return SDL_GetGPUSwapchainTextureFormat(device, window);
7798 Uint32* swapchain_texture_width =
nullptr,
7799 Uint32* swapchain_texture_height =
nullptr)
7802 CheckError(SDL_AcquireGPUSwapchainTexture(command_buffer,
7805 swapchain_texture_width,
7806 swapchain_texture_height));
7812 Uint32* swapchain_texture_width,
7813 Uint32* swapchain_texture_height)
7817 swapchain_texture_width,
7818 swapchain_texture_height);
7839 CheckError(SDL_WaitForGPUSwapchain(device, window));
7890 Uint32* swapchain_texture_width =
nullptr,
7891 Uint32* swapchain_texture_height =
nullptr)
7894 CheckError(SDL_WaitAndAcquireGPUSwapchainTexture(command_buffer,
7897 swapchain_texture_width,
7898 swapchain_texture_height));
7904 Uint32* swapchain_texture_width,
7905 Uint32* swapchain_texture_height)
7909 swapchain_texture_width,
7910 swapchain_texture_height);
7935 CheckError(SDL_SubmitGPUCommandBuffer(command_buffer));
7970 return CheckError(SDL_SubmitGPUCommandBufferAndAcquireFence(command_buffer));
8001 CheckError(SDL_CancelGPUCommandBuffer(command_buffer));
8042 std::span<GPUFence* const> fences)
8045 device, wait_all, fences.data(),
narrowU32(fences.size())));
8049 std::span<GPUFence* const> fences)
8067 return SDL_QueryGPUFence(device, fence);
8089 SDL_ReleaseGPUFence(device, fence);
8109 return SDL_GPUTextureFormatTexelBlockSize(format);
8128 return SDL_GPUTextureSupportsFormat(device, format, type, usage);
8152 return SDL_GPUTextureSupportsSampleCount(device, format, sample_count);
8176 Uint32 depth_or_layer_count)
8178 return SDL_CalculateGPUTextureFormatSize(
8179 format, width, height, depth_or_layer_count);
8182#if SDL_VERSION_ATLEAST(3, 4, 0)
8195 return SDL_GetPixelFormatFromGPUTextureFormat(format);
8209 return SDL_GetGPUTextureFormatFromPixelFormat(format);
8214#ifdef SDL_PLATFORM_GDK
An opaque handle representing a buffer.
Definition SDL3pp_gpu.h:490
constexpr GPUBuffer(GPUBufferRaw gPUBuffer={}) noexcept
Wraps GPUBuffer.
Definition SDL3pp_gpu.h:499
An opaque handle representing a command buffer.
Definition SDL3pp_gpu.h:2037
constexpr GPUCommandBuffer(GPUCommandBufferRaw gPUCommandBuffer={}) noexcept
Wraps GPUCommandBuffer.
Definition SDL3pp_gpu.h:2046
An opaque handle representing a compute pass.
Definition SDL3pp_gpu.h:1509
constexpr GPUComputePass(GPUComputePassRaw gPUComputePass={}) noexcept
Wraps GPUComputePass.
Definition SDL3pp_gpu.h:1518
An opaque handle representing a compute pipeline.
Definition SDL3pp_gpu.h:969
constexpr GPUComputePipeline(GPUComputePipelineRaw gPUComputePipeline={}) noexcept
Wraps GPUComputePipeline.
Definition SDL3pp_gpu.h:978
An opaque handle representing a copy pass.
Definition SDL3pp_gpu.h:1744
constexpr GPUCopyPass(GPUCopyPassRaw gPUCopyPass={}) noexcept
Wraps GPUCopyPass.
Definition SDL3pp_gpu.h:1753
An opaque handle representing a graphics pipeline.
Definition SDL3pp_gpu.h:1071
constexpr GPUGraphicsPipeline(GPUGraphicsPipelineRaw gPUGraphicsPipeline={}) noexcept
Wraps GPUGraphicsPipeline.
Definition SDL3pp_gpu.h:1080
An opaque handle representing a render pass.
Definition SDL3pp_gpu.h:1179
constexpr GPURenderPass(GPURenderPassRaw gPURenderPass={}) noexcept
Wraps GPURenderPass.
Definition SDL3pp_gpu.h:1188
An opaque handle representing a sampler.
Definition SDL3pp_gpu.h:784
constexpr GPUSampler(GPUSamplerRaw gPUSampler={}) noexcept
Wraps GPUSampler.
Definition SDL3pp_gpu.h:793
An opaque handle representing a compiled shader object.
Definition SDL3pp_gpu.h:850
constexpr GPUShader(GPUShaderRaw gPUShader={}) noexcept
Wraps GPUShader.
Definition SDL3pp_gpu.h:859
An opaque handle representing a texture.
Definition SDL3pp_gpu.h:675
constexpr GPUTexture(GPUTextureRaw gPUTexture={}) noexcept
Wraps GPUTexture.
Definition SDL3pp_gpu.h:684
An opaque handle representing a transfer buffer.
Definition SDL3pp_gpu.h:583
constexpr GPUTransferBuffer(GPUTransferBufferRaw gPUTransferBuffer={}) noexcept
Wraps GPUTransferBuffer.
Definition SDL3pp_gpu.h:592
Optional-like shim for references.
Definition SDL3pp_optionalRef.h:20
constexpr RawPointer release() noexcept
Definition SDL3pp_resource.h:57
friend constexpr void swap(ResourceBaseT &lhs, ResourceBaseT &rhs) noexcept
Definition SDL3pp_resource.h:65
constexpr RawPointer get() const noexcept
Definition SDL3pp_resource.h:54
constexpr ResourceBaseT()=default
Default constructor, creates null/invalid resource.
Source byte stream.
Definition SDL3pp_strings.h:237
constexpr size_t size_bytes() const
Retrieves contained size in bytes.
Definition SDL3pp_strings.h:301
constexpr const char * data() const
Retrieves contained data.
Definition SDL3pp_strings.h:304
span-like for empty-derived structs
Definition SDL3pp_spanRef.h:24
constexpr T * data() const
Retrieves contained data.
Definition SDL3pp_spanRef.h:75
constexpr size_t size() const
Retrieves contained size.
Definition SDL3pp_spanRef.h:69
Helpers to use C++ strings parameters.
Definition SDL3pp_strings.h:43
constexpr void CheckError(bool result)
Check and throw if returned value from SDL is an error.
Definition SDL3pp_error.h:199
GPUGraphicsPipeline CreateGPUGraphicsPipeline(GPUDeviceRef device, const GPUGraphicsPipelineCreateInfo &createinfo)
Creates a pipeline object to be used in a graphics workflow.
Definition SDL3pp_gpu.h:5525
void ReleaseTexture(GPUTexture texture)
Frees the given texture as soon as it is safe to do so.
Definition SDL3pp_gpu.h:6114
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_UINT
GPU_VERTEXELEMENTFORMAT_UINT.
Definition SDL3pp_gpu.h:4304
SDL_GPUPresentMode GPUPresentMode
Specifies the timing that will be used to present swapchain textures to the OS.
Definition SDL3pp_gpu.h:2535
constexpr GPUShaderFormat GPU_SHADERFORMAT_DXIL
DXIL SM6_0 shaders for D3D12.
Definition SDL3pp_gpu.h:2462
void Dispatch(Uint32 groupcount_x, Uint32 groupcount_y, Uint32 groupcount_z)
Dispatches compute work.
Definition SDL3pp_gpu.h:7162
void PushComputeUniformData(Uint32 slot_index, SourceBytes data)
Pushes data to a uniform slot on the command buffer.
Definition SDL3pp_gpu.h:6365
void ReleaseComputePipeline(GPUComputePipeline compute_pipeline)
Frees the given compute pipeline as soon as it is safe to do so.
Definition SDL3pp_gpu.h:6197
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_12x12_UNORM_SRGB
GPU_TEXTUREFORMAT_ASTC_12x12_UNORM_SRGB.
Definition SDL3pp_gpu.h:2899
constexpr GPUFillMode GPU_FILLMODE_FILL
Polygons will be rendered via rasterization.
Definition SDL3pp_gpu.h:4408
SDL_GPUTransferBufferUsage GPUTransferBufferUsage
Specifies how a transfer buffer is intended to be used by the client.
Definition SDL3pp_gpu.h:4257
constexpr GPUShaderFormat GPU_SHADERFORMAT_PRIVATE
Shaders for NDA'd platforms.
Definition SDL3pp_gpu.h:2453
constexpr GPUCompareOp GPU_COMPAREOP_LESS_OR_EQUAL
The comparison evaluates reference <= test.
Definition SDL3pp_gpu.h:4473
constexpr GPUSwapchainComposition GPU_SWAPCHAINCOMPOSITION_HDR10_ST2084
GPU_SWAPCHAINCOMPOSITION_HDR10_ST2084.
Definition SDL3pp_gpu.h:2507
int GetNumGPUDrivers()
Get the number of GPU drivers compiled into SDL.
Definition SDL3pp_gpu.h:5225
void PushGPUFragmentUniformData(GPUCommandBuffer command_buffer, Uint32 slot_index, SourceBytes data)
Pushes data to a fragment uniform slot on the command buffer.
Definition SDL3pp_gpu.h:6327
bool SetAllowedFramesInFlight(Uint32 allowed_frames_in_flight)
Configures the maximum allowed number of frames in flight.
Definition SDL3pp_gpu.h:7720
constexpr GPUIndexElementSize GPU_INDEXELEMENTSIZE_32BIT
The index elements are 32-bit.
Definition SDL3pp_gpu.h:1152
GPUDevice CreateGPUDeviceWithProperties(PropertiesRef props)
Creates a GPU context.
Definition SDL3pp_gpu.h:5055
void BindGPUFragmentStorageTextures(GPURenderPass render_pass, Uint32 first_slot, SpanRef< const GPUTextureRaw > storage_textures)
Binds storage textures for use on the fragment shader.
Definition SDL3pp_gpu.h:6728
SDL_GPUCompareOp GPUCompareOp
Specifies a comparison operator for depth, stencil and sampler operations.
Definition SDL3pp_gpu.h:4459
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_6x6_FLOAT
GPU_TEXTUREFORMAT_ASTC_6x6_FLOAT.
Definition SDL3pp_gpu.h:2914
constexpr GPUStencilOp GPU_STENCILOP_ZERO
Sets the value to 0.
Definition SDL3pp_gpu.h:4506
void * MapTransferBuffer(GPUTransferBuffer transfer_buffer, bool cycle)
Maps a transfer buffer into application address space.
Definition SDL3pp_gpu.h:7238
constexpr GPUCompareOp GPU_COMPAREOP_ALWAYS
The comparison always evaluates true.
Definition SDL3pp_gpu.h:4487
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R8_UNORM
GPU_TEXTUREFORMAT_R8_UNORM.
Definition SDL3pp_gpu.h:2635
SDL_GPUCullMode GPUCullMode
Specifies the facing direction in which triangle faces will be culled.
Definition SDL3pp_gpu.h:4421
constexpr GPUBlendOp GPU_BLENDOP_MIN
min(source, destination)
Definition SDL3pp_gpu.h:4557
void DrawGPUIndexedPrimitivesIndirect(GPURenderPass render_pass, GPUBuffer buffer, Uint32 offset, Uint32 draw_count)
Draws data using bound graphics state with an index buffer enabled and with draw parameters set from ...
Definition SDL3pp_gpu.h:6921
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_FLOAT2
GPU_VERTEXELEMENTFORMAT_FLOAT2.
Definition SDL3pp_gpu.h:4319
void CopyGPUTextureToTexture(GPUCopyPass copy_pass, const GPUTextureLocation &source, const GPUTextureLocation &destination, Uint32 w, Uint32 h, Uint32 d, bool cycle)
Performs a texture-to-texture copy.
Definition SDL3pp_gpu.h:7369
SDL_GPUTransferBufferCreateInfo GPUTransferBufferCreateInfo
A structure specifying the parameters of a transfer buffer.
Definition SDL3pp_gpu.h:564
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R32G32_FLOAT
GPU_TEXTUREFORMAT_R32G32_FLOAT.
Definition SDL3pp_gpu.h:2722
constexpr GPUTextureUsageFlags GPU_TEXTUREUSAGE_COMPUTE_STORAGE_SIMULTANEOUS_READ_WRITE
Texture supports reads and writes in the same compute shader.
Definition SDL3pp_gpu.h:3017
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_USHORT2_NORM
GPU_VERTEXELEMENTFORMAT_USHORT2_NORM.
Definition SDL3pp_gpu.h:4370
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R8G8_INT
GPU_TEXTUREFORMAT_R8G8_INT.
Definition SDL3pp_gpu.h:2761
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_6x6_UNORM
GPU_TEXTUREFORMAT_ASTC_6x6_UNORM.
Definition SDL3pp_gpu.h:2830
Uint32 GPUShaderFormat
Specifies the format of shader code.
Definition SDL3pp_gpu.h:2448
void ReleaseGPUShader(GPUDeviceRef device, GPUShader shader)
Frees the given shader as soon as it is safe to do so.
Definition SDL3pp_gpu.h:6213
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R16G16B16A16_INT
GPU_TEXTUREFORMAT_R16G16B16A16_INT.
Definition SDL3pp_gpu.h:2773
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_12x12_UNORM
GPU_TEXTUREFORMAT_ASTC_12x12_UNORM.
Definition SDL3pp_gpu.h:2857
void BlitGPUTexture(GPUCommandBuffer command_buffer, const GPUBlitInfo &info)
Blits from a source texture region to a destination texture region.
Definition SDL3pp_gpu.h:7523
GPUFence * SubmitGPUCommandBufferAndAcquireFence(GPUCommandBuffer command_buffer)
Submits a command buffer so its commands can be processed on the GPU, and acquires a fence associated...
Definition SDL3pp_gpu.h:7967
SDL_GPUCubeMapFace GPUCubeMapFace
Specifies the face of a cube map.
Definition SDL3pp_gpu.h:4187
SDL_GPUFence GPUFence
An opaque handle representing a fence.
Definition SDL3pp_gpu.h:2011
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_4x4_FLOAT
GPU_TEXTUREFORMAT_ASTC_4x4_FLOAT.
Definition SDL3pp_gpu.h:2902
constexpr GPUStencilOp GPU_STENCILOP_INVERT
Bitwise-inverts the current value.
Definition SDL3pp_gpu.h:4520
PixelFormat GetPixelFormatFromGPUTextureFormat(GPUTextureFormat format)
Get the SDL pixel format corresponding to a GPU texture format.
Definition SDL3pp_gpu.h:8193
constexpr GPUFrontFace GPU_FRONTFACE_CLOCKWISE
A triangle with clockwise vertex winding will be considered front-facing.
Definition SDL3pp_gpu.h:4450
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_D32_FLOAT
GPU_TEXTUREFORMAT_D32_FLOAT.
Definition SDL3pp_gpu.h:2809
SDL_GPUTexture * GPUTextureRaw
Alias to raw representation for GPUTexture.
Definition SDL3pp_gpu.h:402
SDL_GPUShaderStage GPUShaderStage
Specifies which stage a shader program corresponds to.
Definition SDL3pp_gpu.h:4272
GPUSampler CreateSampler(const GPUSamplerCreateInfo &createinfo)
Creates a sampler object to be used when binding textures in a graphics workflow.
Definition SDL3pp_gpu.h:5585
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_FLOAT3
GPU_VERTEXELEMENTFORMAT_FLOAT3.
Definition SDL3pp_gpu.h:4322
constexpr GPUCompareOp GPU_COMPAREOP_GREATER_OR_EQUAL
The comparison evaluates reference >= test.
Definition SDL3pp_gpu.h:4483
SDL_GPUVertexAttribute GPUVertexAttribute
A structure specifying a vertex attribute.
Definition SDL3pp_gpu.h:4772
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_8x6_FLOAT
GPU_TEXTUREFORMAT_ASTC_8x6_FLOAT.
Definition SDL3pp_gpu.h:2920
void DrawIndexedPrimitives(Uint32 num_indices, Uint32 num_instances, Uint32 first_index, Sint32 vertex_offset, Uint32 first_instance)
Draws data using bound graphics state with an index buffer and instancing enabled.
Definition SDL3pp_gpu.h:6821
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_UBYTE2
GPU_VERTEXELEMENTFORMAT_UBYTE2.
Definition SDL3pp_gpu.h:4334
SDL_GPUTextureFormat GPUTextureFormat
Specifies the pixel format of a texture.
Definition SDL3pp_gpu.h:2627
void BindGPUVertexStorageTextures(GPURenderPass render_pass, Uint32 first_slot, SpanRef< const GPUTextureRaw > storage_textures)
Binds storage textures for use on the vertex shader.
Definition SDL3pp_gpu.h:6621
constexpr GPUPrimitiveType GPU_PRIMITIVETYPE_LINELIST
A series of separate lines.
Definition SDL3pp_gpu.h:4115
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_USHORT4_NORM
GPU_VERTEXELEMENTFORMAT_USHORT4_NORM.
Definition SDL3pp_gpu.h:4373
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R32_UINT
GPU_TEXTUREFORMAT_R32_UINT.
Definition SDL3pp_gpu.h:2749
void PushGPUDebugGroup(GPUCommandBuffer command_buffer, StringParam name)
Begins a debug group with an arbitrary name.
Definition SDL3pp_gpu.h:6065
GPUBuffer CreateBuffer(const GPUBufferCreateInfo &createinfo)
Creates a buffer object to be used in graphics or compute workflows.
Definition SDL3pp_gpu.h:5871
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_8x6_UNORM
GPU_TEXTUREFORMAT_ASTC_8x6_UNORM.
Definition SDL3pp_gpu.h:2836
SDL_GPUFillMode GPUFillMode
Specifies the fill mode of the graphics pipeline.
Definition SDL3pp_gpu.h:4406
void SetGPUViewport(GPURenderPass render_pass, const GPUViewport &viewport)
Sets the current viewport state on a command buffer.
Definition SDL3pp_gpu.h:6451
constexpr GPUBlendFactor GPU_BLENDFACTOR_ONE_MINUS_CONSTANT_COLOR
1 - blend constant
Definition SDL3pp_gpu.h:4610
PropertiesRef GetProperties()
Get the properties associated with a GPU device.
Definition SDL3pp_gpu.h:5391
void SetScissor(const RectRaw &scissor)
Sets the current scissor state on a command buffer.
Definition SDL3pp_gpu.h:6475
constexpr GPUCompareOp GPU_COMPAREOP_NOT_EQUAL
The comparison evaluates reference != test.
Definition SDL3pp_gpu.h:4480
SDL_GPUGraphicsPipelineTargetInfo GPUGraphicsPipelineTargetInfo
A structure specifying the descriptions of render targets used in a graphics pipeline.
Definition SDL3pp_gpu.h:4865
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_USHORT2
GPU_VERTEXELEMENTFORMAT_USHORT2.
Definition SDL3pp_gpu.h:4358
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R16G16B16A16_UNORM
GPU_TEXTUREFORMAT_R16G16B16A16_UNORM.
Definition SDL3pp_gpu.h:2650
SDL_GPUViewport GPUViewport
A structure specifying a viewport.
Definition SDL3pp_gpu.h:1128
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R16G16_UINT
GPU_TEXTUREFORMAT_R16G16_UINT.
Definition SDL3pp_gpu.h:2743
SDL_GPUColorTargetInfo GPUColorTargetInfo
A structure specifying the parameters of a color target used by a render pass.
Definition SDL3pp_gpu.h:1921
void CancelGPUCommandBuffer(GPUCommandBuffer command_buffer)
Cancels a command buffer.
Definition SDL3pp_gpu.h:7999
SDL_GPUIndexElementSize GPUIndexElementSize
Specifies the size of elements in an index buffer.
Definition SDL3pp_gpu.h:1147
SDL_GPUSamplerCreateInfo GPUSamplerCreateInfo
A structure specifying the parameters of a sampler.
Definition SDL3pp_gpu.h:771
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_10x8_UNORM
GPU_TEXTUREFORMAT_ASTC_10x8_UNORM.
Definition SDL3pp_gpu.h:2848
constexpr GPUPrimitiveType GPU_PRIMITIVETYPE_TRIANGLELIST
A series of separate triangles.
Definition SDL3pp_gpu.h:4109
bool QueryGPUFence(GPUDeviceRef device, GPUFence *fence)
Checks the status of a fence.
Definition SDL3pp_gpu.h:8065
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_A8_UNORM
GPU_TEXTUREFORMAT_A8_UNORM.
Definition SDL3pp_gpu.h:2632
void ReleaseGPUTransferBuffer(GPUDeviceRef device, GPUTransferBuffer transfer_buffer)
Frees the given transfer buffer as soon as it is safe to do so.
Definition SDL3pp_gpu.h:6169
void * MapGPUTransferBuffer(GPUDeviceRef device, GPUTransferBuffer transfer_buffer, bool cycle)
Maps a transfer buffer into application address space.
Definition SDL3pp_gpu.h:7231
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_INT4
GPU_VERTEXELEMENTFORMAT_INT4.
Definition SDL3pp_gpu.h:4301
SDL_GPUGraphicsPipelineCreateInfo GPUGraphicsPipelineCreateInfo
A structure specifying the parameters of a graphics pipeline state.
Definition SDL3pp_gpu.h:1057
GPUTexture WaitAndAcquireGPUSwapchainTexture(GPUCommandBuffer command_buffer, WindowRef window, Uint32 *swapchain_texture_width=nullptr, Uint32 *swapchain_texture_height=nullptr)
Blocks the thread until a swapchain texture is available to be acquired, and then acquires it.
Definition SDL3pp_gpu.h:7887
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_5x5_FLOAT
GPU_TEXTUREFORMAT_ASTC_5x5_FLOAT.
Definition SDL3pp_gpu.h:2908
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R32_FLOAT
GPU_TEXTUREFORMAT_R32_FLOAT.
Definition SDL3pp_gpu.h:2719
constexpr GPUStoreOp GPU_STOREOP_RESOLVE
The multisample contents generated during the render pass will be resolved to a non-multisample textu...
Definition SDL3pp_gpu.h:4170
GPUGraphicsPipeline CreateGraphicsPipeline(const GPUGraphicsPipelineCreateInfo &createinfo)
Creates a pipeline object to be used in a graphics workflow.
Definition SDL3pp_gpu.h:5532
constexpr GPUSamplerAddressMode GPU_SAMPLERADDRESSMODE_CLAMP_TO_EDGE
Specifies that the coordinates will clamp to the 0-1 range.
Definition SDL3pp_gpu.h:4687
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R16G16_UNORM
GPU_TEXTUREFORMAT_R16G16_UNORM.
Definition SDL3pp_gpu.h:2647
bool SetGPUAllowedFramesInFlight(GPUDeviceRef device, Uint32 allowed_frames_in_flight)
Configures the maximum allowed number of frames in flight.
Definition SDL3pp_gpu.h:7714
void ReleaseWindow(WindowRef window)
Unclaims a window, destroying its swapchain structure.
Definition SDL3pp_gpu.h:7643
void DrawGPUPrimitives(GPURenderPass render_pass, Uint32 num_vertices, Uint32 num_instances, Uint32 first_vertex, Uint32 first_instance)
Draws data using bound graphics state.
Definition SDL3pp_gpu.h:6855
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_8x6_UNORM_SRGB
GPU_TEXTUREFORMAT_ASTC_8x6_UNORM_SRGB.
Definition SDL3pp_gpu.h:2878
void BindSamplers(Uint32 first_slot, std::span< const GPUTextureSamplerBinding > texture_sampler_bindings)
Binds texture-sampler pairs for use on the compute shader.
Definition SDL3pp_gpu.h:7053
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_6x5_FLOAT
GPU_TEXTUREFORMAT_ASTC_6x5_FLOAT.
Definition SDL3pp_gpu.h:2911
SDL_GPUTextureLocation GPUTextureLocation
A structure specifying a location in a texture.
Definition SDL3pp_gpu.h:1671
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_BC1_RGBA_UNORM
GPU_TEXTUREFORMAT_BC1_RGBA_UNORM.
Definition SDL3pp_gpu.h:2668
void BlitTexture(const GPUBlitInfo &info)
Blits from a source texture region to a destination texture region.
Definition SDL3pp_gpu.h:7529
void DownloadFromTexture(const GPUTextureRegion &source, const GPUTextureTransferInfo &destination)
Copies data from a texture to a transfer buffer on the GPU timeline.
Definition SDL3pp_gpu.h:7445
void BindFragmentSamplers(Uint32 first_slot, std::span< const GPUTextureSamplerBinding > texture_sampler_bindings)
Binds texture-sampler pairs for use on the fragment shader.
Definition SDL3pp_gpu.h:6703
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R32G32_UINT
GPU_TEXTUREFORMAT_R32G32_UINT.
Definition SDL3pp_gpu.h:2752
void BindGPUIndexBuffer(GPURenderPass render_pass, const GPUBufferBinding &binding, GPUIndexElementSize index_element_size)
Binds an index buffer on a command buffer for use with subsequent draw calls.
Definition SDL3pp_gpu.h:6555
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_BC3_RGBA_UNORM
GPU_TEXTUREFORMAT_BC3_RGBA_UNORM.
Definition SDL3pp_gpu.h:2674
GPUShader CreateShader(const GPUShaderCreateInfo &createinfo)
Creates a shader to be used when creating a graphics pipeline.
Definition SDL3pp_gpu.h:5686
Uint32 GPUTextureFormatTexelBlockSize(GPUTextureFormat format)
Obtains the texel block size for a texture format.
Definition SDL3pp_gpu.h:8107
constexpr GPUTextureUsageFlags GPU_TEXTUREUSAGE_GRAPHICS_STORAGE_READ
Texture supports storage reads in graphics stages.
Definition SDL3pp_gpu.h:3000
void BindStorageBuffers(Uint32 first_slot, SpanRef< const GPUBufferRaw > storage_buffers)
Binds storage buffers as readonly for use on the compute pipeline.
Definition SDL3pp_gpu.h:7125
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_SHORT2
GPU_VERTEXELEMENTFORMAT_SHORT2.
Definition SDL3pp_gpu.h:4352
bool WindowSupportsPresentMode(WindowRef window, GPUPresentMode present_mode)
Determines whether a presentation mode is supported by the window.
Definition SDL3pp_gpu.h:7586
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R8_SNORM
GPU_TEXTUREFORMAT_R8_SNORM.
Definition SDL3pp_gpu.h:2692
SDL_GPUBlendOp GPUBlendOp
Specifies the operator to be used when pixels in a render target are blended with existing pixels in ...
Definition SDL3pp_gpu.h:4542
constexpr GPUTextureUsageFlags GPU_TEXTUREUSAGE_SAMPLER
Texture supports sampling.
Definition SDL3pp_gpu.h:2990
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_10x8_UNORM_SRGB
GPU_TEXTUREFORMAT_ASTC_10x8_UNORM_SRGB.
Definition SDL3pp_gpu.h:2890
void Cancel()
Cancels a command buffer.
Definition SDL3pp_gpu.h:8004
SDL_GPUStorageTextureReadWriteBinding GPUStorageTextureReadWriteBinding
A structure specifying parameters related to binding textures in a compute pass.
Definition SDL3pp_gpu.h:1980
GPUTexture AcquireGPUSwapchainTexture(GPUCommandBuffer command_buffer, WindowRef window, Uint32 *swapchain_texture_width=nullptr, Uint32 *swapchain_texture_height=nullptr)
Acquire a texture to use in presentation.
Definition SDL3pp_gpu.h:7795
SDL_GPUColorTargetDescription GPUColorTargetDescription
A structure specifying the parameters of color targets used in a graphics pipeline.
Definition SDL3pp_gpu.h:4853
constexpr GPUColorComponentFlags GPU_COLORCOMPONENT_A
the alpha component
Definition SDL3pp_gpu.h:4635
constexpr GPUBufferUsageFlags GPU_BUFFERUSAGE_COMPUTE_STORAGE_WRITE
Buffer supports storage writes in the compute stage.
Definition SDL3pp_gpu.h:4244
constexpr GPUSamplerMipmapMode GPU_SAMPLERMIPMAPMODE_LINEAR
Linear filtering.
Definition SDL3pp_gpu.h:4665
bool GPUTextureSupportsSampleCount(GPUDeviceRef device, GPUTextureFormat format, GPUSampleCount sample_count)
Determines if a sample count for a texture format is supported.
Definition SDL3pp_gpu.h:8148
constexpr GPUShaderFormat GPU_SHADERFORMAT_DXBC
DXBC SM5_1 shaders for D3D12.
Definition SDL3pp_gpu.h:2459
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_10x6_FLOAT
GPU_TEXTUREFORMAT_ASTC_10x6_FLOAT.
Definition SDL3pp_gpu.h:2929
void SetStencilReference(Uint8 reference)
Sets the current stencil reference value on a command buffer.
Definition SDL3pp_gpu.h:6515
bool WindowSupportsGPUSwapchainComposition(GPUDeviceRef device, WindowRef window, GPUSwapchainComposition swapchain_composition)
Determines whether a swapchain composition is supported by the window.
Definition SDL3pp_gpu.h:7548
void ReleaseFence(GPUFence *fence)
Releases a fence obtained from SubmitGPUCommandBufferAndAcquireFence.
Definition SDL3pp_gpu.h:8092
GPUShaderFormat GetGPUShaderFormats(GPUDeviceRef device)
Returns the supported shader formats for this GPU context.
Definition SDL3pp_gpu.h:5273
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R11G11B10_UFLOAT
GPU_TEXTUREFORMAT_R11G11B10_UFLOAT.
Definition SDL3pp_gpu.h:2728
GPUBuffer CreateGPUBuffer(GPUDeviceRef device, const GPUBufferCreateInfo &createinfo)
Creates a buffer object to be used in graphics or compute workflows.
Definition SDL3pp_gpu.h:5865
constexpr GPUTextureUsageFlags GPU_TEXTUREUSAGE_COLOR_TARGET
Texture is a color render target.
Definition SDL3pp_gpu.h:2993
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_INT
GPU_VERTEXELEMENTFORMAT_INT.
Definition SDL3pp_gpu.h:4292
GPUTextureFormat GetGPUTextureFormatFromPixelFormat(PixelFormat format)
Get the GPU texture format corresponding to an SDL pixel format.
Definition SDL3pp_gpu.h:8207
GPUTexture AcquireSwapchainTexture(WindowRef window, Uint32 *swapchain_texture_width=nullptr, Uint32 *swapchain_texture_height=nullptr)
Acquire a texture to use in presentation.
Definition SDL3pp_gpu.h:7810
constexpr GPUStencilOp GPU_STENCILOP_REPLACE
Sets the value to reference.
Definition SDL3pp_gpu.h:4509
SDL_GPUDepthStencilTargetInfo GPUDepthStencilTargetInfo
A structure specifying the parameters of a depth-stencil target used by a render pass.
Definition SDL3pp_gpu.h:1970
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R16_INT
GPU_TEXTUREFORMAT_R16_INT.
Definition SDL3pp_gpu.h:2767
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_D24_UNORM_S8_UINT
GPU_TEXTUREFORMAT_D24_UNORM_S8_UINT.
Definition SDL3pp_gpu.h:2812
void BindFragmentStorageTextures(Uint32 first_slot, SpanRef< const GPUTextureRaw > storage_textures)
Binds storage textures for use on the fragment shader.
Definition SDL3pp_gpu.h:6739
SDL_GPUTextureRegion GPUTextureRegion
A structure specifying a region of a texture.
Definition SDL3pp_gpu.h:1695
void UploadToBuffer(const GPUTransferBufferLocation &source, const GPUBufferRegion &destination, bool cycle)
Uploads data from a transfer buffer to a buffer.
Definition SDL3pp_gpu.h:7342
constexpr GPUBlendFactor GPU_BLENDFACTOR_DST_COLOR
destination color
Definition SDL3pp_gpu.h:4589
SDL_GPUTextureTransferInfo GPUTextureTransferInfo
A structure specifying parameters related to transferring data to or from a texture.
Definition SDL3pp_gpu.h:1718
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R16G16B16A16_FLOAT
GPU_TEXTUREFORMAT_R16G16B16A16_FLOAT.
Definition SDL3pp_gpu.h:2716
void BindVertexSamplers(Uint32 first_slot, std::span< const GPUTextureSamplerBinding > texture_sampler_bindings)
Binds texture-sampler pairs for use on the vertex shader.
Definition SDL3pp_gpu.h:6596
void DrawPrimitivesIndirect(GPUBuffer buffer, Uint32 offset, Uint32 draw_count)
Draws data using bound graphics state and with draw parameters set from a buffer.
Definition SDL3pp_gpu.h:6898
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_FLOAT4
GPU_VERTEXELEMENTFORMAT_FLOAT4.
Definition SDL3pp_gpu.h:4325
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_10x10_FLOAT
GPU_TEXTUREFORMAT_ASTC_10x10_FLOAT.
Definition SDL3pp_gpu.h:2935
void GDKSuspendGPU()
Call this to suspend GPU operation on Xbox when you receive the EVENT_DID_ENTER_BACKGROUND event.
Definition SDL3pp_gpu.h:8231
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_6x5_UNORM_SRGB
GPU_TEXTUREFORMAT_ASTC_6x5_UNORM_SRGB.
Definition SDL3pp_gpu.h:2869
SDL_GPUGraphicsPipeline * GPUGraphicsPipelineRaw
Alias to raw representation for GPUGraphicsPipeline.
Definition SDL3pp_gpu.h:426
GPUCopyPass BeginCopyPass()
Begins a copy pass on a command buffer.
Definition SDL3pp_gpu.h:7283
SDL_GPUBufferRegion GPUBufferRegion
A structure specifying a region of a buffer.
Definition SDL3pp_gpu.h:1660
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_10x8_FLOAT
GPU_TEXTUREFORMAT_ASTC_10x8_FLOAT.
Definition SDL3pp_gpu.h:2932
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R32G32_INT
GPU_TEXTUREFORMAT_R32G32_INT.
Definition SDL3pp_gpu.h:2779
void ReleaseGPUTexture(GPUDeviceRef device, GPUTexture texture)
Frees the given texture as soon as it is safe to do so.
Definition SDL3pp_gpu.h:6109
constexpr GPUBlendOp GPU_BLENDOP_INVALID
GPU_BLENDOP_INVALID.
Definition SDL3pp_gpu.h:4544
GPUTextureFormat GetSwapchainTextureFormat(WindowRef window)
Obtains the texture format of the swapchain for the given window.
Definition SDL3pp_gpu.h:7743
constexpr GPUSwapchainComposition GPU_SWAPCHAINCOMPOSITION_HDR_EXTENDED_LINEAR
GPU_SWAPCHAINCOMPOSITION_HDR_EXTENDED_LINEAR.
Definition SDL3pp_gpu.h:2504
GPURenderPass BeginGPURenderPass(GPUCommandBuffer command_buffer, std::span< const GPUColorTargetInfo > color_target_infos, OptionalRef< const GPUDepthStencilTargetInfo > depth_stencil_target_info)
Begins a render pass on a command buffer.
Definition SDL3pp_gpu.h:6403
void BindVertexStorageTextures(Uint32 first_slot, SpanRef< const GPUTextureRaw > storage_textures)
Binds storage textures for use on the vertex shader.
Definition SDL3pp_gpu.h:6632
void DrawGPUIndexedPrimitives(GPURenderPass render_pass, Uint32 num_indices, Uint32 num_instances, Uint32 first_index, Sint32 vertex_offset, Uint32 first_instance)
Draws data using bound graphics state with an index buffer and instancing enabled.
Definition SDL3pp_gpu.h:6806
SDL_GPUTransferBuffer * GPUTransferBufferRaw
Alias to raw representation for GPUTransferBuffer.
Definition SDL3pp_gpu.h:396
constexpr GPUPresentMode GPU_PRESENTMODE_IMMEDIATE
GPU_PRESENTMODE_IMMEDIATE.
Definition SDL3pp_gpu.h:2540
constexpr GPUBufferUsageFlags GPU_BUFFERUSAGE_VERTEX
Buffer is a vertex buffer.
Definition SDL3pp_gpu.h:4226
GPUCommandBuffer AcquireGPUCommandBuffer(GPUDeviceRef device)
Acquire a command buffer.
Definition SDL3pp_gpu.h:6269
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R8G8B8A8_UINT
GPU_TEXTUREFORMAT_R8G8B8A8_UINT.
Definition SDL3pp_gpu.h:2737
bool GPUTextureSupportsFormat(GPUDeviceRef device, GPUTextureFormat format, GPUTextureType type, GPUTextureUsageFlags usage)
Determines whether a texture format is supported for a given type and usage.
Definition SDL3pp_gpu.h:8123
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_BC4_R_UNORM
GPU_TEXTUREFORMAT_BC4_R_UNORM.
Definition SDL3pp_gpu.h:2677
void BindGPUVertexSamplers(GPURenderPass render_pass, Uint32 first_slot, std::span< const GPUTextureSamplerBinding > texture_sampler_bindings)
Binds texture-sampler pairs for use on the vertex shader.
Definition SDL3pp_gpu.h:6585
void WaitForGPUSwapchain(GPUDeviceRef device, WindowRef window)
Blocks the thread until a swapchain texture is available to be acquired.
Definition SDL3pp_gpu.h:7837
constexpr GPUBufferUsageFlags GPU_BUFFERUSAGE_GRAPHICS_STORAGE_READ
Buffer supports storage reads in graphics stages.
Definition SDL3pp_gpu.h:4235
constexpr GPUCubeMapFace GPU_CUBEMAPFACE_POSITIVEZ
GPU_CUBEMAPFACE_POSITIVEZ.
Definition SDL3pp_gpu.h:4201
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_4x4_UNORM_SRGB
GPU_TEXTUREFORMAT_ASTC_4x4_UNORM_SRGB.
Definition SDL3pp_gpu.h:2860
Uint32 GPUBufferUsageFlags
Specifies how a buffer is intended to be used by the client.
Definition SDL3pp_gpu.h:4224
void DispatchIndirect(GPUBuffer buffer, Uint32 offset)
Dispatches compute work with parameters set from a buffer.
Definition SDL3pp_gpu.h:7194
SDL_GPUStorageBufferReadWriteBinding GPUStorageBufferReadWriteBinding
A structure specifying parameters related to binding buffers in a compute pass.
Definition SDL3pp_gpu.h:1990
constexpr GPUCompareOp GPU_COMPAREOP_EQUAL
The comparison evaluates reference == test.
Definition SDL3pp_gpu.h:4470
SDL_GPUIndexedIndirectDrawCommand GPUIndexedIndirectDrawCommand
A structure specifying the parameters of an indexed indirect draw command.
Definition SDL3pp_gpu.h:4729
void SetTextureName(GPUTexture texture, StringParam text)
Sets an arbitrary string constant to label a texture.
Definition SDL3pp_gpu.h:6008
void ReleaseGPUGraphicsPipeline(GPUDeviceRef device, GPUGraphicsPipeline graphics_pipeline)
Frees the given graphics pipeline as soon as it is safe to do so.
Definition SDL3pp_gpu.h:6233
void SetViewport(const GPUViewport &viewport)
Sets the current viewport state on a command buffer.
Definition SDL3pp_gpu.h:6457
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_SHORT2_NORM
GPU_VERTEXELEMENTFORMAT_SHORT2_NORM.
Definition SDL3pp_gpu.h:4364
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_BYTE4
GPU_VERTEXELEMENTFORMAT_BYTE4.
Definition SDL3pp_gpu.h:4331
constexpr GPUSwapchainComposition GPU_SWAPCHAINCOMPOSITION_SDR_LINEAR
GPU_SWAPCHAINCOMPOSITION_SDR_LINEAR.
Definition SDL3pp_gpu.h:2501
SDL_GPUComputePipeline * GPUComputePipelineRaw
Alias to raw representation for GPUComputePipeline.
Definition SDL3pp_gpu.h:420
constexpr GPUBlendFactor GPU_BLENDFACTOR_ONE_MINUS_SRC_COLOR
1 - source color
Definition SDL3pp_gpu.h:4586
bool TextureSupportsFormat(GPUTextureFormat format, GPUTextureType type, GPUTextureUsageFlags usage)
Determines whether a texture format is supported for a given type and usage.
Definition SDL3pp_gpu.h:8131
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_B5G5R5A1_UNORM
GPU_TEXTUREFORMAT_B5G5R5A1_UNORM.
Definition SDL3pp_gpu.h:2659
void Submit()
Submits a command buffer so its commands can be processed on the GPU.
Definition SDL3pp_gpu.h:7938
void ReleaseWindowFromGPUDevice(GPUDeviceRef device, WindowRef window)
Unclaims a window, destroying its swapchain structure.
Definition SDL3pp_gpu.h:7638
constexpr GPUFilter GPU_FILTER_LINEAR
Linear filtering.
Definition SDL3pp_gpu.h:4650
void BindGPUComputePipeline(GPUComputePass compute_pass, GPUComputePipeline compute_pipeline)
Binds a compute pipeline on a command buffer for use in compute dispatch.
Definition SDL3pp_gpu.h:7015
void ReleaseGPUSampler(GPUDeviceRef device, GPUSampler sampler)
Frees the given sampler as soon as it is safe to do so.
Definition SDL3pp_gpu.h:6129
void BindFragmentStorageBuffers(Uint32 first_slot, SpanRef< const GPUBufferRaw > storage_buffers)
Binds storage buffers for use on the fragment shader.
Definition SDL3pp_gpu.h:6775
constexpr GPUBlendFactor GPU_BLENDFACTOR_CONSTANT_COLOR
blend constant
Definition SDL3pp_gpu.h:4607
constexpr GPUVertexInputRate GPU_VERTEXINPUTRATE_VERTEX
Attribute addressing is a function of the vertex index.
Definition SDL3pp_gpu.h:4392
SDL_GPULoadOp GPULoadOp
Specifies how the contents of a texture attached to a render pass are treated at the beginning of the...
Definition SDL3pp_gpu.h:4132
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R8G8B8A8_UNORM
GPU_TEXTUREFORMAT_R8G8B8A8_UNORM.
Definition SDL3pp_gpu.h:2641
SDL_GPUCommandBuffer * GPUCommandBufferRaw
Alias to raw representation for GPUCommandBuffer.
Definition SDL3pp_gpu.h:432
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R8G8B8A8_INT
GPU_TEXTUREFORMAT_R8G8B8A8_INT.
Definition SDL3pp_gpu.h:2764
void CopyTextureToTexture(const GPUTextureLocation &source, const GPUTextureLocation &destination, Uint32 w, Uint32 h, Uint32 d, bool cycle)
Performs a texture-to-texture copy.
Definition SDL3pp_gpu.h:7380
constexpr GPUTransferBufferUsage GPU_TRANSFERBUFFERUSAGE_UPLOAD
GPU_TRANSFERBUFFERUSAGE_UPLOAD.
Definition SDL3pp_gpu.h:4259
SDL_GPUShaderCreateInfo GPUShaderCreateInfo
A structure specifying code and metadata for creating a shader object.
Definition SDL3pp_gpu.h:838
GPUSampler CreateGPUSampler(GPUDeviceRef device, const GPUSamplerCreateInfo &createinfo)
Creates a sampler object to be used when binding textures in a graphics workflow.
Definition SDL3pp_gpu.h:5579
SDL_GPUPrimitiveType GPUPrimitiveType
Specifies the primitive topology of a graphics pipeline.
Definition SDL3pp_gpu.h:4107
SDL_GPUBufferCreateInfo GPUBufferCreateInfo
A structure specifying the parameters of a buffer.
Definition SDL3pp_gpu.h:466
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R32G32B32A32_FLOAT
GPU_TEXTUREFORMAT_R32G32B32A32_FLOAT.
Definition SDL3pp_gpu.h:2725
constexpr GPUStoreOp GPU_STOREOP_RESOLVE_AND_STORE
The multisample contents generated during the render pass will be resolved to a non-multisample textu...
Definition SDL3pp_gpu.h:4177
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R16_SNORM
GPU_TEXTUREFORMAT_R16_SNORM.
Definition SDL3pp_gpu.h:2701
SDL_GPUStencilOp GPUStencilOp
Specifies what happens to a stored stencil value if stencil tests fail or pass.
Definition SDL3pp_gpu.h:4498
constexpr GPUPresentMode GPU_PRESENTMODE_VSYNC
GPU_PRESENTMODE_VSYNC.
Definition SDL3pp_gpu.h:2537
constexpr GPUSamplerAddressMode GPU_SAMPLERADDRESSMODE_REPEAT
Specifies that the coordinates will wrap around.
Definition SDL3pp_gpu.h:4678
Uint32 GPUTextureUsageFlags
Specifies how a texture is intended to be used by the client.
Definition SDL3pp_gpu.h:2988
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_HALF4
GPU_VERTEXELEMENTFORMAT_HALF4.
Definition SDL3pp_gpu.h:4379
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_UINT3
GPU_VERTEXELEMENTFORMAT_UINT3.
Definition SDL3pp_gpu.h:4310
constexpr GPUCubeMapFace GPU_CUBEMAPFACE_NEGATIVEX
GPU_CUBEMAPFACE_NEGATIVEX.
Definition SDL3pp_gpu.h:4192
void End()
Ends the current compute pass.
Definition SDL3pp_gpu.h:7214
SDL_GPUVertexInputState GPUVertexInputState
A structure specifying the parameters of a graphics pipeline vertex input state.
Definition SDL3pp_gpu.h:4784
constexpr GPUShaderStage GPU_SHADERSTAGE_VERTEX
GPU_SHADERSTAGE_VERTEX.
Definition SDL3pp_gpu.h:4274
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_D24_UNORM
GPU_TEXTUREFORMAT_D24_UNORM.
Definition SDL3pp_gpu.h:2806
void SetGPUStencilReference(GPURenderPass render_pass, Uint8 reference)
Sets the current stencil reference value on a command buffer.
Definition SDL3pp_gpu.h:6510
void BindGPUFragmentStorageBuffers(GPURenderPass render_pass, Uint32 first_slot, SpanRef< const GPUBufferRaw > storage_buffers)
Binds storage buffers for use on the fragment shader.
Definition SDL3pp_gpu.h:6764
constexpr GPUCompareOp GPU_COMPAREOP_LESS
The comparison evaluates reference < test.
Definition SDL3pp_gpu.h:4467
constexpr GPUTextureUsageFlags GPU_TEXTUREUSAGE_DEPTH_STENCIL_TARGET
Texture is a depth stencil target.
Definition SDL3pp_gpu.h:2996
void DispatchGPUCompute(GPUComputePass compute_pass, Uint32 groupcount_x, Uint32 groupcount_y, Uint32 groupcount_z)
Dispatches compute work.
Definition SDL3pp_gpu.h:7153
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_INT2
GPU_VERTEXELEMENTFORMAT_INT2.
Definition SDL3pp_gpu.h:4295
GPUComputePipeline CreateGPUComputePipeline(GPUDeviceRef device, const GPUComputePipelineCreateInfo &createinfo)
Creates a pipeline object to be used in a compute workflow.
Definition SDL3pp_gpu.h:5471
constexpr GPUPrimitiveType GPU_PRIMITIVETYPE_POINTLIST
A series of separate points.
Definition SDL3pp_gpu.h:4121
constexpr GPUBlendFactor GPU_BLENDFACTOR_ONE_MINUS_DST_COLOR
1 - destination color
Definition SDL3pp_gpu.h:4592
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_BC7_RGBA_UNORM
GPU_TEXTUREFORMAT_BC7_RGBA_UNORM.
Definition SDL3pp_gpu.h:2683
GPUComputePass BeginGPUComputePass(GPUCommandBuffer command_buffer, std::span< const GPUStorageTextureReadWriteBinding > storage_texture_bindings, std::span< const GPUStorageBufferReadWriteBinding > storage_buffer_bindings)
Begins a compute pass on a command buffer.
Definition SDL3pp_gpu.h:6987
bool SetGPUSwapchainParameters(GPUDeviceRef device, WindowRef window, GPUSwapchainComposition swapchain_composition, GPUPresentMode present_mode)
Changes the swapchain parameters for the given claimed window.
Definition SDL3pp_gpu.h:7670
void BindGPUFragmentSamplers(GPURenderPass render_pass, Uint32 first_slot, std::span< const GPUTextureSamplerBinding > texture_sampler_bindings)
Binds texture-sampler pairs for use on the fragment shader.
Definition SDL3pp_gpu.h:6692
GPUShaderFormat GetShaderFormats()
Returns the supported shader formats for this GPU context.
Definition SDL3pp_gpu.h:5278
SDL_GPUStoreOp GPUStoreOp
Specifies how the contents of a texture attached to a render pass are treated at the end of the rende...
Definition SDL3pp_gpu.h:4154
constexpr GPUVertexInputRate GPU_VERTEXINPUTRATE_INSTANCE
Attribute addressing is a function of the instance index.
Definition SDL3pp_gpu.h:4396
void GDKSuspendGPU(GPUDeviceRef device)
Call this to suspend GPU operation on Xbox when you receive the EVENT_DID_ENTER_BACKGROUND event.
Definition SDL3pp_gpu.h:8229
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_BC6H_RGB_FLOAT
GPU_TEXTUREFORMAT_BC6H_RGB_FLOAT.
Definition SDL3pp_gpu.h:2686
constexpr GPUShaderStage GPU_SHADERSTAGE_FRAGMENT
GPU_SHADERSTAGE_FRAGMENT.
Definition SDL3pp_gpu.h:4277
constexpr GPUCompareOp GPU_COMPAREOP_INVALID
GPU_COMPAREOP_INVALID.
Definition SDL3pp_gpu.h:4461
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_BC5_RG_UNORM
GPU_TEXTUREFORMAT_BC5_RG_UNORM.
Definition SDL3pp_gpu.h:2680
void BindIndexBuffer(const GPUBufferBinding &binding, GPUIndexElementSize index_element_size)
Binds an index buffer on a command buffer for use with subsequent draw calls.
Definition SDL3pp_gpu.h:6562
void BindGPUVertexStorageBuffers(GPURenderPass render_pass, Uint32 first_slot, SpanRef< const GPUBufferRaw > storage_buffers)
Binds storage buffers for use on the vertex shader.
Definition SDL3pp_gpu.h:6657
constexpr GPUCubeMapFace GPU_CUBEMAPFACE_NEGATIVEZ
GPU_CUBEMAPFACE_NEGATIVEZ.
Definition SDL3pp_gpu.h:4204
void UnmapGPUTransferBuffer(GPUDeviceRef device, GPUTransferBuffer transfer_buffer)
Unmaps a previously mapped transfer buffer.
Definition SDL3pp_gpu.h:7252
constexpr GPUPrimitiveType GPU_PRIMITIVETYPE_LINESTRIP
A series of connected lines.
Definition SDL3pp_gpu.h:4118
constexpr GPUStencilOp GPU_STENCILOP_DECREMENT_AND_WRAP
Decrements the current value and wraps to the maximum value.
Definition SDL3pp_gpu.h:4528
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R8_UINT
GPU_TEXTUREFORMAT_R8_UINT.
Definition SDL3pp_gpu.h:2731
constexpr GPUSampleCount GPU_SAMPLECOUNT_4
MSAA 4x.
Definition SDL3pp_gpu.h:3038
constexpr GPUTransferBufferUsage GPU_TRANSFERBUFFERUSAGE_DOWNLOAD
GPU_TRANSFERBUFFERUSAGE_DOWNLOAD.
Definition SDL3pp_gpu.h:4262
constexpr GPUStencilOp GPU_STENCILOP_INVALID
GPU_STENCILOP_INVALID.
Definition SDL3pp_gpu.h:4500
constexpr GPUTextureType GPU_TEXTURETYPE_CUBE_ARRAY
The texture is a cube array image.
Definition SDL3pp_gpu.h:2965
void GDKResumeGPU()
Call this to resume GPU operation on Xbox when you receive the EVENT_WILL_ENTER_FOREGROUND event.
Definition SDL3pp_gpu.h:8248
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R32_INT
GPU_TEXTUREFORMAT_R32_INT.
Definition SDL3pp_gpu.h:2776
bool WindowSupportsGPUPresentMode(GPUDeviceRef device, WindowRef window, GPUPresentMode present_mode)
Determines whether a presentation mode is supported by the window.
Definition SDL3pp_gpu.h:7579
void UploadToGPUTexture(GPUCopyPass copy_pass, const GPUTextureTransferInfo &source, const GPUTextureRegion &destination, bool cycle)
Uploads data from a transfer buffer to a texture.
Definition SDL3pp_gpu.h:7305
void DownloadFromGPUBuffer(GPUCopyPass copy_pass, const GPUBufferRegion &source, const GPUTransferBufferLocation &destination)
Copies data from a buffer to a transfer buffer on the GPU timeline.
Definition SDL3pp_gpu.h:7464
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_5x4_FLOAT
GPU_TEXTUREFORMAT_ASTC_5x4_FLOAT.
Definition SDL3pp_gpu.h:2905
void WaitForSwapchain(WindowRef window)
Blocks the thread until a swapchain texture is available to be acquired.
Definition SDL3pp_gpu.h:7842
SDL_GPUDepthStencilState GPUDepthStencilState
A structure specifying the parameters of the graphics pipeline depth stencil state.
Definition SDL3pp_gpu.h:4843
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_BC1_RGBA_UNORM_SRGB
GPU_TEXTUREFORMAT_BC1_RGBA_UNORM_SRGB.
Definition SDL3pp_gpu.h:2791
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_12x10_FLOAT
GPU_TEXTUREFORMAT_ASTC_12x10_FLOAT.
Definition SDL3pp_gpu.h:2938
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_B8G8R8A8_UNORM_SRGB
GPU_TEXTUREFORMAT_B8G8R8A8_UNORM_SRGB.
Definition SDL3pp_gpu.h:2788
constexpr GPUColorComponentFlags GPU_COLORCOMPONENT_B
the blue component
Definition SDL3pp_gpu.h:4632
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_8x8_UNORM_SRGB
GPU_TEXTUREFORMAT_ASTC_8x8_UNORM_SRGB.
Definition SDL3pp_gpu.h:2881
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R16G16B16A16_SNORM
GPU_TEXTUREFORMAT_R16G16B16A16_SNORM.
Definition SDL3pp_gpu.h:2707
constexpr GPUSampleCount GPU_SAMPLECOUNT_8
MSAA 8x.
Definition SDL3pp_gpu.h:3040
constexpr GPUTextureType GPU_TEXTURETYPE_3D
The texture is a 3-dimensional image.
Definition SDL3pp_gpu.h:2959
SDL_GPURenderPass * GPURenderPassRaw
Alias to raw representation for GPURenderPass.
Definition SDL3pp_gpu.h:438
constexpr GPUBufferUsageFlags GPU_BUFFERUSAGE_INDEX
Buffer is an index buffer.
Definition SDL3pp_gpu.h:4229
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_BC6H_RGB_UFLOAT
GPU_TEXTUREFORMAT_BC6H_RGB_UFLOAT.
Definition SDL3pp_gpu.h:2689
SDL_GPUVertexBufferDescription GPUVertexBufferDescription
A structure specifying the parameters of vertex buffers used in a graphics pipeline.
Definition SDL3pp_gpu.h:4758
constexpr GPUIndexElementSize GPU_INDEXELEMENTSIZE_16BIT
The index elements are 16-bit.
Definition SDL3pp_gpu.h:1149
SDL_GPUFrontFace GPUFrontFace
Specifies the vertex winding that will cause a triangle to be determined to be front-facing.
Definition SDL3pp_gpu.h:4440
constexpr GPUStencilOp GPU_STENCILOP_DECREMENT_AND_CLAMP
Decrements the current value and clamps to 0.
Definition SDL3pp_gpu.h:4516
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_UINT4
GPU_VERTEXELEMENTFORMAT_UINT4.
Definition SDL3pp_gpu.h:4313
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R16_UINT
GPU_TEXTUREFORMAT_R16_UINT.
Definition SDL3pp_gpu.h:2740
void ClaimWindow(WindowRef window)
Claims a window, creating a swapchain structure for it.
Definition SDL3pp_gpu.h:7623
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R16G16_FLOAT
GPU_TEXTUREFORMAT_R16G16_FLOAT.
Definition SDL3pp_gpu.h:2713
void BindVertexBuffers(Uint32 first_slot, std::span< const GPUBufferBinding > bindings)
Binds vertex buffers on a command buffer for use with subsequent draw calls.
Definition SDL3pp_gpu.h:6538
constexpr GPUSampleCount GPU_SAMPLECOUNT_2
MSAA 2x.
Definition SDL3pp_gpu.h:3036
constexpr GPUTextureUsageFlags GPU_TEXTUREUSAGE_COMPUTE_STORAGE_WRITE
Texture supports storage writes in the compute stage.
Definition SDL3pp_gpu.h:3009
void End()
Ends the given render pass.
Definition SDL3pp_gpu.h:6952
SDL_GPUBufferBinding GPUBufferBinding
A structure specifying parameters in a buffer binding call.
Definition SDL3pp_gpu.h:1138
void BindVertexStorageBuffers(Uint32 first_slot, SpanRef< const GPUBufferRaw > storage_buffers)
Binds storage buffers for use on the vertex shader.
Definition SDL3pp_gpu.h:6668
void WaitForGPUIdle(GPUDeviceRef device)
Blocks the thread until the GPU is completely idle.
Definition SDL3pp_gpu.h:8019
GPUComputePass BeginComputePass(std::span< const GPUStorageTextureReadWriteBinding > storage_texture_bindings, std::span< const GPUStorageBufferReadWriteBinding > storage_buffer_bindings)
Begins a compute pass on a command buffer.
Definition SDL3pp_gpu.h:6999
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_8x5_UNORM
GPU_TEXTUREFORMAT_ASTC_8x5_UNORM.
Definition SDL3pp_gpu.h:2833
SDL_GPURasterizerState GPURasterizerState
A structure specifying the parameters of the graphics pipeline rasterizer state.
Definition SDL3pp_gpu.h:4823
GPUTransferBuffer CreateGPUTransferBuffer(GPUDeviceRef device, const GPUTransferBufferCreateInfo &createinfo)
Creates a transfer buffer to be used when uploading to or downloading from graphics resources.
Definition SDL3pp_gpu.h:5922
constexpr GPUCullMode GPU_CULLMODE_FRONT
Front-facing triangles are culled.
Definition SDL3pp_gpu.h:4426
constexpr GPUCubeMapFace GPU_CUBEMAPFACE_POSITIVEY
GPU_CUBEMAPFACE_POSITIVEY.
Definition SDL3pp_gpu.h:4195
void WaitForFences(bool wait_all, std::span< GPUFence *const > fences)
Blocks the thread until the given fences are signaled.
Definition SDL3pp_gpu.h:8048
constexpr GPUCompareOp GPU_COMPAREOP_GREATER
The comparison evaluates reference > test.
Definition SDL3pp_gpu.h:4477
SDL_GPUComputePipelineCreateInfo GPUComputePipelineCreateInfo
A structure specifying the parameters of a compute pipeline state.
Definition SDL3pp_gpu.h:955
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R16_FLOAT
GPU_TEXTUREFORMAT_R16_FLOAT.
Definition SDL3pp_gpu.h:2710
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_12x12_FLOAT
GPU_TEXTUREFORMAT_ASTC_12x12_FLOAT.
Definition SDL3pp_gpu.h:2941
void GenerateMipmapsForTexture(GPUTexture texture)
Generates mipmaps for the given texture.
Definition SDL3pp_gpu.h:7508
GPUTexture CreateTexture(const GPUTextureCreateInfo &createinfo)
Creates a texture object to be used in graphics or compute workflows.
Definition SDL3pp_gpu.h:5774
constexpr GPUFrontFace GPU_FRONTFACE_COUNTER_CLOCKWISE
A triangle with counter-clockwise vertex winding will be considered front-facing.
Definition SDL3pp_gpu.h:4446
SDL_GPUMultisampleState GPUMultisampleState
A structure specifying the parameters of the graphics pipeline multisample state.
Definition SDL3pp_gpu.h:4833
void PushGPUVertexUniformData(GPUCommandBuffer command_buffer, Uint32 slot_index, SourceBytes data)
Pushes data to a vertex uniform slot on the command buffer.
Definition SDL3pp_gpu.h:6297
constexpr GPUColorComponentFlags GPU_COLORCOMPONENT_R
the red component
Definition SDL3pp_gpu.h:4626
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_10x5_FLOAT
GPU_TEXTUREFORMAT_ASTC_10x5_FLOAT.
Definition SDL3pp_gpu.h:2926
constexpr GPUSamplerMipmapMode GPU_SAMPLERMIPMAPMODE_NEAREST
Point filtering.
Definition SDL3pp_gpu.h:4662
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_BYTE2_NORM
GPU_VERTEXELEMENTFORMAT_BYTE2_NORM.
Definition SDL3pp_gpu.h:4340
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_HALF2
GPU_VERTEXELEMENTFORMAT_HALF2.
Definition SDL3pp_gpu.h:4376
SDL_GPUSampler * GPUSamplerRaw
Alias to raw representation for GPUSampler.
Definition SDL3pp_gpu.h:408
void ClaimWindowForGPUDevice(GPUDeviceRef device, WindowRef window)
Claims a window, creating a swapchain structure for it.
Definition SDL3pp_gpu.h:7618
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_6x5_UNORM
GPU_TEXTUREFORMAT_ASTC_6x5_UNORM.
Definition SDL3pp_gpu.h:2827
constexpr GPUCullMode GPU_CULLMODE_BACK
Back-facing triangles are culled.
Definition SDL3pp_gpu.h:4429
SDL_GPUIndirectDrawCommand GPUIndirectDrawCommand
A structure specifying the parameters of an indirect draw command.
Definition SDL3pp_gpu.h:4713
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_UINT2
GPU_VERTEXELEMENTFORMAT_UINT2.
Definition SDL3pp_gpu.h:4307
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_10x6_UNORM
GPU_TEXTUREFORMAT_ASTC_10x6_UNORM.
Definition SDL3pp_gpu.h:2845
GPUTransferBuffer CreateTransferBuffer(const GPUTransferBufferCreateInfo &createinfo)
Creates a transfer buffer to be used when uploading to or downloading from graphics resources.
Definition SDL3pp_gpu.h:5929
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R8G8B8A8_SNORM
GPU_TEXTUREFORMAT_R8G8B8A8_SNORM.
Definition SDL3pp_gpu.h:2698
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_UBYTE4
GPU_VERTEXELEMENTFORMAT_UBYTE4.
Definition SDL3pp_gpu.h:4337
void PushFragmentUniformData(Uint32 slot_index, SourceBytes data)
Pushes data to a fragment uniform slot on the command buffer.
Definition SDL3pp_gpu.h:6335
void UploadToGPUBuffer(GPUCopyPass copy_pass, const GPUTransferBufferLocation &source, const GPUBufferRegion &destination, bool cycle)
Uploads data from a transfer buffer to a buffer.
Definition SDL3pp_gpu.h:7334
void PushGPUComputeUniformData(GPUCommandBuffer command_buffer, Uint32 slot_index, SourceBytes data)
Pushes data to a uniform slot on the command buffer.
Definition SDL3pp_gpu.h:6357
constexpr GPUBlendFactor GPU_BLENDFACTOR_INVALID
GPU_BLENDFACTOR_INVALID.
Definition SDL3pp_gpu.h:4576
Uint32 CalculateGPUTextureFormatSize(GPUTextureFormat format, Uint32 width, Uint32 height, Uint32 depth_or_layer_count)
Calculate the size in bytes of a texture format with dimensions.
Definition SDL3pp_gpu.h:8173
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_INVALID
GPU_VERTEXELEMENTFORMAT_INVALID.
Definition SDL3pp_gpu.h:4289
void PushVertexUniformData(Uint32 slot_index, SourceBytes data)
Pushes data to a vertex uniform slot on the command buffer.
Definition SDL3pp_gpu.h:6305
SDL_GPUCopyPass * GPUCopyPassRaw
Alias to raw representation for GPUCopyPass.
Definition SDL3pp_gpu.h:450
GPUShader CreateGPUShader(GPUDeviceRef device, const GPUShaderCreateInfo &createinfo)
Creates a shader to be used when creating a graphics pipeline.
Definition SDL3pp_gpu.h:5680
constexpr GPUStencilOp GPU_STENCILOP_INCREMENT_AND_CLAMP
Increments the current value and clamps to the maximum value.
Definition SDL3pp_gpu.h:4513
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_SHORT4_NORM
GPU_VERTEXELEMENTFORMAT_SHORT4_NORM.
Definition SDL3pp_gpu.h:4367
SDL_GPUVertexElementFormat GPUVertexElementFormat
Specifies the format of a vertex attribute.
Definition SDL3pp_gpu.h:4287
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_D32_FLOAT_S8_UINT
GPU_TEXTUREFORMAT_D32_FLOAT_S8_UINT.
Definition SDL3pp_gpu.h:2815
void GenerateMipmapsForGPUTexture(GPUCommandBuffer command_buffer, GPUTexture texture)
Generates mipmaps for the given texture.
Definition SDL3pp_gpu.h:7502
constexpr GPUTextureType GPU_TEXTURETYPE_2D
The texture is a 2-dimensional image.
Definition SDL3pp_gpu.h:2953
void CopyBufferToBuffer(const GPUBufferLocation &source, const GPUBufferLocation &destination, Uint32 size, bool cycle)
Performs a buffer-to-buffer copy.
Definition SDL3pp_gpu.h:7416
constexpr GPUBlendFactor GPU_BLENDFACTOR_SRC_COLOR
source color
Definition SDL3pp_gpu.h:4583
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_BC2_RGBA_UNORM
GPU_TEXTUREFORMAT_BC2_RGBA_UNORM.
Definition SDL3pp_gpu.h:2671
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R8G8B8A8_UNORM_SRGB
GPU_TEXTUREFORMAT_R8G8B8A8_UNORM_SRGB.
Definition SDL3pp_gpu.h:2785
void ReleaseGPUComputePipeline(GPUDeviceRef device, GPUComputePipeline compute_pipeline)
Frees the given compute pipeline as soon as it is safe to do so.
Definition SDL3pp_gpu.h:6191
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_B4G4R4A4_UNORM
GPU_TEXTUREFORMAT_B4G4R4A4_UNORM.
Definition SDL3pp_gpu.h:2662
GPUTexture CreateGPUTexture(GPUDeviceRef device, const GPUTextureCreateInfo &createinfo)
Creates a texture object to be used in graphics or compute workflows.
Definition SDL3pp_gpu.h:5768
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_12x10_UNORM_SRGB
GPU_TEXTUREFORMAT_ASTC_12x10_UNORM_SRGB.
Definition SDL3pp_gpu.h:2896
void DestroyGPUDevice(GPUDeviceRaw device)
Destroys a GPU context previously returned by CreateGPUDevice.
Definition SDL3pp_gpu.h:5209
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_10x10_UNORM
GPU_TEXTUREFORMAT_ASTC_10x10_UNORM.
Definition SDL3pp_gpu.h:2851
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_5x4_UNORM_SRGB
GPU_TEXTUREFORMAT_ASTC_5x4_UNORM_SRGB.
Definition SDL3pp_gpu.h:2863
bool QueryFence(GPUFence *fence)
Checks the status of a fence.
Definition SDL3pp_gpu.h:8070
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_12x10_UNORM
GPU_TEXTUREFORMAT_ASTC_12x10_UNORM.
Definition SDL3pp_gpu.h:2854
void BindGPUGraphicsPipeline(GPURenderPass render_pass, GPUGraphicsPipeline graphics_pipeline)
Binds a graphics pipeline on a render pass to be used in rendering.
Definition SDL3pp_gpu.h:6432
SDL_GPUTextureType GPUTextureType
Specifies the type of a texture.
Definition SDL3pp_gpu.h:2951
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_5x5_UNORM_SRGB
GPU_TEXTUREFORMAT_ASTC_5x5_UNORM_SRGB.
Definition SDL3pp_gpu.h:2866
constexpr GPUShaderFormat GPU_SHADERFORMAT_METALLIB
Precompiled metallib shaders for Metal.
Definition SDL3pp_gpu.h:2468
constexpr GPUFillMode GPU_FILLMODE_LINE
Polygon edges will be drawn as line segments.
Definition SDL3pp_gpu.h:4411
void CopyGPUBufferToBuffer(GPUCopyPass copy_pass, const GPUBufferLocation &source, const GPUBufferLocation &destination, Uint32 size, bool cycle)
Performs a buffer-to-buffer copy.
Definition SDL3pp_gpu.h:7407
SDL_GPUIndirectDispatchCommand GPUIndirectDispatchCommand
A structure specifying the parameters of an indexed dispatch command.
Definition SDL3pp_gpu.h:4738
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_4x4_UNORM
GPU_TEXTUREFORMAT_ASTC_4x4_UNORM.
Definition SDL3pp_gpu.h:2818
constexpr GPUPrimitiveType GPU_PRIMITIVETYPE_TRIANGLESTRIP
A series of connected triangles.
Definition SDL3pp_gpu.h:4112
SDL_GPUColorTargetBlendState GPUColorTargetBlendState
A structure specifying the blend state of a color target.
Definition SDL3pp_gpu.h:4805
SDL_GPUTransferBufferLocation GPUTransferBufferLocation
A structure specifying a location in a transfer buffer.
Definition SDL3pp_gpu.h:1730
constexpr GPUShaderFormat GPU_SHADERFORMAT_MSL
MSL shaders for Metal.
Definition SDL3pp_gpu.h:2465
PropertiesRef GetGPUDeviceProperties(GPUDeviceRef device)
Get the properties associated with a GPU device.
Definition SDL3pp_gpu.h:5386
SDL_GPUBuffer * GPUBufferRaw
Alias to raw representation for GPUBuffer.
Definition SDL3pp_gpu.h:390
void PopDebugGroup()
Ends the most-recently pushed debug group.
Definition SDL3pp_gpu.h:6094
void UploadToTexture(const GPUTextureTransferInfo &source, const GPUTextureRegion &destination, bool cycle)
Uploads data from a transfer buffer to a texture.
Definition SDL3pp_gpu.h:7313
SDL_GPUSamplerMipmapMode GPUSamplerMipmapMode
Specifies a mipmap mode used by a sampler.
Definition SDL3pp_gpu.h:4660
bool SetSwapchainParameters(WindowRef window, GPUSwapchainComposition swapchain_composition, GPUPresentMode present_mode)
Changes the swapchain parameters for the given claimed window.
Definition SDL3pp_gpu.h:7680
Uint8 GPUColorComponentFlags
Specifies which color components are written in a graphics pipeline.
Definition SDL3pp_gpu.h:4624
const char * GetGPUDeviceDriver(GPUDeviceRef device)
Returns the name of the backend used to create this GPU context.
Definition SDL3pp_gpu.h:5254
constexpr GPUCompareOp GPU_COMPAREOP_NEVER
The comparison always evaluates false.
Definition SDL3pp_gpu.h:4464
SDL_GPUVulkanOptions GPUVulkanOptions
A structure specifying additional options when using Vulkan.
Definition SDL3pp_gpu.h:5196
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R16G16_SNORM
GPU_TEXTUREFORMAT_R16G16_SNORM.
Definition SDL3pp_gpu.h:2704
void SetBlendConstants(FColorRaw blend_constants)
Sets the current blend constants on a command buffer.
Definition SDL3pp_gpu.h:6497
constexpr GPUBlendFactor GPU_BLENDFACTOR_SRC_ALPHA
source alpha
Definition SDL3pp_gpu.h:4595
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_8x5_UNORM_SRGB
GPU_TEXTUREFORMAT_ASTC_8x5_UNORM_SRGB.
Definition SDL3pp_gpu.h:2875
void ReleaseSampler(GPUSampler sampler)
Frees the given sampler as soon as it is safe to do so.
Definition SDL3pp_gpu.h:6134
bool TextureSupportsSampleCount(GPUTextureFormat format, GPUSampleCount sample_count)
Determines if a sample count for a texture format is supported.
Definition SDL3pp_gpu.h:8155
SDL_GPUSamplerAddressMode GPUSamplerAddressMode
Specifies behavior of texture sampling when the coordinates exceed the 0-1 range.
Definition SDL3pp_gpu.h:4676
void Destroy()
Destroys a GPU context previously returned by CreateGPUDevice.
Definition SDL3pp_gpu.h:5214
GPUDevice CreateGPUDevice(GPUShaderFormat format_flags, bool debug_mode, StringParam name)
Creates a GPU context.
Definition SDL3pp_gpu.h:4927
void ReleaseBuffer(GPUBuffer buffer)
Frees the given buffer as soon as it is safe to do so.
Definition SDL3pp_gpu.h:6154
void ReleaseGraphicsPipeline(GPUGraphicsPipeline graphics_pipeline)
Frees the given graphics pipeline as soon as it is safe to do so.
Definition SDL3pp_gpu.h:6239
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_6x6_UNORM_SRGB
GPU_TEXTUREFORMAT_ASTC_6x6_UNORM_SRGB.
Definition SDL3pp_gpu.h:2872
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R10G10B10A2_UNORM
GPU_TEXTUREFORMAT_R10G10B10A2_UNORM.
Definition SDL3pp_gpu.h:2653
void BindPipeline(GPUGraphicsPipeline graphics_pipeline)
Binds a graphics pipeline on a render pass to be used in rendering.
Definition SDL3pp_gpu.h:6438
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_B8G8R8A8_UNORM
GPU_TEXTUREFORMAT_B8G8R8A8_UNORM.
Definition SDL3pp_gpu.h:2665
void DrawGPUPrimitivesIndirect(GPURenderPass render_pass, GPUBuffer buffer, Uint32 offset, Uint32 draw_count)
Draws data using bound graphics state and with draw parameters set from a buffer.
Definition SDL3pp_gpu.h:6890
constexpr GPULoadOp GPU_LOADOP_DONT_CARE
The previous contents of the texture need not be preserved.
Definition SDL3pp_gpu.h:4144
constexpr GPUBlendFactor GPU_BLENDFACTOR_ZERO
0
Definition SDL3pp_gpu.h:4579
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R8G8_SNORM
GPU_TEXTUREFORMAT_R8G8_SNORM.
Definition SDL3pp_gpu.h:2695
SDL_GPUSwapchainComposition GPUSwapchainComposition
Specifies the texture format and colorspace of the swapchain textures.
Definition SDL3pp_gpu.h:2496
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R32G32B32A32_INT
GPU_TEXTUREFORMAT_R32G32B32A32_INT.
Definition SDL3pp_gpu.h:2782
GPUCommandBuffer AcquireCommandBuffer()
Acquire a command buffer.
Definition SDL3pp_gpu.h:6274
constexpr GPUBlendOp GPU_BLENDOP_MAX
max(source, destination)
Definition SDL3pp_gpu.h:4560
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R16G16_INT
GPU_TEXTUREFORMAT_R16G16_INT.
Definition SDL3pp_gpu.h:2770
bool WindowSupportsSwapchainComposition(WindowRef window, GPUSwapchainComposition swapchain_composition)
Determines whether a swapchain composition is supported by the window.
Definition SDL3pp_gpu.h:7557
const char * GetGPUDriver(int index)
Get the name of a built in GPU driver.
Definition SDL3pp_gpu.h:5244
constexpr GPUStoreOp GPU_STOREOP_STORE
The contents generated during the render pass will be written to memory.
Definition SDL3pp_gpu.h:4157
SDL_GPUSampleCount GPUSampleCount
Specifies the sample count of a texture.
Definition SDL3pp_gpu.h:3031
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_BC2_RGBA_UNORM_SRGB
GPU_TEXTUREFORMAT_BC2_RGBA_UNORM_SRGB.
Definition SDL3pp_gpu.h:2794
void InsertDebugLabel(StringParam text)
Inserts an arbitrary string label into the command buffer callstream.
Definition SDL3pp_gpu.h:6034
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_BC7_RGBA_UNORM_SRGB
GPU_TEXTUREFORMAT_BC7_RGBA_UNORM_SRGB.
Definition SDL3pp_gpu.h:2800
constexpr GPUBlendFactor GPU_BLENDFACTOR_SRC_ALPHA_SATURATE
min(source alpha, 1 - destination alpha)
Definition SDL3pp_gpu.h:4613
constexpr GPUBlendFactor GPU_BLENDFACTOR_ONE_MINUS_DST_ALPHA
1 - destination alpha
Definition SDL3pp_gpu.h:4604
GPUTextureFormat GetGPUSwapchainTextureFormat(GPUDeviceRef device, WindowRef window)
Obtains the texture format of the swapchain for the given window.
Definition SDL3pp_gpu.h:7737
void BindPipeline(GPUComputePipeline compute_pipeline)
Binds a compute pipeline on a command buffer for use in compute dispatch.
Definition SDL3pp_gpu.h:7021
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_BYTE2
GPU_VERTEXELEMENTFORMAT_BYTE2.
Definition SDL3pp_gpu.h:4328
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_8x8_UNORM
GPU_TEXTUREFORMAT_ASTC_8x8_UNORM.
Definition SDL3pp_gpu.h:2839
constexpr GPUStencilOp GPU_STENCILOP_KEEP
Keeps the current value.
Definition SDL3pp_gpu.h:4503
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_INT3
GPU_VERTEXELEMENTFORMAT_INT3.
Definition SDL3pp_gpu.h:4298
void SetGPUBufferName(GPUDeviceRef device, GPUBuffer buffer, StringParam text)
Sets an arbitrary string constant to label a buffer.
Definition SDL3pp_gpu.h:5972
constexpr GPUBufferUsageFlags GPU_BUFFERUSAGE_COMPUTE_STORAGE_READ
Buffer supports storage reads in the compute stage.
Definition SDL3pp_gpu.h:4240
void DownloadFromBuffer(const GPUBufferRegion &source, const GPUTransferBufferLocation &destination)
Copies data from a buffer to a transfer buffer on the GPU timeline.
Definition SDL3pp_gpu.h:7471
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_10x5_UNORM_SRGB
GPU_TEXTUREFORMAT_ASTC_10x5_UNORM_SRGB.
Definition SDL3pp_gpu.h:2884
void SetGPUBlendConstants(GPURenderPass render_pass, FColorRaw blend_constants)
Sets the current blend constants on a command buffer.
Definition SDL3pp_gpu.h:6491
SDL_GPUTextureCreateInfo GPUTextureCreateInfo
A structure specifying the parameters of a texture.
Definition SDL3pp_gpu.h:654
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R16G16B16A16_UINT
GPU_TEXTUREFORMAT_R16G16B16A16_UINT.
Definition SDL3pp_gpu.h:2746
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_8x8_FLOAT
GPU_TEXTUREFORMAT_ASTC_8x8_FLOAT.
Definition SDL3pp_gpu.h:2923
SDL_GPUFilter GPUFilter
Specifies a filter operation used by a sampler.
Definition SDL3pp_gpu.h:4645
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_5x4_UNORM
GPU_TEXTUREFORMAT_ASTC_5x4_UNORM.
Definition SDL3pp_gpu.h:2821
void End()
Ends the current copy pass.
Definition SDL3pp_gpu.h:7490
ResourceRefT< GPUDeviceBase > GPUDeviceRef
Reference for GPUDevice.
Definition SDL3pp_gpu.h:387
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_USHORT4
GPU_VERTEXELEMENTFORMAT_USHORT4.
Definition SDL3pp_gpu.h:4361
GPUFence * SubmitAndAcquireFence()
Submits a command buffer so its commands can be processed on the GPU, and acquires a fence associated...
Definition SDL3pp_gpu.h:7973
bool GPUSupportsProperties(PropertiesRef props)
Checks for GPU runtime support.
Definition SDL3pp_gpu.h:4896
constexpr GPUShaderFormat GPU_SHADERFORMAT_INVALID
INVALID.
Definition SDL3pp_gpu.h:2450
void WaitForGPUFences(GPUDeviceRef device, bool wait_all, std::span< GPUFence *const > fences)
Blocks the thread until the given fences are signaled.
Definition SDL3pp_gpu.h:8040
void BindGPUComputeStorageBuffers(GPUComputePass compute_pass, Uint32 first_slot, SpanRef< const GPUBufferRaw > storage_buffers)
Binds storage buffers as readonly for use on the compute pipeline.
Definition SDL3pp_gpu.h:7114
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_B5G6R5_UNORM
GPU_TEXTUREFORMAT_B5G6R5_UNORM.
Definition SDL3pp_gpu.h:2656
void DownloadFromGPUTexture(GPUCopyPass copy_pass, const GPUTextureRegion &source, const GPUTextureTransferInfo &destination)
Copies data from a texture to a transfer buffer on the GPU timeline.
Definition SDL3pp_gpu.h:7438
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R8G8_UNORM
GPU_TEXTUREFORMAT_R8G8_UNORM.
Definition SDL3pp_gpu.h:2638
void EndGPURenderPass(GPURenderPass render_pass)
Ends the given render pass.
Definition SDL3pp_gpu.h:6947
constexpr GPUBlendOp GPU_BLENDOP_REVERSE_SUBTRACT
(destination * destination_factor) - (source * source_factor)
Definition SDL3pp_gpu.h:4554
constexpr GPUColorComponentFlags GPU_COLORCOMPONENT_G
the green component
Definition SDL3pp_gpu.h:4629
void SetBufferName(GPUBuffer buffer, StringParam text)
Sets an arbitrary string constant to label a buffer.
Definition SDL3pp_gpu.h:5979
constexpr GPUSwapchainComposition GPU_SWAPCHAINCOMPOSITION_SDR
GPU_SWAPCHAINCOMPOSITION_SDR.
Definition SDL3pp_gpu.h:2498
constexpr GPUBufferUsageFlags GPU_BUFFERUSAGE_INDIRECT
Buffer is an indirect buffer.
Definition SDL3pp_gpu.h:4232
constexpr GPUTextureUsageFlags GPU_TEXTUREUSAGE_COMPUTE_STORAGE_READ
Texture supports storage reads in the compute stage.
Definition SDL3pp_gpu.h:3005
constexpr GPUBlendOp GPU_BLENDOP_SUBTRACT
(source * source_factor) - (destination * destination_factor)
Definition SDL3pp_gpu.h:4551
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R8_INT
GPU_TEXTUREFORMAT_R8_INT.
Definition SDL3pp_gpu.h:2758
void InsertGPUDebugLabel(GPUCommandBuffer command_buffer, StringParam text)
Inserts an arbitrary string label into the command buffer callstream.
Definition SDL3pp_gpu.h:6028
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R16_UNORM
GPU_TEXTUREFORMAT_R16_UNORM.
Definition SDL3pp_gpu.h:2644
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_10x10_UNORM_SRGB
GPU_TEXTUREFORMAT_ASTC_10x10_UNORM_SRGB.
Definition SDL3pp_gpu.h:2893
SDL_GPUDevice * GPUDeviceRaw
Alias to raw representation for GPUDevice.
Definition SDL3pp_gpu.h:380
void ReleaseTransferBuffer(GPUTransferBuffer transfer_buffer)
Frees the given transfer buffer as soon as it is safe to do so.
Definition SDL3pp_gpu.h:6175
SDL_GPUBlitRegion GPUBlitRegion
A structure specifying a region of a texture used in the blit operation.
Definition SDL3pp_gpu.h:4697
SDL_GPUTextureSamplerBinding GPUTextureSamplerBinding
A structure specifying parameters in a sampler binding call.
Definition SDL3pp_gpu.h:1165
void EndGPUCopyPass(GPUCopyPass copy_pass)
Ends the current copy pass.
Definition SDL3pp_gpu.h:7485
void DispatchGPUComputeIndirect(GPUComputePass compute_pass, GPUBuffer buffer, Uint32 offset)
Dispatches compute work with parameters set from a buffer.
Definition SDL3pp_gpu.h:7187
GPUTexture WaitAndAcquireSwapchainTexture(WindowRef window, Uint32 *swapchain_texture_width=nullptr, Uint32 *swapchain_texture_height=nullptr)
Blocks the thread until a swapchain texture is available to be acquired, and then acquires it.
Definition SDL3pp_gpu.h:7902
constexpr GPUStoreOp GPU_STOREOP_DONT_CARE
The contents generated during the render pass are not needed and may be discarded.
Definition SDL3pp_gpu.h:4163
constexpr GPULoadOp GPU_LOADOP_CLEAR
The contents of the texture will be cleared to a color.
Definition SDL3pp_gpu.h:4138
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_UBYTE4_NORM
GPU_VERTEXELEMENTFORMAT_UBYTE4_NORM.
Definition SDL3pp_gpu.h:4349
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R32G32B32A32_UINT
GPU_TEXTUREFORMAT_R32G32B32A32_UINT.
Definition SDL3pp_gpu.h:2755
SDL_GPUShader * GPUShaderRaw
Alias to raw representation for GPUShader.
Definition SDL3pp_gpu.h:414
constexpr GPUTextureType GPU_TEXTURETYPE_2D_ARRAY
The texture is a 2-dimensional array image.
Definition SDL3pp_gpu.h:2956
constexpr GPUPresentMode GPU_PRESENTMODE_MAILBOX
GPU_PRESENTMODE_MAILBOX.
Definition SDL3pp_gpu.h:2543
constexpr GPUCubeMapFace GPU_CUBEMAPFACE_NEGATIVEY
GPU_CUBEMAPFACE_NEGATIVEY.
Definition SDL3pp_gpu.h:4198
SDL_GPUBlendFactor GPUBlendFactor
Specifies a blending factor to be used when pixels in a render target are blended with existing pixel...
Definition SDL3pp_gpu.h:4574
void PushDebugGroup(StringParam name)
Begins a debug group with an arbitrary name.
Definition SDL3pp_gpu.h:6070
bool GPUSupportsShaderFormats(GPUShaderFormat format_flags, StringParam name)
Checks for GPU runtime support.
Definition SDL3pp_gpu.h:4880
void ReleaseGPUFence(GPUDeviceRef device, GPUFence *fence)
Releases a fence obtained from SubmitGPUCommandBufferAndAcquireFence.
Definition SDL3pp_gpu.h:8087
constexpr GPUShaderFormat GPU_SHADERFORMAT_SPIRV
SPIR-V shaders for Vulkan.
Definition SDL3pp_gpu.h:2456
constexpr GPUSamplerAddressMode GPU_SAMPLERADDRESSMODE_MIRRORED_REPEAT
Specifies that the coordinates will wrap around mirrored.
Definition SDL3pp_gpu.h:4683
const char * GetDriver()
Returns the name of the backend used to create this GPU context.
Definition SDL3pp_gpu.h:5259
void BindGPUVertexBuffers(GPURenderPass render_pass, Uint32 first_slot, std::span< const GPUBufferBinding > bindings)
Binds vertex buffers on a command buffer for use with subsequent draw calls.
Definition SDL3pp_gpu.h:6530
void BindStorageTextures(Uint32 first_slot, SpanRef< const GPUTextureRaw > storage_textures)
Binds storage textures as readonly for use on the compute pipeline.
Definition SDL3pp_gpu.h:7089
void DrawPrimitives(Uint32 num_vertices, Uint32 num_instances, Uint32 first_vertex, Uint32 first_instance)
Draws data using bound graphics state.
Definition SDL3pp_gpu.h:6865
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_8x5_FLOAT
GPU_TEXTUREFORMAT_ASTC_8x5_FLOAT.
Definition SDL3pp_gpu.h:2917
void SetGPUScissor(GPURenderPass render_pass, const RectRaw &scissor)
Sets the current scissor state on a command buffer.
Definition SDL3pp_gpu.h:6470
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_D16_UNORM
GPU_TEXTUREFORMAT_D16_UNORM.
Definition SDL3pp_gpu.h:2803
void SubmitGPUCommandBuffer(GPUCommandBuffer command_buffer)
Submits a command buffer so its commands can be processed on the GPU.
Definition SDL3pp_gpu.h:7933
void ReleaseShader(GPUShader shader)
Frees the given shader as soon as it is safe to do so.
Definition SDL3pp_gpu.h:6218
constexpr GPUFilter GPU_FILTER_NEAREST
Point filtering.
Definition SDL3pp_gpu.h:4647
void SetGPUTextureName(GPUDeviceRef device, GPUTexture texture, StringParam text)
Sets an arbitrary string constant to label a texture.
Definition SDL3pp_gpu.h:6001
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_10x6_UNORM_SRGB
GPU_TEXTUREFORMAT_ASTC_10x6_UNORM_SRGB.
Definition SDL3pp_gpu.h:2887
SDL_GPUStencilOpState GPUStencilOpState
A structure specifying the stencil operation state of a graphics pipeline.
Definition SDL3pp_gpu.h:4793
constexpr GPUCubeMapFace GPU_CUBEMAPFACE_POSITIVEX
GPU_CUBEMAPFACE_POSITIVEX.
Definition SDL3pp_gpu.h:4189
void BindGPUComputeSamplers(GPUComputePass compute_pass, Uint32 first_slot, std::span< const GPUTextureSamplerBinding > texture_sampler_bindings)
Binds texture-sampler pairs for use on the compute shader.
Definition SDL3pp_gpu.h:7042
void UnmapTransferBuffer(GPUTransferBuffer transfer_buffer)
Unmaps a previously mapped transfer buffer.
Definition SDL3pp_gpu.h:7258
void WaitForIdle()
Blocks the thread until the GPU is completely idle.
Definition SDL3pp_gpu.h:8024
void BindGPUComputeStorageTextures(GPUComputePass compute_pass, Uint32 first_slot, SpanRef< const GPUTextureRaw > storage_textures)
Binds storage textures as readonly for use on the compute pipeline.
Definition SDL3pp_gpu.h:7078
SDL_GPUBufferLocation GPUBufferLocation
A structure specifying a location in a buffer.
Definition SDL3pp_gpu.h:1682
GPUCopyPass BeginGPUCopyPass(GPUCommandBuffer command_buffer)
Begins a copy pass on a command buffer.
Definition SDL3pp_gpu.h:7278
constexpr GPUBlendOp GPU_BLENDOP_ADD
(source * source_factor) + (destination * destination_factor)
Definition SDL3pp_gpu.h:4548
constexpr GPUTextureType GPU_TEXTURETYPE_CUBE
The texture is a cube image.
Definition SDL3pp_gpu.h:2962
constexpr GPUStencilOp GPU_STENCILOP_INCREMENT_AND_WRAP
Increments the current value and wraps back to 0.
Definition SDL3pp_gpu.h:4523
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_BC3_RGBA_UNORM_SRGB
GPU_TEXTUREFORMAT_BC3_RGBA_UNORM_SRGB.
Definition SDL3pp_gpu.h:2797
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_INVALID
GPU_TEXTUREFORMAT_INVALID.
Definition SDL3pp_gpu.h:2629
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_5x5_UNORM
GPU_TEXTUREFORMAT_ASTC_5x5_UNORM.
Definition SDL3pp_gpu.h:2824
GPUComputePipeline CreateComputePipeline(const GPUComputePipelineCreateInfo &createinfo)
Creates a pipeline object to be used in a compute workflow.
Definition SDL3pp_gpu.h:5478
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_BYTE4_NORM
GPU_VERTEXELEMENTFORMAT_BYTE4_NORM.
Definition SDL3pp_gpu.h:4343
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_FLOAT
GPU_VERTEXELEMENTFORMAT_FLOAT.
Definition SDL3pp_gpu.h:4316
constexpr GPUSampleCount GPU_SAMPLECOUNT_1
No multisampling.
Definition SDL3pp_gpu.h:3033
GPURenderPass BeginRenderPass(std::span< const GPUColorTargetInfo > color_target_infos, OptionalRef< const GPUDepthStencilTargetInfo > depth_stencil_target_info)
Begins a render pass on a command buffer.
Definition SDL3pp_gpu.h:6414
constexpr GPUBlendFactor GPU_BLENDFACTOR_ONE_MINUS_SRC_ALPHA
1 - source alpha
Definition SDL3pp_gpu.h:4598
constexpr GPUBlendFactor GPU_BLENDFACTOR_ONE
1
Definition SDL3pp_gpu.h:4581
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_UBYTE2_NORM
GPU_VERTEXELEMENTFORMAT_UBYTE2_NORM.
Definition SDL3pp_gpu.h:4346
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_SHORT4
GPU_VERTEXELEMENTFORMAT_SHORT4.
Definition SDL3pp_gpu.h:4355
void PopGPUDebugGroup(GPUCommandBuffer command_buffer)
Ends the most-recently pushed debug group.
Definition SDL3pp_gpu.h:6089
SDL_GPUComputePass * GPUComputePassRaw
Alias to raw representation for GPUComputePass.
Definition SDL3pp_gpu.h:444
void ReleaseGPUBuffer(GPUDeviceRef device, GPUBuffer buffer)
Frees the given buffer as soon as it is safe to do so.
Definition SDL3pp_gpu.h:6149
void GDKResumeGPU(GPUDeviceRef device)
Call this to resume GPU operation on Xbox when you receive the EVENT_WILL_ENTER_FOREGROUND event.
Definition SDL3pp_gpu.h:8246
constexpr GPULoadOp GPU_LOADOP_LOAD
The previous contents of the texture will be preserved.
Definition SDL3pp_gpu.h:4135
constexpr GPUCullMode GPU_CULLMODE_NONE
No triangles are culled.
Definition SDL3pp_gpu.h:4423
constexpr GPUBlendFactor GPU_BLENDFACTOR_DST_ALPHA
destination alpha
Definition SDL3pp_gpu.h:4601
void DrawIndexedPrimitivesIndirect(GPUBuffer buffer, Uint32 offset, Uint32 draw_count)
Draws data using bound graphics state with an index buffer enabled and with draw parameters set from ...
Definition SDL3pp_gpu.h:6929
void EndGPUComputePass(GPUComputePass compute_pass)
Ends the current compute pass.
Definition SDL3pp_gpu.h:7209
SDL_GPUVertexInputRate GPUVertexInputRate
Specifies the rate at which vertex attributes are pulled from buffers.
Definition SDL3pp_gpu.h:4389
SDL_GPUBlitInfo GPUBlitInfo
A structure containing parameters for a blit command.
Definition SDL3pp_gpu.h:1999
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_10x5_UNORM
GPU_TEXTUREFORMAT_ASTC_10x5_UNORM.
Definition SDL3pp_gpu.h:2842
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R8G8_UINT
GPU_TEXTUREFORMAT_R8G8_UINT.
Definition SDL3pp_gpu.h:2734
SDL_FColor FColorRaw
Alias to raw representation for FColor.
Definition SDL3pp_pixels.h:89
ResourceRefT< PropertiesBase > PropertiesRef
Reference for Properties.
Definition SDL3pp_properties.h:53
SDL_Rect RectRaw
Alias to raw representation for Rect.
Definition SDL3pp_rect.h:34
::Sint32 Sint32
A signed 32-bit integer type.
Definition SDL3pp_stdinc.h:283
::Uint32 Uint32
An unsigned 32-bit integer type.
Definition SDL3pp_stdinc.h:296
::Uint8 Uint8
An unsigned 8-bit integer type.
Definition SDL3pp_stdinc.h:244
ResourceRefT< WindowBase > WindowRef
Reference for Window.
Definition SDL3pp_video.h:57
Properties for GPUBuffer creation.
Definition SDL3pp_gpu.h:5888
constexpr auto NAME_STRING
String for name.
Definition SDL3pp_gpu.h:5890
Properties for GPUComputePipeline creation.
Definition SDL3pp_gpu.h:5497
constexpr auto NAME_STRING
String for name.
Definition SDL3pp_gpu.h:5499
Properties for GPUDevice creation.
Definition SDL3pp_gpu.h:5067
constexpr auto NAME_STRING
String for name.
Definition SDL3pp_gpu.h:5082
constexpr auto FEATURE_INDIRECT_DRAW_FIRST_INSTANCE_BOOLEAN
Enable feature indirect draw first instance.
Definition SDL3pp_gpu.h:5096
constexpr auto D3D12_AGILITY_SDK_PATH_STRING
String for d3d12 agility sdk path.
Definition SDL3pp_gpu.h:5149
constexpr auto DEBUGMODE_BOOLEAN
Enable debugmode.
Definition SDL3pp_gpu.h:5069
constexpr auto FEATURE_DEPTH_CLAMPING_BOOLEAN
Enable feature depth clamping.
Definition SDL3pp_gpu.h:5091
constexpr auto SHADERS_PRIVATE_BOOLEAN
Enable shaders private.
Definition SDL3pp_gpu.h:5105
constexpr auto D3D12_AGILITY_SDK_VERSION_NUMBER
Number for d3d12 agility sdk version.
Definition SDL3pp_gpu.h:5143
constexpr auto SHADERS_MSL_BOOLEAN
Enable shaders msl.
Definition SDL3pp_gpu.h:5118
constexpr auto METAL_ALLOW_MACFAMILY1_BOOLEAN
Enable metal allow macfamily1.
Definition SDL3pp_gpu.h:5169
constexpr auto VULKAN_REQUIRE_HARDWARE_ACCELERATION_BOOLEAN
Enable vulkan require hardware acceleration.
Definition SDL3pp_gpu.h:5158
constexpr auto D3D12_ALLOW_FEWER_RESOURCE_SLOTS_BOOLEAN
Enable d3d12 allow fewer resource slots.
Definition SDL3pp_gpu.h:5127
constexpr auto SHADERS_DXIL_BOOLEAN
Enable shaders dxil.
Definition SDL3pp_gpu.h:5115
constexpr auto SHADERS_DXBC_BOOLEAN
Enable shaders dxbc.
Definition SDL3pp_gpu.h:5112
constexpr auto SHADERS_SPIRV_BOOLEAN
Enable shaders spirv.
Definition SDL3pp_gpu.h:5109
constexpr auto PREFERLOWPOWER_BOOLEAN
Enable preferlowpower.
Definition SDL3pp_gpu.h:5072
constexpr auto FEATURE_ANISOTROPY_BOOLEAN
Enable feature anisotropy.
Definition SDL3pp_gpu.h:5099
constexpr auto FEATURE_CLIP_DISTANCE_BOOLEAN
Enable feature clip distance.
Definition SDL3pp_gpu.h:5087
constexpr auto VULKAN_OPTIONS_POINTER
Pointer to vulkan options.
Definition SDL3pp_gpu.h:5161
constexpr auto SHADERS_METALLIB_BOOLEAN
Enable shaders metallib.
Definition SDL3pp_gpu.h:5121
constexpr auto VERBOSE_BOOLEAN
Enable verbose.
Definition SDL3pp_gpu.h:5077
constexpr auto D3D12_SEMANTIC_NAME_STRING
String for d3d12 semantic name.
Definition SDL3pp_gpu.h:5137
Properties for GPUDevice creation and information.
Definition SDL3pp_gpu.h:5067
constexpr auto NAME_STRING
String for name.
Definition SDL3pp_gpu.h:5410
constexpr auto DRIVER_VERSION_STRING
String for driver version.
Definition SDL3pp_gpu.h:5416
constexpr auto DRIVER_NAME_STRING
String for driver name.
Definition SDL3pp_gpu.h:5413
constexpr auto DRIVER_INFO_STRING
String for driver info.
Definition SDL3pp_gpu.h:5419
Properties for GPUGraphicsPipeline creation.
Definition SDL3pp_gpu.h:5551
constexpr auto NAME_STRING
String for name.
Definition SDL3pp_gpu.h:5553
Properties for GPUSampler creation.
Definition SDL3pp_gpu.h:5602
constexpr auto NAME_STRING
String for name.
Definition SDL3pp_gpu.h:5604
Properties for GPUShader creation.
Definition SDL3pp_gpu.h:5703
constexpr auto NAME_STRING
String for name.
Definition SDL3pp_gpu.h:5705
Properties for GPUTexture creation.
Definition SDL3pp_gpu.h:5791
constexpr auto D3D12_CLEAR_G_FLOAT
Float for d3d12 clear g.
Definition SDL3pp_gpu.h:5796
constexpr auto D3D12_CLEAR_DEPTH_FLOAT
Float for d3d12 clear depth.
Definition SDL3pp_gpu.h:5805
constexpr auto NAME_STRING
String for name.
Definition SDL3pp_gpu.h:5817
constexpr auto D3D12_CLEAR_A_FLOAT
Float for d3d12 clear a.
Definition SDL3pp_gpu.h:5802
constexpr auto D3D12_CLEAR_STENCIL_NUMBER
Number for d3d12 clear stencil.
Definition SDL3pp_gpu.h:5811
constexpr auto D3D12_CLEAR_B_FLOAT
Float for d3d12 clear b.
Definition SDL3pp_gpu.h:5799
constexpr auto D3D12_CLEAR_R_FLOAT
Float for d3d12 clear r.
Definition SDL3pp_gpu.h:5793
Properties for GPUTransferBuffer creation.
Definition SDL3pp_gpu.h:5948
constexpr auto NAME_STRING
String for name.
Definition SDL3pp_gpu.h:5950
Main include header for the SDL3pp library.
Uint32 narrowU32(T value)
Narrows to Uint32.
Definition SDL3pp_stdinc.h:6276
Base class to GPUDevice.
Definition SDL3pp_gpu.h:3048
constexpr ResourceBaseT()=default
Default constructor, creates null/invalid resource.
An opaque handle representing the SDL_GPU context.
Definition SDL3pp_gpu.h:3914
constexpr GPUDevice & operator=(GPUDevice &&other) noexcept
Assignment operator.
Definition SDL3pp_gpu.h:4080
~GPUDevice()
Destructor.
Definition SDL3pp_gpu.h:4077
constexpr GPUDevice(GPUDeviceRaw resource) noexcept
Constructs from raw GPUDevice.
Definition SDL3pp_gpu.h:3924
constexpr GPUDevice(GPUDevice &&other) noexcept
Move constructor.
Definition SDL3pp_gpu.h:3930
A non-owning reference wrapper for a given resource.
Definition SDL3pp_resource.h:93