From 2225493102ea47d96d6a11e39cad5b8c5f039c7c Mon Sep 17 00:00:00 2001 From: David Ludwig Date: Wed, 25 Dec 2013 13:13:15 -0500 Subject: [PATCH] WinRT: moved contents of the d3d11 renderer's header file into its implementation file --- .../SDL/SDL-WinPhone_VS2012.vcxproj | 1 - .../SDL/SDL-WinPhone_VS2012.vcxproj.filters | 3 - VisualC-WinRT/SDL/SDL-WinRT_VS2012.vcxproj | 1 - .../SDL/SDL-WinRT_VS2012.vcxproj.filters | 3 - src/render/direct3d11/SDL_render_d3d11.cpp | 69 ++++++++++++++- src/render/direct3d11/SDL_render_d3d11_cpp.h | 86 ------------------- 6 files changed, 67 insertions(+), 96 deletions(-) delete mode 100644 src/render/direct3d11/SDL_render_d3d11_cpp.h diff --git a/VisualC-WinPhone/SDL/SDL-WinPhone_VS2012.vcxproj b/VisualC-WinPhone/SDL/SDL-WinPhone_VS2012.vcxproj index 882fe3b6c..0f185bec2 100644 --- a/VisualC-WinPhone/SDL/SDL-WinPhone_VS2012.vcxproj +++ b/VisualC-WinPhone/SDL/SDL-WinPhone_VS2012.vcxproj @@ -215,7 +215,6 @@ - diff --git a/VisualC-WinPhone/SDL/SDL-WinPhone_VS2012.vcxproj.filters b/VisualC-WinPhone/SDL/SDL-WinPhone_VS2012.vcxproj.filters index f99bb9488..59296bf42 100644 --- a/VisualC-WinPhone/SDL/SDL-WinPhone_VS2012.vcxproj.filters +++ b/VisualC-WinPhone/SDL/SDL-WinPhone_VS2012.vcxproj.filters @@ -318,9 +318,6 @@ Source Files - - Source Files - Source Files diff --git a/VisualC-WinRT/SDL/SDL-WinRT_VS2012.vcxproj b/VisualC-WinRT/SDL/SDL-WinRT_VS2012.vcxproj index 6a2dfb6ee..f06787f78 100644 --- a/VisualC-WinRT/SDL/SDL-WinRT_VS2012.vcxproj +++ b/VisualC-WinRT/SDL/SDL-WinRT_VS2012.vcxproj @@ -284,7 +284,6 @@ - diff --git a/VisualC-WinRT/SDL/SDL-WinRT_VS2012.vcxproj.filters b/VisualC-WinRT/SDL/SDL-WinRT_VS2012.vcxproj.filters index b3c0686b4..bff9c9deb 100644 --- a/VisualC-WinRT/SDL/SDL-WinRT_VS2012.vcxproj.filters +++ b/VisualC-WinRT/SDL/SDL-WinRT_VS2012.vcxproj.filters @@ -599,9 +599,6 @@ Header Files - - Source Files - Header Files diff --git a/src/render/direct3d11/SDL_render_d3d11.cpp b/src/render/direct3d11/SDL_render_d3d11.cpp index 541fcdbcb..f5a2d0f59 100644 --- a/src/render/direct3d11/SDL_render_d3d11.cpp +++ b/src/render/direct3d11/SDL_render_d3d11.cpp @@ -49,7 +49,10 @@ extern "C" { #include #include -#include "SDL_render_d3d11_cpp.h" +#include +#include +#include + using namespace DirectX; using namespace Microsoft::WRL; @@ -64,8 +67,70 @@ using namespace Windows::UI::Core; static const D3D11_FILTER SDL_D3D11_NEAREST_PIXEL_FILTER = D3D11_FILTER_MIN_MAG_MIP_POINT; static const D3D11_FILTER SDL_D3D11_LINEAR_FILTER = D3D11_FILTER_MIN_MAG_MIP_LINEAR; -/* Direct3D 11.1 renderer implementation */ +/* Vertex shader, common values */ +struct SDL_VertexShaderConstants +{ + DirectX::XMFLOAT4X4 model; + DirectX::XMFLOAT4X4 view; + DirectX::XMFLOAT4X4 projection; +}; +/* Per-vertex data */ +struct VertexPositionColor +{ + DirectX::XMFLOAT3 pos; + DirectX::XMFLOAT2 tex; + DirectX::XMFLOAT4 color; +}; + +/* Per-texture data */ +typedef struct +{ + Microsoft::WRL::ComPtr mainTexture; + Microsoft::WRL::ComPtr mainTextureResourceView; + Microsoft::WRL::ComPtr mainTextureRenderTargetView; + SDL_PixelFormat * pixelFormat; + Microsoft::WRL::ComPtr stagingTexture; + DirectX::XMINT2 lockedTexturePosition; + D3D11_FILTER scaleMode; +} D3D11_TextureData; + +/* Private renderer data */ +typedef struct +{ + Microsoft::WRL::ComPtr d3dDevice; + Microsoft::WRL::ComPtr d3dContext; + Microsoft::WRL::ComPtr swapChain; + Microsoft::WRL::ComPtr mainRenderTargetView; + Microsoft::WRL::ComPtr currentOffscreenRenderTargetView; + Microsoft::WRL::ComPtr inputLayout; + Microsoft::WRL::ComPtr vertexBuffer; + Microsoft::WRL::ComPtr vertexShader; + Microsoft::WRL::ComPtr texturePixelShader; + Microsoft::WRL::ComPtr colorPixelShader; + Microsoft::WRL::ComPtr blendModeBlend; + Microsoft::WRL::ComPtr blendModeAdd; + Microsoft::WRL::ComPtr blendModeMod; + Microsoft::WRL::ComPtr nearestPixelSampler; + Microsoft::WRL::ComPtr linearSampler; + Microsoft::WRL::ComPtr mainRasterizer; + D3D_FEATURE_LEVEL featureLevel; + + // Vertex buffer constants: + SDL_VertexShaderConstants vertexShaderConstantsData; + Microsoft::WRL::ComPtr vertexShaderConstants; + + // Cached renderer properties. + DirectX::XMFLOAT2 windowSizeInDIPs; + DirectX::XMFLOAT2 renderTargetSize; + Windows::Graphics::Display::DisplayOrientations orientation; + + // Transform used for display orientation. + DirectX::XMFLOAT4X4 orientationTransform3D; +} D3D11_RenderData; + + +/* Direct3D 11.1 renderer implementation */ static SDL_Renderer *D3D11_CreateRenderer(SDL_Window * window, Uint32 flags); static void D3D11_WindowEvent(SDL_Renderer * renderer, const SDL_WindowEvent *event); diff --git a/src/render/direct3d11/SDL_render_d3d11_cpp.h b/src/render/direct3d11/SDL_render_d3d11_cpp.h deleted file mode 100644 index 6c8584683..000000000 --- a/src/render/direct3d11/SDL_render_d3d11_cpp.h +++ /dev/null @@ -1,86 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2012 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ -#include "SDL_config.h" - -#include -#include -#include -#include - -struct SDL_VertexShaderConstants -{ - DirectX::XMFLOAT4X4 model; - DirectX::XMFLOAT4X4 view; - DirectX::XMFLOAT4X4 projection; -}; - -typedef struct -{ - Microsoft::WRL::ComPtr d3dDevice; - Microsoft::WRL::ComPtr d3dContext; - Microsoft::WRL::ComPtr swapChain; - Microsoft::WRL::ComPtr mainRenderTargetView; - Microsoft::WRL::ComPtr currentOffscreenRenderTargetView; - Microsoft::WRL::ComPtr inputLayout; - Microsoft::WRL::ComPtr vertexBuffer; - Microsoft::WRL::ComPtr vertexShader; - Microsoft::WRL::ComPtr texturePixelShader; - Microsoft::WRL::ComPtr colorPixelShader; - Microsoft::WRL::ComPtr blendModeBlend; - Microsoft::WRL::ComPtr blendModeAdd; - Microsoft::WRL::ComPtr blendModeMod; - Microsoft::WRL::ComPtr nearestPixelSampler; - Microsoft::WRL::ComPtr linearSampler; - Microsoft::WRL::ComPtr mainRasterizer; - D3D_FEATURE_LEVEL featureLevel; - - // Vertex buffer constants: - SDL_VertexShaderConstants vertexShaderConstantsData; - Microsoft::WRL::ComPtr vertexShaderConstants; - - // Cached renderer properties. - DirectX::XMFLOAT2 windowSizeInDIPs; - DirectX::XMFLOAT2 renderTargetSize; - Windows::Graphics::Display::DisplayOrientations orientation; - - // Transform used for display orientation. - DirectX::XMFLOAT4X4 orientationTransform3D; -} D3D11_RenderData; - -typedef struct -{ - Microsoft::WRL::ComPtr mainTexture; - Microsoft::WRL::ComPtr mainTextureResourceView; - Microsoft::WRL::ComPtr mainTextureRenderTargetView; - SDL_PixelFormat * pixelFormat; - Microsoft::WRL::ComPtr stagingTexture; - DirectX::XMINT2 lockedTexturePosition; - D3D11_FILTER scaleMode; -} D3D11_TextureData; - -struct VertexPositionColor -{ - DirectX::XMFLOAT3 pos; - DirectX::XMFLOAT2 tex; - DirectX::XMFLOAT4 color; -}; - -/* vi: set ts=4 sw=4 expandtab: */