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"
324 constexpr explicit operator bool()
const {
return !!
value; }
444 : m_gPUBuffer(gPUBuffer)
492 : m_gPUBuffer(
CheckError(SDL_CreateGPUBuffer(device, &createinfo)))
540 : m_gPUTransferBuffer(gPUTransferBuffer)
573 : m_gPUTransferBuffer(
574 CheckError(SDL_CreateGPUTransferBuffer(device, &createinfo)))
585 return m_gPUTransferBuffer;
635 : m_gPUTexture(gPUTexture)
695 : m_gPUTexture(
CheckError(SDL_CreateGPUTexture(device, &createinfo)))
744 : m_gPUSampler(gPUSampler)
770 : m_gPUSampler(
CheckError(SDL_CreateGPUSampler(device, &createinfo)))
811 : m_gPUShader(gPUShader)
889 : m_gPUShader(
CheckError(SDL_CreateGPUShader(device, &createinfo)))
933 : m_gPUComputePipeline(gPUComputePipeline)
984 : m_gPUComputePipeline(
985 CheckError(SDL_CreateGPUComputePipeline(device, &createinfo)))
996 return m_gPUComputePipeline;
1038 : m_gPUGraphicsPipeline(gPUGraphicsPipeline)
1065 : m_gPUGraphicsPipeline(
1066 CheckError(SDL_CreateGPUGraphicsPipeline(device, &createinfo)))
1077 return m_gPUGraphicsPipeline;
1110 SDL_GPU_INDEXELEMENTSIZE_16BIT;
1113 SDL_GPU_INDEXELEMENTSIZE_32BIT;
1147 : m_gPURenderPass(gPURenderPass)
1219 std::span<const GPUBufferBinding> bindings);
1252 std::span<const GPUTextureSamplerBinding> texture_sampler_bindings);
1310 std::span<const GPUTextureSamplerBinding> texture_sampler_bindings);
1474 : m_gPUComputePass(gPUComputePass)
1512 std::span<const GPUTextureSamplerBinding> texture_sampler_bindings);
1694 : m_gPUCopyPass(gPUCopyPass)
1979 : m_gPUCommandBuffer(gPUCommandBuffer)
2103 std::span<const GPUColorTargetInfo> color_target_infos,
2139 std::span<const GPUStorageTextureReadWriteBinding> storage_texture_bindings,
2140 std::span<const GPUStorageBufferReadWriteBinding> storage_buffer_bindings);
2222 Uint32* swapchain_texture_width =
nullptr,
2223 Uint32* swapchain_texture_height =
nullptr);
2266 Uint32* swapchain_texture_width =
nullptr,
2267 Uint32* swapchain_texture_height =
nullptr);
2350 SDL_GPU_SHADERFORMAT_INVALID;
2353 SDL_GPU_SHADERFORMAT_PRIVATE;
2356 SDL_GPU_SHADERFORMAT_SPIRV;
2359 SDL_GPU_SHADERFORMAT_DXBC;
2362 SDL_GPU_SHADERFORMAT_DXIL;
2365 SDL_GPU_SHADERFORMAT_MSL;
2368 SDL_GPU_SHADERFORMAT_METALLIB;
2398 SDL_GPU_SWAPCHAINCOMPOSITION_SDR;
2401 SDL_GPU_SWAPCHAINCOMPOSITION_SDR_LINEAR;
2404 SDL_GPU_SWAPCHAINCOMPOSITION_HDR_EXTENDED_LINEAR;
2407 SDL_GPU_SWAPCHAINCOMPOSITION_HDR10_ST2084;
2437 SDL_GPU_PRESENTMODE_VSYNC;
2440 SDL_GPU_PRESENTMODE_IMMEDIATE;
2443 SDL_GPU_PRESENTMODE_MAILBOX;
2533 SDL_GPU_TEXTUREFORMAT_INVALID;
2536 SDL_GPU_TEXTUREFORMAT_A8_UNORM;
2539 SDL_GPU_TEXTUREFORMAT_R8_UNORM;
2542 SDL_GPU_TEXTUREFORMAT_R8G8_UNORM;
2545 SDL_GPU_TEXTUREFORMAT_R8G8B8A8_UNORM;
2548 SDL_GPU_TEXTUREFORMAT_R16_UNORM;
2551 SDL_GPU_TEXTUREFORMAT_R16G16_UNORM;
2554 SDL_GPU_TEXTUREFORMAT_R16G16B16A16_UNORM;
2557 SDL_GPU_TEXTUREFORMAT_R10G10B10A2_UNORM;
2560 SDL_GPU_TEXTUREFORMAT_B5G6R5_UNORM;
2563 SDL_GPU_TEXTUREFORMAT_B5G5R5A1_UNORM;
2566 SDL_GPU_TEXTUREFORMAT_B4G4R4A4_UNORM;
2569 SDL_GPU_TEXTUREFORMAT_B8G8R8A8_UNORM;
2572 SDL_GPU_TEXTUREFORMAT_BC1_RGBA_UNORM;
2575 SDL_GPU_TEXTUREFORMAT_BC2_RGBA_UNORM;
2578 SDL_GPU_TEXTUREFORMAT_BC3_RGBA_UNORM;
2581 SDL_GPU_TEXTUREFORMAT_BC4_R_UNORM;
2584 SDL_GPU_TEXTUREFORMAT_BC5_RG_UNORM;
2587 SDL_GPU_TEXTUREFORMAT_BC7_RGBA_UNORM;
2590 SDL_GPU_TEXTUREFORMAT_BC6H_RGB_FLOAT;
2593 SDL_GPU_TEXTUREFORMAT_BC6H_RGB_UFLOAT;
2596 SDL_GPU_TEXTUREFORMAT_R8_SNORM;
2599 SDL_GPU_TEXTUREFORMAT_R8G8_SNORM;
2602 SDL_GPU_TEXTUREFORMAT_R8G8B8A8_SNORM;
2605 SDL_GPU_TEXTUREFORMAT_R16_SNORM;
2608 SDL_GPU_TEXTUREFORMAT_R16G16_SNORM;
2611 SDL_GPU_TEXTUREFORMAT_R16G16B16A16_SNORM;
2614 SDL_GPU_TEXTUREFORMAT_R16_FLOAT;
2617 SDL_GPU_TEXTUREFORMAT_R16G16_FLOAT;
2620 SDL_GPU_TEXTUREFORMAT_R16G16B16A16_FLOAT;
2623 SDL_GPU_TEXTUREFORMAT_R32_FLOAT;
2626 SDL_GPU_TEXTUREFORMAT_R32G32_FLOAT;
2629 SDL_GPU_TEXTUREFORMAT_R32G32B32A32_FLOAT;
2632 SDL_GPU_TEXTUREFORMAT_R11G11B10_UFLOAT;
2635 SDL_GPU_TEXTUREFORMAT_R8_UINT;
2638 SDL_GPU_TEXTUREFORMAT_R8G8_UINT;
2641 SDL_GPU_TEXTUREFORMAT_R8G8B8A8_UINT;
2644 SDL_GPU_TEXTUREFORMAT_R16_UINT;
2647 SDL_GPU_TEXTUREFORMAT_R16G16_UINT;
2650 SDL_GPU_TEXTUREFORMAT_R16G16B16A16_UINT;
2653 SDL_GPU_TEXTUREFORMAT_R32_UINT;
2656 SDL_GPU_TEXTUREFORMAT_R32G32_UINT;
2659 SDL_GPU_TEXTUREFORMAT_R32G32B32A32_UINT;
2662 SDL_GPU_TEXTUREFORMAT_R8_INT;
2665 SDL_GPU_TEXTUREFORMAT_R8G8_INT;
2668 SDL_GPU_TEXTUREFORMAT_R8G8B8A8_INT;
2671 SDL_GPU_TEXTUREFORMAT_R16_INT;
2674 SDL_GPU_TEXTUREFORMAT_R16G16_INT;
2677 SDL_GPU_TEXTUREFORMAT_R16G16B16A16_INT;
2680 SDL_GPU_TEXTUREFORMAT_R32_INT;
2683 SDL_GPU_TEXTUREFORMAT_R32G32_INT;
2686 SDL_GPU_TEXTUREFORMAT_R32G32B32A32_INT;
2689 SDL_GPU_TEXTUREFORMAT_R8G8B8A8_UNORM_SRGB;
2692 SDL_GPU_TEXTUREFORMAT_B8G8R8A8_UNORM_SRGB;
2695 SDL_GPU_TEXTUREFORMAT_BC1_RGBA_UNORM_SRGB;
2698 SDL_GPU_TEXTUREFORMAT_BC2_RGBA_UNORM_SRGB;
2701 SDL_GPU_TEXTUREFORMAT_BC3_RGBA_UNORM_SRGB;
2704 SDL_GPU_TEXTUREFORMAT_BC7_RGBA_UNORM_SRGB;
2707 SDL_GPU_TEXTUREFORMAT_D16_UNORM;
2710 SDL_GPU_TEXTUREFORMAT_D24_UNORM;
2713 SDL_GPU_TEXTUREFORMAT_D32_FLOAT;
2716 SDL_GPU_TEXTUREFORMAT_D24_UNORM_S8_UINT;
2719 SDL_GPU_TEXTUREFORMAT_D32_FLOAT_S8_UINT;
2722 SDL_GPU_TEXTUREFORMAT_ASTC_4x4_UNORM;
2725 SDL_GPU_TEXTUREFORMAT_ASTC_5x4_UNORM;
2728 SDL_GPU_TEXTUREFORMAT_ASTC_5x5_UNORM;
2731 SDL_GPU_TEXTUREFORMAT_ASTC_6x5_UNORM;
2734 SDL_GPU_TEXTUREFORMAT_ASTC_6x6_UNORM;
2737 SDL_GPU_TEXTUREFORMAT_ASTC_8x5_UNORM;
2740 SDL_GPU_TEXTUREFORMAT_ASTC_8x6_UNORM;
2743 SDL_GPU_TEXTUREFORMAT_ASTC_8x8_UNORM;
2746 SDL_GPU_TEXTUREFORMAT_ASTC_10x5_UNORM;
2749 SDL_GPU_TEXTUREFORMAT_ASTC_10x6_UNORM;
2752 SDL_GPU_TEXTUREFORMAT_ASTC_10x8_UNORM;
2755 SDL_GPU_TEXTUREFORMAT_ASTC_10x10_UNORM;
2758 SDL_GPU_TEXTUREFORMAT_ASTC_12x10_UNORM;
2761 SDL_GPU_TEXTUREFORMAT_ASTC_12x12_UNORM;
2764 SDL_GPU_TEXTUREFORMAT_ASTC_4x4_UNORM_SRGB;
2767 SDL_GPU_TEXTUREFORMAT_ASTC_5x4_UNORM_SRGB;
2770 SDL_GPU_TEXTUREFORMAT_ASTC_5x5_UNORM_SRGB;
2773 SDL_GPU_TEXTUREFORMAT_ASTC_6x5_UNORM_SRGB;
2776 SDL_GPU_TEXTUREFORMAT_ASTC_6x6_UNORM_SRGB;
2779 SDL_GPU_TEXTUREFORMAT_ASTC_8x5_UNORM_SRGB;
2782 SDL_GPU_TEXTUREFORMAT_ASTC_8x6_UNORM_SRGB;
2785 SDL_GPU_TEXTUREFORMAT_ASTC_8x8_UNORM_SRGB;
2788 SDL_GPU_TEXTUREFORMAT_ASTC_10x5_UNORM_SRGB;
2791 SDL_GPU_TEXTUREFORMAT_ASTC_10x6_UNORM_SRGB;
2794 SDL_GPU_TEXTUREFORMAT_ASTC_10x8_UNORM_SRGB;
2797 SDL_GPU_TEXTUREFORMAT_ASTC_10x10_UNORM_SRGB;
2800 SDL_GPU_TEXTUREFORMAT_ASTC_12x10_UNORM_SRGB;
2803 SDL_GPU_TEXTUREFORMAT_ASTC_12x12_UNORM_SRGB;
2806 SDL_GPU_TEXTUREFORMAT_ASTC_4x4_FLOAT;
2809 SDL_GPU_TEXTUREFORMAT_ASTC_5x4_FLOAT;
2812 SDL_GPU_TEXTUREFORMAT_ASTC_5x5_FLOAT;
2815 SDL_GPU_TEXTUREFORMAT_ASTC_6x5_FLOAT;
2818 SDL_GPU_TEXTUREFORMAT_ASTC_6x6_FLOAT;
2821 SDL_GPU_TEXTUREFORMAT_ASTC_8x5_FLOAT;
2824 SDL_GPU_TEXTUREFORMAT_ASTC_8x6_FLOAT;
2827 SDL_GPU_TEXTUREFORMAT_ASTC_8x8_FLOAT;
2830 SDL_GPU_TEXTUREFORMAT_ASTC_10x5_FLOAT;
2833 SDL_GPU_TEXTUREFORMAT_ASTC_10x6_FLOAT;
2836 SDL_GPU_TEXTUREFORMAT_ASTC_10x8_FLOAT;
2839 SDL_GPU_TEXTUREFORMAT_ASTC_10x10_FLOAT;
2842 SDL_GPU_TEXTUREFORMAT_ASTC_12x10_FLOAT;
2845 SDL_GPU_TEXTUREFORMAT_ASTC_12x12_FLOAT;
2857 SDL_GPU_TEXTURETYPE_2D;
2860 SDL_GPU_TEXTURETYPE_2D_ARRAY;
2863 SDL_GPU_TEXTURETYPE_3D;
2866 SDL_GPU_TEXTURETYPE_CUBE;
2869 SDL_GPU_TEXTURETYPE_CUBE_ARRAY;
2894 SDL_GPU_TEXTUREUSAGE_SAMPLER;
2897 SDL_GPU_TEXTUREUSAGE_COLOR_TARGET;
2900 SDL_GPU_TEXTUREUSAGE_DEPTH_STENCIL_TARGET;
2904 SDL_GPU_TEXTUREUSAGE_GRAPHICS_STORAGE_READ;
2909 SDL_GPU_TEXTUREUSAGE_COMPUTE_STORAGE_READ;
2913 SDL_GPU_TEXTUREUSAGE_COMPUTE_STORAGE_WRITE;
2921 SDL_GPU_TEXTUREUSAGE_COMPUTE_STORAGE_SIMULTANEOUS_READ_WRITE;
2937 SDL_GPU_SAMPLECOUNT_1;
2968 : m_resource(resource)
3005 CheckError(SDL_CreateGPUDevice(format_flags, debug_mode, name)))
3053 : m_resource(
CheckError(SDL_CreateGPUDeviceWithProperties(props)))
3063 std::swap(m_resource, other.m_resource);
3073 auto r = m_resource;
3074 m_resource =
nullptr;
3082 constexpr bool operator==(std::nullptr_t _)
const {
return !m_resource; }
3085 constexpr explicit operator bool()
const {
return !!m_resource; }
3753 void WaitForFences(
bool wait_all, std::span<GPUFence* const> fences);
3806#ifdef SDL_PLATFORM_GDK
3885 SDL_GPU_PRIMITIVETYPE_TRIANGLELIST;
3888 SDL_GPU_PRIMITIVETYPE_TRIANGLESTRIP;
3891 SDL_GPU_PRIMITIVETYPE_LINELIST;
3894 SDL_GPU_PRIMITIVETYPE_LINESTRIP;
3897 SDL_GPU_PRIMITIVETYPE_POINTLIST;
3953 SDL_GPU_STOREOP_RESOLVE_AND_STORE;
3965 SDL_GPU_CUBEMAPFACE_POSITIVEX;
3968 SDL_GPU_CUBEMAPFACE_NEGATIVEX;
3971 SDL_GPU_CUBEMAPFACE_POSITIVEY;
3974 SDL_GPU_CUBEMAPFACE_NEGATIVEY;
3977 SDL_GPU_CUBEMAPFACE_POSITIVEZ;
3980 SDL_GPU_CUBEMAPFACE_NEGATIVEZ;
4002 SDL_GPU_BUFFERUSAGE_VERTEX;
4005 SDL_GPU_BUFFERUSAGE_INDEX;
4008 SDL_GPU_BUFFERUSAGE_INDIRECT;
4011 SDL_GPU_BUFFERUSAGE_GRAPHICS_STORAGE_READ;
4016 SDL_GPU_BUFFERUSAGE_COMPUTE_STORAGE_READ;
4020 SDL_GPU_BUFFERUSAGE_COMPUTE_STORAGE_WRITE;
4035 SDL_GPU_TRANSFERBUFFERUSAGE_UPLOAD;
4038 SDL_GPU_TRANSFERBUFFERUSAGE_DOWNLOAD;
4050 SDL_GPU_SHADERSTAGE_VERTEX;
4053 SDL_GPU_SHADERSTAGE_FRAGMENT;
4065 SDL_GPU_VERTEXELEMENTFORMAT_INVALID;
4068 SDL_GPU_VERTEXELEMENTFORMAT_INT;
4071 SDL_GPU_VERTEXELEMENTFORMAT_INT2;
4074 SDL_GPU_VERTEXELEMENTFORMAT_INT3;
4077 SDL_GPU_VERTEXELEMENTFORMAT_INT4;
4080 SDL_GPU_VERTEXELEMENTFORMAT_UINT;
4083 SDL_GPU_VERTEXELEMENTFORMAT_UINT2;
4086 SDL_GPU_VERTEXELEMENTFORMAT_UINT3;
4089 SDL_GPU_VERTEXELEMENTFORMAT_UINT4;
4092 SDL_GPU_VERTEXELEMENTFORMAT_FLOAT;
4095 SDL_GPU_VERTEXELEMENTFORMAT_FLOAT2;
4098 SDL_GPU_VERTEXELEMENTFORMAT_FLOAT3;
4101 SDL_GPU_VERTEXELEMENTFORMAT_FLOAT4;
4104 SDL_GPU_VERTEXELEMENTFORMAT_BYTE2;
4107 SDL_GPU_VERTEXELEMENTFORMAT_BYTE4;
4110 SDL_GPU_VERTEXELEMENTFORMAT_UBYTE2;
4113 SDL_GPU_VERTEXELEMENTFORMAT_UBYTE4;
4116 SDL_GPU_VERTEXELEMENTFORMAT_BYTE2_NORM;
4119 SDL_GPU_VERTEXELEMENTFORMAT_BYTE4_NORM;
4122 SDL_GPU_VERTEXELEMENTFORMAT_UBYTE2_NORM;
4125 SDL_GPU_VERTEXELEMENTFORMAT_UBYTE4_NORM;
4128 SDL_GPU_VERTEXELEMENTFORMAT_SHORT2;
4131 SDL_GPU_VERTEXELEMENTFORMAT_SHORT4;
4134 SDL_GPU_VERTEXELEMENTFORMAT_USHORT2;
4137 SDL_GPU_VERTEXELEMENTFORMAT_USHORT4;
4140 SDL_GPU_VERTEXELEMENTFORMAT_SHORT2_NORM;
4143 SDL_GPU_VERTEXELEMENTFORMAT_SHORT4_NORM;
4146 SDL_GPU_VERTEXELEMENTFORMAT_USHORT2_NORM;
4149 SDL_GPU_VERTEXELEMENTFORMAT_USHORT4_NORM;
4152 SDL_GPU_VERTEXELEMENTFORMAT_HALF2;
4155 SDL_GPU_VERTEXELEMENTFORMAT_HALF4;
4168 SDL_GPU_VERTEXINPUTRATE_VERTEX;
4172 SDL_GPU_VERTEXINPUTRATE_INSTANCE;
4184 SDL_GPU_FILLMODE_FILL;
4187 SDL_GPU_FILLMODE_LINE;
4199 SDL_GPU_CULLMODE_NONE;
4202 SDL_GPU_CULLMODE_FRONT;
4205 SDL_GPU_CULLMODE_BACK;
4222 SDL_GPU_FRONTFACE_COUNTER_CLOCKWISE;
4237 SDL_GPU_COMPAREOP_INVALID;
4240 SDL_GPU_COMPAREOP_NEVER;
4243 SDL_GPU_COMPAREOP_LESS;
4246 SDL_GPU_COMPAREOP_EQUAL;
4249 SDL_GPU_COMPAREOP_LESS_OR_EQUAL;
4253 SDL_GPU_COMPAREOP_GREATER;
4256 SDL_GPU_COMPAREOP_NOT_EQUAL;
4259 SDL_GPU_COMPAREOP_GREATER_OR_EQUAL;
4263 SDL_GPU_COMPAREOP_ALWAYS;
4276 SDL_GPU_STENCILOP_INVALID;
4279 SDL_GPU_STENCILOP_KEEP;
4282 SDL_GPU_STENCILOP_ZERO;
4285 SDL_GPU_STENCILOP_REPLACE;
4289 SDL_GPU_STENCILOP_INCREMENT_AND_CLAMP;
4292 SDL_GPU_STENCILOP_DECREMENT_AND_CLAMP;
4296 SDL_GPU_STENCILOP_INVERT;
4299 SDL_GPU_STENCILOP_INCREMENT_AND_WRAP;
4304 SDL_GPU_STENCILOP_DECREMENT_AND_WRAP;
4320 SDL_GPU_BLENDOP_INVALID;
4330 SDL_GPU_BLENDOP_REVERSE_SUBTRACT;
4333 SDL_GPU_BLENDOP_MIN;
4336 SDL_GPU_BLENDOP_MAX;
4352 SDL_GPU_BLENDFACTOR_INVALID;
4359 SDL_GPU_BLENDFACTOR_SRC_COLOR;
4362 SDL_GPU_BLENDFACTOR_ONE_MINUS_SRC_COLOR;
4365 SDL_GPU_BLENDFACTOR_DST_COLOR;
4368 SDL_GPU_BLENDFACTOR_ONE_MINUS_DST_COLOR;
4371 SDL_GPU_BLENDFACTOR_SRC_ALPHA;
4374 SDL_GPU_BLENDFACTOR_ONE_MINUS_SRC_ALPHA;
4377 SDL_GPU_BLENDFACTOR_DST_ALPHA;
4380 SDL_GPU_BLENDFACTOR_ONE_MINUS_DST_ALPHA;
4383 SDL_GPU_BLENDFACTOR_CONSTANT_COLOR;
4386 SDL_GPU_BLENDFACTOR_ONE_MINUS_CONSTANT_COLOR;
4389 SDL_GPU_BLENDFACTOR_SRC_ALPHA_SATURATE;
4402 SDL_GPU_COLORCOMPONENT_R;
4405 SDL_GPU_COLORCOMPONENT_G;
4408 SDL_GPU_COLORCOMPONENT_B;
4411 SDL_GPU_COLORCOMPONENT_A;
4423 SDL_GPU_FILTER_NEAREST;
4426 SDL_GPU_FILTER_LINEAR;
4438 SDL_GPU_SAMPLERMIPMAPMODE_NEAREST;
4441 SDL_GPU_SAMPLERMIPMAPMODE_LINEAR;
4454 SDL_GPU_SAMPLERADDRESSMODE_REPEAT;
4459 SDL_GPU_SAMPLERADDRESSMODE_MIRRORED_REPEAT;
4463 SDL_GPU_SAMPLERADDRESSMODE_CLAMP_TO_EDGE;
4655 return SDL_GPUSupportsShaderFormats(format_flags, name);
4670 return SDL_GPUSupportsProperties(props);
4695 return GPUDevice(format_flags, debug_mode, std::move(name));
4746namespace prop::GpuDevice {
4748constexpr auto CREATE_DEBUGMODE_BOOLEAN =
4749 SDL_PROP_GPU_DEVICE_CREATE_DEBUGMODE_BOOLEAN;
4751constexpr auto CREATE_PREFERLOWPOWER_BOOLEAN =
4752 SDL_PROP_GPU_DEVICE_CREATE_PREFERLOWPOWER_BOOLEAN;
4754constexpr auto CREATE_NAME_STRING = SDL_PROP_GPU_DEVICE_CREATE_NAME_STRING;
4756constexpr auto CREATE_SHADERS_PRIVATE_BOOLEAN =
4757 SDL_PROP_GPU_DEVICE_CREATE_SHADERS_PRIVATE_BOOLEAN;
4759constexpr auto CREATE_SHADERS_SPIRV_BOOLEAN =
4760 SDL_PROP_GPU_DEVICE_CREATE_SHADERS_SPIRV_BOOLEAN;
4762constexpr auto CREATE_SHADERS_DXBC_BOOLEAN =
4763 SDL_PROP_GPU_DEVICE_CREATE_SHADERS_DXBC_BOOLEAN;
4765constexpr auto CREATE_SHADERS_DXIL_BOOLEAN =
4766 SDL_PROP_GPU_DEVICE_CREATE_SHADERS_DXIL_BOOLEAN;
4768constexpr auto CREATE_SHADERS_MSL_BOOLEAN =
4769 SDL_PROP_GPU_DEVICE_CREATE_SHADERS_MSL_BOOLEAN;
4771constexpr auto CREATE_SHADERS_METALLIB_BOOLEAN =
4772 SDL_PROP_GPU_DEVICE_CREATE_SHADERS_METALLIB_BOOLEAN;
4774constexpr auto CREATE_D3D12_SEMANTIC_NAME_STRING =
4775 SDL_PROP_GPU_DEVICE_CREATE_D3D12_SEMANTIC_NAME_STRING;
4790 SDL_DestroyGPUDevice(device);
4823inline const char*
GetGPUDriver(
int index) {
return SDL_GetGPUDriver(index); }
4835 return SDL_GetGPUDeviceDriver(device);
4854 return SDL_GetGPUShaderFormats(device);
4920namespace prop::GPUComputePipeline {
4922constexpr auto CREATE_NAME_STRING =
4923 SDL_PROP_GPU_COMPUTEPIPELINE_CREATE_NAME_STRING;
4961namespace prop::GPUGraphicsPipeline {
4963constexpr auto CREATE_NAME_STRING =
4964 SDL_PROP_GPU_GRAPHICSPIPELINE_CREATE_NAME_STRING;
5001namespace prop::GPUSampler {
5003constexpr auto CREATE_NAME_STRING = SDL_PROP_GPU_SAMPLER_CREATE_NAME_STRING;
5085 return GPUShader(m_resource, createinfo);
5088namespace prop::GPUShader {
5090constexpr auto CREATE_NAME_STRING = SDL_PROP_GPU_SHADER_CREATE_NAME_STRING;
5161namespace prop::GPUTexture {
5163constexpr auto CREATE_D3D12_CLEAR_R_FLOAT =
5164 SDL_PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_R_FLOAT;
5166constexpr auto CREATE_D3D12_CLEAR_G_FLOAT =
5167 SDL_PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_G_FLOAT;
5169constexpr auto CREATE_D3D12_CLEAR_B_FLOAT =
5170 SDL_PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_B_FLOAT;
5172constexpr auto CREATE_D3D12_CLEAR_A_FLOAT =
5173 SDL_PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_A_FLOAT;
5175constexpr auto CREATE_D3D12_CLEAR_DEPTH_FLOAT =
5176 SDL_PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_DEPTH_FLOAT;
5178#if SDL_VERSION_ATLEAST(3, 2, 12)
5180constexpr auto CREATE_D3D12_CLEAR_STENCIL_NUMBER =
5181 SDL_PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_STENCIL_NUMBER;
5185constexpr auto CREATE_NAME_STRING = SDL_PROP_GPU_TEXTURE_CREATE_NAME_STRING;
5240 return GPUBuffer(m_resource, createinfo);
5243namespace prop::GPUBuffer {
5245constexpr auto CREATE_NAME_STRING = SDL_PROP_GPU_BUFFER_CREATE_NAME_STRING;
5289namespace prop::GPUTransferBuffer {
5291constexpr auto CREATE_NAME_STRING =
5292 SDL_PROP_GPU_TRANSFERBUFFER_CREATE_NAME_STRING;
5317 SDL_SetGPUBufferName(device, buffer, text);
5346 SDL_SetGPUTextureName(device, texture, text);
5367 SDL_InsertGPUDebugLabel(command_buffer, text);
5398 SDL_PushGPUDebugGroup(command_buffer, name);
5417 SDL_PopGPUDebugGroup(command_buffer);
5437 SDL_ReleaseGPUTexture(device, texture);
5457 SDL_ReleaseGPUSampler(device, sampler);
5477 SDL_ReleaseGPUBuffer(device, buffer);
5498 SDL_ReleaseGPUTransferBuffer(device, transfer_buffer);
5519 SDL_ReleaseGPUComputePipeline(device, compute_pipeline);
5540 SDL_ReleaseGPUShader(device, shader);
5561 SDL_ReleaseGPUGraphicsPipeline(device, graphics_pipeline);
5596 return SDL_AcquireGPUCommandBuffer(device);
5623 SDL_PushGPUVertexUniformData(
5631 m_gPUCommandBuffer, slot_index, std::move(data));
5653 SDL_PushGPUFragmentUniformData(
5661 m_gPUCommandBuffer, slot_index, std::move(data));
5683 SDL_PushGPUComputeUniformData(
5691 m_gPUCommandBuffer, slot_index, std::move(data));
5719 std::span<const GPUColorTargetInfo> color_target_infos,
5722 return SDL_BeginGPURenderPass(command_buffer,
5723 color_target_infos.data(),
5724 color_target_infos.size(),
5725 depth_stencil_target_info);
5729 std::span<const GPUColorTargetInfo> color_target_infos,
5733 m_gPUCommandBuffer, color_target_infos, depth_stencil_target_info);
5749 SDL_BindGPUGraphicsPipeline(render_pass, graphics_pipeline);
5768 SDL_SetGPUViewport(render_pass, &viewport);
5786 SDL_SetGPUScissor(render_pass, &scissor);
5808 SDL_SetGPUBlendConstants(render_pass, blend_constants);
5826 SDL_SetGPUStencilReference(render_pass, reference);
5846 std::span<const GPUBufferBinding> bindings)
5848 SDL_BindGPUVertexBuffers(
5849 render_pass, first_slot, bindings.data(), bindings.size());
5854 std::span<const GPUBufferBinding> bindings)
5873 SDL_BindGPUIndexBuffer(render_pass, &binding, index_element_size);
5902 std::span<const GPUTextureSamplerBinding> texture_sampler_bindings)
5904 SDL_BindGPUVertexSamplers(render_pass,
5906 texture_sampler_bindings.data(),
5907 texture_sampler_bindings.size());
5912 std::span<const GPUTextureSamplerBinding> texture_sampler_bindings)
5915 m_gPURenderPass, first_slot, texture_sampler_bindings);
5940 SDL_BindGPUVertexStorageTextures(
5941 render_pass, first_slot, storage_textures.
data(), storage_textures.
size());
5949 m_gPURenderPass, first_slot, storage_textures);
5974 SDL_BindGPUVertexStorageBuffers(
5975 render_pass, first_slot, storage_buffers.
data(), storage_buffers.
size());
5983 m_gPURenderPass, first_slot, storage_buffers);
6005 std::span<const GPUTextureSamplerBinding> texture_sampler_bindings)
6007 SDL_BindGPUFragmentSamplers(render_pass,
6009 texture_sampler_bindings.data(),
6010 texture_sampler_bindings.size());
6015 std::span<const GPUTextureSamplerBinding> texture_sampler_bindings)
6018 m_gPURenderPass, first_slot, texture_sampler_bindings);
6043 SDL_BindGPUFragmentStorageTextures(
6044 render_pass, first_slot, storage_textures.
data(), storage_textures.
size());
6052 m_gPURenderPass, first_slot, storage_textures);
6077 SDL_BindGPUFragmentStorageBuffers(
6078 render_pass, first_slot, storage_buffers.
data(), storage_buffers.
size());
6086 m_gPURenderPass, first_slot, storage_buffers);
6119 SDL_DrawGPUIndexedPrimitives(render_pass,
6167 SDL_DrawGPUPrimitives(
6168 render_pass, num_vertices, num_instances, first_vertex, first_instance);
6177 m_gPURenderPass, num_vertices, num_instances, first_vertex, first_instance);
6201 SDL_DrawGPUPrimitivesIndirect(render_pass, buffer, offset, draw_count);
6232 SDL_DrawGPUIndexedPrimitivesIndirect(render_pass, buffer, offset, draw_count);
6240 m_gPURenderPass, buffer, offset, draw_count);
6255 SDL_EndGPURenderPass(render_pass);
6295 std::span<const GPUStorageTextureReadWriteBinding> storage_texture_bindings,
6296 std::span<const GPUStorageBufferReadWriteBinding> storage_buffer_bindings)
6298 return SDL_BeginGPUComputePass(command_buffer,
6299 storage_texture_bindings.data(),
6300 storage_texture_bindings.size(),
6301 storage_buffer_bindings.data(),
6302 storage_buffer_bindings.size());
6306 std::span<const GPUStorageTextureReadWriteBinding> storage_texture_bindings,
6307 std::span<const GPUStorageBufferReadWriteBinding> storage_buffer_bindings)
6310 m_gPUCommandBuffer, storage_texture_bindings, storage_buffer_bindings);
6324 SDL_BindGPUComputePipeline(compute_pass, compute_pipeline);
6351 std::span<const GPUTextureSamplerBinding> texture_sampler_bindings)
6353 SDL_BindGPUComputeSamplers(compute_pass,
6355 texture_sampler_bindings.data(),
6356 texture_sampler_bindings.size());
6361 std::span<const GPUTextureSamplerBinding> texture_sampler_bindings)
6364 m_gPUComputePass, first_slot, texture_sampler_bindings);
6389 SDL_BindGPUComputeStorageTextures(
6390 compute_pass, first_slot, storage_textures.
data(), storage_textures.
size());
6398 m_gPUComputePass, first_slot, storage_textures);
6423 SDL_BindGPUComputeStorageBuffers(
6424 compute_pass, first_slot, storage_buffers.
data(), storage_buffers.
size());
6432 m_gPUComputePass, first_slot, storage_buffers);
6460 SDL_DispatchGPUCompute(
6461 compute_pass, groupcount_x, groupcount_y, groupcount_z);
6469 m_gPUComputePass, groupcount_x, groupcount_y, groupcount_z);
6493 SDL_DispatchGPUComputeIndirect(compute_pass, buffer, offset);
6513 SDL_EndGPUComputePass(compute_pass);
6537 return SDL_MapGPUTransferBuffer(device, transfer_buffer, cycle);
6557 SDL_UnmapGPUTransferBuffer(device, transfer_buffer);
6579 return SDL_BeginGPUCopyPass(command_buffer);
6609 SDL_UploadToGPUTexture(copy_pass, &source, &destination, cycle);
6638 SDL_UploadToGPUBuffer(copy_pass, &source, &destination, cycle);
6673 SDL_CopyGPUTextureToTexture(copy_pass, &source, &destination, w, h, d, cycle);
6685 m_gPUCopyPass, source, destination, w, h, d, cycle);
6709 SDL_CopyGPUBufferToBuffer(copy_pass, &source, &destination, size, cycle);
6738 SDL_DownloadFromGPUTexture(copy_pass, &source, &destination);
6764 SDL_DownloadFromGPUBuffer(copy_pass, &source, &destination);
6783 SDL_EndGPUCopyPass(copy_pass);
6801 SDL_GenerateMipmapsForGPUTexture(command_buffer, texture);
6822 SDL_BlitGPUTexture(command_buffer, &info);
6849 return SDL_WindowSupportsGPUSwapchainComposition(
6850 device, window, swapchain_composition);
6858 m_resource, window, swapchain_composition);
6879 return SDL_WindowSupportsGPUPresentMode(device, window, present_mode);
6915 CheckError(SDL_ClaimWindowForGPUDevice(device, window));
6936 SDL_ReleaseWindowFromGPUDevice(device, window);
6972 return SDL_SetGPUSwapchainParameters(
6973 device, window, swapchain_composition, present_mode);
6982 m_resource, window, swapchain_composition, present_mode);
7011 Uint32 allowed_frames_in_flight)
7013 return SDL_SetGPUAllowedFramesInFlight(device, allowed_frames_in_flight);
7035 return SDL_GetGPUSwapchainTextureFormat(device, window);
7090 Uint32* swapchain_texture_width =
nullptr,
7091 Uint32* swapchain_texture_height =
nullptr)
7094 CheckError(SDL_AcquireGPUSwapchainTexture(command_buffer,
7097 swapchain_texture_width,
7098 swapchain_texture_height));
7104 Uint32* swapchain_texture_width,
7105 Uint32* swapchain_texture_height)
7109 swapchain_texture_width,
7110 swapchain_texture_height);
7131 CheckError(SDL_WaitForGPUSwapchain(device, window));
7182 Uint32* swapchain_texture_width =
nullptr,
7183 Uint32* swapchain_texture_height =
nullptr)
7186 CheckError(SDL_WaitAndAcquireGPUSwapchainTexture(command_buffer,
7189 swapchain_texture_width,
7190 swapchain_texture_height));
7196 Uint32* swapchain_texture_width,
7197 Uint32* swapchain_texture_height)
7201 swapchain_texture_width,
7202 swapchain_texture_height);
7227 CheckError(SDL_SubmitGPUCommandBuffer(command_buffer));
7262 return SDL_SubmitGPUCommandBufferAndAcquireFence(command_buffer);
7293 CheckError(SDL_CancelGPUCommandBuffer(command_buffer));
7334 std::span<GPUFence* const> fences)
7337 SDL_WaitForGPUFences(device, wait_all, fences.data(), fences.size()));
7341 std::span<GPUFence* const> fences)
7359 return SDL_QueryGPUFence(device, fence);
7381 SDL_ReleaseGPUFence(device, fence);
7401 return SDL_GPUTextureFormatTexelBlockSize(format);
7420 return SDL_GPUTextureSupportsFormat(device, format, type, usage);
7444 return SDL_GPUTextureSupportsSampleCount(device, format, sample_count);
7467 Uint32 depth_or_layer_count)
7469 return SDL_CalculateGPUTextureFormatSize(
7470 format, width, height, depth_or_layer_count);
7473#ifdef SDL_PLATFORM_GDK
An opaque handle representing a buffer.
Definition: SDL3pp_gpu.h:434
GPUBuffer(GPUDeviceParam device, const GPUBufferCreateInfo &createinfo)
Creates a buffer object to be used in graphics or compute workflows.
Definition: SDL3pp_gpu.h:491
constexpr GPUBuffer(GPUBufferRaw gPUBuffer={})
Wraps GPUBuffer.
Definition: SDL3pp_gpu.h:443
An opaque handle representing a command buffer.
Definition: SDL3pp_gpu.h:1969
constexpr GPUCommandBuffer(GPUCommandBufferRaw gPUCommandBuffer={})
Wraps GPUCommandBuffer.
Definition: SDL3pp_gpu.h:1978
An opaque handle representing a compute pass.
Definition: SDL3pp_gpu.h:1464
constexpr GPUComputePass(GPUComputePassRaw gPUComputePass={})
Wraps GPUComputePass.
Definition: SDL3pp_gpu.h:1473
An opaque handle representing a compute pipeline.
Definition: SDL3pp_gpu.h:923
constexpr GPUComputePipeline(GPUComputePipelineRaw gPUComputePipeline={})
Wraps GPUComputePipeline.
Definition: SDL3pp_gpu.h:932
GPUComputePipeline(GPUDeviceParam device, const GPUComputePipelineCreateInfo &createinfo)
Creates a pipeline object to be used in a compute workflow.
Definition: SDL3pp_gpu.h:982
An opaque handle representing a copy pass.
Definition: SDL3pp_gpu.h:1684
constexpr GPUCopyPass(GPUCopyPassRaw gPUCopyPass={})
Wraps GPUCopyPass.
Definition: SDL3pp_gpu.h:1693
An opaque handle representing the SDL_GPU context.
Definition: SDL3pp_gpu.h:2953
GPUDevice(PropertiesParam props)
Creates a GPU context.
Definition: SDL3pp_gpu.h:3052
constexpr auto operator<=>(const GPUDevice &other) const =default
Comparison.
GPUDevice & operator=(GPUDevice other)
Assignment operator.
Definition: SDL3pp_gpu.h:3061
~GPUDevice()
Destructor.
Definition: SDL3pp_gpu.h:3058
constexpr GPUDevice(const GPUDevice &other)=delete
Copy constructor.
constexpr GPUDevice(const GPUDeviceRaw resource)
Constructs from GPUDeviceParam.
Definition: SDL3pp_gpu.h:2967
constexpr bool operator==(std::nullptr_t _) const
Comparison.
Definition: SDL3pp_gpu.h:3082
GPUDevice(GPUShaderFormat format_flags, bool debug_mode, StringParam name)
Creates a GPU context.
Definition: SDL3pp_gpu.h:3003
constexpr GPUDeviceRaw release()
Retrieves underlying GPUDeviceRaw and clear this.
Definition: SDL3pp_gpu.h:3071
constexpr GPUDevice()=default
Default ctor.
constexpr GPUDeviceRaw get() const
Retrieves underlying GPUDeviceRaw.
Definition: SDL3pp_gpu.h:3068
constexpr GPUDevice(GPUDevice &&other)
Move constructor.
Definition: SDL3pp_gpu.h:2976
An opaque handle representing a graphics pipeline.
Definition: SDL3pp_gpu.h:1028
constexpr GPUGraphicsPipeline(GPUGraphicsPipelineRaw gPUGraphicsPipeline={})
Wraps GPUGraphicsPipeline.
Definition: SDL3pp_gpu.h:1037
GPUGraphicsPipeline(GPUDeviceParam device, const GPUGraphicsPipelineCreateInfo &createinfo)
Creates a pipeline object to be used in a graphics workflow.
Definition: SDL3pp_gpu.h:1063
An opaque handle representing a render pass.
Definition: SDL3pp_gpu.h:1137
constexpr GPURenderPass(GPURenderPassRaw gPURenderPass={})
Wraps GPURenderPass.
Definition: SDL3pp_gpu.h:1146
An opaque handle representing a sampler.
Definition: SDL3pp_gpu.h:734
constexpr GPUSampler(GPUSamplerRaw gPUSampler={})
Wraps GPUSampler.
Definition: SDL3pp_gpu.h:743
GPUSampler(GPUDeviceParam device, const GPUSamplerCreateInfo &createinfo)
Creates a sampler object to be used when binding textures in a graphics workflow.
Definition: SDL3pp_gpu.h:769
An opaque handle representing a compiled shader object.
Definition: SDL3pp_gpu.h:801
GPUShader(GPUDeviceParam device, const GPUShaderCreateInfo &createinfo)
Creates a shader to be used when creating a graphics pipeline.
Definition: SDL3pp_gpu.h:888
constexpr GPUShader(GPUShaderRaw gPUShader={})
Wraps GPUShader.
Definition: SDL3pp_gpu.h:810
An opaque handle representing a texture.
Definition: SDL3pp_gpu.h:625
GPUTexture(GPUDeviceParam device, const GPUTextureCreateInfo &createinfo)
Creates a texture object to be used in graphics or compute workflows.
Definition: SDL3pp_gpu.h:694
constexpr GPUTexture(GPUTextureRaw gPUTexture={})
Wraps GPUTexture.
Definition: SDL3pp_gpu.h:634
An opaque handle representing a transfer buffer.
Definition: SDL3pp_gpu.h:530
constexpr GPUTransferBuffer(GPUTransferBufferRaw gPUTransferBuffer={})
Wraps GPUTransferBuffer.
Definition: SDL3pp_gpu.h:539
GPUTransferBuffer(GPUDeviceParam device, const GPUTransferBufferCreateInfo &createinfo)
Creates a transfer buffer to be used when uploading to or downloading from graphics resources.
Definition: SDL3pp_gpu.h:571
Optional-like shim for references.
Definition: SDL3pp_optionalRef.h:20
Source byte stream.
Definition: SDL3pp_strings.h:239
constexpr size_t size_bytes() const
Retrieves contained size in bytes.
Definition: SDL3pp_strings.h:303
constexpr const char * data() const
Retrieves contained data.
Definition: SDL3pp_strings.h:306
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:197
void Destroy()
Destroys a GPU context previously returned by GPUDevice.GPUDevice.
Definition: SDL3pp_gpu.h:4793
SDL_GPUDepthStencilState GPUDepthStencilState
A structure specifying the parameters of the graphics pipeline depth stencil state.
Definition: SDL3pp_gpu.h:4615
GPUShaderFormat GetGPUShaderFormats(GPUDeviceParam device)
Returns the supported shader formats for this GPU context.
Definition: SDL3pp_gpu.h:4852
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_UINT
GPU_VERTEXELEMENTFORMAT_UINT.
Definition: SDL3pp_gpu.h:4079
constexpr GPUShaderFormat GPU_SHADERFORMAT_DXIL
DXIL SM6_0 shaders for D3D12.
Definition: SDL3pp_gpu.h:2361
GPUTransferBuffer CreateGPUTransferBuffer(GPUDeviceParam device, const GPUTransferBufferCreateInfo &createinfo)
Creates a transfer buffer to be used when uploading to or downloading from graphics resources.
Definition: SDL3pp_gpu.h:5276
void Dispatch(Uint32 groupcount_x, Uint32 groupcount_y, Uint32 groupcount_z)
Dispatches compute work.
Definition: SDL3pp_gpu.h:6464
void PushComputeUniformData(Uint32 slot_index, SourceBytes data)
Pushes data to a uniform slot on the command buffer.
Definition: SDL3pp_gpu.h:5687
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_12x12_UNORM_SRGB
GPU_TEXTUREFORMAT_ASTC_12x12_UNORM_SRGB.
Definition: SDL3pp_gpu.h:2802
constexpr GPUFillMode GPU_FILLMODE_FILL
Polygons will be rendered via rasterization.
Definition: SDL3pp_gpu.h:4183
constexpr GPUShaderFormat GPU_SHADERFORMAT_PRIVATE
Shaders for NDA'd platforms.
Definition: SDL3pp_gpu.h:2352
SDL_GPUTexture * GPUTextureRaw
Alias to raw representation for GPUTexture.
Definition: SDL3pp_gpu.h:346
constexpr GPUCompareOp GPU_COMPAREOP_LESS_OR_EQUAL
The comparison evaluates reference <= test.
Definition: SDL3pp_gpu.h:4248
constexpr GPUSwapchainComposition GPU_SWAPCHAINCOMPOSITION_HDR10_ST2084
GPU_SWAPCHAINCOMPOSITION_HDR10_ST2084.
Definition: SDL3pp_gpu.h:2406
const char * GetDriver()
Returns the name of the backend used to create this GPU context.
Definition: SDL3pp_gpu.h:4838
int GetNumGPUDrivers()
Get the number of GPU drivers compiled into SDL.
Definition: SDL3pp_gpu.h:4804
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:5649
GPUTexture WaitAndAcquireGPUSwapchainTexture(GPUCommandBuffer command_buffer, WindowParam 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:7179
constexpr GPUIndexElementSize GPU_INDEXELEMENTSIZE_32BIT
The index elements are 32-bit.
Definition: SDL3pp_gpu.h:1112
SDL_GPUTextureRegion GPUTextureRegion
A structure specifying a region of a texture.
Definition: SDL3pp_gpu.h:1647
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:6038
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_6x6_FLOAT
GPU_TEXTUREFORMAT_ASTC_6x6_FLOAT.
Definition: SDL3pp_gpu.h:2817
constexpr GPUStencilOp GPU_STENCILOP_ZERO
Sets the value to 0.
Definition: SDL3pp_gpu.h:4281
constexpr GPUCompareOp GPU_COMPAREOP_ALWAYS
The comparison always evaluates true.
Definition: SDL3pp_gpu.h:4262
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R8_UNORM
GPU_TEXTUREFORMAT_R8_UNORM.
Definition: SDL3pp_gpu.h:2538
constexpr GPUBlendOp GPU_BLENDOP_MIN
min(source, destination)
Definition: SDL3pp_gpu.h:4332
SDL_GPUVertexAttribute GPUVertexAttribute
A structure specifying a vertex attribute.
Definition: SDL3pp_gpu.h:4547
GPUTexture AcquireGPUSwapchainTexture(GPUCommandBuffer command_buffer, WindowParam window, Uint32 *swapchain_texture_width=nullptr, Uint32 *swapchain_texture_height=nullptr)
Acquire a texture to use in presentation.
Definition: SDL3pp_gpu.h:7087
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:6227
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_FLOAT2
GPU_VERTEXELEMENTFORMAT_FLOAT2.
Definition: SDL3pp_gpu.h:4094
void WaitForFences(bool wait_all, std::span< GPUFence *const > fences)
Blocks the thread until the given fences are signaled.
Definition: SDL3pp_gpu.h:7340
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:6665
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R32G32_FLOAT
GPU_TEXTUREFORMAT_R32G32_FLOAT.
Definition: SDL3pp_gpu.h:2625
constexpr GPUTextureUsageFlags GPU_TEXTUREUSAGE_COMPUTE_STORAGE_SIMULTANEOUS_READ_WRITE
Texture supports reads and writes in the same compute shader.
Definition: SDL3pp_gpu.h:2920
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_USHORT2_NORM
GPU_VERTEXELEMENTFORMAT_USHORT2_NORM.
Definition: SDL3pp_gpu.h:4145
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R8G8_INT
GPU_TEXTUREFORMAT_R8G8_INT.
Definition: SDL3pp_gpu.h:2664
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_6x6_UNORM
GPU_TEXTUREFORMAT_ASTC_6x6_UNORM.
Definition: SDL3pp_gpu.h:2733
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R16G16B16A16_INT
GPU_TEXTUREFORMAT_R16G16B16A16_INT.
Definition: SDL3pp_gpu.h:2676
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_12x12_UNORM
GPU_TEXTUREFORMAT_ASTC_12x12_UNORM.
Definition: SDL3pp_gpu.h:2760
void BlitGPUTexture(GPUCommandBuffer command_buffer, const GPUBlitInfo &info)
Blits from a source texture region to a destination texture region.
Definition: SDL3pp_gpu.h:6819
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:7259
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_4x4_FLOAT
GPU_TEXTUREFORMAT_ASTC_4x4_FLOAT.
Definition: SDL3pp_gpu.h:2805
constexpr GPUStencilOp GPU_STENCILOP_INVERT
Bitwise-inverts the current value.
Definition: SDL3pp_gpu.h:4295
constexpr GPUFrontFace GPU_FRONTFACE_CLOCKWISE
A triangle with clockwise vertex winding will be considered front-facing.
Definition: SDL3pp_gpu.h:4225
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_D32_FLOAT
GPU_TEXTUREFORMAT_D32_FLOAT.
Definition: SDL3pp_gpu.h:2712
bool SetAllowedFramesInFlight(Uint32 allowed_frames_in_flight)
Configures the maximum allowed number of frames in flight.
Definition: SDL3pp_gpu.h:7016
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_FLOAT3
GPU_VERTEXELEMENTFORMAT_FLOAT3.
Definition: SDL3pp_gpu.h:4097
constexpr GPUCompareOp GPU_COMPAREOP_GREATER_OR_EQUAL
The comparison evaluates reference >= test.
Definition: SDL3pp_gpu.h:4258
void ReleaseShader(GPUShader shader)
Frees the given shader as soon as it is safe to do so.
Definition: SDL3pp_gpu.h:5543
void ReleaseTransferBuffer(GPUTransferBuffer transfer_buffer)
Frees the given transfer buffer as soon as it is safe to do so.
Definition: SDL3pp_gpu.h:5501
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_8x6_FLOAT
GPU_TEXTUREFORMAT_ASTC_8x6_FLOAT.
Definition: SDL3pp_gpu.h:2823
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:6127
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_UBYTE2
GPU_VERTEXELEMENTFORMAT_UBYTE2.
Definition: SDL3pp_gpu.h:4109
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:5935
constexpr GPUPrimitiveType GPU_PRIMITIVETYPE_LINELIST
A series of separate lines.
Definition: SDL3pp_gpu.h:3890
GPUSampler CreateSampler(const GPUSamplerCreateInfo &createinfo)
Creates a sampler object to be used when binding textures in a graphics workflow.
Definition: SDL3pp_gpu.h:4995
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_USHORT4_NORM
GPU_VERTEXELEMENTFORMAT_USHORT4_NORM.
Definition: SDL3pp_gpu.h:4148
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R32_UINT
GPU_TEXTUREFORMAT_R32_UINT.
Definition: SDL3pp_gpu.h:2652
void PushGPUDebugGroup(GPUCommandBuffer command_buffer, StringParam name)
Begins a debug group with an arbitrary name.
Definition: SDL3pp_gpu.h:5396
void ReleaseGPUSampler(GPUDeviceParam device, GPUSampler sampler)
Frees the given sampler as soon as it is safe to do so.
Definition: SDL3pp_gpu.h:5455
bool GPUTextureSupportsSampleCount(GPUDeviceParam device, GPUTextureFormat format, GPUSampleCount sample_count)
Determines if a sample count for a texture format is supported.
Definition: SDL3pp_gpu.h:7440
void * MapTransferBuffer(GPUTransferBuffer transfer_buffer, bool cycle)
Maps a transfer buffer into application address space.
Definition: SDL3pp_gpu.h:6540
void SetGPUBufferName(GPUDeviceParam device, GPUBuffer buffer, StringParam text)
Sets an arbitrary string constant to label a buffer.
Definition: SDL3pp_gpu.h:5313
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_8x6_UNORM
GPU_TEXTUREFORMAT_ASTC_8x6_UNORM.
Definition: SDL3pp_gpu.h:2739
void SetGPUViewport(GPURenderPass render_pass, const GPUViewport &viewport)
Sets the current viewport state on a command buffer.
Definition: SDL3pp_gpu.h:5765
constexpr GPUBlendFactor GPU_BLENDFACTOR_ONE_MINUS_CONSTANT_COLOR
1 - blend constant
Definition: SDL3pp_gpu.h:4385
GPUComputePipeline CreateComputePipeline(const GPUComputePipelineCreateInfo &createinfo)
Creates a pipeline object to be used in a compute workflow.
Definition: SDL3pp_gpu.h:4914
void SetScissor(const RectRaw &scissor)
Sets the current scissor state on a command buffer.
Definition: SDL3pp_gpu.h:5789
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:7423
constexpr GPUCompareOp GPU_COMPAREOP_NOT_EQUAL
The comparison evaluates reference != test.
Definition: SDL3pp_gpu.h:4255
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_USHORT2
GPU_VERTEXELEMENTFORMAT_USHORT2.
Definition: SDL3pp_gpu.h:4133
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R16G16B16A16_UNORM
GPU_TEXTUREFORMAT_R16G16B16A16_UNORM.
Definition: SDL3pp_gpu.h:2553
SDL_GPUColorTargetInfo GPUColorTargetInfo
A structure specifying the parameters of a color target used by a render pass.
Definition: SDL3pp_gpu.h:1856
SDL_GPUCommandBuffer * GPUCommandBufferRaw
Alias to raw representation for GPUCommandBuffer.
Definition: SDL3pp_gpu.h:376
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R16G16_UINT
GPU_TEXTUREFORMAT_R16G16_UINT.
Definition: SDL3pp_gpu.h:2646
SDL_GPUCompareOp GPUCompareOp
Specifies a comparison operator for depth, stencil and sampler operations.
Definition: SDL3pp_gpu.h:4234
void CancelGPUCommandBuffer(GPUCommandBuffer command_buffer)
Cancels a command buffer.
Definition: SDL3pp_gpu.h:7291
SDL_GPUDepthStencilTargetInfo GPUDepthStencilTargetInfo
A structure specifying the parameters of a depth-stencil target used by a render pass.
Definition: SDL3pp_gpu.h:1902
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:4317
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_10x8_UNORM
GPU_TEXTUREFORMAT_ASTC_10x8_UNORM.
Definition: SDL3pp_gpu.h:2751
constexpr GPUPrimitiveType GPU_PRIMITIVETYPE_TRIANGLELIST
A series of separate triangles.
Definition: SDL3pp_gpu.h:3884
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_A8_UNORM
GPU_TEXTUREFORMAT_A8_UNORM.
Definition: SDL3pp_gpu.h:2535
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_INT4
GPU_VERTEXELEMENTFORMAT_INT4.
Definition: SDL3pp_gpu.h:4076
SDL_GPUGraphicsPipelineTargetInfo GPUGraphicsPipelineTargetInfo
A structure specifying the descriptions of render targets used in a graphics pipeline.
Definition: SDL3pp_gpu.h:4637
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_5x5_FLOAT
GPU_TEXTUREFORMAT_ASTC_5x5_FLOAT.
Definition: SDL3pp_gpu.h:2811
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R32_FLOAT
GPU_TEXTUREFORMAT_R32_FLOAT.
Definition: SDL3pp_gpu.h:2622
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:3945
constexpr GPUSamplerAddressMode GPU_SAMPLERADDRESSMODE_CLAMP_TO_EDGE
Specifies that the coordinates will clamp to the 0-1 range.
Definition: SDL3pp_gpu.h:4462
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R16G16_UNORM
GPU_TEXTUREFORMAT_R16G16_UNORM.
Definition: SDL3pp_gpu.h:2550
SDL_GPUGraphicsPipeline * GPUGraphicsPipelineRaw
Alias to raw representation for GPUGraphicsPipeline.
Definition: SDL3pp_gpu.h:370
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:6161
Uint32 GPUBufferUsageFlags
Specifies how a buffer is intended to be used by the client.
Definition: SDL3pp_gpu.h:3999
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_8x6_UNORM_SRGB
GPU_TEXTUREFORMAT_ASTC_8x6_UNORM_SRGB.
Definition: SDL3pp_gpu.h:2781
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:6359
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_6x5_FLOAT
GPU_TEXTUREFORMAT_ASTC_6x5_FLOAT.
Definition: SDL3pp_gpu.h:2814
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_BC1_RGBA_UNORM
GPU_TEXTUREFORMAT_BC1_RGBA_UNORM.
Definition: SDL3pp_gpu.h:2571
void BlitTexture(const GPUBlitInfo &info)
Blits from a source texture region to a destination texture region.
Definition: SDL3pp_gpu.h:6825
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:6741
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:6013
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R32G32_UINT
GPU_TEXTUREFORMAT_R32G32_UINT.
Definition: SDL3pp_gpu.h:2655
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:5869
SDL_GPUSampler * GPUSamplerRaw
Alias to raw representation for GPUSampler.
Definition: SDL3pp_gpu.h:352
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_BC3_RGBA_UNORM
GPU_TEXTUREFORMAT_BC3_RGBA_UNORM.
Definition: SDL3pp_gpu.h:2577
void SetGPUTextureName(GPUDeviceParam device, GPUTexture texture, StringParam text)
Sets an arbitrary string constant to label a texture.
Definition: SDL3pp_gpu.h:5342
bool GPUTextureSupportsFormat(GPUDeviceParam device, GPUTextureFormat format, GPUTextureType type, GPUTextureUsageFlags usage)
Determines whether a texture format is supported for a given type and usage.
Definition: SDL3pp_gpu.h:7415
Uint32 GPUTextureFormatTexelBlockSize(GPUTextureFormat format)
Obtains the texel block size for a texture format.
Definition: SDL3pp_gpu.h:7399
SDL_GPUColorTargetDescription GPUColorTargetDescription
A structure specifying the parameters of color targets used in a graphics pipeline.
Definition: SDL3pp_gpu.h:4625
constexpr GPUTextureUsageFlags GPU_TEXTUREUSAGE_GRAPHICS_STORAGE_READ
Texture supports storage reads in graphics stages.
Definition: SDL3pp_gpu.h:2903
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:6427
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_SHORT2
GPU_VERTEXELEMENTFORMAT_SHORT2.
Definition: SDL3pp_gpu.h:4127
void ReleaseGPUFence(GPUDeviceParam device, GPUFence *fence)
Releases a fence obtained from GPUCommandBuffer.SubmitAndAcquireFence.
Definition: SDL3pp_gpu.h:7379
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R8_SNORM
GPU_TEXTUREFORMAT_R8_SNORM.
Definition: SDL3pp_gpu.h:2595
constexpr GPUTextureUsageFlags GPU_TEXTUREUSAGE_SAMPLER
Texture supports sampling.
Definition: SDL3pp_gpu.h:2893
GPUCommandBuffer AcquireCommandBuffer()
Acquire a command buffer.
Definition: SDL3pp_gpu.h:5599
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_10x8_UNORM_SRGB
GPU_TEXTUREFORMAT_ASTC_10x8_UNORM_SRGB.
Definition: SDL3pp_gpu.h:2793
void Cancel()
Cancels a command buffer.
Definition: SDL3pp_gpu.h:7296
void ClaimWindowForGPUDevice(GPUDeviceParam device, WindowParam window)
Claims a window, creating a swapchain structure for it.
Definition: SDL3pp_gpu.h:6913
SDL_GPUIndirectDispatchCommand GPUIndirectDispatchCommand
A structure specifying the parameters of an indexed dispatch command.
Definition: SDL3pp_gpu.h:4513
constexpr GPUColorComponentFlags GPU_COLORCOMPONENT_A
the alpha component
Definition: SDL3pp_gpu.h:4410
constexpr GPUBufferUsageFlags GPU_BUFFERUSAGE_COMPUTE_STORAGE_WRITE
Buffer supports storage writes in the compute stage.
Definition: SDL3pp_gpu.h:4019
constexpr GPUSamplerMipmapMode GPU_SAMPLERMIPMAPMODE_LINEAR
Linear filtering.
Definition: SDL3pp_gpu.h:4440
constexpr GPUShaderFormat GPU_SHADERFORMAT_DXBC
DXBC SM5_1 shaders for D3D12.
Definition: SDL3pp_gpu.h:2358
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_10x6_FLOAT
GPU_TEXTUREFORMAT_ASTC_10x6_FLOAT.
Definition: SDL3pp_gpu.h:2832
void SetStencilReference(Uint8 reference)
Sets the current stencil reference value on a command buffer.
Definition: SDL3pp_gpu.h:5829
void ReleaseGPUComputePipeline(GPUDeviceParam device, GPUComputePipeline compute_pipeline)
Frees the given compute pipeline as soon as it is safe to do so.
Definition: SDL3pp_gpu.h:5516
SDL_GPUVertexBufferDescription GPUVertexBufferDescription
A structure specifying the parameters of vertex buffers used in a graphics pipeline.
Definition: SDL3pp_gpu.h:4533
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R11G11B10_UFLOAT
GPU_TEXTUREFORMAT_R11G11B10_UFLOAT.
Definition: SDL3pp_gpu.h:2631
constexpr GPUTextureUsageFlags GPU_TEXTUREUSAGE_COLOR_TARGET
Texture is a color render target.
Definition: SDL3pp_gpu.h:2896
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_INT
GPU_VERTEXELEMENTFORMAT_INT.
Definition: SDL3pp_gpu.h:4067
constexpr GPUStencilOp GPU_STENCILOP_REPLACE
Sets the value to reference.
Definition: SDL3pp_gpu.h:4284
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R16_INT
GPU_TEXTUREFORMAT_R16_INT.
Definition: SDL3pp_gpu.h:2670
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_D24_UNORM_S8_UINT
GPU_TEXTUREFORMAT_D24_UNORM_S8_UINT.
Definition: SDL3pp_gpu.h:2715
void BindFragmentStorageTextures(Uint32 first_slot, SpanRef< const GPUTextureRaw > storage_textures)
Binds storage textures for use on the fragment shader.
Definition: SDL3pp_gpu.h:6047
SDL_GPUMultisampleState GPUMultisampleState
A structure specifying the parameters of the graphics pipeline multisample state.
Definition: SDL3pp_gpu.h:4605
bool QueryFence(GPUFence *fence)
Checks the status of a fence.
Definition: SDL3pp_gpu.h:7362
void UploadToBuffer(const GPUTransferBufferLocation &source, const GPUBufferRegion &destination, bool cycle)
Uploads data from a transfer buffer to a buffer.
Definition: SDL3pp_gpu.h:6641
SDL_GPUIndexedIndirectDrawCommand GPUIndexedIndirectDrawCommand
A structure specifying the parameters of an indexed indirect draw command.
Definition: SDL3pp_gpu.h:4504
constexpr GPUBlendFactor GPU_BLENDFACTOR_DST_COLOR
destination color
Definition: SDL3pp_gpu.h:4364
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R16G16B16A16_FLOAT
GPU_TEXTUREFORMAT_R16G16B16A16_FLOAT.
Definition: SDL3pp_gpu.h:2619
void ReleaseComputePipeline(GPUComputePipeline compute_pipeline)
Frees the given compute pipeline as soon as it is safe to do so.
Definition: SDL3pp_gpu.h:5522
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:5910
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:6204
void ReleaseWindowFromGPUDevice(GPUDeviceParam device, WindowParam window)
Unclaims a window, destroying its swapchain structure.
Definition: SDL3pp_gpu.h:6933
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_FLOAT4
GPU_VERTEXELEMENTFORMAT_FLOAT4.
Definition: SDL3pp_gpu.h:4100
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_10x10_FLOAT
GPU_TEXTUREFORMAT_ASTC_10x10_FLOAT.
Definition: SDL3pp_gpu.h:2838
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:4349
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_6x5_UNORM_SRGB
GPU_TEXTUREFORMAT_ASTC_6x5_UNORM_SRGB.
Definition: SDL3pp_gpu.h:2772
GPUBuffer CreateBuffer(const GPUBufferCreateInfo &createinfo)
Creates a buffer object to be used in graphics or compute workflows.
Definition: SDL3pp_gpu.h:5238
bool QueryGPUFence(GPUDeviceParam device, GPUFence *fence)
Checks the status of a fence.
Definition: SDL3pp_gpu.h:7357
GPUCopyPass BeginCopyPass()
Begins a copy pass on a command buffer.
Definition: SDL3pp_gpu.h:6582
SDL_GPUSampleCount GPUSampleCount
Specifies the sample count of a texture.
Definition: SDL3pp_gpu.h:2934
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_10x8_FLOAT
GPU_TEXTUREFORMAT_ASTC_10x8_FLOAT.
Definition: SDL3pp_gpu.h:2835
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R32G32_INT
GPU_TEXTUREFORMAT_R32G32_INT.
Definition: SDL3pp_gpu.h:2682
constexpr GPUBlendOp GPU_BLENDOP_INVALID
GPU_BLENDOP_INVALID.
Definition: SDL3pp_gpu.h:4319
constexpr GPUSwapchainComposition GPU_SWAPCHAINCOMPOSITION_HDR_EXTENDED_LINEAR
GPU_SWAPCHAINCOMPOSITION_HDR_EXTENDED_LINEAR.
Definition: SDL3pp_gpu.h:2403
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:5717
SDL_GPUFillMode GPUFillMode
Specifies the fill mode of the graphics pipeline.
Definition: SDL3pp_gpu.h:4181
SDL_GPUColorTargetBlendState GPUColorTargetBlendState
A structure specifying the blend state of a color target.
Definition: SDL3pp_gpu.h:4577
void BindVertexStorageTextures(Uint32 first_slot, SpanRef< const GPUTextureRaw > storage_textures)
Binds storage textures for use on the vertex shader.
Definition: SDL3pp_gpu.h:5944
GPUDevice CreateGPUDeviceWithProperties(PropertiesParam props)
Creates a GPU context.
Definition: SDL3pp_gpu.h:4741
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:6112
constexpr GPUPresentMode GPU_PRESENTMODE_IMMEDIATE
GPU_PRESENTMODE_IMMEDIATE.
Definition: SDL3pp_gpu.h:2439
constexpr GPUBufferUsageFlags GPU_BUFFERUSAGE_VERTEX
Buffer is a vertex buffer.
Definition: SDL3pp_gpu.h:4001
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R8G8B8A8_UINT
GPU_TEXTUREFORMAT_R8G8B8A8_UINT.
Definition: SDL3pp_gpu.h:2640
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_BC4_R_UNORM
GPU_TEXTUREFORMAT_BC4_R_UNORM.
Definition: SDL3pp_gpu.h:2580
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:5899
Uint32 GPUTextureUsageFlags
Specifies how a texture is intended to be used by the client.
Definition: SDL3pp_gpu.h:2891
constexpr GPUBufferUsageFlags GPU_BUFFERUSAGE_GRAPHICS_STORAGE_READ
Buffer supports storage reads in graphics stages.
Definition: SDL3pp_gpu.h:4010
constexpr GPUCubeMapFace GPU_CUBEMAPFACE_POSITIVEZ
GPU_CUBEMAPFACE_POSITIVEZ.
Definition: SDL3pp_gpu.h:3976
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_4x4_UNORM_SRGB
GPU_TEXTUREFORMAT_ASTC_4x4_UNORM_SRGB.
Definition: SDL3pp_gpu.h:2763
void DispatchIndirect(GPUBuffer buffer, Uint32 offset)
Dispatches compute work with parameters set from a buffer.
Definition: SDL3pp_gpu.h:6496
constexpr GPUCompareOp GPU_COMPAREOP_EQUAL
The comparison evaluates reference == test.
Definition: SDL3pp_gpu.h:4245
SDL_GPUTextureLocation GPUTextureLocation
A structure specifying a location in a texture.
Definition: SDL3pp_gpu.h:1623
SDL_GPUShaderStage GPUShaderStage
Specifies which stage a shader program corresponds to.
Definition: SDL3pp_gpu.h:4047
void SetViewport(const GPUViewport &viewport)
Sets the current viewport state on a command buffer.
Definition: SDL3pp_gpu.h:5771
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_SHORT2_NORM
GPU_VERTEXELEMENTFORMAT_SHORT2_NORM.
Definition: SDL3pp_gpu.h:4139
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_BYTE4
GPU_VERTEXELEMENTFORMAT_BYTE4.
Definition: SDL3pp_gpu.h:4106
SDL_GPUSamplerMipmapMode GPUSamplerMipmapMode
Specifies a mipmap mode used by a sampler.
Definition: SDL3pp_gpu.h:4435
constexpr GPUSwapchainComposition GPU_SWAPCHAINCOMPOSITION_SDR_LINEAR
GPU_SWAPCHAINCOMPOSITION_SDR_LINEAR.
Definition: SDL3pp_gpu.h:2400
SDL_GPUGraphicsPipelineCreateInfo GPUGraphicsPipelineCreateInfo
A structure specifying the parameters of a graphics pipeline state.
Definition: SDL3pp_gpu.h:1014
GPUTextureFormat GetSwapchainTextureFormat(WindowParam window)
Obtains the texture format of the swapchain for the given window.
Definition: SDL3pp_gpu.h:7038
constexpr GPUBlendFactor GPU_BLENDFACTOR_ONE_MINUS_SRC_COLOR
1 - source color
Definition: SDL3pp_gpu.h:4361
SDL_GPUTextureType GPUTextureType
Specifies the type of a texture.
Definition: SDL3pp_gpu.h:2854
Uint32 GPUShaderFormat
Specifies the format of shader code.
Definition: SDL3pp_gpu.h:2347
Uint8 GPUColorComponentFlags
Specifies which color components are written in a graphics pipeline.
Definition: SDL3pp_gpu.h:4399
SDL_GPUTextureTransferInfo GPUTextureTransferInfo
A structure specifying parameters related to transferring data to or from a texture.
Definition: SDL3pp_gpu.h:1658
void ReleaseFence(GPUFence *fence)
Releases a fence obtained from GPUCommandBuffer.SubmitAndAcquireFence.
Definition: SDL3pp_gpu.h:7384
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_B5G5R5A1_UNORM
GPU_TEXTUREFORMAT_B5G5R5A1_UNORM.
Definition: SDL3pp_gpu.h:2562
GPUGraphicsPipeline CreateGraphicsPipeline(const GPUGraphicsPipelineCreateInfo &createinfo)
Creates a pipeline object to be used in a graphics workflow.
Definition: SDL3pp_gpu.h:4955
void Submit()
Submits a command buffer so its commands can be processed on the GPU.
Definition: SDL3pp_gpu.h:7230
bool SetGPUSwapchainParameters(GPUDeviceParam device, WindowParam window, GPUSwapchainComposition swapchain_composition, GPUPresentMode present_mode)
Changes the swapchain parameters for the given claimed window.
Definition: SDL3pp_gpu.h:6966
constexpr GPUFilter GPU_FILTER_LINEAR
Linear filtering.
Definition: SDL3pp_gpu.h:4425
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:6321
void BindFragmentStorageBuffers(Uint32 first_slot, SpanRef< const GPUBufferRaw > storage_buffers)
Binds storage buffers for use on the fragment shader.
Definition: SDL3pp_gpu.h:6081
constexpr GPUBlendFactor GPU_BLENDFACTOR_CONSTANT_COLOR
blend constant
Definition: SDL3pp_gpu.h:4382
constexpr GPUVertexInputRate GPU_VERTEXINPUTRATE_VERTEX
Attribute addressing is a function of the vertex index.
Definition: SDL3pp_gpu.h:4167
SDL_GPUPresentMode GPUPresentMode
Specifies the timing that will be used to present swapchain textures to the OS.
Definition: SDL3pp_gpu.h:2434
SDL_GPUBufferBinding GPUBufferBinding
A structure specifying parameters in a buffer binding call.
Definition: SDL3pp_gpu.h:1098
void UnmapTransferBuffer(GPUTransferBuffer transfer_buffer)
Unmaps a previously mapped transfer buffer.
Definition: SDL3pp_gpu.h:6560
void ReleaseSampler(GPUSampler sampler)
Frees the given sampler as soon as it is safe to do so.
Definition: SDL3pp_gpu.h:5460
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R8G8B8A8_UNORM
GPU_TEXTUREFORMAT_R8G8B8A8_UNORM.
Definition: SDL3pp_gpu.h:2544
SDL_GPUBufferLocation GPUBufferLocation
A structure specifying a location in a buffer.
Definition: SDL3pp_gpu.h:1634
GPUCommandBuffer AcquireGPUCommandBuffer(GPUDeviceParam device)
Acquire a command buffer.
Definition: SDL3pp_gpu.h:5594
SDL_GPUCopyPass * GPUCopyPassRaw
Alias to raw representation for GPUCopyPass.
Definition: SDL3pp_gpu.h:394
void GDKSuspendGPU()
Call this to suspend GPU operation on Xbox when you receive the EVENT_DID_ENTER_BACKGROUND event.
Definition: SDL3pp_gpu.h:7490
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R8G8B8A8_INT
GPU_TEXTUREFORMAT_R8G8B8A8_INT.
Definition: SDL3pp_gpu.h:2667
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:6676
constexpr GPUTransferBufferUsage GPU_TRANSFERBUFFERUSAGE_UPLOAD
GPU_TRANSFERBUFFERUSAGE_UPLOAD.
Definition: SDL3pp_gpu.h:4034
SDL_GPUBufferCreateInfo GPUBufferCreateInfo
A structure specifying the parameters of a buffer.
Definition: SDL3pp_gpu.h:410
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R32G32B32A32_FLOAT
GPU_TEXTUREFORMAT_R32G32B32A32_FLOAT.
Definition: SDL3pp_gpu.h:2628
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:3952
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R16_SNORM
GPU_TEXTUREFORMAT_R16_SNORM.
Definition: SDL3pp_gpu.h:2604
constexpr GPUPresentMode GPU_PRESENTMODE_VSYNC
GPU_PRESENTMODE_VSYNC.
Definition: SDL3pp_gpu.h:2436
SDL_GPUShader * GPUShaderRaw
Alias to raw representation for GPUShader.
Definition: SDL3pp_gpu.h:358
constexpr GPUSamplerAddressMode GPU_SAMPLERADDRESSMODE_REPEAT
Specifies that the coordinates will wrap around.
Definition: SDL3pp_gpu.h:4453
SDL_GPUBuffer * GPUBufferRaw
Alias to raw representation for GPUBuffer.
Definition: SDL3pp_gpu.h:334
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_HALF4
GPU_VERTEXELEMENTFORMAT_HALF4.
Definition: SDL3pp_gpu.h:4154
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_UINT3
GPU_VERTEXELEMENTFORMAT_UINT3.
Definition: SDL3pp_gpu.h:4085
constexpr GPUCubeMapFace GPU_CUBEMAPFACE_NEGATIVEX
GPU_CUBEMAPFACE_NEGATIVEX.
Definition: SDL3pp_gpu.h:3967
void End()
Ends the current compute pass.
Definition: SDL3pp_gpu.h:6516
constexpr GPUShaderStage GPU_SHADERSTAGE_VERTEX
GPU_SHADERSTAGE_VERTEX.
Definition: SDL3pp_gpu.h:4049
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_D24_UNORM
GPU_TEXTUREFORMAT_D24_UNORM.
Definition: SDL3pp_gpu.h:2709
SDL_GPUCullMode GPUCullMode
Specifies the facing direction in which triangle faces will be culled.
Definition: SDL3pp_gpu.h:4196
void SetGPUStencilReference(GPURenderPass render_pass, Uint8 reference)
Sets the current stencil reference value on a command buffer.
Definition: SDL3pp_gpu.h:5824
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:6072
void WaitForSwapchain(WindowParam window)
Blocks the thread until a swapchain texture is available to be acquired.
Definition: SDL3pp_gpu.h:7134
constexpr GPUCompareOp GPU_COMPAREOP_LESS
The comparison evaluates reference < test.
Definition: SDL3pp_gpu.h:4242
constexpr GPUTextureUsageFlags GPU_TEXTUREUSAGE_DEPTH_STENCIL_TARGET
Texture is a depth stencil target.
Definition: SDL3pp_gpu.h:2899
void DispatchGPUCompute(GPUComputePass compute_pass, Uint32 groupcount_x, Uint32 groupcount_y, Uint32 groupcount_z)
Dispatches compute work.
Definition: SDL3pp_gpu.h:6455
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_INT2
GPU_VERTEXELEMENTFORMAT_INT2.
Definition: SDL3pp_gpu.h:4070
constexpr GPUPrimitiveType GPU_PRIMITIVETYPE_POINTLIST
A series of separate points.
Definition: SDL3pp_gpu.h:3896
constexpr GPUBlendFactor GPU_BLENDFACTOR_ONE_MINUS_DST_COLOR
1 - destination color
Definition: SDL3pp_gpu.h:4367
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_BC7_RGBA_UNORM
GPU_TEXTUREFORMAT_BC7_RGBA_UNORM.
Definition: SDL3pp_gpu.h:2586
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:6293
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:6002
GPUGraphicsPipeline CreateGPUGraphicsPipeline(GPUDeviceParam device, const GPUGraphicsPipelineCreateInfo &createinfo)
Creates a pipeline object to be used in a graphics workflow.
Definition: SDL3pp_gpu.h:4948
constexpr GPUVertexInputRate GPU_VERTEXINPUTRATE_INSTANCE
Attribute addressing is a function of the instance index.
Definition: SDL3pp_gpu.h:4171
SDL_GPUStencilOpState GPUStencilOpState
A structure specifying the stencil operation state of a graphics pipeline.
Definition: SDL3pp_gpu.h:4568
SDL_GPUVertexElementFormat GPUVertexElementFormat
Specifies the format of a vertex attribute.
Definition: SDL3pp_gpu.h:4062
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_BC6H_RGB_FLOAT
GPU_TEXTUREFORMAT_BC6H_RGB_FLOAT.
Definition: SDL3pp_gpu.h:2589
constexpr GPUShaderStage GPU_SHADERSTAGE_FRAGMENT
GPU_SHADERSTAGE_FRAGMENT.
Definition: SDL3pp_gpu.h:4052
constexpr GPUCompareOp GPU_COMPAREOP_INVALID
GPU_COMPAREOP_INVALID.
Definition: SDL3pp_gpu.h:4236
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_BC5_RG_UNORM
GPU_TEXTUREFORMAT_BC5_RG_UNORM.
Definition: SDL3pp_gpu.h:2583
bool WindowSupportsSwapchainComposition(WindowParam window, GPUSwapchainComposition swapchain_composition)
Determines whether a swapchain composition is supported by the window.
Definition: SDL3pp_gpu.h:6853
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:5876
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:5969
void UnmapGPUTransferBuffer(GPUDeviceParam device, GPUTransferBuffer transfer_buffer)
Unmaps a previously mapped transfer buffer.
Definition: SDL3pp_gpu.h:6554
constexpr GPUCubeMapFace GPU_CUBEMAPFACE_NEGATIVEZ
GPU_CUBEMAPFACE_NEGATIVEZ.
Definition: SDL3pp_gpu.h:3979
constexpr GPUPrimitiveType GPU_PRIMITIVETYPE_LINESTRIP
A series of connected lines.
Definition: SDL3pp_gpu.h:3893
GPUBuffer CreateGPUBuffer(GPUDeviceParam device, const GPUBufferCreateInfo &createinfo)
Creates a buffer object to be used in graphics or compute workflows.
Definition: SDL3pp_gpu.h:5232
constexpr GPUStencilOp GPU_STENCILOP_DECREMENT_AND_WRAP
Decrements the current value and wraps to the maximum value.
Definition: SDL3pp_gpu.h:4303
void ReleaseWindow(WindowParam window)
Unclaims a window, destroying its swapchain structure.
Definition: SDL3pp_gpu.h:6939
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R8_UINT
GPU_TEXTUREFORMAT_R8_UINT.
Definition: SDL3pp_gpu.h:2634
SDL_GPUTransferBuffer * GPUTransferBufferRaw
Alias to raw representation for GPUTransferBuffer.
Definition: SDL3pp_gpu.h:340
constexpr GPUSampleCount GPU_SAMPLECOUNT_4
MSAA 4x.
Definition: SDL3pp_gpu.h:2941
SDL_GPUTextureSamplerBinding GPUTextureSamplerBinding
A structure specifying parameters in a sampler binding call.
Definition: SDL3pp_gpu.h:1123
constexpr GPUTransferBufferUsage GPU_TRANSFERBUFFERUSAGE_DOWNLOAD
GPU_TRANSFERBUFFERUSAGE_DOWNLOAD.
Definition: SDL3pp_gpu.h:4037
void ReleaseGPUGraphicsPipeline(GPUDeviceParam device, GPUGraphicsPipeline graphics_pipeline)
Frees the given graphics pipeline as soon as it is safe to do so.
Definition: SDL3pp_gpu.h:5558
constexpr GPUStencilOp GPU_STENCILOP_INVALID
GPU_STENCILOP_INVALID.
Definition: SDL3pp_gpu.h:4275
constexpr GPUTextureType GPU_TEXTURETYPE_CUBE_ARRAY
The texture is a cube array image.
Definition: SDL3pp_gpu.h:2868
SDL_GPUTextureCreateInfo GPUTextureCreateInfo
A structure specifying the parameters of a texture.
Definition: SDL3pp_gpu.h:604
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R32_INT
GPU_TEXTUREFORMAT_R32_INT.
Definition: SDL3pp_gpu.h:2679
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:6604
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:6760
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_5x4_FLOAT
GPU_TEXTUREFORMAT_ASTC_5x4_FLOAT.
Definition: SDL3pp_gpu.h:2808
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_BC1_RGBA_UNORM_SRGB
GPU_TEXTUREFORMAT_BC1_RGBA_UNORM_SRGB.
Definition: SDL3pp_gpu.h:2694
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_12x10_FLOAT
GPU_TEXTUREFORMAT_ASTC_12x10_FLOAT.
Definition: SDL3pp_gpu.h:2841
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_B8G8R8A8_UNORM_SRGB
GPU_TEXTUREFORMAT_B8G8R8A8_UNORM_SRGB.
Definition: SDL3pp_gpu.h:2691
constexpr GPUColorComponentFlags GPU_COLORCOMPONENT_B
the blue component
Definition: SDL3pp_gpu.h:4407
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_8x8_UNORM_SRGB
GPU_TEXTUREFORMAT_ASTC_8x8_UNORM_SRGB.
Definition: SDL3pp_gpu.h:2784
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R16G16B16A16_SNORM
GPU_TEXTUREFORMAT_R16G16B16A16_SNORM.
Definition: SDL3pp_gpu.h:2610
constexpr GPUSampleCount GPU_SAMPLECOUNT_8
MSAA 8x.
Definition: SDL3pp_gpu.h:2943
constexpr GPUTextureType GPU_TEXTURETYPE_3D
The texture is a 3-dimensional image.
Definition: SDL3pp_gpu.h:2862
bool SetSwapchainParameters(WindowParam window, GPUSwapchainComposition swapchain_composition, GPUPresentMode present_mode)
Changes the swapchain parameters for the given claimed window.
Definition: SDL3pp_gpu.h:6976
constexpr GPUBufferUsageFlags GPU_BUFFERUSAGE_INDEX
Buffer is an index buffer.
Definition: SDL3pp_gpu.h:4004
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_BC6H_RGB_UFLOAT
GPU_TEXTUREFORMAT_BC6H_RGB_UFLOAT.
Definition: SDL3pp_gpu.h:2592
constexpr GPUIndexElementSize GPU_INDEXELEMENTSIZE_16BIT
The index elements are 16-bit.
Definition: SDL3pp_gpu.h:1109
constexpr GPUStencilOp GPU_STENCILOP_DECREMENT_AND_CLAMP
Decrements the current value and clamps to 0.
Definition: SDL3pp_gpu.h:4291
bool WindowSupportsGPUSwapchainComposition(GPUDeviceParam device, WindowParam window, GPUSwapchainComposition swapchain_composition)
Determines whether a swapchain composition is supported by the window.
Definition: SDL3pp_gpu.h:6844
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_UINT4
GPU_VERTEXELEMENTFORMAT_UINT4.
Definition: SDL3pp_gpu.h:4088
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R16_UINT
GPU_TEXTUREFORMAT_R16_UINT.
Definition: SDL3pp_gpu.h:2643
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R16G16_FLOAT
GPU_TEXTUREFORMAT_R16G16_FLOAT.
Definition: SDL3pp_gpu.h:2616
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:5852
constexpr GPUSampleCount GPU_SAMPLECOUNT_2
MSAA 2x.
Definition: SDL3pp_gpu.h:2939
constexpr GPUTextureUsageFlags GPU_TEXTUREUSAGE_COMPUTE_STORAGE_WRITE
Texture supports storage writes in the compute stage.
Definition: SDL3pp_gpu.h:2912
void End()
Ends the given render pass.
Definition: SDL3pp_gpu.h:6258
void BindVertexStorageBuffers(Uint32 first_slot, SpanRef< const GPUBufferRaw > storage_buffers)
Binds storage buffers for use on the vertex shader.
Definition: SDL3pp_gpu.h:5978
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:6305
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_8x5_UNORM
GPU_TEXTUREFORMAT_ASTC_8x5_UNORM.
Definition: SDL3pp_gpu.h:2736
void ReleaseTexture(GPUTexture texture)
Frees the given texture as soon as it is safe to do so.
Definition: SDL3pp_gpu.h:5440
constexpr GPUCullMode GPU_CULLMODE_FRONT
Front-facing triangles are culled.
Definition: SDL3pp_gpu.h:4201
constexpr GPUCubeMapFace GPU_CUBEMAPFACE_POSITIVEY
GPU_CUBEMAPFACE_POSITIVEY.
Definition: SDL3pp_gpu.h:3970
constexpr GPUCompareOp GPU_COMPAREOP_GREATER
The comparison evaluates reference > test.
Definition: SDL3pp_gpu.h:4252
SDL_GPUCubeMapFace GPUCubeMapFace
Specifies the face of a cube map.
Definition: SDL3pp_gpu.h:3962
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R16_FLOAT
GPU_TEXTUREFORMAT_R16_FLOAT.
Definition: SDL3pp_gpu.h:2613
SDL_GPUSamplerCreateInfo GPUSamplerCreateInfo
A structure specifying the parameters of a sampler.
Definition: SDL3pp_gpu.h:721
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_12x12_FLOAT
GPU_TEXTUREFORMAT_ASTC_12x12_FLOAT.
Definition: SDL3pp_gpu.h:2844
void GenerateMipmapsForTexture(GPUTexture texture)
Generates mipmaps for the given texture.
Definition: SDL3pp_gpu.h:6804
constexpr GPUFrontFace GPU_FRONTFACE_COUNTER_CLOCKWISE
A triangle with counter-clockwise vertex winding will be considered front-facing.
Definition: SDL3pp_gpu.h:4221
SDL_GPUComputePipelineCreateInfo GPUComputePipelineCreateInfo
A structure specifying the parameters of a compute pipeline state.
Definition: SDL3pp_gpu.h:909
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:5619
GPUTexture CreateGPUTexture(GPUDeviceParam device, const GPUTextureCreateInfo &createinfo)
Creates a texture object to be used in graphics or compute workflows.
Definition: SDL3pp_gpu.h:5149
constexpr GPUColorComponentFlags GPU_COLORCOMPONENT_R
the red component
Definition: SDL3pp_gpu.h:4401
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_10x5_FLOAT
GPU_TEXTUREFORMAT_ASTC_10x5_FLOAT.
Definition: SDL3pp_gpu.h:2829
constexpr GPUSamplerMipmapMode GPU_SAMPLERMIPMAPMODE_NEAREST
Point filtering.
Definition: SDL3pp_gpu.h:4437
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_BYTE2_NORM
GPU_VERTEXELEMENTFORMAT_BYTE2_NORM.
Definition: SDL3pp_gpu.h:4115
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_HALF2
GPU_VERTEXELEMENTFORMAT_HALF2.
Definition: SDL3pp_gpu.h:4151
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_6x5_UNORM
GPU_TEXTUREFORMAT_ASTC_6x5_UNORM.
Definition: SDL3pp_gpu.h:2730
constexpr GPUCullMode GPU_CULLMODE_BACK
Back-facing triangles are culled.
Definition: SDL3pp_gpu.h:4204
GPUTransferBuffer CreateTransferBuffer(const GPUTransferBufferCreateInfo &createinfo)
Creates a transfer buffer to be used when uploading to or downloading from graphics resources.
Definition: SDL3pp_gpu.h:5283
void SetBufferName(GPUBuffer buffer, StringParam text)
Sets an arbitrary string constant to label a buffer.
Definition: SDL3pp_gpu.h:5320
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_UINT2
GPU_VERTEXELEMENTFORMAT_UINT2.
Definition: SDL3pp_gpu.h:4082
SDL_GPUTransferBufferLocation GPUTransferBufferLocation
A structure specifying a location in a transfer buffer.
Definition: SDL3pp_gpu.h:1670
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_10x6_UNORM
GPU_TEXTUREFORMAT_ASTC_10x6_UNORM.
Definition: SDL3pp_gpu.h:2748
void ReleaseGPUTexture(GPUDeviceParam device, GPUTexture texture)
Frees the given texture as soon as it is safe to do so.
Definition: SDL3pp_gpu.h:5435
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R8G8B8A8_SNORM
GPU_TEXTUREFORMAT_R8G8B8A8_SNORM.
Definition: SDL3pp_gpu.h:2601
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_UBYTE4
GPU_VERTEXELEMENTFORMAT_UBYTE4.
Definition: SDL3pp_gpu.h:4112
GPUShader CreateGPUShader(GPUDeviceParam device, const GPUShaderCreateInfo &createinfo)
Creates a shader to be used when creating a graphics pipeline.
Definition: SDL3pp_gpu.h:5077
void PushFragmentUniformData(Uint32 slot_index, SourceBytes data)
Pushes data to a fragment uniform slot on the command buffer.
Definition: SDL3pp_gpu.h:5657
GPUComputePipeline CreateGPUComputePipeline(GPUDeviceParam device, const GPUComputePipelineCreateInfo &createinfo)
Creates a pipeline object to be used in a compute workflow.
Definition: SDL3pp_gpu.h:4907
void GDKResumeGPU(GPUDeviceParam device)
Call this to resume GPU operation on Xbox when you receive the EVENT_WILL_ENTER_FOREGROUND event.
Definition: SDL3pp_gpu.h:7505
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:6633
void PushGPUComputeUniformData(GPUCommandBuffer command_buffer, Uint32 slot_index, SourceBytes data)
Pushes data to a uniform slot on the command buffer.
Definition: SDL3pp_gpu.h:5679
constexpr GPUBlendFactor GPU_BLENDFACTOR_INVALID
GPU_BLENDFACTOR_INVALID.
Definition: SDL3pp_gpu.h:4351
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:7464
SDL_GPUStorageTextureReadWriteBinding GPUStorageTextureReadWriteBinding
A structure specifying parameters related to binding textures in a compute pass.
Definition: SDL3pp_gpu.h:1912
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_INVALID
GPU_VERTEXELEMENTFORMAT_INVALID.
Definition: SDL3pp_gpu.h:4064
SDL_GPUSwapchainComposition GPUSwapchainComposition
Specifies the texture format and colorspace of the swapchain textures.
Definition: SDL3pp_gpu.h:2395
SDL_GPUPrimitiveType GPUPrimitiveType
Specifies the primitive topology of a graphics pipeline.
Definition: SDL3pp_gpu.h:3882
void PushVertexUniformData(Uint32 slot_index, SourceBytes data)
Pushes data to a vertex uniform slot on the command buffer.
Definition: SDL3pp_gpu.h:5627
constexpr GPUStencilOp GPU_STENCILOP_INCREMENT_AND_CLAMP
Increments the current value and clamps to the maximum value.
Definition: SDL3pp_gpu.h:4288
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_SHORT4_NORM
GPU_VERTEXELEMENTFORMAT_SHORT4_NORM.
Definition: SDL3pp_gpu.h:4142
SDL_GPUTransferBufferUsage GPUTransferBufferUsage
Specifies how a transfer buffer is intended to be used by the client.
Definition: SDL3pp_gpu.h:4032
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_D32_FLOAT_S8_UINT
GPU_TEXTUREFORMAT_D32_FLOAT_S8_UINT.
Definition: SDL3pp_gpu.h:2718
void GenerateMipmapsForGPUTexture(GPUCommandBuffer command_buffer, GPUTexture texture)
Generates mipmaps for the given texture.
Definition: SDL3pp_gpu.h:6798
constexpr GPUTextureType GPU_TEXTURETYPE_2D
The texture is a 2-dimensional image.
Definition: SDL3pp_gpu.h:2856
GPUTexture AcquireSwapchainTexture(WindowParam window, Uint32 *swapchain_texture_width=nullptr, Uint32 *swapchain_texture_height=nullptr)
Acquire a texture to use in presentation.
Definition: SDL3pp_gpu.h:7102
void CopyBufferToBuffer(const GPUBufferLocation &source, const GPUBufferLocation &destination, Uint32 size, bool cycle)
Performs a buffer-to-buffer copy.
Definition: SDL3pp_gpu.h:6712
constexpr GPUBlendFactor GPU_BLENDFACTOR_SRC_COLOR
source color
Definition: SDL3pp_gpu.h:4358
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_BC2_RGBA_UNORM
GPU_TEXTUREFORMAT_BC2_RGBA_UNORM.
Definition: SDL3pp_gpu.h:2574
void ReleaseGPUBuffer(GPUDeviceParam device, GPUBuffer buffer)
Frees the given buffer as soon as it is safe to do so.
Definition: SDL3pp_gpu.h:5475
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R8G8B8A8_UNORM_SRGB
GPU_TEXTUREFORMAT_R8G8B8A8_UNORM_SRGB.
Definition: SDL3pp_gpu.h:2688
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_B4G4R4A4_UNORM
GPU_TEXTUREFORMAT_B4G4R4A4_UNORM.
Definition: SDL3pp_gpu.h:2565
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_12x10_UNORM_SRGB
GPU_TEXTUREFORMAT_ASTC_12x10_UNORM_SRGB.
Definition: SDL3pp_gpu.h:2799
void DestroyGPUDevice(GPUDeviceRaw device)
Destroys a GPU context previously returned by GPUDevice.GPUDevice.
Definition: SDL3pp_gpu.h:4788
SDL_GPUBlitInfo GPUBlitInfo
A structure containing parameters for a blit command.
Definition: SDL3pp_gpu.h:1931
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_10x10_UNORM
GPU_TEXTUREFORMAT_ASTC_10x10_UNORM.
Definition: SDL3pp_gpu.h:2754
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_5x4_UNORM_SRGB
GPU_TEXTUREFORMAT_ASTC_5x4_UNORM_SRGB.
Definition: SDL3pp_gpu.h:2766
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:3929
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_12x10_UNORM
GPU_TEXTUREFORMAT_ASTC_12x10_UNORM.
Definition: SDL3pp_gpu.h:2757
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:5746
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_5x5_UNORM_SRGB
GPU_TEXTUREFORMAT_ASTC_5x5_UNORM_SRGB.
Definition: SDL3pp_gpu.h:2769
constexpr GPUShaderFormat GPU_SHADERFORMAT_METALLIB
Precompiled metallib shaders for Metal.
Definition: SDL3pp_gpu.h:2367
constexpr GPUFillMode GPU_FILLMODE_LINE
Polygon edges will be drawn as line segments.
Definition: SDL3pp_gpu.h:4186
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:6703
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_4x4_UNORM
GPU_TEXTUREFORMAT_ASTC_4x4_UNORM.
Definition: SDL3pp_gpu.h:2721
void WaitForGPUSwapchain(GPUDeviceParam device, WindowParam window)
Blocks the thread until a swapchain texture is available to be acquired.
Definition: SDL3pp_gpu.h:7129
constexpr GPUPrimitiveType GPU_PRIMITIVETYPE_TRIANGLESTRIP
A series of connected triangles.
Definition: SDL3pp_gpu.h:3887
constexpr GPUShaderFormat GPU_SHADERFORMAT_MSL
MSL shaders for Metal.
Definition: SDL3pp_gpu.h:2364
void PopDebugGroup()
Ends the most-recently pushed debug group.
Definition: SDL3pp_gpu.h:5420
void UploadToTexture(const GPUTextureTransferInfo &source, const GPUTextureRegion &destination, bool cycle)
Uploads data from a transfer buffer to a texture.
Definition: SDL3pp_gpu.h:6612
void ReleaseBuffer(GPUBuffer buffer)
Frees the given buffer as soon as it is safe to do so.
Definition: SDL3pp_gpu.h:5480
void ReleaseGPUShader(GPUDeviceParam device, GPUShader shader)
Frees the given shader as soon as it is safe to do so.
Definition: SDL3pp_gpu.h:5538
constexpr GPUCompareOp GPU_COMPAREOP_NEVER
The comparison always evaluates false.
Definition: SDL3pp_gpu.h:4239
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R16G16_SNORM
GPU_TEXTUREFORMAT_R16G16_SNORM.
Definition: SDL3pp_gpu.h:2607
void SetBlendConstants(FColorRaw blend_constants)
Sets the current blend constants on a command buffer.
Definition: SDL3pp_gpu.h:5811
constexpr GPUBlendFactor GPU_BLENDFACTOR_SRC_ALPHA
source alpha
Definition: SDL3pp_gpu.h:4370
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_8x5_UNORM_SRGB
GPU_TEXTUREFORMAT_ASTC_8x5_UNORM_SRGB.
Definition: SDL3pp_gpu.h:2778
void SetTextureName(GPUTexture texture, StringParam text)
Sets an arbitrary string constant to label a texture.
Definition: SDL3pp_gpu.h:5349
GPUDevice CreateGPUDevice(GPUShaderFormat format_flags, bool debug_mode, StringParam name)
Creates a GPU context.
Definition: SDL3pp_gpu.h:4691
void * MapGPUTransferBuffer(GPUDeviceParam device, GPUTransferBuffer transfer_buffer, bool cycle)
Maps a transfer buffer into application address space.
Definition: SDL3pp_gpu.h:6533
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_6x6_UNORM_SRGB
GPU_TEXTUREFORMAT_ASTC_6x6_UNORM_SRGB.
Definition: SDL3pp_gpu.h:2775
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R10G10B10A2_UNORM
GPU_TEXTUREFORMAT_R10G10B10A2_UNORM.
Definition: SDL3pp_gpu.h:2556
void BindPipeline(GPUGraphicsPipeline graphics_pipeline)
Binds a graphics pipeline on a render pass to be used in rendering.
Definition: SDL3pp_gpu.h:5752
void WaitForGPUFences(GPUDeviceParam device, bool wait_all, std::span< GPUFence *const > fences)
Blocks the thread until the given fences are signaled.
Definition: SDL3pp_gpu.h:7332
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_B8G8R8A8_UNORM
GPU_TEXTUREFORMAT_B8G8R8A8_UNORM.
Definition: SDL3pp_gpu.h:2568
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:6196
SDL_GPUTransferBufferCreateInfo GPUTransferBufferCreateInfo
A structure specifying the parameters of a transfer buffer.
Definition: SDL3pp_gpu.h:511
constexpr GPULoadOp GPU_LOADOP_DONT_CARE
The previous contents of the texture need not be preserved.
Definition: SDL3pp_gpu.h:3919
constexpr GPUBlendFactor GPU_BLENDFACTOR_ZERO
0
Definition: SDL3pp_gpu.h:4354
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R8G8_SNORM
GPU_TEXTUREFORMAT_R8G8_SNORM.
Definition: SDL3pp_gpu.h:2598
SDL_GPURenderPass * GPURenderPassRaw
Alias to raw representation for GPURenderPass.
Definition: SDL3pp_gpu.h:382
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R32G32B32A32_INT
GPU_TEXTUREFORMAT_R32G32B32A32_INT.
Definition: SDL3pp_gpu.h:2685
constexpr GPUBlendOp GPU_BLENDOP_MAX
max(source, destination)
Definition: SDL3pp_gpu.h:4335
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R16G16_INT
GPU_TEXTUREFORMAT_R16G16_INT.
Definition: SDL3pp_gpu.h:2673
GPUTextureFormat GetGPUSwapchainTextureFormat(GPUDeviceParam device, WindowParam window)
Obtains the texture format of the swapchain for the given window.
Definition: SDL3pp_gpu.h:7032
SDL_GPUBufferRegion GPUBufferRegion
A structure specifying a region of a buffer.
Definition: SDL3pp_gpu.h:1612
GPUShader CreateShader(const GPUShaderCreateInfo &createinfo)
Creates a shader to be used when creating a graphics pipeline.
Definition: SDL3pp_gpu.h:5083
const char * GetGPUDriver(int index)
Get the name of a built in GPU driver.
Definition: SDL3pp_gpu.h:4823
SDL_GPUTextureFormat GPUTextureFormat
Specifies the pixel format of a texture.
Definition: SDL3pp_gpu.h:2530
constexpr GPUStoreOp GPU_STOREOP_STORE
The contents generated during the render pass will be written to memory.
Definition: SDL3pp_gpu.h:3932
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_BC2_RGBA_UNORM_SRGB
GPU_TEXTUREFORMAT_BC2_RGBA_UNORM_SRGB.
Definition: SDL3pp_gpu.h:2697
void InsertDebugLabel(StringParam text)
Inserts an arbitrary string label into the command buffer callstream.
Definition: SDL3pp_gpu.h:5370
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_BC7_RGBA_UNORM_SRGB
GPU_TEXTUREFORMAT_BC7_RGBA_UNORM_SRGB.
Definition: SDL3pp_gpu.h:2703
GPUTexture CreateTexture(const GPUTextureCreateInfo &createinfo)
Creates a texture object to be used in graphics or compute workflows.
Definition: SDL3pp_gpu.h:5155
constexpr GPUBlendFactor GPU_BLENDFACTOR_SRC_ALPHA_SATURATE
min(source alpha, 1 - destination alpha)
Definition: SDL3pp_gpu.h:4388
constexpr GPUBlendFactor GPU_BLENDFACTOR_ONE_MINUS_DST_ALPHA
1 - destination alpha
Definition: SDL3pp_gpu.h:4379
void BindPipeline(GPUComputePipeline compute_pipeline)
Binds a compute pipeline on a command buffer for use in compute dispatch.
Definition: SDL3pp_gpu.h:6327
void GDKSuspendGPU(GPUDeviceParam device)
Call this to suspend GPU operation on Xbox when you receive the EVENT_DID_ENTER_BACKGROUND event.
Definition: SDL3pp_gpu.h:7488
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_BYTE2
GPU_VERTEXELEMENTFORMAT_BYTE2.
Definition: SDL3pp_gpu.h:4103
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_8x8_UNORM
GPU_TEXTUREFORMAT_ASTC_8x8_UNORM.
Definition: SDL3pp_gpu.h:2742
bool TextureSupportsSampleCount(GPUTextureFormat format, GPUSampleCount sample_count)
Determines if a sample count for a texture format is supported.
Definition: SDL3pp_gpu.h:7447
constexpr GPUStencilOp GPU_STENCILOP_KEEP
Keeps the current value.
Definition: SDL3pp_gpu.h:4278
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_INT3
GPU_VERTEXELEMENTFORMAT_INT3.
Definition: SDL3pp_gpu.h:4073
SDL_GPUDevice * GPUDeviceRaw
Alias to raw representation for GPUDevice.
Definition: SDL3pp_gpu.h:301
constexpr GPUBufferUsageFlags GPU_BUFFERUSAGE_COMPUTE_STORAGE_READ
Buffer supports storage reads in the compute stage.
Definition: SDL3pp_gpu.h:4015
void ClaimWindow(WindowParam window)
Claims a window, creating a swapchain structure for it.
Definition: SDL3pp_gpu.h:6918
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:6767
const char * GetGPUDeviceDriver(GPUDeviceParam device)
Returns the name of the backend used to create this GPU context.
Definition: SDL3pp_gpu.h:4833
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_10x5_UNORM_SRGB
GPU_TEXTUREFORMAT_ASTC_10x5_UNORM_SRGB.
Definition: SDL3pp_gpu.h:2787
void SetGPUBlendConstants(GPURenderPass render_pass, FColorRaw blend_constants)
Sets the current blend constants on a command buffer.
Definition: SDL3pp_gpu.h:5805
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R16G16B16A16_UINT
GPU_TEXTUREFORMAT_R16G16B16A16_UINT.
Definition: SDL3pp_gpu.h:2649
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_8x8_FLOAT
GPU_TEXTUREFORMAT_ASTC_8x8_FLOAT.
Definition: SDL3pp_gpu.h:2826
SDL_GPUStorageBufferReadWriteBinding GPUStorageBufferReadWriteBinding
A structure specifying parameters related to binding buffers in a compute pass.
Definition: SDL3pp_gpu.h:1922
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_5x4_UNORM
GPU_TEXTUREFORMAT_ASTC_5x4_UNORM.
Definition: SDL3pp_gpu.h:2724
void End()
Ends the current copy pass.
Definition: SDL3pp_gpu.h:6786
void ReleaseGraphicsPipeline(GPUGraphicsPipeline graphics_pipeline)
Frees the given graphics pipeline as soon as it is safe to do so.
Definition: SDL3pp_gpu.h:5564
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_USHORT4
GPU_VERTEXELEMENTFORMAT_USHORT4.
Definition: SDL3pp_gpu.h:4136
GPUFence * SubmitAndAcquireFence()
Submits a command buffer so its commands can be processed on the GPU, and acquires a fence associated...
Definition: SDL3pp_gpu.h:7265
constexpr GPUShaderFormat GPU_SHADERFORMAT_INVALID
INVALID.
Definition: SDL3pp_gpu.h:2349
void WaitForIdle()
Blocks the thread until the GPU is completely idle.
Definition: SDL3pp_gpu.h:7316
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:6418
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_B5G6R5_UNORM
GPU_TEXTUREFORMAT_B5G6R5_UNORM.
Definition: SDL3pp_gpu.h:2559
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:6734
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R8G8_UNORM
GPU_TEXTUREFORMAT_R8G8_UNORM.
Definition: SDL3pp_gpu.h:2541
bool WindowSupportsGPUPresentMode(GPUDeviceParam device, WindowParam window, GPUPresentMode present_mode)
Determines whether a presentation mode is supported by the window.
Definition: SDL3pp_gpu.h:6875
void EndGPURenderPass(GPURenderPass render_pass)
Ends the given render pass.
Definition: SDL3pp_gpu.h:6253
constexpr GPUBlendOp GPU_BLENDOP_REVERSE_SUBTRACT
(destination * destination_factor) - (source * source_factor)
Definition: SDL3pp_gpu.h:4329
constexpr GPUColorComponentFlags GPU_COLORCOMPONENT_G
the green component
Definition: SDL3pp_gpu.h:4404
constexpr GPUSwapchainComposition GPU_SWAPCHAINCOMPOSITION_SDR
GPU_SWAPCHAINCOMPOSITION_SDR.
Definition: SDL3pp_gpu.h:2397
constexpr GPUBufferUsageFlags GPU_BUFFERUSAGE_INDIRECT
Buffer is an indirect buffer.
Definition: SDL3pp_gpu.h:4007
SDL_GPURasterizerState GPURasterizerState
A structure specifying the parameters of the graphics pipeline rasterizer state.
Definition: SDL3pp_gpu.h:4595
void WaitForGPUIdle(GPUDeviceParam device)
Blocks the thread until the GPU is completely idle.
Definition: SDL3pp_gpu.h:7311
bool GPUSupportsProperties(PropertiesParam props)
Checks for GPU runtime support.
Definition: SDL3pp_gpu.h:4668
constexpr GPUTextureUsageFlags GPU_TEXTUREUSAGE_COMPUTE_STORAGE_READ
Texture supports storage reads in the compute stage.
Definition: SDL3pp_gpu.h:2908
constexpr GPUBlendOp GPU_BLENDOP_SUBTRACT
(source * source_factor) - (destination * destination_factor)
Definition: SDL3pp_gpu.h:4326
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R8_INT
GPU_TEXTUREFORMAT_R8_INT.
Definition: SDL3pp_gpu.h:2661
void InsertGPUDebugLabel(GPUCommandBuffer command_buffer, StringParam text)
Inserts an arbitrary string label into the command buffer callstream.
Definition: SDL3pp_gpu.h:5364
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R16_UNORM
GPU_TEXTUREFORMAT_R16_UNORM.
Definition: SDL3pp_gpu.h:2547
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_10x10_UNORM_SRGB
GPU_TEXTUREFORMAT_ASTC_10x10_UNORM_SRGB.
Definition: SDL3pp_gpu.h:2796
void EndGPUCopyPass(GPUCopyPass copy_pass)
Ends the current copy pass.
Definition: SDL3pp_gpu.h:6781
SDL_GPUSamplerAddressMode GPUSamplerAddressMode
Specifies behavior of texture sampling when the coordinates exceed the 0-1 range.
Definition: SDL3pp_gpu.h:4451
void DispatchGPUComputeIndirect(GPUComputePass compute_pass, GPUBuffer buffer, Uint32 offset)
Dispatches compute work with parameters set from a buffer.
Definition: SDL3pp_gpu.h:6489
bool SetGPUAllowedFramesInFlight(GPUDeviceParam device, Uint32 allowed_frames_in_flight)
Configures the maximum allowed number of frames in flight.
Definition: SDL3pp_gpu.h:7010
constexpr GPUStoreOp GPU_STOREOP_DONT_CARE
The contents generated during the render pass are not needed and may be discarded.
Definition: SDL3pp_gpu.h:3938
constexpr GPULoadOp GPU_LOADOP_CLEAR
The contents of the texture will be cleared to a color.
Definition: SDL3pp_gpu.h:3913
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_UBYTE4_NORM
GPU_VERTEXELEMENTFORMAT_UBYTE4_NORM.
Definition: SDL3pp_gpu.h:4124
GPUTexture WaitAndAcquireSwapchainTexture(WindowParam 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:7194
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R32G32B32A32_UINT
GPU_TEXTUREFORMAT_R32G32B32A32_UINT.
Definition: SDL3pp_gpu.h:2658
void GDKResumeGPU()
Call this to resume GPU operation on Xbox when you receive the EVENT_WILL_ENTER_FOREGROUND event.
Definition: SDL3pp_gpu.h:7507
constexpr GPUTextureType GPU_TEXTURETYPE_2D_ARRAY
The texture is a 2-dimensional array image.
Definition: SDL3pp_gpu.h:2859
SDL_GPUFrontFace GPUFrontFace
Specifies the vertex winding that will cause a triangle to be determined to be front-facing.
Definition: SDL3pp_gpu.h:4215
constexpr GPUPresentMode GPU_PRESENTMODE_MAILBOX
GPU_PRESENTMODE_MAILBOX.
Definition: SDL3pp_gpu.h:2442
constexpr GPUCubeMapFace GPU_CUBEMAPFACE_NEGATIVEY
GPU_CUBEMAPFACE_NEGATIVEY.
Definition: SDL3pp_gpu.h:3973
void PushDebugGroup(StringParam name)
Begins a debug group with an arbitrary name.
Definition: SDL3pp_gpu.h:5401
bool GPUSupportsShaderFormats(GPUShaderFormat format_flags, StringParam name)
Checks for GPU runtime support.
Definition: SDL3pp_gpu.h:4652
constexpr GPUShaderFormat GPU_SHADERFORMAT_SPIRV
SPIR-V shaders for Vulkan.
Definition: SDL3pp_gpu.h:2355
SDL_GPUStencilOp GPUStencilOp
Specifies what happens to a stored stencil value if stencil tests fail or pass.
Definition: SDL3pp_gpu.h:4273
bool WindowSupportsPresentMode(WindowParam window, GPUPresentMode present_mode)
Determines whether a presentation mode is supported by the window.
Definition: SDL3pp_gpu.h:6882
SDL_GPUFence GPUFence
An opaque handle representing a fence.
Definition: SDL3pp_gpu.h:1943
SDL_GPUComputePass * GPUComputePassRaw
Alias to raw representation for GPUComputePass.
Definition: SDL3pp_gpu.h:388
constexpr GPUSamplerAddressMode GPU_SAMPLERADDRESSMODE_MIRRORED_REPEAT
Specifies that the coordinates will wrap around mirrored.
Definition: SDL3pp_gpu.h:4458
void ReleaseGPUTransferBuffer(GPUDeviceParam device, GPUTransferBuffer transfer_buffer)
Frees the given transfer buffer as soon as it is safe to do so.
Definition: SDL3pp_gpu.h:5495
SDL_GPUIndexElementSize GPUIndexElementSize
Specifies the size of elements in an index buffer.
Definition: SDL3pp_gpu.h:1107
SDL_GPUShaderCreateInfo GPUShaderCreateInfo
A structure specifying code and metadata for creating a shader object.
Definition: SDL3pp_gpu.h:789
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:5844
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:6393
void DrawPrimitives(Uint32 num_vertices, Uint32 num_instances, Uint32 first_vertex, Uint32 first_instance)
Draws data using bound graphics state.
Definition: SDL3pp_gpu.h:6171
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_8x5_FLOAT
GPU_TEXTUREFORMAT_ASTC_8x5_FLOAT.
Definition: SDL3pp_gpu.h:2820
void SetGPUScissor(GPURenderPass render_pass, const RectRaw &scissor)
Sets the current scissor state on a command buffer.
Definition: SDL3pp_gpu.h:5784
SDL_GPUVertexInputState GPUVertexInputState
A structure specifying the parameters of a graphics pipeline vertex input state.
Definition: SDL3pp_gpu.h:4559
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_D16_UNORM
GPU_TEXTUREFORMAT_D16_UNORM.
Definition: SDL3pp_gpu.h:2706
void SubmitGPUCommandBuffer(GPUCommandBuffer command_buffer)
Submits a command buffer so its commands can be processed on the GPU.
Definition: SDL3pp_gpu.h:7225
SDL_GPUVertexInputRate GPUVertexInputRate
Specifies the rate at which vertex attributes are pulled from buffers.
Definition: SDL3pp_gpu.h:4164
constexpr GPUFilter GPU_FILTER_NEAREST
Point filtering.
Definition: SDL3pp_gpu.h:4422
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_10x6_UNORM_SRGB
GPU_TEXTUREFORMAT_ASTC_10x6_UNORM_SRGB.
Definition: SDL3pp_gpu.h:2790
constexpr GPUCubeMapFace GPU_CUBEMAPFACE_POSITIVEX
GPU_CUBEMAPFACE_POSITIVEX.
Definition: SDL3pp_gpu.h:3964
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:6348
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:6384
GPUCopyPass BeginGPUCopyPass(GPUCommandBuffer command_buffer)
Begins a copy pass on a command buffer.
Definition: SDL3pp_gpu.h:6577
constexpr GPUBlendOp GPU_BLENDOP_ADD
(source * source_factor) + (destination * destination_factor)
Definition: SDL3pp_gpu.h:4323
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:3907
constexpr GPUTextureType GPU_TEXTURETYPE_CUBE
The texture is a cube image.
Definition: SDL3pp_gpu.h:2865
SDL_GPUFilter GPUFilter
Specifies a filter operation used by a sampler.
Definition: SDL3pp_gpu.h:4420
constexpr GPUStencilOp GPU_STENCILOP_INCREMENT_AND_WRAP
Increments the current value and wraps back to 0.
Definition: SDL3pp_gpu.h:4298
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_BC3_RGBA_UNORM_SRGB
GPU_TEXTUREFORMAT_BC3_RGBA_UNORM_SRGB.
Definition: SDL3pp_gpu.h:2700
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_INVALID
GPU_TEXTUREFORMAT_INVALID.
Definition: SDL3pp_gpu.h:2532
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_5x5_UNORM
GPU_TEXTUREFORMAT_ASTC_5x5_UNORM.
Definition: SDL3pp_gpu.h:2727
SDL_GPUBlitRegion GPUBlitRegion
A structure specifying a region of a texture used in the blit operation.
Definition: SDL3pp_gpu.h:4472
SDL_GPUViewport GPUViewport
A structure specifying a viewport.
Definition: SDL3pp_gpu.h:1088
GPUShaderFormat GetShaderFormats()
Returns the supported shader formats for this GPU context.
Definition: SDL3pp_gpu.h:4857
SDL_GPUComputePipeline * GPUComputePipelineRaw
Alias to raw representation for GPUComputePipeline.
Definition: SDL3pp_gpu.h:364
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_BYTE4_NORM
GPU_VERTEXELEMENTFORMAT_BYTE4_NORM.
Definition: SDL3pp_gpu.h:4118
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_FLOAT
GPU_VERTEXELEMENTFORMAT_FLOAT.
Definition: SDL3pp_gpu.h:4091
constexpr GPUSampleCount GPU_SAMPLECOUNT_1
No multisampling.
Definition: SDL3pp_gpu.h:2936
SDL_GPUIndirectDrawCommand GPUIndirectDrawCommand
A structure specifying the parameters of an indirect draw command.
Definition: SDL3pp_gpu.h:4488
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:5728
constexpr GPUBlendFactor GPU_BLENDFACTOR_ONE_MINUS_SRC_ALPHA
1 - source alpha
Definition: SDL3pp_gpu.h:4373
constexpr GPUBlendFactor GPU_BLENDFACTOR_ONE
1
Definition: SDL3pp_gpu.h:4356
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_UBYTE2_NORM
GPU_VERTEXELEMENTFORMAT_UBYTE2_NORM.
Definition: SDL3pp_gpu.h:4121
constexpr GPUVertexElementFormat GPU_VERTEXELEMENTFORMAT_SHORT4
GPU_VERTEXELEMENTFORMAT_SHORT4.
Definition: SDL3pp_gpu.h:4130
void PopGPUDebugGroup(GPUCommandBuffer command_buffer)
Ends the most-recently pushed debug group.
Definition: SDL3pp_gpu.h:5415
constexpr GPULoadOp GPU_LOADOP_LOAD
The previous contents of the texture will be preserved.
Definition: SDL3pp_gpu.h:3910
constexpr GPUCullMode GPU_CULLMODE_NONE
No triangles are culled.
Definition: SDL3pp_gpu.h:4198
constexpr GPUBlendFactor GPU_BLENDFACTOR_DST_ALPHA
destination alpha
Definition: SDL3pp_gpu.h:4376
GPUSampler CreateGPUSampler(GPUDeviceParam device, const GPUSamplerCreateInfo &createinfo)
Creates a sampler object to be used when binding textures in a graphics workflow.
Definition: SDL3pp_gpu.h:4989
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:6235
void EndGPUComputePass(GPUComputePass compute_pass)
Ends the current compute pass.
Definition: SDL3pp_gpu.h:6511
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_ASTC_10x5_UNORM
GPU_TEXTUREFORMAT_ASTC_10x5_UNORM.
Definition: SDL3pp_gpu.h:2745
constexpr GPUTextureFormat GPU_TEXTUREFORMAT_R8G8_UINT
GPU_TEXTUREFORMAT_R8G8_UINT.
Definition: SDL3pp_gpu.h:2637
SDL_FColor FColorRaw
Alias to raw representation for FColor.
Definition: SDL3pp_pixels.h:89
SDL_Rect RectRaw
Alias to raw representation for Rect.
Definition: SDL3pp_rect.h:34
::Uint32 Uint32
An unsigned 32-bit integer type.
Definition: SDL3pp_stdinc.h:341
::Uint8 Uint8
An unsigned 8-bit integer type.
Definition: SDL3pp_stdinc.h:289
::Sint32 Sint32
A signed 32-bit integer type.
Definition: SDL3pp_stdinc.h:328
Main include header for the SDL3pp library.
Safely wrap GPUDevice for non owning parameters.
Definition: SDL3pp_gpu.h:308
GPUDeviceRaw value
parameter's GPUDeviceRaw
Definition: SDL3pp_gpu.h:309
constexpr GPUDeviceParam(std::nullptr_t _=nullptr)
Constructs null/invalid.
Definition: SDL3pp_gpu.h:318
constexpr GPUDeviceParam(GPUDeviceRaw value)
Constructs from GPUDeviceRaw.
Definition: SDL3pp_gpu.h:312
constexpr auto operator<=>(const GPUDeviceParam &other) const =default
Comparison.
Semi-safe reference for GPUDevice.
Definition: SDL3pp_gpu.h:3839
GPUDeviceRef(const GPUDeviceRef &other)
Copy constructor.
Definition: SDL3pp_gpu.h:3853
GPUDeviceRef(GPUDeviceParam resource)
Constructs from GPUDeviceParam.
Definition: SDL3pp_gpu.h:3847
~GPUDeviceRef()
Destructor.
Definition: SDL3pp_gpu.h:3859
Safely wrap Properties for non owning parameters.
Definition: SDL3pp_properties.h:52
Safely wrap Window for non owning parameters.
Definition: SDL3pp_video.h:54