[3/8] d3d8: Use D3DRESOURCETYPE -> WINED3DRESOURCETYPE enum conversion function instead of implicit conversion (clang)

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


No default label used in switch statements so the compiler warns about unhandled cases
---
 dlls/d3d8/cubetexture.c   |    4 ++--
 dlls/d3d8/d3d8_private.h  |   31 +++++++++++++++++++++++++++++++
 dlls/d3d8/directx.c       |    2 +-
 dlls/d3d8/surface.c       |    2 +-
 dlls/d3d8/texture.c       |    4 ++--
 dlls/d3d8/volume.c        |    2 +-
 dlls/d3d8/volumetexture.c |    4 ++--
 7 files changed, 40 insertions(+), 9 deletions(-)

diff --git a/dlls/d3d8/cubetexture.c b/dlls/d3d8/cubetexture.c
index 5c28eff..1e6f8a6 100644
--- a/dlls/d3d8/cubetexture.c
+++ b/dlls/d3d8/cubetexture.c
@@ -200,7 +200,7 @@ static D3DRESOURCETYPE WINAPI IDirect3DCubeTexture8Impl_GetType(IDirect3DCubeTex
     TRACE("iface %p.\n", iface);
 
     wined3d_mutex_lock();
-    type = wined3d_texture_get_type(This->wined3d_texture);
+    type = d3dresourcetype_from_wined3dresourcetype(wined3d_texture_get_type(This->wined3d_texture));
     wined3d_mutex_unlock();
 
     return type;
@@ -268,7 +268,7 @@ static HRESULT WINAPI IDirect3DCubeTexture8Impl_GetLevelDesc(IDirect3DCubeTextur
 
         wined3d_resource_get_desc(sub_resource, &wined3d_desc);
         desc->Format = d3dformat_from_wined3dformat(wined3d_desc.format);
-        desc->Type = wined3d_desc.resource_type;
+        desc->Type = d3dresourcetype_from_wined3dresourcetype(wined3d_desc.resource_type);
         desc->Usage = wined3d_desc.usage;
         desc->Pool = d3dpool_from_wined3dpool(wined3d_desc.pool);
         desc->Size = wined3d_desc.size;
diff --git a/dlls/d3d8/d3d8_private.h b/dlls/d3d8/d3d8_private.h
index c9eba13..880da8b 100644
--- a/dlls/d3d8/d3d8_private.h
+++ b/dlls/d3d8/d3d8_private.h
@@ -559,6 +559,37 @@ static inline WINED3DMULTISAMPLE_TYPE wined3dmultisampletype_from_d3dmultisample
     return (WINED3DMULTISAMPLE_TYPE) type;
 }
 
+static inline D3DRESOURCETYPE d3dresourcetype_from_wined3dresourcetype(WINED3DRESOURCETYPE type)
+{
+    switch (type)
+    {
+        case WINED3DRTYPE_SURFACE: return D3DRTYPE_SURFACE;
+        case WINED3DRTYPE_VOLUME: return D3DRTYPE_VOLUME;
+        case WINED3DRTYPE_TEXTURE: return D3DRTYPE_TEXTURE;
+        case WINED3DRTYPE_VOLUMETEXTURE: return D3DRTYPE_VOLUMETEXTURE;
+        case WINED3DRTYPE_CUBETEXTURE: return D3DRTYPE_CUBETEXTURE;
+        case WINED3DRTYPE_BUFFER: return D3DRTYPE_VERTEXBUFFER;
+        case WINED3DRTYPE_FORCE_DWORD : return D3DRTYPE_FORCE_DWORD;
+    }
+    return (D3DRESOURCETYPE) type;
+}
+
+static inline WINED3DRESOURCETYPE wined3dresourcetype_from_d3dresourcetype(D3DRESOURCETYPE type)
+{
+    switch (type)
+    {
+        case D3DRTYPE_SURFACE: return WINED3DRTYPE_SURFACE;
+        case D3DRTYPE_VOLUME: return WINED3DRTYPE_VOLUME;
+        case D3DRTYPE_TEXTURE: return WINED3DRTYPE_TEXTURE;
+        case D3DRTYPE_VOLUMETEXTURE: return WINED3DRTYPE_VOLUMETEXTURE;
+        case D3DRTYPE_CUBETEXTURE: return WINED3DRTYPE_CUBETEXTURE;
+        case D3DRTYPE_VERTEXBUFFER: return WINED3DRTYPE_BUFFER;
+        case D3DRTYPE_INDEXBUFFER: return (WINED3DRESOURCETYPE) type;
+        case D3DRTYPE_FORCE_DWORD: return WINED3DRTYPE_FORCE_DWORD;
+    }
+    return (WINED3DRESOURCETYPE) 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/directx.c b/dlls/d3d8/directx.c
index faa9a70..bd86070 100644
--- a/dlls/d3d8/directx.c
+++ b/dlls/d3d8/directx.c
@@ -244,7 +244,7 @@ static HRESULT WINAPI IDirect3D8Impl_CheckDeviceFormat(LPDIRECT3D8 iface, UINT A
             break;
 
         default:
-            WineD3DRType = RType;
+            WineD3DRType = wined3dresourcetype_from_d3dresourcetype(RType);
             break;
     }
 
diff --git a/dlls/d3d8/surface.c b/dlls/d3d8/surface.c
index 5dd0964..bb8092a 100644
--- a/dlls/d3d8/surface.c
+++ b/dlls/d3d8/surface.c
@@ -201,7 +201,7 @@ static HRESULT WINAPI IDirect3DSurface8Impl_GetDesc(IDirect3DSurface8 *iface, D3
     wined3d_mutex_unlock();
 
     desc->Format = d3dformat_from_wined3dformat(wined3d_desc.format);
-    desc->Type = wined3d_desc.resource_type;
+    desc->Type = d3dresourcetype_from_wined3dresourcetype(wined3d_desc.resource_type);
     desc->Usage = wined3d_desc.usage;
     desc->Pool = d3dpool_from_wined3dpool(wined3d_desc.pool);
     desc->Size = wined3d_desc.size;
diff --git a/dlls/d3d8/texture.c b/dlls/d3d8/texture.c
index e8dee7e..8fe6b77 100644
--- a/dlls/d3d8/texture.c
+++ b/dlls/d3d8/texture.c
@@ -198,7 +198,7 @@ static D3DRESOURCETYPE WINAPI IDirect3DTexture8Impl_GetType(IDirect3DTexture8 *i
     TRACE("iface %p.\n", iface);
 
     wined3d_mutex_lock();
-    type = wined3d_texture_get_type(This->wined3d_texture);
+    type = d3dresourcetype_from_wined3dresourcetype(wined3d_texture_get_type(This->wined3d_texture));
     wined3d_mutex_unlock();
 
     return type;
@@ -265,7 +265,7 @@ static HRESULT WINAPI IDirect3DTexture8Impl_GetLevelDesc(IDirect3DTexture8 *ifac
 
         wined3d_resource_get_desc(sub_resource, &wined3d_desc);
         desc->Format = d3dformat_from_wined3dformat(wined3d_desc.format);
-        desc->Type = wined3d_desc.resource_type;
+        desc->Type = d3dresourcetype_from_wined3dresourcetype(wined3d_desc.resource_type);
         desc->Usage = wined3d_desc.usage;
         desc->Pool = d3dpool_from_wined3dpool(wined3d_desc.pool);
         desc->Size = wined3d_desc.size;
diff --git a/dlls/d3d8/volume.c b/dlls/d3d8/volume.c
index 76174f2..037dcee 100644
--- a/dlls/d3d8/volume.c
+++ b/dlls/d3d8/volume.c
@@ -200,7 +200,7 @@ static HRESULT WINAPI IDirect3DVolume8Impl_GetDesc(IDirect3DVolume8 *iface, D3DV
     wined3d_mutex_unlock();
 
     desc->Format = d3dformat_from_wined3dformat(wined3d_desc.format);
-    desc->Type = wined3d_desc.resource_type;
+    desc->Type = d3dresourcetype_from_wined3dresourcetype(wined3d_desc.resource_type);
     desc->Usage = wined3d_desc.usage;
     desc->Pool = d3dpool_from_wined3dpool(wined3d_desc.pool);
     desc->Size = wined3d_desc.size;
diff --git a/dlls/d3d8/volumetexture.c b/dlls/d3d8/volumetexture.c
index 4829cb3..139492f 100644
--- a/dlls/d3d8/volumetexture.c
+++ b/dlls/d3d8/volumetexture.c
@@ -198,7 +198,7 @@ static D3DRESOURCETYPE WINAPI IDirect3DVolumeTexture8Impl_GetType(IDirect3DVolum
     TRACE("iface %p.\n", iface);
 
     wined3d_mutex_lock();
-    type = wined3d_texture_get_type(This->wined3d_texture);
+    type = d3dresourcetype_from_wined3dresourcetype(wined3d_texture_get_type(This->wined3d_texture));
     wined3d_mutex_unlock();
 
     return type;
@@ -265,7 +265,7 @@ static HRESULT WINAPI IDirect3DVolumeTexture8Impl_GetLevelDesc(IDirect3DVolumeTe
 
         wined3d_resource_get_desc(sub_resource, &wined3d_desc);
         desc->Format = d3dformat_from_wined3dformat(wined3d_desc.format);
-        desc->Type = wined3d_desc.resource_type;
+        desc->Type = d3dresourcetype_from_wined3dresourcetype(wined3d_desc.resource_type);
         desc->Usage = wined3d_desc.usage;
         desc->Pool = d3dpool_from_wined3dpool(wined3d_desc.pool);
         desc->Size = wined3d_desc.size;
-- 
1.7.5.3




More information about the wine-patches mailing list