d3dx9: Avoid LPDIRECT3DVERTEXSHADER9.
This commit is contained in:
parent
41c8f1ef8a
commit
0c84de4455
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue