Henri Verbeet : wined3d: Getting the current vertex shader should never fail.
Alexandre Julliard
julliard at winehq.org
Tue Sep 7 11:22:54 CDT 2010
Module: wine
Branch: master
Commit: 0c54dfe7bac6f01d3716bff86e7c84561ad73b7b
URL: http://source.winehq.org/git/wine.git/?a=commit;h=0c54dfe7bac6f01d3716bff86e7c84561ad73b7b
Author: Henri Verbeet <hverbeet at codeweavers.com>
Date: Mon Sep 6 22:18:55 2010 +0200
wined3d: Getting the current vertex shader should never fail.
---
dlls/d3d8/device.c | 5 ++---
dlls/d3d9/device.c | 22 +++++++---------------
dlls/wined3d/device.c | 20 ++++++++++----------
include/wine/wined3d.idl | 3 +--
4 files changed, 20 insertions(+), 30 deletions(-)
diff --git a/dlls/d3d8/device.c b/dlls/d3d8/device.c
index 59e318c..d1edac4 100644
--- a/dlls/d3d8/device.c
+++ b/dlls/d3d8/device.c
@@ -1960,7 +1960,7 @@ static HRESULT WINAPI IDirect3DDevice8Impl_GetVertexShader(IDirect3DDevice8 *ifa
static HRESULT WINAPI IDirect3DDevice8Impl_DeleteVertexShader(LPDIRECT3DDEVICE8 iface, DWORD pShader) {
IDirect3DDevice8Impl *This = (IDirect3DDevice8Impl *)iface;
IDirect3DVertexShader8Impl *shader;
- IWineD3DVertexShader *cur = NULL;
+ IWineD3DVertexShader *cur;
TRACE("iface %p, shader %#x.\n", iface, pShader);
@@ -1974,8 +1974,7 @@ static HRESULT WINAPI IDirect3DDevice8Impl_DeleteVertexShader(LPDIRECT3DDEVICE
return D3DERR_INVALIDCALL;
}
- IWineD3DDevice_GetVertexShader(This->WineD3DDevice, &cur);
-
+ cur = IWineD3DDevice_GetVertexShader(This->WineD3DDevice);
if (cur)
{
if (cur == shader->wineD3DVertexShader) IDirect3DDevice8_SetVertexShader(iface, 0);
diff --git a/dlls/d3d9/device.c b/dlls/d3d9/device.c
index 7c10c43..5b03a9f 100644
--- a/dlls/d3d9/device.c
+++ b/dlls/d3d9/device.c
@@ -2219,34 +2219,26 @@ static HRESULT WINAPI IDirect3DDevice9Impl_GetVertexShader(IDirect3DDevice9Ex *i
IDirect3DVertexShader9 **shader)
{
IWineD3DVertexShader *wined3d_shader;
- HRESULT hr;
TRACE("iface %p, shader %p.\n", iface, shader);
wined3d_mutex_lock();
- hr = IWineD3DDevice_GetVertexShader(((IDirect3DDevice9Impl *)iface)->WineD3DDevice, &wined3d_shader);
- if (SUCCEEDED(hr))
+ wined3d_shader = IWineD3DDevice_GetVertexShader(((IDirect3DDevice9Impl *)iface)->WineD3DDevice);
+ if (wined3d_shader)
{
- if (wined3d_shader)
- {
- *shader = IWineD3DVertexShader_GetParent(wined3d_shader);
- IDirect3DVertexShader9_AddRef(*shader);
- IWineD3DVertexShader_Release(wined3d_shader);
- }
- else
- {
- *shader = NULL;
- }
+ *shader = IWineD3DVertexShader_GetParent(wined3d_shader);
+ IDirect3DVertexShader9_AddRef(*shader);
+ IWineD3DVertexShader_Release(wined3d_shader);
}
else
{
- WARN("Failed to get vertex shader, hr %#x.\n", hr);
+ *shader = NULL;
}
wined3d_mutex_unlock();
TRACE("Returning %p.\n", *shader);
- return hr;
+ return D3D_OK;
}
static HRESULT WINAPI IDirect3DDevice9Impl_SetVertexShaderConstantF(IDirect3DDevice9Ex *iface,
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index 6cd07bb..2197a5f 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -3208,18 +3208,18 @@ static HRESULT WINAPI IWineD3DDeviceImpl_SetVertexShader(IWineD3DDevice *iface,
return WINED3D_OK;
}
-static HRESULT WINAPI IWineD3DDeviceImpl_GetVertexShader(IWineD3DDevice *iface, IWineD3DVertexShader** ppShader) {
- IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface;
+static IWineD3DVertexShader * WINAPI IWineD3DDeviceImpl_GetVertexShader(IWineD3DDevice *iface)
+{
+ IWineD3DDeviceImpl *device = (IWineD3DDeviceImpl *)iface;
+ IWineD3DVertexShader *shader;
- if (NULL == ppShader) {
- return WINED3DERR_INVALIDCALL;
- }
- *ppShader = This->stateBlock->vertexShader;
- if( NULL != *ppShader)
- IWineD3DVertexShader_AddRef(*ppShader);
+ TRACE("iface %p.\n", iface);
- TRACE("(%p) : returning %p\n", This, *ppShader);
- return WINED3D_OK;
+ shader = device->stateBlock->vertexShader;
+ if (shader) IWineD3DVertexShader_AddRef(shader);
+
+ TRACE("Returning %p.\n", shader);
+ return shader;
}
static HRESULT WINAPI IWineD3DDeviceImpl_SetVertexShaderConstantB(
diff --git a/include/wine/wined3d.idl b/include/wine/wined3d.idl
index 230d012..0b29432 100644
--- a/include/wine/wined3d.idl
+++ b/include/wine/wined3d.idl
@@ -3221,8 +3221,7 @@ interface IWineD3DDevice : IUnknown
HRESULT SetVertexShader(
[in] IWineD3DVertexShader *shader
);
- HRESULT GetVertexShader(
- [out] IWineD3DVertexShader **shader
+ IWineD3DVertexShader *GetVertexShader(
);
HRESULT SetVertexShaderConstantB(
[in] UINT start_register,
More information about the wine-cvs
mailing list