From badd9e5a1572a145d90f7673ca69881058386920 Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Sun, 8 Feb 2026 10:51:43 -0800
Subject: [PATCH] You can't combine SDL_STRINGIFY_ARG() and SDL_FUNCTION
Removed obsolete documentation that shows this usage and macros that attempt it.
Also allow SDL_FUNCTION to be redefined by the application.
Fixes https://github.com/libsdl-org/SDL/issues/15004
(cherry picked from commit 6feb0e1333a203abfd3c7cc79516c3a739257782)
---
include/SDL3/SDL_assert.h | 6 +-
include/SDL3/SDL_stdinc.h | 6 --
src/render/direct3d11/SDL_render_d3d11.c | 92 +++++++++----------
src/render/direct3d11/SDL_shaders_d3d11.c | 8 +-
src/render/direct3d12/SDL_render_d3d12.c | 88 +++++++++---------
.../direct3d12/SDL_render_d3d12_xbox.cpp | 18 ++--
src/render/direct3d12/SDL_shaders_d3d12.c | 2 -
.../direct3d12/SDL_shaders_d3d12_xboxone.cpp | 2 -
.../SDL_shaders_d3d12_xboxseries.cpp | 2 -
9 files changed, 97 insertions(+), 127 deletions(-)
diff --git a/include/SDL3/SDL_assert.h b/include/SDL3/SDL_assert.h
index d57d45114523e..fb6746235ba3e 100644
--- a/include/SDL3/SDL_assert.h
+++ b/include/SDL3/SDL_assert.h
@@ -160,7 +160,7 @@ extern "C" {
#ifdef SDL_WIKI_DOCUMENTATION_SECTION
/**
- * A macro that reports the current function being compiled.
+ * A constant that contains the current function being compiled.
*
* If SDL can't figure how the compiler reports this, it will use "???".
*
@@ -168,13 +168,15 @@ extern "C" {
*/
#define SDL_FUNCTION __FUNCTION__
-#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 supports __func__ as a standard. */
+#elif !defined(SDL_FUNCTION)
+#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 supports __func__ as a standard. */
# define SDL_FUNCTION __func__
#elif ((defined(__GNUC__) && (__GNUC__ >= 2)) || defined(_MSC_VER) || defined (__WATCOMC__))
# define SDL_FUNCTION __FUNCTION__
#else
# define SDL_FUNCTION "???"
#endif
+#endif
#ifdef SDL_WIKI_DOCUMENTATION_SECTION
diff --git a/include/SDL3/SDL_stdinc.h b/include/SDL3/SDL_stdinc.h
index 508eddcfca84e..119c1f3f62672 100644
--- a/include/SDL3/SDL_stdinc.h
+++ b/include/SDL3/SDL_stdinc.h
@@ -254,12 +254,6 @@ void *alloca(size_t);
/**
* Macro useful for building other macros with strings in them.
*
- * For example:
- *
- * ```c
- * #define LOG_ERROR(X) OutputDebugString(SDL_STRINGIFY_ARG(SDL_FUNCTION) ": " X "\n")`
- * ```
- *
* \param arg the text to turn into a string literal.
*
* \since This macro is available since SDL 3.2.0.
diff --git a/src/render/direct3d11/SDL_render_d3d11.c b/src/render/direct3d11/SDL_render_d3d11.c
index 236a43cbebca3..14d4f1e509ad3 100644
--- a/src/render/direct3d11/SDL_render_d3d11.c
+++ b/src/render/direct3d11/SDL_render_d3d11.c
@@ -39,12 +39,6 @@
#include "SDL_shaders_d3d11.h"
-#if defined(_MSC_VER) && !defined(__clang__)
-#define SDL_COMPOSE_ERROR(str) SDL_FUNCTION ", " str
-#else
-#define SDL_COMPOSE_ERROR(str) SDL_STRINGIFY_ARG(SDL_FUNCTION) ", " str
-#endif
-
#define SAFE_RELEASE(X) \
if ((X)) { \
IUnknown_Release(SDL_static_cast(IUnknown *, X)); \
@@ -505,7 +499,7 @@ static ID3D11BlendState *D3D11_CreateBlendState(SDL_Renderer *renderer, SDL_Blen
blendDesc.RenderTarget[0].RenderTargetWriteMask = D3D11_COLOR_WRITE_ENABLE_ALL;
result = ID3D11Device_CreateBlendState(data->d3dDevice, &blendDesc, &blendState);
if (FAILED(result)) {
- WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("ID3D11Device1::CreateBlendState"), result);
+ WIN_SetErrorFromHRESULT("ID3D11Device1::CreateBlendState", result);
return NULL;
}
@@ -600,13 +594,13 @@ static HRESULT D3D11_CreateDeviceResources(SDL_Renderer *renderer)
result = pDXGIGetDebugInterface1(0, &SDL_IID_IDXGIDebug1, (void **)&data->dxgiDebug);
if (FAILED(result)) {
- WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("DXGIGetDebugInterface1"), result);
+ WIN_SetErrorFromHRESULT("DXGIGetDebugInterface1", result);
goto done;
}
result = pDXGIGetDebugInterface1(0, &SDL_IID_IDXGIInfoQueue, (void **)&dxgiInfoQueue);
if (FAILED(result)) {
- WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("DXGIGetDebugInterface1"), result);
+ WIN_SetErrorFromHRESULT("DXGIGetDebugInterface1", result);
goto done;
}
@@ -623,7 +617,7 @@ static HRESULT D3D11_CreateDeviceResources(SDL_Renderer *renderer)
result = pCreateDXGIFactory(&SDL_IID_IDXGIFactory2, (void **)&data->dxgiFactory);
}
if (FAILED(result)) {
- WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("CreateDXGIFactory"), result);
+ WIN_SetErrorFromHRESULT("CreateDXGIFactory", result);
goto done;
}
@@ -652,7 +646,7 @@ static HRESULT D3D11_CreateDeviceResources(SDL_Renderer *renderer)
// FIXME: Should we use the default adapter?
result = IDXGIFactory2_EnumAdapters(data->dxgiFactory, 0, &dxgiAdapter);
if (FAILED(result)) {
- WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("EnumAdapters"), result);
+ WIN_SetErrorFromHRESULT("EnumAdapters", result);
goto done;
}
}
@@ -686,25 +680,25 @@ static HRESULT D3D11_CreateDeviceResources(SDL_Renderer *renderer)
&d3dContext // Returns the device immediate context.
);
if (FAILED(result)) {
- WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("D3D11CreateDevice"), result);
+ WIN_SetErrorFromHRESULT("D3D11CreateDevice", result);
goto done;
}
result = ID3D11Device_QueryInterface(d3dDevice, &SDL_IID_ID3D11Device1, (void **)&data->d3dDevice);
if (FAILED(result)) {
- WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("ID3D11Device to ID3D11Device1"), result);
+ WIN_SetErrorFromHRESULT("ID3D11Device to ID3D11Device1", result);
goto done;
}
result = ID3D11DeviceContext_QueryInterface(d3dContext, &SDL_IID_ID3D11DeviceContext1, (void **)&data->d3dContext);
if (FAILED(result)) {
- WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("ID3D11DeviceContext to ID3D11DeviceContext1"), result);
+ WIN_SetErrorFromHRESULT("ID3D11DeviceContext to ID3D11DeviceContext1", result);
goto done;
}
result = ID3D11Device_QueryInterface(d3dDevice, &SDL_IID_IDXGIDevice1, (void **)&dxgiDevice);
if (FAILED(result)) {
- WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("ID3D11Device to IDXGIDevice1"), result);
+ WIN_SetErrorFromHRESULT("ID3D11Device to IDXGIDevice1", result);
goto done;
}
@@ -713,7 +707,7 @@ static HRESULT D3D11_CreateDeviceResources(SDL_Renderer *renderer)
*/
result = IDXGIDevice1_SetMaximumFrameLatency(dxgiDevice, 1);
if (FAILED(result)) {
- WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("IDXGIDevice1::SetMaximumFrameLatency"), result);
+ WIN_SetErrorFromHRESULT("IDXGIDevice1::SetMaximumFrameLatency", result);
goto done;
}
@@ -737,7 +731,7 @@ static HRESULT D3D11_CreateDeviceResources(SDL_Renderer *renderer)
NULL,
&data->vertexShaderConstants);
if (FAILED(result)) {
- WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("ID3D11Device1::CreateBuffer [vertex shader constants]"), result);
+ WIN_SetErrorFromHRESULT("ID3D11Device1::CreateBuffer [vertex shader constants]", result);
goto done;
}
@@ -755,14 +749,14 @@ static HRESULT D3D11_CreateDeviceResources(SDL_Renderer *renderer)
rasterDesc.SlopeScaledDepthBias = 0.0f;
result = ID3D11Device_CreateRasterizerState(data->d3dDevice, &rasterDesc, &data->mainRasterizer);
if (FAILED(result)) {
- WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("ID3D11Device1::CreateRasterizerState [main rasterizer]"), result);
+ WIN_SetErrorFromHRESULT("ID3D11Device1::CreateRasterizerState [main rasterizer]", result);
goto done;
}
rasterDesc.ScissorEnable = TRUE;
result = ID3D11Device_CreateRasterizerState(data->d3dDevice, &rasterDesc, &data->clippedRasterizer);
if (FAILED(result)) {
- WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("ID3D11Device1::CreateRasterizerState [clipped rasterizer]"), result);
+ WIN_SetErrorFromHRESULT("ID3D11Device1::CreateRasterizerState [clipped rasterizer]", result);
goto done;
}
@@ -906,7 +900,7 @@ static HRESULT D3D11_CreateSwapChain(SDL_Renderer *renderer, int w, int h)
NULL, // Allow on all displays.
&data->swapChain);
if (FAILED(result)) {
- WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("IDXGIFactory2::CreateSwapChainForCoreWindow"), result);
+ WIN_SetErrorFromHRESULT("IDXGIFactory2::CreateSwapChainForCoreWindow", result);
goto done;
}
} else {
@@ -926,7 +920,7 @@ static HRESULT D3D11_CreateSwapChain(SDL_Renderer *renderer, int w, int h)
NULL, // Allow on all displays.
&data->swapChain);
if (FAILED(result)) {
- WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("IDXGIFactory2::CreateSwapChainForHwnd"), result);
+ WIN_SetErrorFromHRESULT("IDXGIFactory2::CreateSwapChainForHwnd", result);
goto done;
}
@@ -957,7 +951,7 @@ static HRESULT D3D11_CreateSwapChain(SDL_Renderer *renderer, int w, int h)
(colorspace_support & DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG_PRESENT)) {
result = IDXGISwapChain3_SetColorSpace1(swapChain3, colorspace);
if (FAILED(result)) {
- WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("IDXGISwapChain3::SetColorSpace1"), result);
+ WIN_SetErrorFromHRESULT("IDXGISwapChain3::SetColorSpace1", result);
goto done;
}
} else if (colorspace != DXGI_COLOR_SPACE_RGB_FULL_G10_NONE_P709) {
@@ -1035,7 +1029,7 @@ static HRESULT D3D11_CreateWindowSizeDependentResources(SDL_Renderer *renderer)
DXGI_FORMAT_UNKNOWN,
data->swapChainFlags);
if (FAILED(result)) {
- WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("IDXGISwapChain::ResizeBuffers"), result);
+ WIN_SetErrorFromHRESULT("IDXGISwapChain::ResizeBuffers", result);
goto done;
}
} else {
@@ -1052,7 +1046,7 @@ static HRESULT D3D11_CreateWindowSizeDependentResources(SDL_Renderer *renderer)
if (data->swapEffect == DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL) {
result = IDXGISwapChain1_SetRotation(data->swapChain, data->rotation);
if (FAILED(result)) {
- WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("IDXGISwapChain1::SetRotation"), result);
+ WIN_SetErrorFromHRESULT("IDXGISwapChain1::SetRotation", result);
goto done;
}
}
@@ -1063,7 +1057,7 @@ static HRESULT D3D11_CreateWindowSizeDependentResources(SDL_Renderer *renderer)
&SDL_IID_ID3D11Texture2D,
(void **)&backBuffer);
if (FAILED(result)) {
- WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("IDXGISwapChain::GetBuffer [back-buffer]"), result);
+ WIN_SetErrorFromHRESULT("IDXGISwapChain::GetBuffer [back-buffer]", result);
goto done;
}
@@ -1073,7 +1067,7 @@ static HRESULT D3D11_CreateWindowSizeDependentResources(SDL_Renderer *renderer)
NULL,
&data->mainRenderTargetView);
if (FAILED(result)) {
- WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("ID3D11Device::CreateRenderTargetView"), result);
+ WIN_SetErrorFromHRESULT("ID3D11Device::CreateRenderTargetView", result);
goto done;
}
@@ -1191,7 +1185,7 @@ static bool D3D11_CreatePalette(SDL_Renderer *renderer, SDL_TexturePalette *pale
HRESULT result = ID3D11Device_CreateTexture2D(data->d3dDevice, &textureDesc, NULL, &palettedata->texture);
if (FAILED(result)) {
- return WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("ID3D11Device1::CreateTexture2D"), result);
+ return WIN_SetErrorFromHRESULT("ID3D11Device1::CreateTexture2D", result);
}
D3D11_SHADER_RESOURCE_VIEW_DESC resourceViewDesc;
@@ -1205,7 +1199,7 @@ static bool D3D11_CreatePalette(SDL_Renderer *renderer, SDL_TexturePalette *pale
&resourceViewDesc,
&palettedata->resourceView);
if (FAILED(result)) {
- return WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("ID3D11Device1::CreateShaderResourceView"), result);
+ return WIN_SetErrorFromHRESULT("ID3D11Device1::CreateShaderResourceView", result);
}
return true;
}
@@ -1297,7 +1291,7 @@ static bool D3D11_CreateTexture(SDL_Renderer *renderer, SDL_Texture *texture, SD
NULL,
&textureData->mainTexture);
if (FAILED(result)) {
- return WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("ID3D11Device1::CreateTexture2D"), result);
+ return WIN_SetErrorFromHRESULT("ID3D11Device1::CreateTexture2D", result);
}
}
SDL_SetPointerProperty(SDL_GetTextureProperties(texture), SDL_PROP_TEXTURE_D3D11_TEXTURE_POINTER, textureData->mainTexture);
@@ -1319,7 +1313,7 @@ static bool D3D11_CreateTexture(SDL_Renderer *renderer, SDL_Texture *texture, SD
NULL,
&textureData->mainTextureU);
if (FAILED(result)) {
- return WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("ID3D11Device1::CreateTexture2D"), result);
+ return WIN_SetErrorFromHRESULT("ID3D11Device1::CreateTexture2D", result);
}
}
SDL_SetPointerProperty(SDL_GetTextureProperties(texture), SDL_PROP_TEXTURE_D3D11_TEXTURE_U_POINTER, textureData->mainTextureU);
@@ -1333,7 +1327,7 @@ static bool D3D11_CreateTexture(SDL_Renderer *renderer, SDL_Texture *texture, SD
NULL,
&textureData->mainTextureV);
if (FAILED(result)) {
- return WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("ID3D11Device1::CreateTexture2D"), result);
+ return WIN_SetErrorFromHRESULT("ID3D11Device1::CreateTexture2D", result);
}
}
SDL_SetPointerProperty(SDL_GetTextureProperties(texture), SDL_PROP_TEXTURE_D3D11_TEXTURE_V_POINTER, textureData->mainTextureV);
@@ -1374,7 +1368,7 @@ static bool D3D11_CreateTexture(SDL_Renderer *renderer, SDL_Texture *texture, SD
&resourceViewDesc,
&textureData->mainTextureResourceView);
if (FAILED(result)) {
- return WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("ID3D11Device1::CreateShaderResourceView"), result);
+ return WIN_SetErrorFromHRESULT("ID3D11Device1::CreateShaderResourceView", result);
}
#ifdef SDL_HAVE_YUV
@@ -1384,14 +1378,14 @@ static bool D3D11_CreateTexture(SDL_Renderer *renderer, SDL_Texture *texture, SD
&resourceViewDesc,
&textureData->mainTextureResourceViewU);
if (FAILED(result)) {
- return WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("ID3D11Device1::CreateShaderResourceView"), result);
+ return WIN_SetErrorFromHRESULT("ID3D11Device1::CreateShaderResourceView", result);
}
result = ID3D11Device_CreateShaderResourceView(rendererData->d3dDevice,
(ID3D11Resource *)textureData->mainTextureV,
&resourceViewDesc,
&textureData->mainTextureResourceViewV);
if (FAILED(result)) {
- return WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("ID3D11Device1::CreateShaderResourceView"), result);
+ return WIN_SetErrorFromHRESULT("ID3D11Device1::CreateShaderResourceView", result);
}
}
@@ -1409,7 +1403,7 @@ static bool D3D11_CreateTexture(SDL_Renderer *renderer, SDL_Texture *texture, SD
&nvResourceViewDesc,
&textureData->mainTextureResourceViewNV);
if (FAILED(result)) {
- return WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("ID3D11Device1::CreateShaderResourceView"), result);
+ return WIN_SetErrorFromHRESULT("ID3D11Device1::CreateShaderResourceView", result);
}
}
#endif // SDL_HAVE_YUV
@@ -1426,7 +1420,7 @@ static bool D3D11_CreateTexture(SDL_Renderer *renderer, SDL_Texture *texture, SD
&renderTargetViewDesc,
&textureData->mainTextureRenderTargetView);
if (FAILED(result)) {
- return WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("ID3D11Device1::CreateRenderTargetView"), result);
+ return WIN_SetErrorFromHRESULT("ID3D11Device1::CreateRenderTargetView", result);
}
}
@@ -1487,7 +1481,7 @@ static bool D3D11_UpdateTextureInternal(D3D11_RenderData *rendererData, ID3D11Te
NULL,
&stagingTexture);
if (FAILED(result)) {
- return WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("ID3D11Device1::CreateTexture2D [create staging texture]"), result);
+ return WIN_SetErrorFromHRESULT("ID3D11Device1::CreateTexture2D [create staging texture]", result);
}
// Get a write-only pointer to data in the staging texture:
@@ -1499,7 +1493,7 @@ static bool D3D11_UpdateTextureInternal(D3D11_RenderData *rendererData, ID3D11Te
&textureMemory);
if (FAILED(result)) {
SAFE_RELEASE(stagingTexture);
- return WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("ID3D11DeviceContext1::Map [map staging texture]"), result);
+ return WIN_SetErrorFromHRESULT("ID3D11DeviceContext1::Map [map staging texture]", result);
}
src = (const Uint8 *)pixels;
@@ -1684,7 +1678,7 @@ static bool D3D11_UpdateTextureNV(SDL_Renderer *renderer, SDL_Texture *texture,
NULL,
&stagingTexture);
if (FAILED(result)) {
- return WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("ID3D11Device1::CreateTexture2D [create staging texture]"), result);
+ return WIN_SetErrorFromHRESULT("ID3D11Device1::CreateTexture2D [create staging texture]", result);
}
// Get a write-only pointer to data in the staging texture:
@@ -1696,7 +1690,7 @@ static bool D3D11_UpdateTextureNV(SDL_Renderer *renderer, SDL_Texture *texture,
&textureMemory);
if (FAILED(result)) {
SAFE_RELEASE(stagingTexture);
- return WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("ID3D11DeviceContext1::Map [map staging texture]"), result);
+ return WIN_SetErrorFromHRESULT("ID3D11DeviceContext1::Map [map staging texture]", result);
}
src = Yplane;
@@ -1809,7 +1803,7 @@ static bool D3D11_LockTexture(SDL_Renderer *renderer, SDL_Texture *texture,
NULL,
&textureData->stagingTexture);
if (FAILED(result)) {
- return WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("ID3D11Device1::CreateTexture2D [create staging texture]"), result);
+ return WIN_SetErrorFromHRESULT("ID3D11Device1::CreateTexture2D [create staging texture]", result);
}
// Get a write-only pointer to data in the staging texture:
@@ -1821,7 +1815,7 @@ static bool D3D11_LockTexture(SDL_Renderer *renderer, SDL_Texture *texture,
&textureMemory);
if (FAILED(result)) {
SAFE_RELEASE(textureData->stagingTexture);
- return WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("ID3D11DeviceContext1::Map [map staging texture]"), result);
+ return WIN_SetErrorFromHRESULT("ID3D11DeviceContext1::Map [map staging texture]", result);
}
/* Make note of where the staging texture will be written to
@@ -2008,7 +2002,7 @@ static bool D3D11_UpdateVertexBuffer(SDL_Renderer *renderer,
0,
&mappedResource);
if (FAILED(result)) {
- return WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("ID3D11DeviceContext1::Map [vertex buffer]"), result);
+ return WIN_SetErrorFromHRESULT("ID3D11DeviceContext1::Map [vertex buffer]", result);
}
SDL_memcpy(mappedResource.pData, vertexData, dataSizeInBytes);
ID3D11DeviceContext_Unmap(rendererData->d3dContext, (ID3D11Resource *)rendererData->vertexBuffers[vbidx], 0);
@@ -2034,7 +2028,7 @@ static bool D3D11_UpdateVertexBuffer(SDL_Renderer *renderer,
&vertexBufferData,
&rendererData->vertexBuffers[vbidx]);
if (FAILED(result)) {
- return WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("ID3D11Device1::CreateBuffer [vertex buffer]"), result);
+ return WIN_SetErrorFromHRESULT("ID3D11Device1::CreateBuffer [vertex buffer]", result);
}
rendererData->vertexBufferSizes[vbidx] = dataSizeInBytes;
@@ -2378,7 +2372,7 @@ static bool D3D11_SetDrawState(SDL_Renderer *renderer, const SDL_RenderCommand *
HRESULT result = ID3D11Device_CreateBuffer(rendererData->d3dDevice, &desc, &data, &shader_state->constants);
if (FAILED(result)) {
- WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("ID3D11Device::CreateBuffer [create shader constants]"), result);
+ WIN_SetErrorFromHRESULT("ID3D11Device::CreateBuffer [create shader constants]", result);
return false;
}
SDL_memcpy(&shader_state->shader_constants, shader_constants, sizeof(*shader_constants));
@@ -2797,7 +2791,7 @@ static SDL_Surface *D3D11_RenderReadPixels(SDL_Renderer *renderer, const SDL_Rec
NULL,
&stagingTexture);
if (FAILED(result)) {
- WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("ID3D11Device1::CreateTexture2D [create staging texture]"), result);
+ WIN_SetErrorFromHRESULT("ID3D11Device1::CreateTexture2D [create staging texture]", result);
goto done;
}
@@ -2829,7 +2823,7 @@ static SDL_Surface *D3D11_RenderReadPixels(SDL_Renderer *renderer, const SDL_Rec
0,
&textureMemory);
if (FAILED(result)) {
- WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("ID3D11DeviceContext1::Map [map staging texture]"), result);
+ WIN_SetErrorFromHRESULT("ID3D11DeviceContext1::Map [map staging texture]", result);
goto done;
}
@@ -2884,9 +2878,9 @@ static bool D3D11_RenderPresent(SDL_Renderer *renderer)
} else if (result == DXGI_ERROR_INVALID_CALL) {
// We probably went through a fullscreen <-> windowed transition
D3D11_CreateWindowSizeDependentResources(renderer);
- WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("IDXGISwapChain::Present"), result);
+ WIN_SetErrorFromHRESULT("IDXGISwapChain::Present", result);
} else {
- WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("IDXGISwapChain::Present"), result);
+ WIN_SetErrorFromHRESULT("IDXGISwapChain::Present", result);
}
return false;
}
diff --git a/src/render/direct3d11/SDL_shaders_d3d11.c b/src/render/direct3d11/SDL_shaders_d3d11.c
index 52d970c697ca8..d360d64e4ac01 100644
--- a/src/render/direct3d11/SDL_shaders_d3d11.c
+++ b/src/render/direct3d11/SDL_shaders_d3d11.c
@@ -28,8 +28,6 @@
#include "SDL_shaders_d3d11.h"
-#define SDL_COMPOSE_ERROR(str) SDL_STRINGIFY_ARG(SDL_FUNCTION) ", " str
-
#if SDL_WINAPI_FAMILY_PHONE
#error Need to build shaders with level_9_3
#endif
@@ -82,7 +80,7 @@ bool D3D11_CreateVertexShader(ID3D11Device1 *d3dDevice, ID3D11VertexShader **ver
NULL,
vertexShader);
if (FAILED(result)) {
- return WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("ID3D11Device1::CreateVertexShader"), result);
+ return WIN_SetErrorFromHRESULT("ID3D11Device1::CreateVertexShader", result);
}
// Create an input layout for SDL's vertex shader:
@@ -93,7 +91,7 @@ bool D3D11_CreateVertexShader(ID3D11Device1 *d3dDevice, ID3D11VertexShader **ver
sizeof(D3D11_VertexShader),
inputLayout);
if (FAILED(result)) {
- return WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("ID3D11Device1::CreateInputLayout"), result);
+ return WIN_SetErrorFromHRESULT("ID3D11Device1::CreateInputLayout", result);
}
return true;
}
@@ -108,7 +106,7 @@ bool D3D11_CreatePixelShader(ID3D11Device1 *d3dDevice, D3D11_Shader shader, ID3D
NULL,
pixelShader);
if (FAILED(result)) {
- return WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("ID3D11Device1::CreatePixelShader"), result);
+ return WIN_SetErrorFromHRESULT("ID3D11Device1::CreatePixelShader", result);
}
return true;
}
diff --git a/src/render/direct3d12/SDL_render_d3d12.c b/src/render/direct3d12/SDL_render_d3d12.c
index 3977d42c01dc8..e86aed13dabf5 100644
--- a/src/render/direct3d12/SDL_render_d3d12.c
+++ b/src/render/direct3d12/SDL_render_d3d12.c
@@ -39,12 +39,6 @@
#include "SDL_shaders_d3d12.h"
-#if defined(_MSC_VER) && !defined(__clang__)
-#define SDL_COMPOSE_ERROR(str) SDL_FUNCTION ", " str
-#else
-#define SDL_COMPOSE_ERROR(str) SDL_STRINGIFY_ARG(SDL_FUNCTION) ", " str
-#endif
-
// Set up for C function definitions, even when using C++
#ifdef __cplusplus
extern "C" {
@@ -580,7 +574,7 @@ static HRESULT D3D12_IssueBatch(D3D12_RenderData *data)
// Issue the command list
result = ID3D12GraphicsCommandList2_Close(data->commandList);
if (FAILED(result)) {
- WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("D3D12_IssueBatch"), result);
+ WIN_SetErrorFromHRESULT("D3D12_IssueBatch", result);
return result;
}
ID3D12CommandQueue_ExecuteCommandLists(data->commandQueue, 1, (ID3D12CommandList *const *)&data->commandList);
@@ -719,7 +713,7 @@ static D3D12_PipelineState *D3D12_CreatePipelineState(SDL_Renderer *renderer,
D3D_GUID(SDL_IID_ID3D12PipelineState),
(void **)&pipelineState);
if (FAILED(result)) {
- WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("ID3D12Device::CreateGraphicsPipelineState"), result);
+ WIN_SetErrorFromHRESULT("ID3D12Device::CreateGraphicsPipelineState", result);
return NULL;
}
@@ -776,7 +770,7 @@ static HRESULT D3D12_CreateVertexBuffer(D3D12_RenderData *data, size_t vbidx, si
(void **)&data->vertexBuffers[vbidx].resource);
if (FAILED(result)) {
- WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("ID3D12Device::CreatePlacedResource [vertex buffer]"), result);
+ WIN_SetErrorFromHRESULT("ID3D12Device::CreatePlacedResource [vertex buffer]", result);
return result;
}
@@ -889,13 +883,13 @@ static HRESULT D3D12_CreateDeviceResources(SDL_Renderer *renderer)
result = DXGIGetDebugInterfaceFunc(0, D3D_GUID(SDL_IID_IDXGIDebug1), (void **)&data->dxgiDebug);
if (FAILED(result)) {
- WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("DXGIGetDebugInterface1"), result);
+ WIN_SetErrorFromHRESULT("DXGIGetDebugInterface1", result);
goto done;
}
result = DXGIGetDebugInterfaceFunc(0, D3D_GUID(SDL_IID_IDXGIInfoQueue), (void **)&dxgiInfoQueue);
if (FAILED(result)) {
- WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("DXGIGetDebugInterface1"), result);
+ WIN_SetErrorFromHRESULT("DXGIGetDebugInterface1", result);
goto done;
}
@@ -908,7 +902,7 @@ static HRESULT D3D12_CreateDeviceResources(SDL_Renderer *renderer)
result = pCreateDXGIFactory2(creationFlags, D3D_GUID(SDL_IID_IDXGIFactory6), (void **)&data->dxgiFactory);
if (FAILED(result)) {
- WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("CreateDXGIFactory"), result);
+ WIN_SetErrorFromHRESULT("CreateDXGIFactory", result);
goto done;
}
@@ -919,7 +913,7 @@ static HRESULT D3D12_CreateDeviceResources(SDL_Renderer *renderer)
D3D_GUID(SDL_IID_IDXGIAdapter4),
(void **)&data->dxgiAdapter);
if (FAILED(result)) {
- WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("IDXGIFactory6::EnumAdapterByGPUPreference"), result);
+ WIN_SetErrorFromHRESULT("IDXGIFactory6::EnumAdapterByGPUPreference", result);
goto done;
}
@@ -928,7 +922,7 @@ static HRESULT D3D12_CreateDeviceResources(SDL_Renderer *renderer)
D3D_GUID(SDL_IID_ID3D12Device1),
(void **)&d3dDevice);
if (FAILED(result)) {
- WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("D3D12CreateDevice"), result);
+ WIN_SetErrorFromHRESULT("D3D12CreateDevice", result);
goto done;
}
@@ -940,7 +934,7 @@ static HRESULT D3D12_CreateDeviceResources(SDL_Renderer *renderer)
result = ID3D12Device1_QueryInterface(d3dDevice, D3D_GUID(SDL_IID_ID3D12InfoQueue), (void **)&infoQueue);
if (FAILED(result)) {
- WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("ID3D12Device to ID3D12InfoQueue"), result);
+ WIN_SetErrorFromHRESULT("ID3D12Device to ID3D12InfoQueue", result);
goto done;
}
@@ -958,7 +952,7 @@ static HRESULT D3D12_CreateDeviceResources(SDL_Renderer *renderer)
result = ID3D12Device_QueryInterface(d3dDevice, D3D_GUID(SDL_IID_ID3D12Device1), (void **)&data->d3dDevice);
if (FAILED(result)) {
- WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("ID3D12Device to ID3D12Device1"), result);
+ WIN_SetErrorFromHRESULT("ID3D12Device to ID3D12Device1", result);
goto done;
}
@@ -972,7 +966,7 @@ static HRESULT D3D12_CreateDeviceResources(SDL_Renderer *renderer)
D3D_GUID(SDL_IID_ID3D12CommandQueue),
(void **)&data->commandQueue);
if (FAILED(result)) {
- WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("ID3D12Device::CreateCommandQueue"), result);
+ WIN_SetErrorFromHRESULT("ID3D12Device::CreateCommandQueue", result);
goto done;
}
@@ -985,7 +979,7 @@ static HRESULT D3D12_CreateDeviceResources(SDL_Renderer *renderer)
(Patch may be truncated, please check the link at the top of this post.)