[PATCH 3/5] wined3d: wined3d_device_set_vertex_shader() never fails.

Henri Verbeet hverbeet at codeweavers.com
Sun Sep 23 15:14:47 CDT 2012


---
 dlls/d3d8/device.c     |    7 ++-----
 dlls/d3d9/device.c     |    5 ++---
 dlls/wined3d/device.c  |   22 ++++++++--------------
 include/wine/wined3d.h |    2 +-
 4 files changed, 13 insertions(+), 23 deletions(-)

diff --git a/dlls/d3d8/device.c b/dlls/d3d8/device.c
index baa8b63..5325a6d 100644
--- a/dlls/d3d8/device.c
+++ b/dlls/d3d8/device.c
@@ -2110,7 +2110,6 @@ static HRESULT WINAPI d3d8_device_SetVertexShader(IDirect3DDevice8 *iface, DWORD
 {
     struct d3d8_device *device = impl_from_IDirect3DDevice8(iface);
     struct d3d8_vertex_shader *shader_impl;
-    HRESULT hr;
 
     TRACE("iface %p, shader %#x.\n", iface, shader);
 
@@ -2140,12 +2139,10 @@ static HRESULT WINAPI d3d8_device_SetVertexShader(IDirect3DDevice8 *iface, DWORD
 
     wined3d_device_set_vertex_declaration(device->wined3d_device,
             shader_impl->vertex_declaration->wined3d_vertex_declaration);
-    hr = wined3d_device_set_vertex_shader(device->wined3d_device, shader_impl->wined3d_shader);
+    wined3d_device_set_vertex_shader(device->wined3d_device, shader_impl->wined3d_shader);
     wined3d_mutex_unlock();
 
-    TRACE("Returning hr %#x\n", hr);
-
-    return hr;
+    return D3D_OK;
 }
 
 static HRESULT WINAPI d3d8_device_GetVertexShader(IDirect3DDevice8 *iface, DWORD *shader)
diff --git a/dlls/d3d9/device.c b/dlls/d3d9/device.c
index b1b7b80..5a17943 100644
--- a/dlls/d3d9/device.c
+++ b/dlls/d3d9/device.c
@@ -2266,16 +2266,15 @@ static HRESULT WINAPI d3d9_device_SetVertexShader(IDirect3DDevice9Ex *iface, IDi
 {
     struct d3d9_device *device = impl_from_IDirect3DDevice9Ex(iface);
     struct d3d9_vertexshader *shader_obj = unsafe_impl_from_IDirect3DVertexShader9(shader);
-    HRESULT hr;
 
     TRACE("iface %p, shader %p.\n", iface, shader);
 
     wined3d_mutex_lock();
-    hr =  wined3d_device_set_vertex_shader(device->wined3d_device,
+    wined3d_device_set_vertex_shader(device->wined3d_device,
             shader_obj ? shader_obj->wined3d_shader : NULL);
     wined3d_mutex_unlock();
 
-    return hr;
+    return D3D_OK;
 }
 
 static HRESULT WINAPI d3d9_device_GetVertexShader(IDirect3DDevice9Ex *iface, IDirect3DVertexShader9 **shader)
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index 1b63104..2cf0f85 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -2449,39 +2449,33 @@ struct wined3d_vertex_declaration * CDECL wined3d_device_get_vertex_declaration(
     return device->stateBlock->state.vertex_declaration;
 }
 
-HRESULT CDECL wined3d_device_set_vertex_shader(struct wined3d_device *device, struct wined3d_shader *shader)
+void CDECL wined3d_device_set_vertex_shader(struct wined3d_device *device, struct wined3d_shader *shader)
 {
     struct wined3d_shader *prev = device->updateStateBlock->state.vertex_shader;
 
     TRACE("device %p, shader %p.\n", device, shader);
 
+    if (shader)
+        wined3d_shader_incref(shader);
+    if (prev)
+        wined3d_shader_decref(prev);
+
     device->updateStateBlock->state.vertex_shader = shader;
     device->updateStateBlock->changed.vertexShader = TRUE;
 
     if (device->isRecordingState)
     {
-        if (shader)
-            wined3d_shader_incref(shader);
-        if (prev)
-            wined3d_shader_decref(prev);
         TRACE("Recording... not performing anything.\n");
-        return WINED3D_OK;
+        return;
     }
 
     if (shader == prev)
     {
         TRACE("Application is setting the old shader over, nothing to do.\n");
-        return WINED3D_OK;
+        return;
     }
 
-    if (shader)
-        wined3d_shader_incref(shader);
-    if (prev)
-        wined3d_shader_decref(prev);
-
     device_invalidate_state(device, STATE_VSHADER);
-
-    return WINED3D_OK;
 }
 
 struct wined3d_shader * CDECL wined3d_device_get_vertex_shader(const struct wined3d_device *device)
diff --git a/include/wine/wined3d.h b/include/wine/wined3d.h
index bf16b55..3a87b25 100644
--- a/include/wine/wined3d.h
+++ b/include/wine/wined3d.h
@@ -2236,7 +2236,7 @@ void __cdecl wined3d_device_set_transform(struct wined3d_device *device,
         enum wined3d_transform_state state, const struct wined3d_matrix *matrix);
 void __cdecl wined3d_device_set_vertex_declaration(struct wined3d_device *device,
         struct wined3d_vertex_declaration *declaration);
-HRESULT __cdecl wined3d_device_set_vertex_shader(struct wined3d_device *device, struct wined3d_shader *shader);
+void __cdecl wined3d_device_set_vertex_shader(struct wined3d_device *device, struct wined3d_shader *shader);
 void __cdecl wined3d_device_set_viewport(struct wined3d_device *device, const struct wined3d_viewport *viewport);
 HRESULT __cdecl wined3d_device_set_vs_consts_b(struct wined3d_device *device,
         UINT start_register, const BOOL *constants, UINT bool_count);
-- 
1.7.8.6




More information about the wine-patches mailing list