Henri Verbeet : d3dx9: Avoid LPDIRECT3DVERTEXSHADER9.
Alexandre Julliard
julliard at winehq.org
Wed Oct 24 13:39:40 CDT 2012
Module: wine
Branch: master
Commit: 0c84de4455e354b85ac5c0af1c3090fc5b4051b3
URL: http://source.winehq.org/git/wine.git/?a=commit;h=0c84de4455e354b85ac5c0af1c3090fc5b4051b3
Author: Henri Verbeet <hverbeet at codeweavers.com>
Date: Tue Oct 23 21:01:07 2012 +0200
d3dx9: Avoid LPDIRECT3DVERTEXSHADER9.
---
dlls/d3dx9_36/effect.c | 26 ++++++++++++++------------
include/d3dx9effect.h | 8 ++++----
2 files changed, 18 insertions(+), 16 deletions(-)
diff --git a/dlls/d3dx9_36/effect.c b/dlls/d3dx9_36/effect.c
index dcd12d4..7fde7fd 100644
--- a/dlls/d3dx9_36/effect.c
+++ b/dlls/d3dx9_36/effect.c
@@ -2717,18 +2717,19 @@ static HRESULT WINAPI ID3DXBaseEffectImpl_GetPixelShader(ID3DXBaseEffect *iface,
return D3DERR_INVALIDCALL;
}
-static HRESULT WINAPI ID3DXBaseEffectImpl_GetVertexShader(ID3DXBaseEffect *iface, D3DXHANDLE parameter, LPDIRECT3DVERTEXSHADER9 *vshader)
+static HRESULT WINAPI ID3DXBaseEffectImpl_GetVertexShader(struct ID3DXBaseEffect *iface,
+ D3DXHANDLE parameter, struct IDirect3DVertexShader9 **shader)
{
struct ID3DXBaseEffectImpl *This = impl_from_ID3DXBaseEffect(iface);
struct d3dx_parameter *param = get_valid_parameter(This, parameter);
- TRACE("iface %p, parameter %p, vshader %p\n", This, parameter, vshader);
+ TRACE("iface %p, parameter %p, shader %p.\n", This, parameter, shader);
- if (vshader && param && !param->element_count && param->type == D3DXPT_VERTEXSHADER)
+ if (shader && param && !param->element_count && param->type == D3DXPT_VERTEXSHADER)
{
- *vshader = *(LPDIRECT3DVERTEXSHADER9 *)param->data;
- if (*vshader) IDirect3DVertexShader9_AddRef(*vshader);
- TRACE("Returning %p\n", *vshader);
+ if ((*shader = *(struct IDirect3DVertexShader9 **)param->data))
+ IDirect3DVertexShader9_AddRef(*shader);
+ TRACE("Returning %p.\n", *shader);
return D3D_OK;
}
@@ -3379,14 +3380,15 @@ static HRESULT WINAPI ID3DXEffectImpl_GetPixelShader(ID3DXEffect *iface,
return ID3DXBaseEffectImpl_GetPixelShader(base, parameter, shader);
}
-static HRESULT WINAPI ID3DXEffectImpl_GetVertexShader(ID3DXEffect *iface, D3DXHANDLE parameter, LPDIRECT3DVERTEXSHADER9 *vshader)
+static HRESULT WINAPI ID3DXEffectImpl_GetVertexShader(struct ID3DXEffect *iface,
+ D3DXHANDLE parameter, struct IDirect3DVertexShader9 **shader)
{
struct ID3DXEffectImpl *This = impl_from_ID3DXEffect(iface);
ID3DXBaseEffect *base = This->base_effect;
TRACE("Forward iface %p, base %p\n", This, base);
- return ID3DXBaseEffectImpl_GetVertexShader(base, parameter, vshader);
+ return ID3DXBaseEffectImpl_GetVertexShader(base, parameter, shader);
}
static HRESULT WINAPI ID3DXEffectImpl_SetArrayRange(ID3DXEffect *iface, D3DXHANDLE parameter, UINT start, UINT end)
@@ -4345,14 +4347,15 @@ static HRESULT WINAPI ID3DXEffectCompilerImpl_GetPixelShader(ID3DXEffectCompiler
return ID3DXBaseEffectImpl_GetPixelShader(base, parameter, shader);
}
-static HRESULT WINAPI ID3DXEffectCompilerImpl_GetVertexShader(ID3DXEffectCompiler *iface, D3DXHANDLE parameter, LPDIRECT3DVERTEXSHADER9 *vshader)
+static HRESULT WINAPI ID3DXEffectCompilerImpl_GetVertexShader(struct ID3DXEffectCompiler *iface,
+ D3DXHANDLE parameter, struct IDirect3DVertexShader9 **shader)
{
struct ID3DXEffectCompilerImpl *This = impl_from_ID3DXEffectCompiler(iface);
ID3DXBaseEffect *base = This->base_effect;
TRACE("Forward iface %p, base %p\n", This, base);
- return ID3DXBaseEffectImpl_GetVertexShader(base, parameter, vshader);
+ return ID3DXBaseEffectImpl_GetVertexShader(base, parameter, shader);
}
static HRESULT WINAPI ID3DXEffectCompilerImpl_SetArrayRange(ID3DXEffectCompiler *iface, D3DXHANDLE parameter, UINT start, UINT end)
@@ -4737,8 +4740,7 @@ static HRESULT d3dx9_parse_data(struct d3dx_parameter *param, const char **ptr,
break;
case D3DXPT_VERTEXSHADER:
- hr = IDirect3DDevice9_CreateVertexShader(device, (DWORD *)*ptr, (LPDIRECT3DVERTEXSHADER9 *)param->data);
- if (hr != D3D_OK)
+ if (FAILED(hr = IDirect3DDevice9_CreateVertexShader(device, (DWORD *)*ptr, param->data)))
{
WARN("Failed to create vertex shader\n");
return hr;
diff --git a/include/d3dx9effect.h b/include/d3dx9effect.h
index bae911f..b3a16d7 100644
--- a/include/d3dx9effect.h
+++ b/include/d3dx9effect.h
@@ -151,7 +151,7 @@ DECLARE_INTERFACE_(ID3DXBaseEffect, IUnknown)
STDMETHOD(SetTexture)(THIS_ D3DXHANDLE parameter, LPDIRECT3DBASETEXTURE9 texture) PURE;
STDMETHOD(GetTexture)(THIS_ D3DXHANDLE parameter, LPDIRECT3DBASETEXTURE9* texture) PURE;
STDMETHOD(GetPixelShader)(THIS_ D3DXHANDLE parameter, struct IDirect3DPixelShader9 **shader) PURE;
- STDMETHOD(GetVertexShader)(THIS_ D3DXHANDLE parameter, LPDIRECT3DVERTEXSHADER9* vshader) PURE;
+ STDMETHOD(GetVertexShader)(THIS_ D3DXHANDLE parameter, struct IDirect3DVertexShader9 **shader) PURE;
STDMETHOD(SetArrayRange)(THIS_ D3DXHANDLE parameter, UINT start, UINT end) PURE;
};
#undef INTERFACE
@@ -179,7 +179,7 @@ DECLARE_INTERFACE_(ID3DXEffectStateManager, IUnknown)
STDMETHOD(SetSamplerState)(THIS_ DWORD sampler, D3DSAMPLERSTATETYPE type, DWORD value) PURE;
STDMETHOD(SetNPatchMode)(THIS_ FLOAT num_segments) PURE;
STDMETHOD(SetFVF)(THIS_ DWORD format) PURE;
- STDMETHOD(SetVertexShader)(THIS_ LPDIRECT3DVERTEXSHADER9 shader) PURE;
+ STDMETHOD(SetVertexShader)(THIS_ struct IDirect3DVertexShader9 *shader) PURE;
STDMETHOD(SetVertexShaderConstantF)(THIS_ UINT register_index, CONST FLOAT* constant_data, UINT register_count) PURE;
STDMETHOD(SetVertexShaderConstantI)(THIS_ UINT register_index, CONST INT* constant_data, UINT register_count) PURE;
STDMETHOD(SetVertexShaderConstantB)(THIS_ UINT register_index, CONST BOOL* constant_data, UINT register_count) PURE;
@@ -255,7 +255,7 @@ DECLARE_INTERFACE_(ID3DXEffect, ID3DXBaseEffect)
STDMETHOD(SetTexture)(THIS_ D3DXHANDLE parameter, LPDIRECT3DBASETEXTURE9 texture) PURE;
STDMETHOD(GetTexture)(THIS_ D3DXHANDLE parameter, LPDIRECT3DBASETEXTURE9* texture) PURE;
STDMETHOD(GetPixelShader)(THIS_ D3DXHANDLE parameter, struct IDirect3DPixelShader9 **shader) PURE;
- STDMETHOD(GetVertexShader)(THIS_ D3DXHANDLE parameter, LPDIRECT3DVERTEXSHADER9* vshader) PURE;
+ STDMETHOD(GetVertexShader)(THIS_ D3DXHANDLE parameter, struct IDirect3DVertexShader9 **shader) PURE;
STDMETHOD(SetArrayRange)(THIS_ D3DXHANDLE parameter, UINT start, UINT end) PURE;
/*** ID3DXEffect methods ***/
STDMETHOD(GetPool)(THIS_ LPD3DXEFFECTPOOL* pool) PURE;
@@ -348,7 +348,7 @@ DECLARE_INTERFACE_(ID3DXEffectCompiler, ID3DXBaseEffect)
STDMETHOD(SetTexture)(THIS_ D3DXHANDLE parameter, LPDIRECT3DBASETEXTURE9 texture) PURE;
STDMETHOD(GetTexture)(THIS_ D3DXHANDLE parameter, LPDIRECT3DBASETEXTURE9* texture) PURE;
STDMETHOD(GetPixelShader)(THIS_ D3DXHANDLE parameter, struct IDirect3DPixelShader9 **shader) PURE;
- STDMETHOD(GetVertexShader)(THIS_ D3DXHANDLE parameter, LPDIRECT3DVERTEXSHADER9* vshader) PURE;
+ STDMETHOD(GetVertexShader)(THIS_ D3DXHANDLE parameter, struct IDirect3DVertexShader9 **shader) PURE;
STDMETHOD(SetArrayRange)(THIS_ D3DXHANDLE parameter, UINT start, UINT end) PURE;
/*** ID3DXEffectCompiler methods ***/
STDMETHOD(SetLiteral)(THIS_ D3DXHANDLE parameter, BOOL literal) PURE;
More information about the wine-cvs
mailing list