2018-03-13 6:36 GMT+01:00 Alex Henrie alexhenrie24@gmail.com:
diff --git a/dlls/d3dx9_24/Makefile.in b/dlls/d3dx9_24/Makefile.in index 482c92d64e..6810b7963c 100644 --- a/dlls/d3dx9_24/Makefile.in +++ b/dlls/d3dx9_24/Makefile.in @@ -1,6 +1,7 @@ EXTRADEFS = -DD3DX_SDK_VERSION=24 MODULE = d3dx9_24.dll IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 +EXTRADEFS = -D_D3DX9_VER=24 PARENTSRC = ../d3dx9_36
You should simply use the already existing (and "official") D3DX_SDK_VERSION define instead.
static const struct ID3DXEffectVtbl ID3DXEffect_Vtbl = { @@ -4469,9 +4473,13 @@ static const struct ID3DXEffectVtbl ID3DXEffect_Vtbl = ID3DXEffectImpl_BeginParameterBlock, ID3DXEffectImpl_EndParameterBlock, ID3DXEffectImpl_ApplyParameterBlock, +#if _D3DX9_VER >= 26 ID3DXEffectImpl_DeleteParameterBlock, +#endif ID3DXEffectImpl_CloneEffect, +#if _D3DX9_VER >= 27 ID3DXEffectImpl_SetRawValue +#endif };
Were you able to find any source for this, aside from Rico's comment 4 in bug 25138? Not a deal breaker if not, but it would be a "nice to have".
diff --git a/include/d3dx9effect.h b/include/d3dx9effect.h index 8235794a31..83e19cfe53 100644 --- a/include/d3dx9effect.h +++ b/include/d3dx9effect.h @@ -282,10 +289,15 @@ DECLARE_INTERFACE_(ID3DXEffect, ID3DXBaseEffect) STDMETHOD(BeginParameterBlock)(THIS) PURE; STDMETHOD_(D3DXHANDLE, EndParameterBlock)(THIS) PURE; STDMETHOD(ApplyParameterBlock)(THIS_ D3DXHANDLE parameter_block) PURE; +#if !defined(_D3DX9_VER) || _D3DX9_VER >= 26 STDMETHOD(DeleteParameterBlock)(THIS_ D3DXHANDLE parameter_block) PURE; +#endif STDMETHOD(CloneEffect)(THIS_ struct IDirect3DDevice9 *device, struct ID3DXEffect **effect) PURE; +#if !defined(_D3DX9_VER) || _D3DX9_VER >= 27 STDMETHOD(SetRawValue)(THIS_ D3DXHANDLE parameter, const void *data, UINT byte_offset, UINT bytes) PURE; +#endif };
You can get rid of the !defined() part (after switching to D3DX_SDK_VERSION).