[2/8] d3d8: Use D3DMULTISAMPLE_TYPE <-> WINED3DMULTISAMPLE_TYPE enum conversion functions instead of implicit conversions (clang)

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


No default label used in switch statements so the compiler warns about unhandled cases
---
 dlls/d3d8/cubetexture.c  |    2 +-
 dlls/d3d8/d3d8_private.h |   51 ++++++++++++++++++++++++++++++++++++++++++++++
 dlls/d3d8/device.c       |   18 +++++++++-------
 dlls/d3d8/directx.c      |    3 +-
 dlls/d3d8/surface.c      |    4 +-
 dlls/d3d8/swapchain.c    |    4 +-
 dlls/d3d8/texture.c      |    2 +-
 7 files changed, 69 insertions(+), 15 deletions(-)

diff --git a/dlls/d3d8/cubetexture.c b/dlls/d3d8/cubetexture.c
index 2221c2e..5c28eff 100644
--- a/dlls/d3d8/cubetexture.c
+++ b/dlls/d3d8/cubetexture.c
@@ -272,7 +272,7 @@ static HRESULT WINAPI IDirect3DCubeTexture8Impl_GetLevelDesc(IDirect3DCubeTextur
         desc->Usage = wined3d_desc.usage;
         desc->Pool = d3dpool_from_wined3dpool(wined3d_desc.pool);
         desc->Size = wined3d_desc.size;
-        desc->MultiSampleType = wined3d_desc.multisample_type;
+        desc->MultiSampleType = d3dmultisampletype_from_wined3dmultisampletype(wined3d_desc.multisample_type);
         desc->Width = wined3d_desc.width;
         desc->Height = wined3d_desc.height;
     }
diff --git a/dlls/d3d8/d3d8_private.h b/dlls/d3d8/d3d8_private.h
index b52dd78..c9eba13 100644
--- a/dlls/d3d8/d3d8_private.h
+++ b/dlls/d3d8/d3d8_private.h
@@ -508,6 +508,57 @@ static inline WINED3DPOOL wined3dpool_from_d3dpool(D3DPOOL type)
     return (WINED3DPOOL) type;
 }
 
+static inline D3DMULTISAMPLE_TYPE d3dmultisampletype_from_wined3dmultisampletype(WINED3DMULTISAMPLE_TYPE type)
+{
+    switch (type)
+    {
+        case WINED3DMULTISAMPLE_NONE: return D3DMULTISAMPLE_NONE;
+        case WINED3DMULTISAMPLE_NONMASKABLE: return (D3DMULTISAMPLE_TYPE) type;
+        case WINED3DMULTISAMPLE_2_SAMPLES: return D3DMULTISAMPLE_2_SAMPLES;
+        case WINED3DMULTISAMPLE_3_SAMPLES: return D3DMULTISAMPLE_3_SAMPLES;
+        case WINED3DMULTISAMPLE_4_SAMPLES: return D3DMULTISAMPLE_4_SAMPLES;
+        case WINED3DMULTISAMPLE_5_SAMPLES: return D3DMULTISAMPLE_5_SAMPLES;
+        case WINED3DMULTISAMPLE_6_SAMPLES: return D3DMULTISAMPLE_6_SAMPLES;
+        case WINED3DMULTISAMPLE_7_SAMPLES: return D3DMULTISAMPLE_7_SAMPLES;
+        case WINED3DMULTISAMPLE_8_SAMPLES: return D3DMULTISAMPLE_8_SAMPLES;
+        case WINED3DMULTISAMPLE_9_SAMPLES: return D3DMULTISAMPLE_9_SAMPLES;
+        case WINED3DMULTISAMPLE_10_SAMPLES: return D3DMULTISAMPLE_10_SAMPLES;
+        case WINED3DMULTISAMPLE_11_SAMPLES: return D3DMULTISAMPLE_11_SAMPLES;
+        case WINED3DMULTISAMPLE_12_SAMPLES: return D3DMULTISAMPLE_12_SAMPLES;
+        case WINED3DMULTISAMPLE_13_SAMPLES: return D3DMULTISAMPLE_13_SAMPLES;
+        case WINED3DMULTISAMPLE_14_SAMPLES: return D3DMULTISAMPLE_14_SAMPLES;
+        case WINED3DMULTISAMPLE_15_SAMPLES: return D3DMULTISAMPLE_15_SAMPLES;
+        case WINED3DMULTISAMPLE_16_SAMPLES: return D3DMULTISAMPLE_16_SAMPLES;
+        case WINED3DMULTISAMPLE_FORCE_DWORD: return D3DMULTISAMPLE_FORCE_DWORD;
+    }
+    return (D3DMULTISAMPLE_TYPE) type;
+}
+
+static inline WINED3DMULTISAMPLE_TYPE wined3dmultisampletype_from_d3dmultisampletype(D3DMULTISAMPLE_TYPE type)
+{
+    switch (type)
+    {
+        case D3DMULTISAMPLE_NONE: return WINED3DMULTISAMPLE_NONE;
+        case D3DMULTISAMPLE_2_SAMPLES: return WINED3DMULTISAMPLE_2_SAMPLES;
+        case D3DMULTISAMPLE_3_SAMPLES: return WINED3DMULTISAMPLE_3_SAMPLES;
+        case D3DMULTISAMPLE_4_SAMPLES: return WINED3DMULTISAMPLE_4_SAMPLES;
+        case D3DMULTISAMPLE_5_SAMPLES: return WINED3DMULTISAMPLE_5_SAMPLES;
+        case D3DMULTISAMPLE_6_SAMPLES: return WINED3DMULTISAMPLE_6_SAMPLES;
+        case D3DMULTISAMPLE_7_SAMPLES: return WINED3DMULTISAMPLE_7_SAMPLES;
+        case D3DMULTISAMPLE_8_SAMPLES: return WINED3DMULTISAMPLE_8_SAMPLES;
+        case D3DMULTISAMPLE_9_SAMPLES: return WINED3DMULTISAMPLE_9_SAMPLES;
+        case D3DMULTISAMPLE_10_SAMPLES: return WINED3DMULTISAMPLE_10_SAMPLES;
+        case D3DMULTISAMPLE_11_SAMPLES: return WINED3DMULTISAMPLE_11_SAMPLES;
+        case D3DMULTISAMPLE_12_SAMPLES: return WINED3DMULTISAMPLE_12_SAMPLES;
+        case D3DMULTISAMPLE_13_SAMPLES: return WINED3DMULTISAMPLE_13_SAMPLES;
+        case D3DMULTISAMPLE_14_SAMPLES: return WINED3DMULTISAMPLE_14_SAMPLES;
+        case D3DMULTISAMPLE_15_SAMPLES: return WINED3DMULTISAMPLE_15_SAMPLES;
+        case D3DMULTISAMPLE_16_SAMPLES: return WINED3DMULTISAMPLE_16_SAMPLES;
+        case D3DMULTISAMPLE_FORCE_DWORD: return WINED3DMULTISAMPLE_FORCE_DWORD;
+    }
+    return (WINED3DMULTISAMPLE_TYPE) type;
+}
+
 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 5e66ebe..afc6595 100644
--- a/dlls/d3d8/device.c
+++ b/dlls/d3d8/device.c
@@ -613,7 +613,7 @@ static HRESULT WINAPI IDirect3DDevice8Impl_Reset(IDirect3DDevice8 *iface,
     localParameters.BackBufferHeight                            = pPresentationParameters->BackBufferHeight;
     localParameters.BackBufferFormat                            = wined3dformat_from_d3dformat(pPresentationParameters->BackBufferFormat);
     localParameters.BackBufferCount                             = pPresentationParameters->BackBufferCount;
-    localParameters.MultiSampleType                             = pPresentationParameters->MultiSampleType;
+    localParameters.MultiSampleType                             = wined3dmultisampletype_from_d3dmultisampletype(pPresentationParameters->MultiSampleType);
     localParameters.MultiSampleQuality                          = 0; /* d3d9 only */
     localParameters.SwapEffect                                  = pPresentationParameters->SwapEffect;
     localParameters.hDeviceWindow                               = pPresentationParameters->hDeviceWindow;
@@ -641,7 +641,7 @@ static HRESULT WINAPI IDirect3DDevice8Impl_Reset(IDirect3DDevice8 *iface,
     pPresentationParameters->BackBufferHeight                   = localParameters.BackBufferHeight;
     pPresentationParameters->BackBufferFormat                   = d3dformat_from_wined3dformat(localParameters.BackBufferFormat);
     pPresentationParameters->BackBufferCount                    = localParameters.BackBufferCount;
-    pPresentationParameters->MultiSampleType                    = localParameters.MultiSampleType;
+    pPresentationParameters->MultiSampleType                    = d3dmultisampletype_from_wined3dmultisampletype(localParameters.MultiSampleType);
     pPresentationParameters->SwapEffect                         = localParameters.SwapEffect;
     pPresentationParameters->hDeviceWindow                      = localParameters.hDeviceWindow;
     pPresentationParameters->Windowed                           = localParameters.Windowed;
@@ -2928,7 +2928,8 @@ static HRESULT CDECL device_parent_create_rendertarget(struct wined3d_device_par
             multisample_type, multisample_quality, lockable, surface);
 
     hr = IDirect3DDevice8_CreateRenderTarget(&device->IDirect3DDevice8_iface, width, height,
-            d3dformat_from_wined3dformat(format), multisample_type, lockable, (IDirect3DSurface8 **)&d3d_surface);
+            d3dformat_from_wined3dformat(format), d3dmultisampletype_from_wined3dmultisampletype(multisample_type),
+            lockable, (IDirect3DSurface8 **)&d3d_surface);
     if (FAILED(hr))
     {
         WARN("Failed to create rendertarget, hr %#x.\n", hr);
@@ -2958,7 +2959,8 @@ static HRESULT CDECL device_parent_create_depth_stencil(struct wined3d_device_pa
             device_parent, width, height, format, multisample_type, multisample_quality, discard, surface);
 
     hr = IDirect3DDevice8_CreateDepthStencilSurface(&device->IDirect3DDevice8_iface, width, height,
-            d3dformat_from_wined3dformat(format), multisample_type, (IDirect3DSurface8 **)&d3d_surface);
+            d3dformat_from_wined3dformat(format), d3dmultisampletype_from_wined3dmultisampletype(multisample_type),
+            (IDirect3DSurface8 **)&d3d_surface);
     if (FAILED(hr))
     {
         WARN("Failed to create depth/stencil surface, hr %#x.\n", hr);
@@ -3032,7 +3034,7 @@ static HRESULT CDECL device_parent_create_swapchain(struct wined3d_device_parent
     local_parameters.BackBufferHeight = present_parameters->BackBufferHeight;
     local_parameters.BackBufferFormat = d3dformat_from_wined3dformat(present_parameters->BackBufferFormat);
     local_parameters.BackBufferCount = present_parameters->BackBufferCount;
-    local_parameters.MultiSampleType = present_parameters->MultiSampleType;
+    local_parameters.MultiSampleType = d3dmultisampletype_from_wined3dmultisampletype(present_parameters->MultiSampleType);
     local_parameters.SwapEffect = present_parameters->SwapEffect;
     local_parameters.hDeviceWindow = present_parameters->hDeviceWindow;
     local_parameters.Windowed = present_parameters->Windowed;
@@ -3060,7 +3062,7 @@ static HRESULT CDECL device_parent_create_swapchain(struct wined3d_device_parent
     present_parameters->BackBufferHeight = local_parameters.BackBufferHeight;
     present_parameters->BackBufferFormat = wined3dformat_from_d3dformat(local_parameters.BackBufferFormat);
     present_parameters->BackBufferCount = local_parameters.BackBufferCount;
-    present_parameters->MultiSampleType = local_parameters.MultiSampleType;
+    present_parameters->MultiSampleType = wined3dmultisampletype_from_d3dmultisampletype(local_parameters.MultiSampleType);
     present_parameters->SwapEffect = local_parameters.SwapEffect;
     present_parameters->hDeviceWindow = local_parameters.hDeviceWindow;
     present_parameters->Windowed = local_parameters.Windowed;
@@ -3155,7 +3157,7 @@ HRESULT device_init(IDirect3DDevice8Impl *device, struct wined3d *wined3d, UINT
     wined3d_parameters.BackBufferHeight = parameters->BackBufferHeight;
     wined3d_parameters.BackBufferFormat = wined3dformat_from_d3dformat(parameters->BackBufferFormat);
     wined3d_parameters.BackBufferCount = parameters->BackBufferCount;
-    wined3d_parameters.MultiSampleType = parameters->MultiSampleType;
+    wined3d_parameters.MultiSampleType = wined3dmultisampletype_from_d3dmultisampletype(parameters->MultiSampleType);
     wined3d_parameters.MultiSampleQuality = 0; /* d3d9 only */
     wined3d_parameters.SwapEffect = parameters->SwapEffect;
     wined3d_parameters.hDeviceWindow = parameters->hDeviceWindow;
@@ -3190,7 +3192,7 @@ HRESULT device_init(IDirect3DDevice8Impl *device, struct wined3d *wined3d, UINT
     parameters->BackBufferHeight = wined3d_parameters.BackBufferHeight;
     parameters->BackBufferFormat = d3dformat_from_wined3dformat(wined3d_parameters.BackBufferFormat);
     parameters->BackBufferCount = wined3d_parameters.BackBufferCount;
-    parameters->MultiSampleType = wined3d_parameters.MultiSampleType;
+    parameters->MultiSampleType = d3dmultisampletype_from_wined3dmultisampletype(wined3d_parameters.MultiSampleType);
     parameters->SwapEffect = wined3d_parameters.SwapEffect;
     parameters->hDeviceWindow = wined3d_parameters.hDeviceWindow;
     parameters->Windowed = wined3d_parameters.Windowed;
diff --git a/dlls/d3d8/directx.c b/dlls/d3d8/directx.c
index 249399e..faa9a70 100644
--- a/dlls/d3d8/directx.c
+++ b/dlls/d3d8/directx.c
@@ -268,7 +268,8 @@ static HRESULT WINAPI IDirect3D8Impl_CheckDeviceMultiSampleType(IDirect3D8 *ifac
 
     wined3d_mutex_lock();
     hr = wined3d_check_device_multisample_type(This->WineD3D, Adapter, DeviceType,
-            wined3dformat_from_d3dformat(SurfaceFormat), Windowed, (WINED3DMULTISAMPLE_TYPE)MultiSampleType, NULL);
+            wined3dformat_from_d3dformat(SurfaceFormat), Windowed,
+            wined3dmultisampletype_from_d3dmultisampletype(MultiSampleType), NULL);
     wined3d_mutex_unlock();
 
     return hr;
diff --git a/dlls/d3d8/surface.c b/dlls/d3d8/surface.c
index 9bad283..5dd0964 100644
--- a/dlls/d3d8/surface.c
+++ b/dlls/d3d8/surface.c
@@ -205,7 +205,7 @@ static HRESULT WINAPI IDirect3DSurface8Impl_GetDesc(IDirect3DSurface8 *iface, D3
     desc->Usage = wined3d_desc.usage;
     desc->Pool = d3dpool_from_wined3dpool(wined3d_desc.pool);
     desc->Size = wined3d_desc.size;
-    desc->MultiSampleType = wined3d_desc.multisample_type;
+    desc->MultiSampleType = d3dmultisampletype_from_wined3dmultisampletype(wined3d_desc.multisample_type);
     desc->Width = wined3d_desc.width;
     desc->Height = wined3d_desc.height;
 
@@ -306,7 +306,7 @@ HRESULT surface_init(IDirect3DSurface8Impl *surface, IDirect3DDevice8Impl *devic
     wined3d_mutex_lock();
     hr = wined3d_surface_create(device->wined3d_device, width, height, wined3dformat_from_d3dformat(format),
             lockable, discard, level, usage & WINED3DUSAGE_MASK, wined3dpool_from_d3dpool(pool),
-            multisample_type, multisample_quality,
+            wined3dmultisampletype_from_d3dmultisampletype(multisample_type), multisample_quality,
             SURFACE_OPENGL, surface, &d3d8_surface_wined3d_parent_ops, &surface->wined3d_surface);
     wined3d_mutex_unlock();
     if (FAILED(hr))
diff --git a/dlls/d3d8/swapchain.c b/dlls/d3d8/swapchain.c
index 866335f..fd1d927 100644
--- a/dlls/d3d8/swapchain.c
+++ b/dlls/d3d8/swapchain.c
@@ -161,7 +161,7 @@ HRESULT swapchain_init(IDirect3DSwapChain8Impl *swapchain, IDirect3DDevice8Impl
     wined3d_parameters.BackBufferHeight = present_parameters->BackBufferHeight;
     wined3d_parameters.BackBufferFormat = wined3dformat_from_d3dformat(present_parameters->BackBufferFormat);
     wined3d_parameters.BackBufferCount = max(1, present_parameters->BackBufferCount);
-    wined3d_parameters.MultiSampleType = present_parameters->MultiSampleType;
+    wined3d_parameters.MultiSampleType = wined3dmultisampletype_from_d3dmultisampletype(present_parameters->MultiSampleType);
     wined3d_parameters.MultiSampleQuality = 0; /* d3d9 only */
     wined3d_parameters.SwapEffect = present_parameters->SwapEffect;
     wined3d_parameters.hDeviceWindow = present_parameters->hDeviceWindow;
@@ -183,7 +183,7 @@ HRESULT swapchain_init(IDirect3DSwapChain8Impl *swapchain, IDirect3DDevice8Impl
     present_parameters->BackBufferHeight = wined3d_parameters.BackBufferHeight;
     present_parameters->BackBufferFormat = d3dformat_from_wined3dformat(wined3d_parameters.BackBufferFormat);
     present_parameters->BackBufferCount = wined3d_parameters.BackBufferCount;
-    present_parameters->MultiSampleType = wined3d_parameters.MultiSampleType;
+    present_parameters->MultiSampleType = d3dmultisampletype_from_wined3dmultisampletype(wined3d_parameters.MultiSampleType);
     present_parameters->SwapEffect = wined3d_parameters.SwapEffect;
     present_parameters->hDeviceWindow = wined3d_parameters.hDeviceWindow;
     present_parameters->Windowed = wined3d_parameters.Windowed;
diff --git a/dlls/d3d8/texture.c b/dlls/d3d8/texture.c
index 75e62f8..e8dee7e 100644
--- a/dlls/d3d8/texture.c
+++ b/dlls/d3d8/texture.c
@@ -269,7 +269,7 @@ static HRESULT WINAPI IDirect3DTexture8Impl_GetLevelDesc(IDirect3DTexture8 *ifac
         desc->Usage = wined3d_desc.usage;
         desc->Pool = d3dpool_from_wined3dpool(wined3d_desc.pool);
         desc->Size = wined3d_desc.size;
-        desc->MultiSampleType = wined3d_desc.multisample_type;
+        desc->MultiSampleType = d3dmultisampletype_from_wined3dmultisampletype(wined3d_desc.multisample_type);
         desc->Width = wined3d_desc.width;
         desc->Height = wined3d_desc.height;
     }
-- 
1.7.5.3




More information about the wine-patches mailing list