Module: wine Branch: master Commit: 2f03ad1a40e48884d1d4ddeb6edfa3991f785faa URL: http://source.winehq.org/git/wine.git/?a=commit;h=2f03ad1a40e48884d1d4ddeb6e...
Author: Henri Verbeet hverbeet@codeweavers.com Date: Thu Sep 20 22:59:21 2012 +0200
wined3d: Just return the declaration from wined3d_device_get_vertex_declaration().
---
dlls/d3d8/device.c | 19 +++++-------------- dlls/d3d9/device.c | 23 +++++------------------ dlls/wined3d/device.c | 11 +++-------- dlls/wined3d/wined3d.spec | 2 +- include/wine/wined3d.h | 3 +-- 5 files changed, 15 insertions(+), 43 deletions(-)
diff --git a/dlls/d3d8/device.c b/dlls/d3d8/device.c index 244e4c0..baa8b63 100644 --- a/dlls/d3d8/device.c +++ b/dlls/d3d8/device.c @@ -2153,33 +2153,24 @@ static HRESULT WINAPI d3d8_device_GetVertexShader(IDirect3DDevice8 *iface, DWORD struct d3d8_device *device = impl_from_IDirect3DDevice8(iface); struct wined3d_vertex_declaration *wined3d_declaration; struct d3d8_vertex_declaration *d3d8_declaration; - HRESULT hr;
TRACE("iface %p, shader %p.\n", iface, shader);
wined3d_mutex_lock(); - if (FAILED(hr = wined3d_device_get_vertex_declaration(device->wined3d_device, &wined3d_declaration))) + if ((wined3d_declaration = wined3d_device_get_vertex_declaration(device->wined3d_device))) { - wined3d_mutex_unlock(); - WARN("Failed to get wined3d vertex declaration, hr %#x.\n", hr); - return hr; + d3d8_declaration = wined3d_vertex_declaration_get_parent(wined3d_declaration); + *shader = d3d8_declaration->shader_handle; } - - if (!wined3d_declaration) + else { - wined3d_mutex_unlock(); *shader = 0; - return D3D_OK; } - - d3d8_declaration = wined3d_vertex_declaration_get_parent(wined3d_declaration); - wined3d_vertex_declaration_decref(wined3d_declaration); wined3d_mutex_unlock(); - *shader = d3d8_declaration->shader_handle;
TRACE("Returning %#x.\n", *shader);
- return hr; + return D3D_OK; }
static HRESULT WINAPI d3d8_device_DeleteVertexShader(IDirect3DDevice8 *iface, DWORD shader) diff --git a/dlls/d3d9/device.c b/dlls/d3d9/device.c index ea2fd1f..b1b7b80 100644 --- a/dlls/d3d9/device.c +++ b/dlls/d3d9/device.c @@ -2088,22 +2088,19 @@ static HRESULT WINAPI d3d9_device_GetVertexDeclaration(IDirect3DDevice9Ex *iface IDirect3DVertexDeclaration9 **declaration) { struct d3d9_device *device = impl_from_IDirect3DDevice9Ex(iface); - struct wined3d_vertex_declaration *wined3d_declaration = NULL; + struct wined3d_vertex_declaration *wined3d_declaration; struct d3d9_vertex_declaration *declaration_impl; - HRESULT hr;
TRACE("iface %p, declaration %p.\n", iface, declaration);
if (!declaration) return D3DERR_INVALIDCALL;
wined3d_mutex_lock(); - hr = wined3d_device_get_vertex_declaration(device->wined3d_device, &wined3d_declaration); - if (SUCCEEDED(hr) && wined3d_declaration) + if ((wined3d_declaration = wined3d_device_get_vertex_declaration(device->wined3d_device))) { declaration_impl = wined3d_vertex_declaration_get_parent(wined3d_declaration); *declaration = &declaration_impl->IDirect3DVertexDeclaration9_iface; IDirect3DVertexDeclaration9_AddRef(*declaration); - wined3d_vertex_declaration_decref(wined3d_declaration); } else { @@ -2112,7 +2109,7 @@ static HRESULT WINAPI d3d9_device_GetVertexDeclaration(IDirect3DDevice9Ex *iface wined3d_mutex_unlock();
TRACE("Returning %p.\n", *declaration); - return hr; + return D3D_OK; }
static struct wined3d_vertex_declaration *device_get_fvf_declaration(struct d3d9_device *device, DWORD fvf) @@ -2215,24 +2212,14 @@ static HRESULT WINAPI d3d9_device_GetFVF(IDirect3DDevice9Ex *iface, DWORD *fvf) struct d3d9_device *device = impl_from_IDirect3DDevice9Ex(iface); struct wined3d_vertex_declaration *wined3d_declaration; struct d3d9_vertex_declaration *d3d9_declaration; - HRESULT hr;
TRACE("iface %p, fvf %p.\n", iface, fvf);
wined3d_mutex_lock(); - if (FAILED(hr = wined3d_device_get_vertex_declaration(device->wined3d_device, &wined3d_declaration))) - { - wined3d_mutex_unlock(); - WARN("Failed to get vertex declaration, hr %#x.\n", hr); - *fvf = 0; - return hr; - } - - if (wined3d_declaration) + if ((wined3d_declaration = wined3d_device_get_vertex_declaration(device->wined3d_device))) { d3d9_declaration = wined3d_vertex_declaration_get_parent(wined3d_declaration); *fvf = d3d9_declaration->fvf; - wined3d_vertex_declaration_decref(wined3d_declaration); } else { @@ -2242,7 +2229,7 @@ static HRESULT WINAPI d3d9_device_GetFVF(IDirect3DDevice9Ex *iface, DWORD *fvf)
TRACE("Returning FVF %#x.\n", *fvf);
- return hr; + return D3D_OK; }
static HRESULT WINAPI d3d9_device_CreateVertexShader(IDirect3DDevice9Ex *iface, diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c index 4d6d03c..1b63104 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -2442,16 +2442,11 @@ void CDECL wined3d_device_set_vertex_declaration(struct wined3d_device *device, device_invalidate_state(device, STATE_VDECL); }
-HRESULT CDECL wined3d_device_get_vertex_declaration(const struct wined3d_device *device, - struct wined3d_vertex_declaration **declaration) +struct wined3d_vertex_declaration * CDECL wined3d_device_get_vertex_declaration(const struct wined3d_device *device) { - TRACE("device %p, declaration %p.\n", device, declaration); - - *declaration = device->stateBlock->state.vertex_declaration; - if (*declaration) - wined3d_vertex_declaration_incref(*declaration); + TRACE("device %p.\n", device);
- return WINED3D_OK; + return device->stateBlock->state.vertex_declaration; }
HRESULT CDECL wined3d_device_set_vertex_shader(struct wined3d_device *device, struct wined3d_shader *shader) diff --git a/dlls/wined3d/wined3d.spec b/dlls/wined3d/wined3d.spec index c50dd29..091f6d5 100644 --- a/dlls/wined3d/wined3d.spec +++ b/dlls/wined3d/wined3d.spec @@ -88,7 +88,7 @@ @ cdecl wined3d_device_get_texture(ptr long ptr) @ cdecl wined3d_device_get_texture_stage_state(ptr long long ptr) @ cdecl wined3d_device_get_transform(ptr long ptr) -@ cdecl wined3d_device_get_vertex_declaration(ptr ptr) +@ cdecl wined3d_device_get_vertex_declaration(ptr) @ cdecl wined3d_device_get_vertex_shader(ptr) @ cdecl wined3d_device_get_viewport(ptr ptr) @ cdecl wined3d_device_get_vs_consts_b(ptr long ptr long) diff --git a/include/wine/wined3d.h b/include/wine/wined3d.h index 90e71c0..bf16b55 100644 --- a/include/wine/wined3d.h +++ b/include/wine/wined3d.h @@ -2164,8 +2164,7 @@ HRESULT __cdecl wined3d_device_get_texture_stage_state(const struct wined3d_devi UINT stage, enum wined3d_texture_stage_state state, DWORD *value); void __cdecl wined3d_device_get_transform(const struct wined3d_device *device, enum wined3d_transform_state state, struct wined3d_matrix *matrix); -HRESULT __cdecl wined3d_device_get_vertex_declaration(const struct wined3d_device *device, - struct wined3d_vertex_declaration **declaration); +struct wined3d_vertex_declaration * __cdecl wined3d_device_get_vertex_declaration(const struct wined3d_device *device); struct wined3d_shader * __cdecl wined3d_device_get_vertex_shader(const struct wined3d_device *device); void __cdecl wined3d_device_get_viewport(const struct wined3d_device *device, struct wined3d_viewport *viewport); HRESULT __cdecl wined3d_device_get_vs_consts_b(const struct wined3d_device *device,