[8/8] d3d8: Use D3DPRIMITIVETYPE -> WINED3DPRIMITIVETYPE enum conversion function instead of implicit conversion (clang)

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


Conversion done using casts in order to prevent performance degradation in critical paths
---
 dlls/d3d8/d3d8_private.h |    5 +++++
 dlls/d3d8/device.c       |    8 ++++----
 2 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/dlls/d3d8/d3d8_private.h b/dlls/d3d8/d3d8_private.h
index c42fffc..64745d9 100644
--- a/dlls/d3d8/d3d8_private.h
+++ b/dlls/d3d8/d3d8_private.h
@@ -638,6 +638,11 @@ static inline WINED3DRENDERSTATETYPE wined3drenderstatetype_from_d3drenderstatet
     return (WINED3DRENDERSTATETYPE) type;
 }
 
+static inline WINED3DPRIMITIVETYPE wined3dprimitivetype_from_d3dprimitivetype(D3DPRIMITIVETYPE type)
+{
+    return (WINED3DPRIMITIVETYPE) 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 485cdd6..e165e1d 100644
--- a/dlls/d3d8/device.c
+++ b/dlls/d3d8/device.c
@@ -1968,7 +1968,7 @@ static HRESULT WINAPI IDirect3DDevice8Impl_DrawPrimitive(IDirect3DDevice8 *iface
             iface, PrimitiveType, StartVertex, PrimitiveCount);
 
     wined3d_mutex_lock();
-    wined3d_device_set_primitive_type(This->wined3d_device, PrimitiveType);
+    wined3d_device_set_primitive_type(This->wined3d_device, wined3dprimitivetype_from_d3dprimitivetype(PrimitiveType));
     hr = wined3d_device_draw_primitive(This->wined3d_device, StartVertex,
             vertex_count_from_primitive_count(PrimitiveType, PrimitiveCount));
     wined3d_mutex_unlock();
@@ -1987,7 +1987,7 @@ static HRESULT WINAPI IDirect3DDevice8Impl_DrawIndexedPrimitive(IDirect3DDevice8
             iface, PrimitiveType, MinVertexIndex, NumVertices, startIndex, primCount);
 
     wined3d_mutex_lock();
-    wined3d_device_set_primitive_type(This->wined3d_device, PrimitiveType);
+    wined3d_device_set_primitive_type(This->wined3d_device, wined3dprimitivetype_from_d3dprimitivetype(PrimitiveType));
     hr = wined3d_device_draw_indexed_primitive(This->wined3d_device, startIndex,
             vertex_count_from_primitive_count(PrimitiveType, primCount));
     wined3d_mutex_unlock();
@@ -2006,7 +2006,7 @@ static HRESULT WINAPI IDirect3DDevice8Impl_DrawPrimitiveUP(IDirect3DDevice8 *ifa
             iface, PrimitiveType, PrimitiveCount, pVertexStreamZeroData, VertexStreamZeroStride);
 
     wined3d_mutex_lock();
-    wined3d_device_set_primitive_type(This->wined3d_device, PrimitiveType);
+    wined3d_device_set_primitive_type(This->wined3d_device, wined3dprimitivetype_from_d3dprimitivetype(PrimitiveType));
     hr = wined3d_device_draw_primitive_up(This->wined3d_device,
             vertex_count_from_primitive_count(PrimitiveType, PrimitiveCount),
             pVertexStreamZeroData, VertexStreamZeroStride);
@@ -2029,7 +2029,7 @@ static HRESULT WINAPI IDirect3DDevice8Impl_DrawIndexedPrimitiveUP(IDirect3DDevic
             pIndexData, IndexDataFormat, pVertexStreamZeroData, VertexStreamZeroStride);
 
     wined3d_mutex_lock();
-    wined3d_device_set_primitive_type(This->wined3d_device, PrimitiveType);
+    wined3d_device_set_primitive_type(This->wined3d_device, wined3dprimitivetype_from_d3dprimitivetype(PrimitiveType));
     hr = wined3d_device_draw_indexed_primitive_up(This->wined3d_device,
             vertex_count_from_primitive_count(PrimitiveType, PrimitiveCount), pIndexData,
             wined3dformat_from_d3dformat(IndexDataFormat), pVertexStreamZeroData, VertexStreamZeroStride);
-- 
1.7.5.3




More information about the wine-patches mailing list