From 0c84de4455e354b85ac5c0af1c3090fc5b4051b3 Mon Sep 17 00:00:00 2001 From: Henri Verbeet Date: Tue, 23 Oct 2012 21:01:07 +0200 Subject: [PATCH] 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 dcd12d4c2b..7fde7fd9c6 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 bae911f31b..b3a16d7678 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; -- 2.32.0.93.g670b81a890