|
@@ -298,6 +298,9 @@ static SDL_PixelFormat D3D12_DXGIFormatToSDLPixelFormat(DXGI_FORMAT dxgiFormat)
|
|
|
case DXGI_FORMAT_B8G8R8A8_UNORM:
|
|
|
case DXGI_FORMAT_B8G8R8A8_UNORM_SRGB:
|
|
|
return SDL_PIXELFORMAT_ARGB8888;
|
|
|
+ case DXGI_FORMAT_R8G8B8A8_UNORM:
|
|
|
+ case DXGI_FORMAT_R8G8B8A8_UNORM_SRGB:
|
|
|
+ return SDL_PIXELFORMAT_ABGR8888;
|
|
|
case DXGI_FORMAT_B8G8R8X8_UNORM:
|
|
|
case DXGI_FORMAT_B8G8R8X8_UNORM_SRGB:
|
|
|
return SDL_PIXELFORMAT_XRGB8888;
|
|
@@ -322,6 +325,11 @@ static DXGI_FORMAT SDLPixelFormatToDXGITextureFormat(Uint32 format, Uint32 outpu
|
|
|
return DXGI_FORMAT_B8G8R8A8_UNORM_SRGB;
|
|
|
}
|
|
|
return DXGI_FORMAT_B8G8R8A8_UNORM;
|
|
|
+ case SDL_PIXELFORMAT_ABGR8888:
|
|
|
+ if (output_colorspace == SDL_COLORSPACE_SRGB_LINEAR) {
|
|
|
+ return DXGI_FORMAT_R8G8B8A8_UNORM_SRGB;
|
|
|
+ }
|
|
|
+ return DXGI_FORMAT_R8G8B8A8_UNORM;
|
|
|
case SDL_PIXELFORMAT_XRGB8888:
|
|
|
if (output_colorspace == SDL_COLORSPACE_SRGB_LINEAR) {
|
|
|
return DXGI_FORMAT_B8G8R8X8_UNORM_SRGB;
|
|
@@ -352,6 +360,11 @@ static DXGI_FORMAT SDLPixelFormatToDXGIMainResourceViewFormat(Uint32 format, Uin
|
|
|
return DXGI_FORMAT_B8G8R8A8_UNORM_SRGB;
|
|
|
}
|
|
|
return DXGI_FORMAT_B8G8R8A8_UNORM;
|
|
|
+ case SDL_PIXELFORMAT_ABGR8888:
|
|
|
+ if (colorspace == SDL_COLORSPACE_SRGB_LINEAR) {
|
|
|
+ return DXGI_FORMAT_R8G8B8A8_UNORM_SRGB;
|
|
|
+ }
|
|
|
+ return DXGI_FORMAT_R8G8B8A8_UNORM;
|
|
|
case SDL_PIXELFORMAT_XRGB8888:
|
|
|
if (colorspace == SDL_COLORSPACE_SRGB_LINEAR) {
|
|
|
return DXGI_FORMAT_B8G8R8X8_UNORM_SRGB;
|
|
@@ -3254,6 +3267,7 @@ bool D3D12_CreateRenderer(SDL_Renderer *renderer, SDL_Window *window, SDL_Proper
|
|
|
|
|
|
renderer->name = D3D12_RenderDriver.name;
|
|
|
SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_ARGB8888);
|
|
|
+ SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_ABGR8888);
|
|
|
SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_XRGB8888);
|
|
|
SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_XBGR2101010);
|
|
|
SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_RGBA64_FLOAT);
|