Added support for floating point texture formats

This commit is contained in:
Sam Lantinga
2024-02-01 11:22:04 -08:00
parent 90597aeaef
commit 7561116873
3 changed files with 29 additions and 5 deletions

View File

@@ -291,6 +291,8 @@ Uint32 D3D12_DXGIFormatToSDLPixelFormat(DXGI_FORMAT dxgiFormat)
static DXGI_FORMAT SDLPixelFormatToDXGITextureFormat(Uint32 format, Uint32 colorspace, SDL_bool colorspace_conversion)
{
switch (format) {
case SDL_PIXELFORMAT_RGBA64_FLOAT:
return DXGI_FORMAT_R16G16B16A16_FLOAT;
case SDL_PIXELFORMAT_ARGB8888:
if (colorspace_conversion && colorspace == SDL_COLORSPACE_SRGB) {
return DXGI_FORMAT_B8G8R8A8_UNORM_SRGB;
@@ -315,6 +317,8 @@ static DXGI_FORMAT SDLPixelFormatToDXGITextureFormat(Uint32 format, Uint32 color
static DXGI_FORMAT SDLPixelFormatToDXGIMainResourceViewFormat(Uint32 format, Uint32 colorspace, SDL_bool colorspace_conversion)
{
switch (format) {
case SDL_PIXELFORMAT_RGBA64_FLOAT:
return DXGI_FORMAT_R16G16B16A16_FLOAT;
case SDL_PIXELFORMAT_ARGB8888:
if (colorspace_conversion && colorspace == SDL_COLORSPACE_SRGB) {
return DXGI_FORMAT_B8G8R8A8_UNORM_SRGB;
@@ -3113,10 +3117,11 @@ SDL_RenderDriver D3D12_RenderDriver = {
"direct3d12",
(SDL_RENDERER_ACCELERATED |
SDL_RENDERER_PRESENTVSYNC), /* flags. see SDL_RendererFlags */
6, /* num_texture_formats */
7, /* num_texture_formats */
{ /* texture_formats */
SDL_PIXELFORMAT_ARGB8888,
SDL_PIXELFORMAT_XRGB8888,
SDL_PIXELFORMAT_RGBA64_FLOAT,
SDL_PIXELFORMAT_YV12,
SDL_PIXELFORMAT_IYUV,
SDL_PIXELFORMAT_NV12,