[5/8] d3d8: Use D3DSWAPEFFECT <-> WINED3DD3DSWAPEFFECT enum conversion functions instead of implicit conversions (clang)

Frédéric Delanoy frederic.delanoy at gmail.com
Sun May 29 02:46:08 CDT 2011


No default label used in switch statements so the compiler warns about unhandled cases
---
 dlls/d3d8/d3d8_private.h |   26 ++++++++++++++++++++++++++
 dlls/d3d8/device.c       |   12 ++++++------
 dlls/d3d8/swapchain.c    |    4 ++--
 3 files changed, 34 insertions(+), 8 deletions(-)

diff --git a/dlls/d3d8/d3d8_private.h b/dlls/d3d8/d3d8_private.h
index 3ca7a0f..e8d65ce 100644
--- a/dlls/d3d8/d3d8_private.h
+++ b/dlls/d3d8/d3d8_private.h
@@ -602,6 +602,32 @@ static inline WINED3DDEVTYPE wined3ddevtype_from_d3ddevtype(D3DDEVTYPE type)
     return (WINED3DDEVTYPE) type;
 }
 
+static inline D3DSWAPEFFECT d3swapeffect_from_wined3dswapeffect(WINED3DSWAPEFFECT effect)
+{
+    switch (effect)
+    {
+        case WINED3DSWAPEFFECT_DISCARD: return D3DSWAPEFFECT_DISCARD;
+        case WINED3DSWAPEFFECT_FLIP: return D3DSWAPEFFECT_FLIP;
+        case WINED3DSWAPEFFECT_COPY: return D3DSWAPEFFECT_COPY;
+        case WINED3DSWAPEFFECT_COPY_VSYNC: return D3DSWAPEFFECT_COPY_VSYNC;
+        case WINED3DSWAPEFFECT_FORCE_DWORD: return D3DSWAPEFFECT_FORCE_DWORD;
+    }
+    return (D3DSWAPEFFECT) effect;
+}
+
+static inline WINED3DSWAPEFFECT wined3swapeffect_from_d3dswapeffect(D3DSWAPEFFECT effect)
+{
+    switch (effect)
+    {
+        case D3DSWAPEFFECT_DISCARD: return WINED3DSWAPEFFECT_DISCARD;
+        case D3DSWAPEFFECT_FLIP: return WINED3DSWAPEFFECT_FLIP;
+        case D3DSWAPEFFECT_COPY: return WINED3DSWAPEFFECT_COPY;
+        case D3DSWAPEFFECT_COPY_VSYNC: return WINED3DSWAPEFFECT_COPY_VSYNC;
+        case D3DSWAPEFFECT_FORCE_DWORD: return WINED3DSWAPEFFECT_FORCE_DWORD;
+    }
+    return (WINED3DSWAPEFFECT) effect;
+}
+
 void load_local_constants(const DWORD *d3d8_elements, struct wined3d_shader *wined3d_vertex_shader) DECLSPEC_HIDDEN;
 size_t parse_token(const DWORD *pToken) DECLSPEC_HIDDEN;
 
diff --git a/dlls/d3d8/device.c b/dlls/d3d8/device.c
index 8120c21..285f7f6 100644
--- a/dlls/d3d8/device.c
+++ b/dlls/d3d8/device.c
@@ -615,7 +615,7 @@ static HRESULT WINAPI IDirect3DDevice8Impl_Reset(IDirect3DDevice8 *iface,
     localParameters.BackBufferCount                             = pPresentationParameters->BackBufferCount;
     localParameters.MultiSampleType                             = wined3dmultisampletype_from_d3dmultisampletype(pPresentationParameters->MultiSampleType);
     localParameters.MultiSampleQuality                          = 0; /* d3d9 only */
-    localParameters.SwapEffect                                  = pPresentationParameters->SwapEffect;
+    localParameters.SwapEffect                                  = wined3swapeffect_from_d3dswapeffect(pPresentationParameters->SwapEffect);
     localParameters.hDeviceWindow                               = pPresentationParameters->hDeviceWindow;
     localParameters.Windowed                                    = pPresentationParameters->Windowed;
     localParameters.EnableAutoDepthStencil                      = pPresentationParameters->EnableAutoDepthStencil;
@@ -642,7 +642,7 @@ static HRESULT WINAPI IDirect3DDevice8Impl_Reset(IDirect3DDevice8 *iface,
     pPresentationParameters->BackBufferFormat                   = d3dformat_from_wined3dformat(localParameters.BackBufferFormat);
     pPresentationParameters->BackBufferCount                    = localParameters.BackBufferCount;
     pPresentationParameters->MultiSampleType                    = d3dmultisampletype_from_wined3dmultisampletype(localParameters.MultiSampleType);
-    pPresentationParameters->SwapEffect                         = localParameters.SwapEffect;
+    pPresentationParameters->SwapEffect                         = d3swapeffect_from_wined3dswapeffect(localParameters.SwapEffect);
     pPresentationParameters->hDeviceWindow                      = localParameters.hDeviceWindow;
     pPresentationParameters->Windowed                           = localParameters.Windowed;
     pPresentationParameters->EnableAutoDepthStencil             = localParameters.EnableAutoDepthStencil;
@@ -3035,7 +3035,7 @@ static HRESULT CDECL device_parent_create_swapchain(struct wined3d_device_parent
     local_parameters.BackBufferFormat = d3dformat_from_wined3dformat(present_parameters->BackBufferFormat);
     local_parameters.BackBufferCount = present_parameters->BackBufferCount;
     local_parameters.MultiSampleType = d3dmultisampletype_from_wined3dmultisampletype(present_parameters->MultiSampleType);
-    local_parameters.SwapEffect = present_parameters->SwapEffect;
+    local_parameters.SwapEffect = d3swapeffect_from_wined3dswapeffect(present_parameters->SwapEffect);
     local_parameters.hDeviceWindow = present_parameters->hDeviceWindow;
     local_parameters.Windowed = present_parameters->Windowed;
     local_parameters.EnableAutoDepthStencil = present_parameters->EnableAutoDepthStencil;
@@ -3063,7 +3063,7 @@ static HRESULT CDECL device_parent_create_swapchain(struct wined3d_device_parent
     present_parameters->BackBufferFormat = wined3dformat_from_d3dformat(local_parameters.BackBufferFormat);
     present_parameters->BackBufferCount = local_parameters.BackBufferCount;
     present_parameters->MultiSampleType = wined3dmultisampletype_from_d3dmultisampletype(local_parameters.MultiSampleType);
-    present_parameters->SwapEffect = local_parameters.SwapEffect;
+    present_parameters->SwapEffect = wined3swapeffect_from_d3dswapeffect(local_parameters.SwapEffect);
     present_parameters->hDeviceWindow = local_parameters.hDeviceWindow;
     present_parameters->Windowed = local_parameters.Windowed;
     present_parameters->EnableAutoDepthStencil = local_parameters.EnableAutoDepthStencil;
@@ -3160,7 +3160,7 @@ HRESULT device_init(IDirect3DDevice8Impl *device, struct wined3d *wined3d, UINT
     wined3d_parameters.BackBufferCount = parameters->BackBufferCount;
     wined3d_parameters.MultiSampleType = wined3dmultisampletype_from_d3dmultisampletype(parameters->MultiSampleType);
     wined3d_parameters.MultiSampleQuality = 0; /* d3d9 only */
-    wined3d_parameters.SwapEffect = parameters->SwapEffect;
+    wined3d_parameters.SwapEffect = wined3swapeffect_from_d3dswapeffect(parameters->SwapEffect);
     wined3d_parameters.hDeviceWindow = parameters->hDeviceWindow;
     wined3d_parameters.Windowed = parameters->Windowed;
     wined3d_parameters.EnableAutoDepthStencil = parameters->EnableAutoDepthStencil;
@@ -3194,7 +3194,7 @@ HRESULT device_init(IDirect3DDevice8Impl *device, struct wined3d *wined3d, UINT
     parameters->BackBufferFormat = d3dformat_from_wined3dformat(wined3d_parameters.BackBufferFormat);
     parameters->BackBufferCount = wined3d_parameters.BackBufferCount;
     parameters->MultiSampleType = d3dmultisampletype_from_wined3dmultisampletype(wined3d_parameters.MultiSampleType);
-    parameters->SwapEffect = wined3d_parameters.SwapEffect;
+    parameters->SwapEffect = d3swapeffect_from_wined3dswapeffect(wined3d_parameters.SwapEffect);
     parameters->hDeviceWindow = wined3d_parameters.hDeviceWindow;
     parameters->Windowed = wined3d_parameters.Windowed;
     parameters->EnableAutoDepthStencil = wined3d_parameters.EnableAutoDepthStencil;
diff --git a/dlls/d3d8/swapchain.c b/dlls/d3d8/swapchain.c
index fd1d927..6da72a2 100644
--- a/dlls/d3d8/swapchain.c
+++ b/dlls/d3d8/swapchain.c
@@ -163,7 +163,7 @@ HRESULT swapchain_init(IDirect3DSwapChain8Impl *swapchain, IDirect3DDevice8Impl
     wined3d_parameters.BackBufferCount = max(1, present_parameters->BackBufferCount);
     wined3d_parameters.MultiSampleType = wined3dmultisampletype_from_d3dmultisampletype(present_parameters->MultiSampleType);
     wined3d_parameters.MultiSampleQuality = 0; /* d3d9 only */
-    wined3d_parameters.SwapEffect = present_parameters->SwapEffect;
+    wined3d_parameters.SwapEffect = wined3swapeffect_from_d3dswapeffect(present_parameters->SwapEffect);
     wined3d_parameters.hDeviceWindow = present_parameters->hDeviceWindow;
     wined3d_parameters.Windowed = present_parameters->Windowed;
     wined3d_parameters.EnableAutoDepthStencil = present_parameters->EnableAutoDepthStencil;
@@ -184,7 +184,7 @@ HRESULT swapchain_init(IDirect3DSwapChain8Impl *swapchain, IDirect3DDevice8Impl
     present_parameters->BackBufferFormat = d3dformat_from_wined3dformat(wined3d_parameters.BackBufferFormat);
     present_parameters->BackBufferCount = wined3d_parameters.BackBufferCount;
     present_parameters->MultiSampleType = d3dmultisampletype_from_wined3dmultisampletype(wined3d_parameters.MultiSampleType);
-    present_parameters->SwapEffect = wined3d_parameters.SwapEffect;
+    present_parameters->SwapEffect = d3swapeffect_from_wined3dswapeffect(wined3d_parameters.SwapEffect);
     present_parameters->hDeviceWindow = wined3d_parameters.hDeviceWindow;
     present_parameters->Windowed = wined3d_parameters.Windowed;
     present_parameters->EnableAutoDepthStencil = wined3d_parameters.EnableAutoDepthStencil;
-- 
1.7.5.3




More information about the wine-patches mailing list