From 12fbd401c47e86f73500b769b61f20ee0cdb15d7 Mon Sep 17 00:00:00 2001 From: Erik van Pienbroek Date: Mon, 27 Apr 2015 20:06:30 +0200 Subject: [PATCH] Add missing patches --- SDL2-fix-gcc-compatibility.patch | 413 ++++++++++++++++++ ...prevent-duplicate-d3d11-declarations.patch | 27 ++ 2 files changed, 440 insertions(+) create mode 100644 SDL2-fix-gcc-compatibility.patch create mode 100644 SDL2-prevent-duplicate-d3d11-declarations.patch diff --git a/SDL2-fix-gcc-compatibility.patch b/SDL2-fix-gcc-compatibility.patch new file mode 100644 index 0000000..650853b --- /dev/null +++ b/SDL2-fix-gcc-compatibility.patch @@ -0,0 +1,413 @@ +--- 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); + } + } + } diff --git a/SDL2-prevent-duplicate-d3d11-declarations.patch b/SDL2-prevent-duplicate-d3d11-declarations.patch new file mode 100644 index 0000000..e63737f --- /dev/null +++ b/SDL2-prevent-duplicate-d3d11-declarations.patch @@ -0,0 +1,27 @@ +--- 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:16:38.285858676 +0100 +@@ -132,12 +132,24 @@ + + + /* Defined here so we don't have to include uuid.lib */ ++#ifndef __IDXGIFactory2_INTERFACE_DEFINED__ + static const GUID IID_IDXGIFactory2 = { 0x50c83a1c, 0xe072, 0x4c48, { 0x87, 0xb0, 0x36, 0x30, 0xfa, 0x36, 0xa6, 0xd0 } }; ++#endif ++#ifndef __IDXGIDevice1_INTERFACE_DEFINED__ + static const GUID IID_IDXGIDevice1 = { 0x77db970f, 0x6276, 0x48ba, { 0xba, 0x28, 0x07, 0x01, 0x43, 0xb4, 0x39, 0x2c } }; ++#endif ++#ifndef __ID3D11Texture2D_INTERFACE_DEFINED__ + static const GUID IID_ID3D11Texture2D = { 0x6f15aaf2, 0xd208, 0x4e89, { 0x9a, 0xb4, 0x48, 0x95, 0x35, 0xd3, 0x4f, 0x9c } }; ++#endif ++#ifndef __ID3D11Device1_INTERFACE_DEFINED__ + static const GUID IID_ID3D11Device1 = { 0xa04bfb29, 0x08ef, 0x43d6, { 0xa4, 0x9c, 0xa9, 0xbd, 0xbd, 0xcb, 0xe6, 0x86 } }; ++#endif ++#ifndef __ID3D11DeviceContext1_INTERFACE_DEFINED__ + static const GUID IID_ID3D11DeviceContext1 = { 0xbb2c6faa, 0xb5fb, 0x4082, { 0x8e, 0x6b, 0x38, 0x8b, 0x8c, 0xfa, 0x90, 0xe1 } }; ++#endif ++#ifndef __ID3D11Debug_INTERFACE_DEFINED__ + static const GUID IID_ID3D11Debug = { 0x79cf2233, 0x7536, 0x4948, { 0x9d, 0x36, 0x1e, 0x46, 0x92, 0xdc, 0x57, 0x60 } }; ++#endif + + /* Direct3D 11.x shaders +