--- src/render/direct3d11/SDL_render_d3d11.c.orig 2015-03-21 20:17:57.816864185 +0100 +++ src/render/direct3d11/SDL_render_d3d11.c 2015-03-21 22:21:30.123045735 +0100 @@ -46,6 +46,9 @@ #endif /* __WINRT__ */ +#define SDL_DEBUG_STRINGIFY_ARG(str) #str +#define SDL_DEBUG(str) SDL_DEBUG_STRINGIFY_ARG(__FUNCTION__) str + #define SAFE_RELEASE(X) if ((X)) { IUnknown_Release(SDL_static_cast(IUnknown*, X)); X = NULL; } @@ -910,7 +925,7 @@ blendDesc.RenderTarget[0].RenderTargetWriteMask = D3D11_COLOR_WRITE_ENABLE_ALL; result = ID3D11Device_CreateBlendState(data->d3dDevice, &blendDesc, blendStateOutput); if (FAILED(result)) { - WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateBlendState", result); + WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateBlendState"), result); return result; } @@ -992,14 +1007,14 @@ result = CreateDXGIFactoryFunc(&IID_IDXGIFactory2, &data->dxgiFactory); if (FAILED(result)) { - WIN_SetErrorFromHRESULT(__FUNCTION__ ", CreateDXGIFactory", result); + WIN_SetErrorFromHRESULT(SDL_DEBUG(", CreateDXGIFactory"), result); goto done; } /* FIXME: Should we use the default adapter? */ result = IDXGIFactory2_EnumAdapters(data->dxgiFactory, 0, &data->dxgiAdapter); if (FAILED(result)) { - WIN_SetErrorFromHRESULT(__FUNCTION__ ", D3D11CreateDevice", result); + WIN_SetErrorFromHRESULT(SDL_DEBUG(", D3D11CreateDevice"), result); goto done; } @@ -1028,25 +1043,25 @@ &d3dContext /* Returns the device immediate context. */ ); if (FAILED(result)) { - WIN_SetErrorFromHRESULT(__FUNCTION__ ", D3D11CreateDevice", result); + WIN_SetErrorFromHRESULT(SDL_DEBUG(", D3D11CreateDevice"), result); goto done; } result = ID3D11Device_QueryInterface(d3dDevice, &IID_ID3D11Device1, &data->d3dDevice); if (FAILED(result)) { - WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device to ID3D11Device1", result); + WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device to ID3D11Device1"), result); goto done; } result = ID3D11DeviceContext_QueryInterface(d3dContext, &IID_ID3D11DeviceContext1, &data->d3dContext); if (FAILED(result)) { - WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11DeviceContext to ID3D11DeviceContext1", result); + WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11DeviceContext to ID3D11DeviceContext1"), result); goto done; } result = ID3D11Device_QueryInterface(d3dDevice, &IID_IDXGIDevice1, &dxgiDevice); if (FAILED(result)) { - WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device to IDXGIDevice1", result); + WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device to IDXGIDevice1"), result); goto done; } @@ -1055,7 +1070,7 @@ */ result = IDXGIDevice1_SetMaximumFrameLatency(dxgiDevice, 1); if (FAILED(result)) { - WIN_SetErrorFromHRESULT(__FUNCTION__ ", IDXGIDevice1::SetMaximumFrameLatency", result); + WIN_SetErrorFromHRESULT(SDL_DEBUG(", IDXGIDevice1::SetMaximumFrameLatency"), result); goto done; } @@ -1084,7 +1099,7 @@ break; default: - SDL_SetError(__FUNCTION__ ", Unexpected feature level: %d", data->featureLevel); + SDL_SetError("%s, Unexpected feature level: %d", __FUNCTION__, data->featureLevel); result = E_FAIL; goto done; } @@ -1097,7 +1112,7 @@ &data->vertexShader ); if (FAILED(result)) { - WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateVertexShader", result); + WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateVertexShader"), result); goto done; } @@ -1110,7 +1125,7 @@ &data->inputLayout ); if (FAILED(result)) { - WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateInputLayout", result); + WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateInputLayout"), result); goto done; } @@ -1122,7 +1137,7 @@ &data->colorPixelShader ); if (FAILED(result)) { - WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreatePixelShader ['color' shader]", result); + WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreatePixelShader ['color' shader]"), result); goto done; } @@ -1133,7 +1148,7 @@ &data->texturePixelShader ); if (FAILED(result)) { - WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreatePixelShader ['textures' shader]", result); + WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreatePixelShader ['textures' shader]"), result); goto done; } @@ -1144,7 +1159,7 @@ &data->yuvPixelShader ); if (FAILED(result)) { - WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreatePixelShader ['yuv' shader]", result); + WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreatePixelShader ['yuv' shader]"), result); goto done; } @@ -1159,7 +1174,7 @@ &data->vertexShaderConstants ); if (FAILED(result)) { - WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateBuffer [vertex shader constants]", result); + WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateBuffer [vertex shader constants]"), result); goto done; } @@ -1179,7 +1194,7 @@ &data->nearestPixelSampler ); if (FAILED(result)) { - WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateSamplerState [nearest-pixel filter]", result); + WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateSamplerState [nearest-pixel filter]"), result); goto done; } @@ -1189,7 +1204,7 @@ &data->linearSampler ); if (FAILED(result)) { - WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateSamplerState [linear filter]", result); + WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateSamplerState [linear filter]"), result); goto done; } @@ -1207,14 +1222,14 @@ rasterDesc.SlopeScaledDepthBias = 0.0f; result = ID3D11Device_CreateRasterizerState(data->d3dDevice, &rasterDesc, &data->mainRasterizer); if (FAILED(result)) { - WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateRasterizerState [main rasterizer]", result); + WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateRasterizerState [main rasterizer]"), result); goto done; } rasterDesc.ScissorEnable = TRUE; result = ID3D11Device_CreateRasterizerState(data->d3dDevice, &rasterDesc, &data->clippedRasterizer); if (FAILED(result)) { - WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateRasterizerState [clipped rasterizer]", result); + WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateRasterizerState [clipped rasterizer]"), result); goto done; } @@ -1374,7 +1389,7 @@ &data->swapChain ); if (FAILED(result)) { - WIN_SetErrorFromHRESULT(__FUNCTION__ ", IDXGIFactory2::CreateSwapChainForCoreWindow", result); + WIN_SetErrorFromHRESULT(SDL_DEBUG(", IDXGIFactory2::CreateSwapChainForCoreWindow"), result); goto done; } } else if (usingXAML) { @@ -1384,18 +1399,18 @@ NULL, &data->swapChain); if (FAILED(result)) { - WIN_SetErrorFromHRESULT(__FUNCTION__ ", IDXGIFactory2::CreateSwapChainForComposition", result); + WIN_SetErrorFromHRESULT(SDL_DEBUG(", IDXGIFactory2::CreateSwapChainForComposition"), result); goto done; } #if WINAPI_FAMILY == WINAPI_FAMILY_APP result = ISwapChainBackgroundPanelNative_SetSwapChain(WINRT_GlobalSwapChainBackgroundPanelNative, (IDXGISwapChain *) data->swapChain); if (FAILED(result)) { - WIN_SetErrorFromHRESULT(__FUNCTION__ ", ISwapChainBackgroundPanelNative::SetSwapChain", result); + WIN_SetErrorFromHRESULT(SDL_DEBUG(", ISwapChainBackgroundPanelNative::SetSwapChain"), result); goto done; } #else - SDL_SetError(__FUNCTION__ ", XAML support is not yet available for Windows Phone"); + SDL_SetError(SDL_DEBUG(", XAML support is not yet available for Windows Phone")); result = E_FAIL; goto done; #endif @@ -1414,7 +1429,7 @@ &data->swapChain ); if (FAILED(result)) { - WIN_SetErrorFromHRESULT(__FUNCTION__ ", IDXGIFactory2::CreateSwapChainForHwnd", result); + WIN_SetErrorFromHRESULT(SDL_DEBUG(", IDXGIFactory2::CreateSwapChainForHwnd"), result); goto done; } #else @@ -1464,7 +1479,7 @@ 0 ); if (FAILED(result)) { - WIN_SetErrorFromHRESULT(__FUNCTION__ ", IDXGISwapChain::ResizeBuffers", result); + WIN_SetErrorFromHRESULT(SDL_DEBUG(", IDXGISwapChain::ResizeBuffers"), result); goto done; } #endif @@ -1485,7 +1500,7 @@ if (data->swapEffect == DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL) { result = IDXGISwapChain1_SetRotation(data->swapChain, data->rotation); if (FAILED(result)) { - WIN_SetErrorFromHRESULT(__FUNCTION__ ", IDXGISwapChain1::SetRotation", result); + WIN_SetErrorFromHRESULT(SDL_DEBUG(", IDXGISwapChain1::SetRotation"), result); goto done; } } @@ -1497,7 +1512,7 @@ &backBuffer ); if (FAILED(result)) { - WIN_SetErrorFromHRESULT(__FUNCTION__ ", IDXGISwapChain::GetBuffer [back-buffer]", result); + WIN_SetErrorFromHRESULT(SDL_DEBUG(", IDXGISwapChain::GetBuffer [back-buffer]"), result); goto done; } @@ -1508,7 +1523,7 @@ &data->mainRenderTargetView ); if (FAILED(result)) { - WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device::CreateRenderTargetView", result); + WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device::CreateRenderTargetView"), result); goto done; } @@ -1628,7 +1643,7 @@ ); if (FAILED(result)) { D3D11_DestroyTexture(renderer, texture); - WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateTexture2D", result); + WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateTexture2D"), result); return -1; } @@ -1646,7 +1661,7 @@ ); if (FAILED(result)) { D3D11_DestroyTexture(renderer, texture); - WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateTexture2D", result); + WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateTexture2D"), result); return -1; } @@ -1657,7 +1672,7 @@ ); if (FAILED(result)) { D3D11_DestroyTexture(renderer, texture); - WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateTexture2D", result); + WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateTexture2D"), result); return -1; } } @@ -1673,7 +1688,7 @@ ); if (FAILED(result)) { D3D11_DestroyTexture(renderer, texture); - WIN_SetErrorFromHRESULT(__FUNCTION__ "ID3D11Device1::CreateShaderResourceView", result); + WIN_SetErrorFromHRESULT(SDL_DEBUG("ID3D11Device1::CreateShaderResourceView"), result); return -1; } @@ -1685,7 +1700,7 @@ ); if (FAILED(result)) { D3D11_DestroyTexture(renderer, texture); - WIN_SetErrorFromHRESULT(__FUNCTION__ "ID3D11Device1::CreateShaderResourceView", result); + WIN_SetErrorFromHRESULT(SDL_DEBUG("ID3D11Device1::CreateShaderResourceView"), result); return -1; } result = ID3D11Device_CreateShaderResourceView(rendererData->d3dDevice, @@ -1695,7 +1710,7 @@ ); if (FAILED(result)) { D3D11_DestroyTexture(renderer, texture); - WIN_SetErrorFromHRESULT(__FUNCTION__ "ID3D11Device1::CreateShaderResourceView", result); + WIN_SetErrorFromHRESULT(SDL_DEBUG("ID3D11Device1::CreateShaderResourceView"), result); return -1; } } @@ -1712,7 +1727,7 @@ &textureData->mainTextureRenderTargetView); if (FAILED(result)) { D3D11_DestroyTexture(renderer, texture); - WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateRenderTargetView", result); + WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateRenderTargetView"), result); return -1; } } @@ -1768,7 +1783,7 @@ NULL, &stagingTexture); if (FAILED(result)) { - WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateTexture2D [create staging texture]", result); + WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateTexture2D [create staging texture]"), result); return -1; } @@ -1781,7 +1796,7 @@ &textureMemory ); if (FAILED(result)) { - WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11DeviceContext1::Map [map staging texture]", result); + WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11DeviceContext1::Map [map staging texture]"), result); SAFE_RELEASE(stagingTexture); return -1; } @@ -1943,7 +1958,7 @@ NULL, &textureData->stagingTexture); if (FAILED(result)) { - WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateTexture2D [create staging texture]", result); + WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateTexture2D [create staging texture]"), result); return -1; } @@ -1956,7 +1971,7 @@ &textureMemory ); if (FAILED(result)) { - WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11DeviceContext1::Map [map staging texture]", result); + WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11DeviceContext1::Map [map staging texture]"), result); SAFE_RELEASE(textureData->stagingTexture); return -1; } @@ -2238,7 +2253,7 @@ &mappedResource ); if (FAILED(result)) { - WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11DeviceContext1::Map [vertex buffer]", result); + WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11DeviceContext1::Map [vertex buffer]"), result); return -1; } SDL_memcpy(mappedResource.pData, vertexData, dataSizeInBytes); @@ -2262,7 +2277,7 @@ &rendererData->vertexBuffer ); if (FAILED(result)) { - WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateBuffer [vertex buffer]", result); + WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateBuffer [vertex buffer]"), result); return -1; } @@ -2732,7 +2747,7 @@ &backBuffer ); if (FAILED(result)) { - WIN_SetErrorFromHRESULT(__FUNCTION__ ", IDXGISwapChain1::GetBuffer [get back buffer]", result); + WIN_SetErrorFromHRESULT(SDL_DEBUG(", IDXGISwapChain1::GetBuffer [get back buffer]"), result); goto done; } @@ -2749,7 +2764,7 @@ NULL, &stagingTexture); if (FAILED(result)) { - WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateTexture2D [create staging texture]", result); + WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateTexture2D [create staging texture]"), result); goto done; } @@ -2781,7 +2796,7 @@ 0, &textureMemory); if (FAILED(result)) { - WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11DeviceContext1::Map [map staging texture]", result); + WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11DeviceContext1::Map [map staging texture]"), result); goto done; } @@ -2800,7 +2815,7 @@ * Get the error message, and attach some extra data to it. */ char errorMessage[1024]; - SDL_snprintf(errorMessage, sizeof(errorMessage), __FUNCTION__ ", Convert Pixels failed: %s", SDL_GetError()); + SDL_snprintf(errorMessage, sizeof(errorMessage), "%s, Convert Pixels failed: %s", __FUNCTION__, SDL_GetError()); SDL_SetError(errorMessage); goto done; } @@ -2869,7 +2884,7 @@ /* We probably went through a fullscreen <-> windowed transition */ D3D11_CreateWindowSizeDependentResources(renderer); } else { - WIN_SetErrorFromHRESULT(__FUNCTION__ ", IDXGISwapChain::Present", result); + WIN_SetErrorFromHRESULT(SDL_DEBUG(", IDXGISwapChain::Present"), result); } } }