diff --git a/reactos/dll/directx/wine/d3dx9_24/d3dx9_24.spec b/reactos/dll/directx/wine/d3dx9_24/d3dx9_24.spec index 0dcca427aed..c759f6e985a 100644 --- a/reactos/dll/directx/wine/d3dx9_24/d3dx9_24.spec +++ b/reactos/dll/directx/wine/d3dx9_24/d3dx9_24.spec @@ -18,7 +18,7 @@ @ stdcall D3DXCompileShaderFromResourceW(ptr wstr ptr ptr str str long ptr ptr ptr) d3dx9_36.D3DXCompileShaderFromResourceW @ stdcall D3DXComputeBoundingBox(ptr long long ptr ptr) d3dx9_36.D3DXComputeBoundingBox @ stdcall D3DXComputeBoundingSphere(ptr long long ptr ptr) d3dx9_36.D3DXComputeBoundingSphere -@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long long) d3dx9_36.D3DXComputeNormalMap +@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) d3dx9_36.D3DXComputeNormalMap @ stdcall D3DXComputeNormals(ptr ptr) d3dx9_36.D3DXComputeNormals @ stdcall D3DXComputeTangent(ptr long long long long ptr) d3dx9_36.D3DXComputeTangent @ stdcall D3DXComputeTangentFrame(ptr long) d3dx9_36.D3DXComputeTangentFrame @@ -43,21 +43,21 @@ @ stdcall D3DXCreateCubeTextureFromResourceExW(ptr long long long long long long long long long long ptr ptr ptr) d3dx9_36.D3DXCreateCubeTextureFromResourceExW @ stdcall D3DXCreateCubeTextureFromResourceW(ptr long ptr ptr) d3dx9_36.D3DXCreateCubeTextureFromResourceW @ stdcall D3DXCreateCylinder(ptr long long long long long ptr ptr) d3dx9_36.D3DXCreateCylinder -@ stdcall D3DXCreateEffect(ptr ptr long ptr ptr long ptr ptr ptr) d3dx9_36.D3DXCreateEffect +@ stdcall D3DXCreateEffect(ptr ptr long ptr ptr long ptr ptr ptr) d3dx9_25.D3DXCreateEffect @ stdcall D3DXCreateEffectCompiler(ptr long ptr ptr long ptr ptr) d3dx9_36.D3DXCreateEffectCompiler @ stdcall D3DXCreateEffectCompilerFromFileA(str ptr ptr long ptr ptr) d3dx9_36.D3DXCreateEffectCompilerFromFileA @ stdcall D3DXCreateEffectCompilerFromFileW(wstr ptr ptr long ptr ptr) d3dx9_36.D3DXCreateEffectCompilerFromFileW @ stdcall D3DXCreateEffectCompilerFromResourceA(long str ptr ptr long ptr ptr) d3dx9_36.D3DXCreateEffectCompilerFromResourceA @ stdcall D3DXCreateEffectCompilerFromResourceW(long wstr ptr ptr long ptr ptr) d3dx9_36.D3DXCreateEffectCompilerFromResourceW -@ stdcall D3DXCreateEffectEx(ptr ptr long ptr ptr str long ptr ptr ptr) d3dx9_36.D3DXCreateEffectEx -@ stdcall D3DXCreateEffectFromFileA(ptr str ptr ptr long ptr ptr ptr) d3dx9_36.D3DXCreateEffectFromFileA -@ stdcall D3DXCreateEffectFromFileExA(ptr str ptr ptr str long ptr ptr ptr) d3dx9_36.D3DXCreateEffectFromFileExA -@ stdcall D3DXCreateEffectFromFileExW(ptr str ptr ptr str long ptr ptr ptr) d3dx9_36.D3DXCreateEffectFromFileExW -@ stdcall D3DXCreateEffectFromFileW(ptr wstr ptr ptr long ptr ptr ptr) d3dx9_36.D3DXCreateEffectFromFileW -@ stdcall D3DXCreateEffectFromResourceA(ptr long str ptr ptr long ptr ptr ptr) d3dx9_36.D3DXCreateEffectFromResourceA -@ stdcall D3DXCreateEffectFromResourceExA(ptr long str ptr ptr str long ptr ptr ptr) d3dx9_36.D3DXCreateEffectFromResourceExA -@ stdcall D3DXCreateEffectFromResourceExW(ptr long str ptr ptr str long ptr ptr ptr) d3dx9_36.D3DXCreateEffectFromResourceExW -@ stdcall D3DXCreateEffectFromResourceW(ptr long wstr ptr ptr long ptr ptr ptr) d3dx9_36.D3DXCreateEffectFromResourceW +@ stdcall D3DXCreateEffectEx(ptr ptr long ptr ptr str long ptr ptr ptr) d3dx9_25.D3DXCreateEffectEx +@ stdcall D3DXCreateEffectFromFileA(ptr str ptr ptr long ptr ptr ptr) d3dx9_25.D3DXCreateEffectFromFileA +@ stdcall D3DXCreateEffectFromFileExA(ptr str ptr ptr str long ptr ptr ptr) d3dx9_25.D3DXCreateEffectFromFileExA +@ stdcall D3DXCreateEffectFromFileExW(ptr str ptr ptr str long ptr ptr ptr) d3dx9_25.D3DXCreateEffectFromFileExW +@ stdcall D3DXCreateEffectFromFileW(ptr wstr ptr ptr long ptr ptr ptr) d3dx9_25.D3DXCreateEffectFromFileW +@ stdcall D3DXCreateEffectFromResourceA(ptr long str ptr ptr long ptr ptr ptr) d3dx9_25.D3DXCreateEffectFromResourceA +@ stdcall D3DXCreateEffectFromResourceExA(ptr long str ptr ptr str long ptr ptr ptr) d3dx9_25.D3DXCreateEffectFromResourceExA +@ stdcall D3DXCreateEffectFromResourceExW(ptr long str ptr ptr str long ptr ptr ptr) d3dx9_25.D3DXCreateEffectFromResourceExW +@ stdcall D3DXCreateEffectFromResourceW(ptr long wstr ptr ptr long ptr ptr ptr) d3dx9_25.D3DXCreateEffectFromResourceW @ stdcall D3DXCreateEffectPool(ptr) d3dx9_36.D3DXCreateEffectPool @ stdcall D3DXCreateFontA(ptr long long long long long long long long long str ptr) d3dx9_36.D3DXCreateFontA @ stdcall D3DXCreateFontIndirectA(ptr ptr ptr) d3dx9_36.D3DXCreateFontIndirectA @@ -115,7 +115,7 @@ @ stdcall D3DXCreateVolumeTextureFromResourceW(ptr long ptr ptr) d3dx9_36.D3DXCreateVolumeTextureFromResourceW @ stdcall D3DXDebugMute(long) d3dx9_36.D3DXDebugMute @ stdcall D3DXDeclaratorFromFVF(long ptr) d3dx9_36.D3DXDeclaratorFromFVF -@ stdcall D3DXDisassembleEffect(ptr long ptr) d3dx9_36.D3DXDisassembleEffect +@ stdcall D3DXDisassembleEffect(ptr long ptr) d3dx9_25.D3DXDisassembleEffect @ stdcall D3DXDisassembleShader(ptr long str ptr) d3dx9_36.D3DXDisassembleShader @ stdcall D3DXFileCreate(ptr) d3dx9_36.D3DXFileCreate @ stdcall D3DXFillCubeTexture(ptr ptr ptr) d3dx9_36.D3DXFillCubeTexture @@ -131,7 +131,7 @@ @ stdcall D3DXFrameAppendChild(ptr ptr) d3dx9_36.D3DXFrameAppendChild @ stdcall D3DXFrameCalculateBoundingSphere(ptr ptr ptr) d3dx9_36.D3DXFrameCalculateBoundingSphere @ stdcall D3DXFrameDestroy(ptr ptr) d3dx9_36.D3DXFrameDestroy -@ stdcall D3DXFrameFind(ptr ptr) d3dx9_36.D3DXFrameFind +@ stdcall D3DXFrameFind(ptr str) d3dx9_36.D3DXFrameFind @ stdcall D3DXFrameNumNamedMatrices(ptr) d3dx9_36.D3DXFrameNumNamedMatrices @ stdcall D3DXFrameRegisterNamedMatrices(ptr ptr) d3dx9_36.D3DXFrameRegisterNamedMatrices @ stdcall D3DXFresnelTerm(float float) d3dx9_36.D3DXFresnelTerm diff --git a/reactos/dll/directx/wine/d3dx9_25/CMakeLists.txt b/reactos/dll/directx/wine/d3dx9_25/CMakeLists.txt index ca93608dc33..d0049fd7612 100644 --- a/reactos/dll/directx/wine/d3dx9_25/CMakeLists.txt +++ b/reactos/dll/directx/wine/d3dx9_25/CMakeLists.txt @@ -5,6 +5,7 @@ spec2def(d3dx9_25.dll d3dx9_25.spec) list(APPEND SOURCE d3dx9_25_main.c + effect.c ${CMAKE_CURRENT_BINARY_DIR}/d3dx9_25_stubs.c ${CMAKE_CURRENT_BINARY_DIR}/d3dx9_25.def) diff --git a/reactos/dll/directx/wine/d3dx9_25/d3dx9_25.spec b/reactos/dll/directx/wine/d3dx9_25/d3dx9_25.spec index 7975803499e..6591b56ec60 100644 --- a/reactos/dll/directx/wine/d3dx9_25/d3dx9_25.spec +++ b/reactos/dll/directx/wine/d3dx9_25/d3dx9_25.spec @@ -18,7 +18,7 @@ @ stdcall D3DXCompileShaderFromResourceW(ptr wstr ptr ptr str str long ptr ptr ptr) d3dx9_36.D3DXCompileShaderFromResourceW @ stdcall D3DXComputeBoundingBox(ptr long long ptr ptr) d3dx9_36.D3DXComputeBoundingBox @ stdcall D3DXComputeBoundingSphere(ptr long long ptr ptr) d3dx9_36.D3DXComputeBoundingSphere -@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long long) d3dx9_36.D3DXComputeNormalMap +@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) d3dx9_36.D3DXComputeNormalMap @ stdcall D3DXComputeNormals(ptr ptr) d3dx9_36.D3DXComputeNormals @ stdcall D3DXComputeTangent(ptr long long long long ptr) d3dx9_36.D3DXComputeTangent @ stdcall D3DXComputeTangentFrame(ptr long) d3dx9_36.D3DXComputeTangentFrame @@ -43,21 +43,21 @@ @ stdcall D3DXCreateCubeTextureFromResourceExW(ptr long long long long long long long long long long ptr ptr ptr) d3dx9_36.D3DXCreateCubeTextureFromResourceExW @ stdcall D3DXCreateCubeTextureFromResourceW(ptr long ptr ptr) d3dx9_36.D3DXCreateCubeTextureFromResourceW @ stdcall D3DXCreateCylinder(ptr long long long long long ptr ptr) d3dx9_36.D3DXCreateCylinder -@ stdcall D3DXCreateEffect(ptr ptr long ptr ptr long ptr ptr ptr) d3dx9_36.D3DXCreateEffect +@ stdcall D3DXCreateEffect(ptr ptr long ptr ptr long ptr ptr ptr) D3DXCreateEffect25 @ stdcall D3DXCreateEffectCompiler(ptr long ptr ptr long ptr ptr) d3dx9_36.D3DXCreateEffectCompiler @ stdcall D3DXCreateEffectCompilerFromFileA(str ptr ptr long ptr ptr) d3dx9_36.D3DXCreateEffectCompilerFromFileA @ stdcall D3DXCreateEffectCompilerFromFileW(wstr ptr ptr long ptr ptr) d3dx9_36.D3DXCreateEffectCompilerFromFileW @ stdcall D3DXCreateEffectCompilerFromResourceA(long str ptr ptr long ptr ptr) d3dx9_36.D3DXCreateEffectCompilerFromResourceA @ stdcall D3DXCreateEffectCompilerFromResourceW(long wstr ptr ptr long ptr ptr) d3dx9_36.D3DXCreateEffectCompilerFromResourceW -@ stdcall D3DXCreateEffectEx(ptr ptr long ptr ptr str long ptr ptr ptr) d3dx9_36.D3DXCreateEffectEx -@ stdcall D3DXCreateEffectFromFileA(ptr str ptr ptr long ptr ptr ptr) d3dx9_36.D3DXCreateEffectFromFileA -@ stdcall D3DXCreateEffectFromFileExA(ptr str ptr ptr str long ptr ptr ptr) d3dx9_36.D3DXCreateEffectFromFileExA -@ stdcall D3DXCreateEffectFromFileExW(ptr str ptr ptr str long ptr ptr ptr) d3dx9_36.D3DXCreateEffectFromFileExW -@ stdcall D3DXCreateEffectFromFileW(ptr wstr ptr ptr long ptr ptr ptr) d3dx9_36.D3DXCreateEffectFromFileW -@ stdcall D3DXCreateEffectFromResourceA(ptr long str ptr ptr long ptr ptr ptr) d3dx9_36.D3DXCreateEffectFromResourceA -@ stdcall D3DXCreateEffectFromResourceExA(ptr long str ptr ptr str long ptr ptr ptr) d3dx9_36.D3DXCreateEffectFromResourceExA -@ stdcall D3DXCreateEffectFromResourceExW(ptr long str ptr ptr str long ptr ptr ptr) d3dx9_36.D3DXCreateEffectFromResourceExW -@ stdcall D3DXCreateEffectFromResourceW(ptr long wstr ptr ptr long ptr ptr ptr) d3dx9_36.D3DXCreateEffectFromResourceW +@ stdcall D3DXCreateEffectEx(ptr ptr long ptr ptr str long ptr ptr ptr) D3DXCreateEffectEx25 +@ stdcall D3DXCreateEffectFromFileA(ptr str ptr ptr long ptr ptr ptr) D3DXCreateEffectFromFileA25 +@ stdcall D3DXCreateEffectFromFileExA(ptr str ptr ptr str long ptr ptr ptr) D3DXCreateEffectFromFileExA25 +@ stdcall D3DXCreateEffectFromFileExW(ptr str ptr ptr str long ptr ptr ptr) D3DXCreateEffectFromFileExW25 +@ stdcall D3DXCreateEffectFromFileW(ptr wstr ptr ptr long ptr ptr ptr) D3DXCreateEffectFromFileW25 +@ stdcall D3DXCreateEffectFromResourceA(ptr long str ptr ptr long ptr ptr ptr) D3DXCreateEffectFromResourceA25 +@ stdcall D3DXCreateEffectFromResourceExA(ptr long str ptr ptr str long ptr ptr ptr) D3DXCreateEffectFromResourceExA25 +@ stdcall D3DXCreateEffectFromResourceExW(ptr long str ptr ptr str long ptr ptr ptr) D3DXCreateEffectFromResourceExW25 +@ stdcall D3DXCreateEffectFromResourceW(ptr long wstr ptr ptr long ptr ptr ptr) D3DXCreateEffectFromResourceW25 @ stdcall D3DXCreateEffectPool(ptr) d3dx9_36.D3DXCreateEffectPool @ stdcall D3DXCreateFontA(ptr long long long long long long long long long str ptr) d3dx9_36.D3DXCreateFontA @ stdcall D3DXCreateFontIndirectA(ptr ptr ptr) d3dx9_36.D3DXCreateFontIndirectA @@ -115,7 +115,7 @@ @ stdcall D3DXCreateVolumeTextureFromResourceW(ptr long ptr ptr) d3dx9_36.D3DXCreateVolumeTextureFromResourceW @ stdcall D3DXDebugMute(long) d3dx9_36.D3DXDebugMute @ stdcall D3DXDeclaratorFromFVF(long ptr) d3dx9_36.D3DXDeclaratorFromFVF -@ stdcall D3DXDisassembleEffect(ptr long ptr) d3dx9_36.D3DXDisassembleEffect +@ stdcall D3DXDisassembleEffect(ptr long ptr) D3DXDisassembleEffect25 @ stdcall D3DXDisassembleShader(ptr long str ptr) d3dx9_36.D3DXDisassembleShader @ stdcall D3DXFileCreate(ptr) d3dx9_36.D3DXFileCreate @ stdcall D3DXFillCubeTexture(ptr ptr ptr) d3dx9_36.D3DXFillCubeTexture @@ -131,7 +131,7 @@ @ stdcall D3DXFrameAppendChild(ptr ptr) d3dx9_36.D3DXFrameAppendChild @ stdcall D3DXFrameCalculateBoundingSphere(ptr ptr ptr) d3dx9_36.D3DXFrameCalculateBoundingSphere @ stdcall D3DXFrameDestroy(ptr ptr) d3dx9_36.D3DXFrameDestroy -@ stdcall D3DXFrameFind(ptr ptr) d3dx9_36.D3DXFrameFind +@ stdcall D3DXFrameFind(ptr str) d3dx9_36.D3DXFrameFind @ stdcall D3DXFrameNumNamedMatrices(ptr) d3dx9_36.D3DXFrameNumNamedMatrices @ stdcall D3DXFrameRegisterNamedMatrices(ptr ptr) d3dx9_36.D3DXFrameRegisterNamedMatrices @ stdcall D3DXFresnelTerm(float float) d3dx9_36.D3DXFresnelTerm diff --git a/reactos/dll/directx/wine/d3dx9_25/effect.c b/reactos/dll/directx/wine/d3dx9_25/effect.c new file mode 100644 index 00000000000..8867bb3c38a --- /dev/null +++ b/reactos/dll/directx/wine/d3dx9_25/effect.c @@ -0,0 +1,1282 @@ +/* + * Copyright 2010 Christian Costa + * Copyright 2011 Rico Schüller + * Copyright 2015 Sebastian Lackner + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#include "config.h" +#include "wine/port.h" +#define NONAMELESSUNION +#include "wine/debug.h" +#define INITGUID +#include "initguid.h" +#define COBJMACROS +#include "wingdi.h" +#include "d3dx9.h" + +WINE_DEFAULT_DEBUG_CHANNEL(d3dx); + +DEFINE_GUID(IID_ID3DXEffect25, 0xd165ccb1, 0x62b0, 0x4a33, 0xb3, 0xfa, 0xa9, 0x23, 0x0, 0x30, 0x5a, 0x11); + +#define INTERFACE ID3DXEffect25 +DECLARE_INTERFACE_(ID3DXEffect25, ID3DXBaseEffect) +{ + /*** IUnknown methods ***/ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **out) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + /*** ID3DXBaseEffect methods ***/ + STDMETHOD(GetDesc)(THIS_ D3DXEFFECT_DESC* desc) PURE; + STDMETHOD(GetParameterDesc)(THIS_ D3DXHANDLE parameter, D3DXPARAMETER_DESC* desc) PURE; + STDMETHOD(GetTechniqueDesc)(THIS_ D3DXHANDLE technique, D3DXTECHNIQUE_DESC* desc) PURE; + STDMETHOD(GetPassDesc)(THIS_ D3DXHANDLE pass, D3DXPASS_DESC* desc) PURE; + STDMETHOD(GetFunctionDesc)(THIS_ D3DXHANDLE shader, D3DXFUNCTION_DESC* desc) PURE; + STDMETHOD_(D3DXHANDLE, GetParameter)(THIS_ D3DXHANDLE parameter, UINT index) PURE; + STDMETHOD_(D3DXHANDLE, GetParameterByName)(THIS_ D3DXHANDLE parameter, const char *name) PURE; + STDMETHOD_(D3DXHANDLE, GetParameterBySemantic)(THIS_ D3DXHANDLE parameter, const char *semantic) PURE; + STDMETHOD_(D3DXHANDLE, GetParameterElement)(THIS_ D3DXHANDLE parameter, UINT index) PURE; + STDMETHOD_(D3DXHANDLE, GetTechnique)(THIS_ UINT index) PURE; + STDMETHOD_(D3DXHANDLE, GetTechniqueByName)(THIS_ const char *name) PURE; + STDMETHOD_(D3DXHANDLE, GetPass)(THIS_ D3DXHANDLE technique, UINT index) PURE; + STDMETHOD_(D3DXHANDLE, GetPassByName)(THIS_ D3DXHANDLE technique, const char *name) PURE; + STDMETHOD_(D3DXHANDLE, GetFunction)(THIS_ UINT index); + STDMETHOD_(D3DXHANDLE, GetFunctionByName)(THIS_ const char *name); + STDMETHOD_(D3DXHANDLE, GetAnnotation)(THIS_ D3DXHANDLE object, UINT index) PURE; + STDMETHOD_(D3DXHANDLE, GetAnnotationByName)(THIS_ D3DXHANDLE object, const char *name) PURE; + STDMETHOD(SetValue)(THIS_ D3DXHANDLE parameter, const void *data, UINT bytes) PURE; + STDMETHOD(GetValue)(THIS_ D3DXHANDLE parameter, void *data, UINT bytes) PURE; + STDMETHOD(SetBool)(THIS_ D3DXHANDLE parameter, BOOL b) PURE; + STDMETHOD(GetBool)(THIS_ D3DXHANDLE parameter, BOOL* b) PURE; + STDMETHOD(SetBoolArray)(THIS_ D3DXHANDLE parameter, const BOOL *b, UINT count) PURE; + STDMETHOD(GetBoolArray)(THIS_ D3DXHANDLE parameter, BOOL* b, UINT count) PURE; + STDMETHOD(SetInt)(THIS_ D3DXHANDLE parameter, INT n) PURE; + STDMETHOD(GetInt)(THIS_ D3DXHANDLE parameter, INT* n) PURE; + STDMETHOD(SetIntArray)(THIS_ D3DXHANDLE parameter, const INT *n, UINT count) PURE; + STDMETHOD(GetIntArray)(THIS_ D3DXHANDLE parameter, INT* n, UINT count) PURE; + STDMETHOD(SetFloat)(THIS_ D3DXHANDLE parameter, FLOAT f) PURE; + STDMETHOD(GetFloat)(THIS_ D3DXHANDLE parameter, FLOAT* f) PURE; + STDMETHOD(SetFloatArray)(THIS_ D3DXHANDLE parameter, const FLOAT *f, UINT count) PURE; + STDMETHOD(GetFloatArray)(THIS_ D3DXHANDLE parameter, FLOAT* f, UINT count) PURE; + STDMETHOD(SetVector)(THIS_ D3DXHANDLE parameter, const D3DXVECTOR4 *vector) PURE; + STDMETHOD(GetVector)(THIS_ D3DXHANDLE parameter, D3DXVECTOR4* vector) PURE; + STDMETHOD(SetVectorArray)(THIS_ D3DXHANDLE parameter, const D3DXVECTOR4 *vector, UINT count) PURE; + STDMETHOD(GetVectorArray)(THIS_ D3DXHANDLE parameter, D3DXVECTOR4* vector, UINT count) PURE; + STDMETHOD(SetMatrix)(THIS_ D3DXHANDLE parameter, const D3DXMATRIX *matrix) PURE; + STDMETHOD(GetMatrix)(THIS_ D3DXHANDLE parameter, D3DXMATRIX* matrix) PURE; + STDMETHOD(SetMatrixArray)(THIS_ D3DXHANDLE parameter, const D3DXMATRIX *matrix, UINT count) PURE; + STDMETHOD(GetMatrixArray)(THIS_ D3DXHANDLE parameter, D3DXMATRIX* matrix, UINT count) PURE; + STDMETHOD(SetMatrixPointerArray)(THIS_ D3DXHANDLE parameter, const D3DXMATRIX **matrix, UINT count) PURE; + STDMETHOD(GetMatrixPointerArray)(THIS_ D3DXHANDLE parameter, D3DXMATRIX** matrix, UINT count) PURE; + STDMETHOD(SetMatrixTranspose)(THIS_ D3DXHANDLE parameter, const D3DXMATRIX *matrix) PURE; + STDMETHOD(GetMatrixTranspose)(THIS_ D3DXHANDLE parameter, D3DXMATRIX* matrix) PURE; + STDMETHOD(SetMatrixTransposeArray)(THIS_ D3DXHANDLE parameter, const D3DXMATRIX *matrix, UINT count) PURE; + STDMETHOD(GetMatrixTransposeArray)(THIS_ D3DXHANDLE parameter, D3DXMATRIX* matrix, UINT count) PURE; + STDMETHOD(SetMatrixTransposePointerArray)(THIS_ D3DXHANDLE parameter, const D3DXMATRIX **matrix, UINT count) PURE; + STDMETHOD(GetMatrixTransposePointerArray)(THIS_ D3DXHANDLE parameter, D3DXMATRIX** matrix, UINT count) PURE; + STDMETHOD(SetString)(THIS_ D3DXHANDLE parameter, const char *string) PURE; + STDMETHOD(GetString)(THIS_ D3DXHANDLE parameter, const char **string) PURE; + STDMETHOD(SetTexture)(THIS_ D3DXHANDLE parameter, struct IDirect3DBaseTexture9 *texture) PURE; + STDMETHOD(GetTexture)(THIS_ D3DXHANDLE parameter, struct IDirect3DBaseTexture9 **texture) PURE; + STDMETHOD(GetPixelShader)(THIS_ D3DXHANDLE parameter, struct IDirect3DPixelShader9 **shader) 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_ ID3DXEffectPool **pool) PURE; + STDMETHOD(SetTechnique)(THIS_ D3DXHANDLE technique) PURE; + STDMETHOD_(D3DXHANDLE, GetCurrentTechnique)(THIS) PURE; + STDMETHOD(ValidateTechnique)(THIS_ D3DXHANDLE technique) PURE; + STDMETHOD(FindNextValidTechnique)(THIS_ D3DXHANDLE technique, D3DXHANDLE* next_technique) PURE; + STDMETHOD_(BOOL, IsParameterUsed)(THIS_ D3DXHANDLE parameter, D3DXHANDLE technique) PURE; + STDMETHOD(Begin)(THIS_ UINT *passes, DWORD flags) PURE; + STDMETHOD(BeginPass)(THIS_ UINT pass) PURE; + STDMETHOD(CommitChanges)(THIS) PURE; + STDMETHOD(EndPass)(THIS) PURE; + STDMETHOD(End)(THIS) PURE; + STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9 **device) PURE; + STDMETHOD(OnLostDevice)(THIS) PURE; + STDMETHOD(OnResetDevice)(THIS) PURE; + STDMETHOD(SetStateManager)(THIS_ ID3DXEffectStateManager *manager) PURE; + STDMETHOD(GetStateManager)(THIS_ ID3DXEffectStateManager **manager) PURE; + STDMETHOD(BeginParameterBlock)(THIS) PURE; + STDMETHOD_(D3DXHANDLE, EndParameterBlock)(THIS) PURE; + STDMETHOD(ApplyParameterBlock)(THIS_ D3DXHANDLE parameter_block) PURE; + /* DeleteParameterBlock missing */ + STDMETHOD(CloneEffect)(THIS_ struct IDirect3DDevice9 *device, struct ID3DXEffect25 **effect) PURE; + /* SetRawValue missing */ +}; +#undef INTERFACE + +struct ID3DXEffect25Impl +{ + ID3DXEffect25 ID3DXEffect25_iface; + ID3DXEffect *effect; + LONG ref; +}; + +static const struct ID3DXEffect25Vtbl ID3DXEffect25_Vtbl; + +static inline struct ID3DXEffect25Impl *impl_from_ID3DXEffect25(ID3DXEffect25 *iface) +{ + return CONTAINING_RECORD(iface, struct ID3DXEffect25Impl, ID3DXEffect25_iface); +} + +/*** IUnknown methods ***/ +static HRESULT WINAPI ID3DXEffect25Impl_QueryInterface(ID3DXEffect25 *iface, REFIID riid, void **object) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + + TRACE("iface %p, riid %s, object %p\n", This, debugstr_guid(riid), object); + + if (IsEqualGUID(riid, &IID_IUnknown) || + IsEqualGUID(riid, &IID_ID3DXEffect25)) + { + iface->lpVtbl->AddRef(iface); + *object = This; + return S_OK; + } + + ERR("Interface %s not found\n", debugstr_guid(riid)); + + return E_NOINTERFACE; +} + +static ULONG WINAPI ID3DXEffect25Impl_AddRef(ID3DXEffect25 *iface) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + + TRACE("iface %p: AddRef from %u\n", This, This->ref); + + return InterlockedIncrement(&This->ref); +} + +static ULONG WINAPI ID3DXEffect25Impl_Release(ID3DXEffect25 *iface) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ULONG ref = InterlockedDecrement(&This->ref); + + TRACE("iface %p: Release from %u\n", This, ref + 1); + + if (!ref) + { + ID3DXEffect *effect = This->effect; + + effect->lpVtbl->Release(effect); + HeapFree(GetProcessHeap(), 0, This); + } + + return ref; +} + +/*** ID3DXBaseEffect methods ***/ +static HRESULT WINAPI ID3DXEffect25Impl_GetDesc(ID3DXEffect25 *iface, D3DXEFFECT_DESC *desc) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->GetDesc(effect, desc); +} + +static HRESULT WINAPI ID3DXEffect25Impl_GetParameterDesc(ID3DXEffect25 *iface, D3DXHANDLE parameter, D3DXPARAMETER_DESC *desc) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->GetParameterDesc(effect, parameter, desc); +} + +static HRESULT WINAPI ID3DXEffect25Impl_GetTechniqueDesc(ID3DXEffect25 *iface, D3DXHANDLE technique, D3DXTECHNIQUE_DESC *desc) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->GetTechniqueDesc(effect, technique, desc); +} + +static HRESULT WINAPI ID3DXEffect25Impl_GetPassDesc(ID3DXEffect25 *iface, D3DXHANDLE pass, D3DXPASS_DESC *desc) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->GetPassDesc(effect, pass, desc); +} + +static HRESULT WINAPI ID3DXEffect25Impl_GetFunctionDesc(ID3DXEffect25 *iface, D3DXHANDLE shader, D3DXFUNCTION_DESC *desc) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->GetFunctionDesc(effect, shader, desc); +} + +static D3DXHANDLE WINAPI ID3DXEffect25Impl_GetParameter(ID3DXEffect25 *iface, D3DXHANDLE parameter, UINT index) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->GetParameter(effect, parameter, index); +} + +static D3DXHANDLE WINAPI ID3DXEffect25Impl_GetParameterByName(ID3DXEffect25 *iface, D3DXHANDLE parameter, LPCSTR name) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->GetParameterByName(effect, parameter, name); +} + +static D3DXHANDLE WINAPI ID3DXEffect25Impl_GetParameterBySemantic(ID3DXEffect25 *iface, D3DXHANDLE parameter, LPCSTR semantic) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->GetParameterBySemantic(effect, parameter, semantic); +} + +static D3DXHANDLE WINAPI ID3DXEffect25Impl_GetParameterElement(ID3DXEffect25 *iface, D3DXHANDLE parameter, UINT index) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->GetParameterElement(effect, parameter, index); +} + +static D3DXHANDLE WINAPI ID3DXEffect25Impl_GetTechnique(ID3DXEffect25 *iface, UINT index) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->GetTechnique(effect, index); +} + +static D3DXHANDLE WINAPI ID3DXEffect25Impl_GetTechniqueByName(ID3DXEffect25 *iface, LPCSTR name) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->GetTechniqueByName(effect, name); +} + +static D3DXHANDLE WINAPI ID3DXEffect25Impl_GetPass(ID3DXEffect25 *iface, D3DXHANDLE technique, UINT index) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->GetPass(effect, technique, index); +} + +static D3DXHANDLE WINAPI ID3DXEffect25Impl_GetPassByName(ID3DXEffect25 *iface, D3DXHANDLE technique, LPCSTR name) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->GetPassByName(effect, technique, name); +} + +static D3DXHANDLE WINAPI ID3DXEffect25Impl_GetFunction(ID3DXEffect25 *iface, UINT index) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->GetFunction(effect, index); +} + +static D3DXHANDLE WINAPI ID3DXEffect25Impl_GetFunctionByName(ID3DXEffect25 *iface, LPCSTR name) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->GetFunctionByName(effect, name); +} + +static D3DXHANDLE WINAPI ID3DXEffect25Impl_GetAnnotation(ID3DXEffect25 *iface, D3DXHANDLE object, UINT index) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->GetAnnotation(effect, object, index); +} + +static D3DXHANDLE WINAPI ID3DXEffect25Impl_GetAnnotationByName(ID3DXEffect25 *iface, D3DXHANDLE object, LPCSTR name) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->GetAnnotationByName(effect, object, name); +} + +static HRESULT WINAPI ID3DXEffect25Impl_SetValue(ID3DXEffect25 *iface, D3DXHANDLE parameter, LPCVOID data, UINT bytes) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->SetValue(effect, parameter, data, bytes); +} + +static HRESULT WINAPI ID3DXEffect25Impl_GetValue(ID3DXEffect25 *iface, D3DXHANDLE parameter, LPVOID data, UINT bytes) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->GetValue(effect, parameter, data, bytes); +} + +static HRESULT WINAPI ID3DXEffect25Impl_SetBool(ID3DXEffect25 *iface, D3DXHANDLE parameter, BOOL b) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->SetBool(effect, parameter, b); +} + +static HRESULT WINAPI ID3DXEffect25Impl_GetBool(ID3DXEffect25 *iface, D3DXHANDLE parameter, BOOL *b) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->GetBool(effect, parameter, b); +} + +static HRESULT WINAPI ID3DXEffect25Impl_SetBoolArray(ID3DXEffect25 *iface, D3DXHANDLE parameter, const BOOL *b, UINT count) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->SetBoolArray(effect, parameter, b, count); +} + +static HRESULT WINAPI ID3DXEffect25Impl_GetBoolArray(ID3DXEffect25 *iface, D3DXHANDLE parameter, BOOL *b, UINT count) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->GetBoolArray(effect, parameter, b, count); +} + +static HRESULT WINAPI ID3DXEffect25Impl_SetInt(ID3DXEffect25 *iface, D3DXHANDLE parameter, INT n) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->SetInt(effect, parameter, n); +} + +static HRESULT WINAPI ID3DXEffect25Impl_GetInt(ID3DXEffect25 *iface, D3DXHANDLE parameter, INT *n) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->GetInt(effect, parameter, n); +} + +static HRESULT WINAPI ID3DXEffect25Impl_SetIntArray(ID3DXEffect25 *iface, D3DXHANDLE parameter, const INT *n, UINT count) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->SetIntArray(effect, parameter, n, count); +} + +static HRESULT WINAPI ID3DXEffect25Impl_GetIntArray(ID3DXEffect25 *iface, D3DXHANDLE parameter, INT *n, UINT count) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->GetIntArray(effect, parameter, n, count); +} + +static HRESULT WINAPI ID3DXEffect25Impl_SetFloat(ID3DXEffect25 *iface, D3DXHANDLE parameter, FLOAT f) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->SetFloat(effect, parameter, f); +} + +static HRESULT WINAPI ID3DXEffect25Impl_GetFloat(ID3DXEffect25 *iface, D3DXHANDLE parameter, FLOAT *f) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->GetFloat(effect, parameter, f); +} + +static HRESULT WINAPI ID3DXEffect25Impl_SetFloatArray(ID3DXEffect25 *iface, D3DXHANDLE parameter, const FLOAT *f, UINT count) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->SetFloatArray(effect, parameter, f, count); +} + +static HRESULT WINAPI ID3DXEffect25Impl_GetFloatArray(ID3DXEffect25 *iface, D3DXHANDLE parameter, FLOAT *f, UINT count) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->GetFloatArray(effect, parameter, f, count); +} + +static HRESULT WINAPI ID3DXEffect25Impl_SetVector(ID3DXEffect25 *iface, D3DXHANDLE parameter, const D3DXVECTOR4 *vector) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->SetVector(effect, parameter, vector); +} + +static HRESULT WINAPI ID3DXEffect25Impl_GetVector(ID3DXEffect25 *iface, D3DXHANDLE parameter, D3DXVECTOR4 *vector) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->GetVector(effect, parameter, vector); +} + +static HRESULT WINAPI ID3DXEffect25Impl_SetVectorArray(ID3DXEffect25 *iface, D3DXHANDLE parameter, const D3DXVECTOR4 *vector, UINT count) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->SetVectorArray(effect, parameter, vector, count); +} + +static HRESULT WINAPI ID3DXEffect25Impl_GetVectorArray(ID3DXEffect25 *iface, D3DXHANDLE parameter, D3DXVECTOR4 *vector, UINT count) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->GetVectorArray(effect, parameter, vector, count); +} + +static HRESULT WINAPI ID3DXEffect25Impl_SetMatrix(ID3DXEffect25 *iface, D3DXHANDLE parameter, const D3DXMATRIX *matrix) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->SetMatrix(effect, parameter, matrix); +} + +static HRESULT WINAPI ID3DXEffect25Impl_GetMatrix(ID3DXEffect25 *iface, D3DXHANDLE parameter, D3DXMATRIX *matrix) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->GetMatrix(effect, parameter, matrix); +} + +static HRESULT WINAPI ID3DXEffect25Impl_SetMatrixArray(ID3DXEffect25 *iface, D3DXHANDLE parameter, const D3DXMATRIX *matrix, UINT count) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->SetMatrixArray(effect, parameter, matrix, count); +} + +static HRESULT WINAPI ID3DXEffect25Impl_GetMatrixArray(ID3DXEffect25 *iface, D3DXHANDLE parameter, D3DXMATRIX *matrix, UINT count) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->GetMatrixArray(effect, parameter, matrix, count); +} + +static HRESULT WINAPI ID3DXEffect25Impl_SetMatrixPointerArray(ID3DXEffect25 *iface, D3DXHANDLE parameter, const D3DXMATRIX **matrix, UINT count) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->SetMatrixPointerArray(effect, parameter, matrix, count); +} + +static HRESULT WINAPI ID3DXEffect25Impl_GetMatrixPointerArray(ID3DXEffect25 *iface, D3DXHANDLE parameter, D3DXMATRIX **matrix, UINT count) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->GetMatrixPointerArray(effect, parameter, matrix, count); +} + +static HRESULT WINAPI ID3DXEffect25Impl_SetMatrixTranspose(ID3DXEffect25 *iface, D3DXHANDLE parameter, const D3DXMATRIX *matrix) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->SetMatrixTranspose(effect, parameter, matrix); +} + +static HRESULT WINAPI ID3DXEffect25Impl_GetMatrixTranspose(ID3DXEffect25 *iface, D3DXHANDLE parameter, D3DXMATRIX *matrix) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->GetMatrixTranspose(effect, parameter, matrix); +} + +static HRESULT WINAPI ID3DXEffect25Impl_SetMatrixTransposeArray(ID3DXEffect25 *iface, D3DXHANDLE parameter, const D3DXMATRIX *matrix, UINT count) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->SetMatrixTransposeArray(effect, parameter, matrix, count); +} + +static HRESULT WINAPI ID3DXEffect25Impl_GetMatrixTransposeArray(ID3DXEffect25 *iface, D3DXHANDLE parameter, D3DXMATRIX *matrix, UINT count) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->GetMatrixTransposeArray(effect, parameter, matrix, count); +} + +static HRESULT WINAPI ID3DXEffect25Impl_SetMatrixTransposePointerArray(ID3DXEffect25 *iface, D3DXHANDLE parameter, const D3DXMATRIX **matrix, UINT count) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->SetMatrixTransposePointerArray(effect, parameter, matrix, count); +} + +static HRESULT WINAPI ID3DXEffect25Impl_GetMatrixTransposePointerArray(ID3DXEffect25 *iface, D3DXHANDLE parameter, D3DXMATRIX **matrix, UINT count) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->GetMatrixTransposePointerArray(effect, parameter, matrix, count); +} + +static HRESULT WINAPI ID3DXEffect25Impl_SetString(ID3DXEffect25 *iface, D3DXHANDLE parameter, LPCSTR string) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->SetString(effect, parameter, string); +} + +static HRESULT WINAPI ID3DXEffect25Impl_GetString(ID3DXEffect25 *iface, D3DXHANDLE parameter, LPCSTR *string) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->GetString(effect, parameter, string); +} + +static HRESULT WINAPI ID3DXEffect25Impl_SetTexture(ID3DXEffect25 *iface, D3DXHANDLE parameter, IDirect3DBaseTexture9 *texture) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->SetTexture(effect, parameter, texture); +} + +static HRESULT WINAPI ID3DXEffect25Impl_GetTexture(ID3DXEffect25 *iface, D3DXHANDLE parameter, IDirect3DBaseTexture9 **texture) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->GetTexture(effect, parameter, texture); +} + +static HRESULT WINAPI ID3DXEffect25Impl_GetPixelShader(ID3DXEffect25 *iface, D3DXHANDLE parameter, IDirect3DPixelShader9 **pshader) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->GetPixelShader(effect, parameter, pshader); +} + +static HRESULT WINAPI ID3DXEffect25Impl_GetVertexShader(ID3DXEffect25 *iface, D3DXHANDLE parameter, IDirect3DVertexShader9 **vshader) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->GetVertexShader(effect, parameter, vshader); +} + +static HRESULT WINAPI ID3DXEffect25Impl_SetArrayRange(ID3DXEffect25 *iface, D3DXHANDLE parameter, UINT start, UINT end) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->SetArrayRange(effect, parameter, start, end); +} + +/*** ID3DXEffect25 methods ***/ +static HRESULT WINAPI ID3DXEffect25Impl_GetPool(ID3DXEffect25 *iface, ID3DXEffectPool **pool) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->GetPool(effect, pool); +} + +static HRESULT WINAPI ID3DXEffect25Impl_SetTechnique(ID3DXEffect25 *iface, D3DXHANDLE technique) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->SetTechnique(effect, technique); +} + +static D3DXHANDLE WINAPI ID3DXEffect25Impl_GetCurrentTechnique(ID3DXEffect25 *iface) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->GetCurrentTechnique(effect); +} + +static HRESULT WINAPI ID3DXEffect25Impl_ValidateTechnique(ID3DXEffect25 *iface, D3DXHANDLE technique) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->ValidateTechnique(effect, technique); +} + +static HRESULT WINAPI ID3DXEffect25Impl_FindNextValidTechnique(ID3DXEffect25 *iface, D3DXHANDLE technique, D3DXHANDLE *next_technique) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->FindNextValidTechnique(effect, technique, next_technique); +} + +static BOOL WINAPI ID3DXEffect25Impl_IsParameterUsed(ID3DXEffect25 *iface, D3DXHANDLE parameter, D3DXHANDLE technique) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->IsParameterUsed(effect, parameter, technique); +} + +static HRESULT WINAPI ID3DXEffect25Impl_Begin(ID3DXEffect25 *iface, UINT *passes, DWORD flags) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->Begin(effect, passes, flags); +} + +static HRESULT WINAPI ID3DXEffect25Impl_BeginPass(ID3DXEffect25 *iface, UINT pass) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->BeginPass(effect, pass); +} + +static HRESULT WINAPI ID3DXEffect25Impl_CommitChanges(ID3DXEffect25 *iface) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->CommitChanges(effect); +} + +static HRESULT WINAPI ID3DXEffect25Impl_EndPass(ID3DXEffect25 *iface) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->EndPass(effect); +} + +static HRESULT WINAPI ID3DXEffect25Impl_End(ID3DXEffect25 *iface) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->End(effect); +} + +static HRESULT WINAPI ID3DXEffect25Impl_GetDevice(ID3DXEffect25 *iface, IDirect3DDevice9 **device) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->GetDevice(effect, device); +} + +static HRESULT WINAPI ID3DXEffect25Impl_OnLostDevice(ID3DXEffect25* iface) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->OnLostDevice(effect); +} + +static HRESULT WINAPI ID3DXEffect25Impl_OnResetDevice(ID3DXEffect25* iface) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->OnResetDevice(effect); +} + +static HRESULT WINAPI ID3DXEffect25Impl_SetStateManager(ID3DXEffect25 *iface, ID3DXEffectStateManager *manager) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->SetStateManager(effect, manager); +} + +static HRESULT WINAPI ID3DXEffect25Impl_GetStateManager(ID3DXEffect25 *iface, ID3DXEffectStateManager **manager) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->GetStateManager(effect, manager); +} + +static HRESULT WINAPI ID3DXEffect25Impl_BeginParameterBlock(ID3DXEffect25 *iface) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->BeginParameterBlock(effect); +} + +static D3DXHANDLE WINAPI ID3DXEffect25Impl_EndParameterBlock(ID3DXEffect25 *iface) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->EndParameterBlock(effect); +} + +static HRESULT WINAPI ID3DXEffect25Impl_ApplyParameterBlock(ID3DXEffect25 *iface, D3DXHANDLE parameter_block) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + return effect->lpVtbl->ApplyParameterBlock(effect, parameter_block); +} + +static HRESULT WINAPI ID3DXEffect25Impl_CloneEffect(ID3DXEffect25 *iface, IDirect3DDevice9 *device, ID3DXEffect25 **clone) +{ + struct ID3DXEffect25Impl *This = impl_from_ID3DXEffect25(iface); + ID3DXEffect *effect = This->effect; + struct ID3DXEffect25Impl *object; + HRESULT hr; + + TRACE("Forward iface %p, effect %p\n", This, effect); + + object = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*object)); + if (!object) + { + ERR("Out of memory\n"); + return E_OUTOFMEMORY; + } + + object->ID3DXEffect25_iface.lpVtbl = &ID3DXEffect25_Vtbl; + object->ref = 1; + + hr = effect->lpVtbl->CloneEffect(effect, device, &object->effect); + if (FAILED(hr)) + { + WARN("Failed to clone effect\n"); + HeapFree(GetProcessHeap(), 0, object); + return hr; + } + + *clone = &object->ID3DXEffect25_iface; + + TRACE("Created ID3DXEffect %p\n", clone); + + return hr; +} + +static const struct ID3DXEffect25Vtbl ID3DXEffect25_Vtbl = +{ + /*** IUnknown methods ***/ + ID3DXEffect25Impl_QueryInterface, + ID3DXEffect25Impl_AddRef, + ID3DXEffect25Impl_Release, + /*** ID3DXBaseEffect methods ***/ + ID3DXEffect25Impl_GetDesc, + ID3DXEffect25Impl_GetParameterDesc, + ID3DXEffect25Impl_GetTechniqueDesc, + ID3DXEffect25Impl_GetPassDesc, + ID3DXEffect25Impl_GetFunctionDesc, + ID3DXEffect25Impl_GetParameter, + ID3DXEffect25Impl_GetParameterByName, + ID3DXEffect25Impl_GetParameterBySemantic, + ID3DXEffect25Impl_GetParameterElement, + ID3DXEffect25Impl_GetTechnique, + ID3DXEffect25Impl_GetTechniqueByName, + ID3DXEffect25Impl_GetPass, + ID3DXEffect25Impl_GetPassByName, + ID3DXEffect25Impl_GetFunction, + ID3DXEffect25Impl_GetFunctionByName, + ID3DXEffect25Impl_GetAnnotation, + ID3DXEffect25Impl_GetAnnotationByName, + ID3DXEffect25Impl_SetValue, + ID3DXEffect25Impl_GetValue, + ID3DXEffect25Impl_SetBool, + ID3DXEffect25Impl_GetBool, + ID3DXEffect25Impl_SetBoolArray, + ID3DXEffect25Impl_GetBoolArray, + ID3DXEffect25Impl_SetInt, + ID3DXEffect25Impl_GetInt, + ID3DXEffect25Impl_SetIntArray, + ID3DXEffect25Impl_GetIntArray, + ID3DXEffect25Impl_SetFloat, + ID3DXEffect25Impl_GetFloat, + ID3DXEffect25Impl_SetFloatArray, + ID3DXEffect25Impl_GetFloatArray, + ID3DXEffect25Impl_SetVector, + ID3DXEffect25Impl_GetVector, + ID3DXEffect25Impl_SetVectorArray, + ID3DXEffect25Impl_GetVectorArray, + ID3DXEffect25Impl_SetMatrix, + ID3DXEffect25Impl_GetMatrix, + ID3DXEffect25Impl_SetMatrixArray, + ID3DXEffect25Impl_GetMatrixArray, + ID3DXEffect25Impl_SetMatrixPointerArray, + ID3DXEffect25Impl_GetMatrixPointerArray, + ID3DXEffect25Impl_SetMatrixTranspose, + ID3DXEffect25Impl_GetMatrixTranspose, + ID3DXEffect25Impl_SetMatrixTransposeArray, + ID3DXEffect25Impl_GetMatrixTransposeArray, + ID3DXEffect25Impl_SetMatrixTransposePointerArray, + ID3DXEffect25Impl_GetMatrixTransposePointerArray, + ID3DXEffect25Impl_SetString, + ID3DXEffect25Impl_GetString, + ID3DXEffect25Impl_SetTexture, + ID3DXEffect25Impl_GetTexture, + ID3DXEffect25Impl_GetPixelShader, + ID3DXEffect25Impl_GetVertexShader, + ID3DXEffect25Impl_SetArrayRange, + /*** ID3DXEffect25 methods ***/ + ID3DXEffect25Impl_GetPool, + ID3DXEffect25Impl_SetTechnique, + ID3DXEffect25Impl_GetCurrentTechnique, + ID3DXEffect25Impl_ValidateTechnique, + ID3DXEffect25Impl_FindNextValidTechnique, + ID3DXEffect25Impl_IsParameterUsed, + ID3DXEffect25Impl_Begin, + ID3DXEffect25Impl_BeginPass, + ID3DXEffect25Impl_CommitChanges, + ID3DXEffect25Impl_EndPass, + ID3DXEffect25Impl_End, + ID3DXEffect25Impl_GetDevice, + ID3DXEffect25Impl_OnLostDevice, + ID3DXEffect25Impl_OnResetDevice, + ID3DXEffect25Impl_SetStateManager, + ID3DXEffect25Impl_GetStateManager, + ID3DXEffect25Impl_BeginParameterBlock, + ID3DXEffect25Impl_EndParameterBlock, + ID3DXEffect25Impl_ApplyParameterBlock, + ID3DXEffect25Impl_CloneEffect, +}; + +HRESULT WINAPI D3DXCreateEffectEx25(struct IDirect3DDevice9 *device, const void *srcdata, UINT srcdatalen, + const D3DXMACRO *defines, struct ID3DXInclude *include, const char *skip_constants, DWORD flags, + struct ID3DXEffectPool *pool, struct ID3DXEffect25 **effect, struct ID3DXBuffer **compilation_errors) +{ + struct ID3DXEffect25Impl *object; + HRESULT hr; + + TRACE("device %p, srcdata %p, srcdatalen %u, defines %p, include %p, " + "skip_constants %s, flags %#x, pool %p, effect %p, compilation_errors %p.\n", + device, srcdata, srcdatalen, defines, include, + debugstr_a(skip_constants), flags, pool, effect, compilation_errors); + + object = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*object)); + if (!object) + { + ERR("Out of memory\n"); + return E_OUTOFMEMORY; + } + + object->ID3DXEffect25_iface.lpVtbl = &ID3DXEffect25_Vtbl; + object->ref = 1; + + hr = D3DXCreateEffectEx(device, srcdata, srcdatalen, defines, include, + skip_constants, flags, pool, &object->effect, compilation_errors); + if (FAILED(hr)) + { + WARN("Failed to create effect\n"); + HeapFree(GetProcessHeap(), 0, object); + return hr; + } + + *effect = &object->ID3DXEffect25_iface; + TRACE("Created ID3DXEffect25 %p\n", object); + return hr; +} + +HRESULT WINAPI D3DXCreateEffect25(struct IDirect3DDevice9 *device, const void *srcdata, UINT srcdatalen, + const D3DXMACRO *defines, struct ID3DXInclude *include, DWORD flags, + struct ID3DXEffectPool *pool, struct ID3DXEffect25 **effect, struct ID3DXBuffer **compilation_errors) +{ + TRACE("device %p, srcdata %p, srcdatalen %u, defines %p, include %p, " + "flags %#x, pool %p, effect %p, compilation_errors %p.\n", + device, srcdata, srcdatalen, defines, include, flags, pool, effect, compilation_errors); + + return D3DXCreateEffectEx25(device, srcdata, srcdatalen, defines, include, NULL, flags, pool, effect, compilation_errors); +} + + +HRESULT WINAPI D3DXCreateEffectFromFileExW25(struct IDirect3DDevice9 *device, const WCHAR *srcfile, + const D3DXMACRO *defines, struct ID3DXInclude *include, const char *skip_constants, DWORD flags, + struct ID3DXEffectPool *pool, struct ID3DXEffect25 **effect, struct ID3DXBuffer **compilation_errors) +{ + struct ID3DXEffect25Impl *object; + HRESULT hr; + + TRACE("device %p, srcfile %s, defines %p, include %p, skip_constants %s, " + "flags %#x, pool %p, effect %p, compilation_errors %p.\n", + device, debugstr_w(srcfile), defines, include, debugstr_a(skip_constants), + flags, pool, effect, compilation_errors); + + object = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*object)); + if (!object) + { + ERR("Out of memory\n"); + return E_OUTOFMEMORY; + } + + object->ID3DXEffect25_iface.lpVtbl = &ID3DXEffect25_Vtbl; + object->ref = 1; + + hr = D3DXCreateEffectFromFileExW(device, srcfile, defines, include, + skip_constants, flags, pool, &object->effect, compilation_errors); + if (FAILED(hr)) + { + WARN("Failed to create effect\n"); + HeapFree(GetProcessHeap(), 0, object); + return hr; + } + + *effect = &object->ID3DXEffect25_iface; + TRACE("Created ID3DXEffect25 %p\n", object); + return hr; +} + +HRESULT WINAPI D3DXCreateEffectFromFileExA25(struct IDirect3DDevice9 *device, const char *srcfile, + const D3DXMACRO *defines, struct ID3DXInclude *include, const char *skip_constants, DWORD flags, + struct ID3DXEffectPool *pool, struct ID3DXEffect25 **effect, struct ID3DXBuffer **compilation_errors) +{ + struct ID3DXEffect25Impl *object; + HRESULT hr; + + TRACE("device %p, srcfile %s, defines %p, include %p, skip_constants %s, " + "flags %#x, pool %p, effect %p, compilation_errors %p.\n", + device, debugstr_a(srcfile), defines, include, debugstr_a(skip_constants), + flags, pool, effect, compilation_errors); + + object = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*object)); + if (!object) + { + ERR("Out of memory\n"); + return E_OUTOFMEMORY; + } + + object->ID3DXEffect25_iface.lpVtbl = &ID3DXEffect25_Vtbl; + object->ref = 1; + + hr = D3DXCreateEffectFromFileExA(device, srcfile, defines, include, skip_constants, flags, + pool, &object->effect, compilation_errors); + if (FAILED(hr)) + { + WARN("Failed to create effect\n"); + HeapFree(GetProcessHeap(), 0, object); + return hr; + } + + *effect = &object->ID3DXEffect25_iface; + TRACE("Created ID3DXEffect25 %p\n", object); + return hr; +} + +HRESULT WINAPI D3DXCreateEffectFromFileW25(struct IDirect3DDevice9 *device, const WCHAR *srcfile, + const D3DXMACRO *defines, struct ID3DXInclude *include, DWORD flags, struct ID3DXEffectPool *pool, + struct ID3DXEffect25 **effect, struct ID3DXBuffer **compilation_errors) +{ + TRACE("device %p, srcfile %s, defines %p, include %p, " + "flags %#x, pool %p, effect %p, compilation_errors %p.\n", + device, debugstr_w(srcfile), defines, include, flags, pool, effect, compilation_errors); + + return D3DXCreateEffectFromFileExW25(device, srcfile, defines, include, NULL, flags, pool, effect, compilation_errors); +} + +HRESULT WINAPI D3DXCreateEffectFromFileA25(struct IDirect3DDevice9 *device, const char *srcfile, + const D3DXMACRO *defines, struct ID3DXInclude *include, DWORD flags, struct ID3DXEffectPool *pool, + struct ID3DXEffect25 **effect, struct ID3DXBuffer **compilation_errors) +{ + TRACE("device %p, srcfile %s, defines %p, include %p, " + "flags %#x, pool %p, effect %p, compilation_errors %p.\n", + device, debugstr_a(srcfile), defines, include, flags, pool, effect, compilation_errors); + + return D3DXCreateEffectFromFileExA25(device, srcfile, defines, include, NULL, flags, pool, effect, compilation_errors); +} + +HRESULT WINAPI D3DXCreateEffectFromResourceExW25(struct IDirect3DDevice9 *device, HMODULE srcmodule, + const WCHAR *srcresource, const D3DXMACRO *defines, struct ID3DXInclude *include, const char *skip_constants, + DWORD flags, struct ID3DXEffectPool *pool, struct ID3DXEffect25 **effect, struct ID3DXBuffer **compilation_errors) +{ + struct ID3DXEffect25Impl *object; + HRESULT hr; + + TRACE("device %p, srcmodule %p, srcresource %s, defines %p, include %p, skip_constants %s, " + "flags %#x, pool %p, effect %p, compilation_errors %p.\n", + device, srcmodule, debugstr_w(srcresource), defines, include, debugstr_a(skip_constants), + flags, pool, effect, compilation_errors); + + object = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*object)); + if (!object) + { + ERR("Out of memory\n"); + return E_OUTOFMEMORY; + } + + object->ID3DXEffect25_iface.lpVtbl = &ID3DXEffect25_Vtbl; + object->ref = 1; + + hr = D3DXCreateEffectFromResourceExW(device, srcmodule, srcresource, defines, include, + skip_constants, flags, pool, &object->effect, compilation_errors); + if (FAILED(hr)) + { + WARN("Failed to create effect\n"); + HeapFree(GetProcessHeap(), 0, object); + return hr; + } + + *effect = &object->ID3DXEffect25_iface; + TRACE("Created ID3DXEffect25 %p\n", object); + return hr; +} + +HRESULT WINAPI D3DXCreateEffectFromResourceExA25(struct IDirect3DDevice9 *device, HMODULE srcmodule, + const char *srcresource, const D3DXMACRO *defines, struct ID3DXInclude *include, const char *skip_constants, + DWORD flags, struct ID3DXEffectPool *pool, struct ID3DXEffect25 **effect, struct ID3DXBuffer **compilation_errors) +{ + struct ID3DXEffect25Impl *object; + HRESULT hr; + + TRACE("device %p, srcmodule %p, srcresource %s, defines %p, include %p, skip_constants %s, " + "flags %#x, pool %p, effect %p, compilation_errors %p.\n", + device, srcmodule, debugstr_a(srcresource), defines, include, debugstr_a(skip_constants), + flags, pool, effect, compilation_errors); + + object = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*object)); + if (!object) + { + ERR("Out of memory\n"); + return E_OUTOFMEMORY; + } + + object->ID3DXEffect25_iface.lpVtbl = &ID3DXEffect25_Vtbl; + object->ref = 1; + + hr = D3DXCreateEffectFromResourceExA(device, srcmodule, srcresource, defines, include, + skip_constants, flags, pool, &object->effect, compilation_errors); + if (FAILED(hr)) + { + WARN("Failed to create effect\n"); + HeapFree(GetProcessHeap(), 0, object); + return hr; + } + + *effect = &object->ID3DXEffect25_iface; + TRACE("Created ID3DXEffect25 %p\n", object); + return hr; +} + +HRESULT WINAPI D3DXCreateEffectFromResourceW25(struct IDirect3DDevice9 *device, HMODULE srcmodule, + const WCHAR *srcresource, const D3DXMACRO *defines, struct ID3DXInclude *include, DWORD flags, + struct ID3DXEffectPool *pool, struct ID3DXEffect25 **effect, struct ID3DXBuffer **compilation_errors) +{ + TRACE("device %p, srcmodule %p, srcresource %s, defines %p, include %p, " + "flags %#x, pool %p, effect %p, compilation_errors %p.\n", + device, srcmodule, debugstr_w(srcresource), defines, include, + flags, pool, effect, compilation_errors); + + return D3DXCreateEffectFromResourceExW25(device, srcmodule, srcresource, defines, include, NULL, + flags, pool, effect, compilation_errors); +} + +HRESULT WINAPI D3DXCreateEffectFromResourceA25(struct IDirect3DDevice9 *device, HMODULE srcmodule, + const char *srcresource, const D3DXMACRO *defines, struct ID3DXInclude *include, DWORD flags, + struct ID3DXEffectPool *pool, struct ID3DXEffect25 **effect, struct ID3DXBuffer **compilation_errors) +{ + TRACE("device %p, srcmodule %p, srcresource %s, defines %p, include %p, " + "flags %#x, pool %p, effect %p, compilation_errors %p.\n", + device, srcmodule, debugstr_a(srcresource), defines, include, + flags, pool, effect, compilation_errors); + + return D3DXCreateEffectFromResourceExA25(device, srcmodule, srcresource, defines, include, NULL, + flags, pool, effect, compilation_errors); +} + +HRESULT WINAPI D3DXDisassembleEffect25(ID3DXEffect25 *effect, BOOL enable_color_code, ID3DXBuffer **disassembly) +{ + struct ID3DXEffect25Impl *object = impl_from_ID3DXEffect25(effect); + + TRACE("effect %p, enable_color_code %u, disassembly %p.\n", + effect, enable_color_code, disassembly); + + return D3DXDisassembleEffect(object->effect, enable_color_code, disassembly); +} diff --git a/reactos/dll/directx/wine/d3dx9_26/d3dx9_26.spec b/reactos/dll/directx/wine/d3dx9_26/d3dx9_26.spec index 1d7b8028df8..5b8528bb7ab 100644 --- a/reactos/dll/directx/wine/d3dx9_26/d3dx9_26.spec +++ b/reactos/dll/directx/wine/d3dx9_26/d3dx9_26.spec @@ -22,7 +22,7 @@ @ stdcall D3DXComputeIMTFromPerTexelSignal(ptr long ptr long long long long long ptr ptr ptr) d3dx9_36.D3DXComputeIMTFromPerTexelSignal @ stdcall D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr) d3dx9_36.D3DXComputeIMTFromSignal @ stdcall D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr) d3dx9_36.D3DXComputeIMTFromTexture -@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long long) d3dx9_36.D3DXComputeNormalMap +@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) d3dx9_36.D3DXComputeNormalMap @ stdcall D3DXComputeNormals(ptr ptr) d3dx9_36.D3DXComputeNormals @ stdcall D3DXComputeTangent(ptr long long long long ptr) d3dx9_36.D3DXComputeTangent @ stdcall D3DXComputeTangentFrame(ptr long) d3dx9_36.D3DXComputeTangentFrame @@ -135,7 +135,7 @@ @ stdcall D3DXFrameAppendChild(ptr ptr) d3dx9_36.D3DXFrameAppendChild @ stdcall D3DXFrameCalculateBoundingSphere(ptr ptr ptr) d3dx9_36.D3DXFrameCalculateBoundingSphere @ stdcall D3DXFrameDestroy(ptr ptr) d3dx9_36.D3DXFrameDestroy -@ stdcall D3DXFrameFind(ptr ptr) d3dx9_36.D3DXFrameFind +@ stdcall D3DXFrameFind(ptr str) d3dx9_36.D3DXFrameFind @ stdcall D3DXFrameNumNamedMatrices(ptr) d3dx9_36.D3DXFrameNumNamedMatrices @ stdcall D3DXFrameRegisterNamedMatrices(ptr ptr) d3dx9_36.D3DXFrameRegisterNamedMatrices @ stdcall D3DXFresnelTerm(float float) d3dx9_36.D3DXFresnelTerm diff --git a/reactos/dll/directx/wine/d3dx9_27/d3dx9_27.spec b/reactos/dll/directx/wine/d3dx9_27/d3dx9_27.spec index 1d7b8028df8..5b8528bb7ab 100644 --- a/reactos/dll/directx/wine/d3dx9_27/d3dx9_27.spec +++ b/reactos/dll/directx/wine/d3dx9_27/d3dx9_27.spec @@ -22,7 +22,7 @@ @ stdcall D3DXComputeIMTFromPerTexelSignal(ptr long ptr long long long long long ptr ptr ptr) d3dx9_36.D3DXComputeIMTFromPerTexelSignal @ stdcall D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr) d3dx9_36.D3DXComputeIMTFromSignal @ stdcall D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr) d3dx9_36.D3DXComputeIMTFromTexture -@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long long) d3dx9_36.D3DXComputeNormalMap +@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) d3dx9_36.D3DXComputeNormalMap @ stdcall D3DXComputeNormals(ptr ptr) d3dx9_36.D3DXComputeNormals @ stdcall D3DXComputeTangent(ptr long long long long ptr) d3dx9_36.D3DXComputeTangent @ stdcall D3DXComputeTangentFrame(ptr long) d3dx9_36.D3DXComputeTangentFrame @@ -135,7 +135,7 @@ @ stdcall D3DXFrameAppendChild(ptr ptr) d3dx9_36.D3DXFrameAppendChild @ stdcall D3DXFrameCalculateBoundingSphere(ptr ptr ptr) d3dx9_36.D3DXFrameCalculateBoundingSphere @ stdcall D3DXFrameDestroy(ptr ptr) d3dx9_36.D3DXFrameDestroy -@ stdcall D3DXFrameFind(ptr ptr) d3dx9_36.D3DXFrameFind +@ stdcall D3DXFrameFind(ptr str) d3dx9_36.D3DXFrameFind @ stdcall D3DXFrameNumNamedMatrices(ptr) d3dx9_36.D3DXFrameNumNamedMatrices @ stdcall D3DXFrameRegisterNamedMatrices(ptr ptr) d3dx9_36.D3DXFrameRegisterNamedMatrices @ stdcall D3DXFresnelTerm(float float) d3dx9_36.D3DXFresnelTerm diff --git a/reactos/dll/directx/wine/d3dx9_28/d3dx9_28.spec b/reactos/dll/directx/wine/d3dx9_28/d3dx9_28.spec index 083667caa01..c62b334ed59 100644 --- a/reactos/dll/directx/wine/d3dx9_28/d3dx9_28.spec +++ b/reactos/dll/directx/wine/d3dx9_28/d3dx9_28.spec @@ -22,7 +22,7 @@ @ stdcall D3DXComputeIMTFromPerTexelSignal(ptr long ptr long long long long long ptr ptr ptr) d3dx9_36.D3DXComputeIMTFromPerTexelSignal @ stdcall D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr) d3dx9_36.D3DXComputeIMTFromSignal @ stdcall D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr) d3dx9_36.D3DXComputeIMTFromTexture -@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long long) d3dx9_36.D3DXComputeNormalMap +@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) d3dx9_36.D3DXComputeNormalMap @ stdcall D3DXComputeNormals(ptr ptr) d3dx9_36.D3DXComputeNormals @ stdcall D3DXComputeTangent(ptr long long long long ptr) d3dx9_36.D3DXComputeTangent @ stdcall D3DXComputeTangentFrame(ptr long) d3dx9_36.D3DXComputeTangentFrame @@ -135,7 +135,7 @@ @ stdcall D3DXFrameAppendChild(ptr ptr) d3dx9_36.D3DXFrameAppendChild @ stdcall D3DXFrameCalculateBoundingSphere(ptr ptr ptr) d3dx9_36.D3DXFrameCalculateBoundingSphere @ stdcall D3DXFrameDestroy(ptr ptr) d3dx9_36.D3DXFrameDestroy -@ stdcall D3DXFrameFind(ptr ptr) d3dx9_36.D3DXFrameFind +@ stdcall D3DXFrameFind(ptr str) d3dx9_36.D3DXFrameFind @ stdcall D3DXFrameNumNamedMatrices(ptr) d3dx9_36.D3DXFrameNumNamedMatrices @ stdcall D3DXFrameRegisterNamedMatrices(ptr ptr) d3dx9_36.D3DXFrameRegisterNamedMatrices @ stdcall D3DXFresnelTerm(float float) d3dx9_36.D3DXFresnelTerm diff --git a/reactos/dll/directx/wine/d3dx9_29/d3dx9_29.spec b/reactos/dll/directx/wine/d3dx9_29/d3dx9_29.spec index 083667caa01..c62b334ed59 100644 --- a/reactos/dll/directx/wine/d3dx9_29/d3dx9_29.spec +++ b/reactos/dll/directx/wine/d3dx9_29/d3dx9_29.spec @@ -22,7 +22,7 @@ @ stdcall D3DXComputeIMTFromPerTexelSignal(ptr long ptr long long long long long ptr ptr ptr) d3dx9_36.D3DXComputeIMTFromPerTexelSignal @ stdcall D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr) d3dx9_36.D3DXComputeIMTFromSignal @ stdcall D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr) d3dx9_36.D3DXComputeIMTFromTexture -@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long long) d3dx9_36.D3DXComputeNormalMap +@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) d3dx9_36.D3DXComputeNormalMap @ stdcall D3DXComputeNormals(ptr ptr) d3dx9_36.D3DXComputeNormals @ stdcall D3DXComputeTangent(ptr long long long long ptr) d3dx9_36.D3DXComputeTangent @ stdcall D3DXComputeTangentFrame(ptr long) d3dx9_36.D3DXComputeTangentFrame @@ -135,7 +135,7 @@ @ stdcall D3DXFrameAppendChild(ptr ptr) d3dx9_36.D3DXFrameAppendChild @ stdcall D3DXFrameCalculateBoundingSphere(ptr ptr ptr) d3dx9_36.D3DXFrameCalculateBoundingSphere @ stdcall D3DXFrameDestroy(ptr ptr) d3dx9_36.D3DXFrameDestroy -@ stdcall D3DXFrameFind(ptr ptr) d3dx9_36.D3DXFrameFind +@ stdcall D3DXFrameFind(ptr str) d3dx9_36.D3DXFrameFind @ stdcall D3DXFrameNumNamedMatrices(ptr) d3dx9_36.D3DXFrameNumNamedMatrices @ stdcall D3DXFrameRegisterNamedMatrices(ptr ptr) d3dx9_36.D3DXFrameRegisterNamedMatrices @ stdcall D3DXFresnelTerm(float float) d3dx9_36.D3DXFresnelTerm diff --git a/reactos/dll/directx/wine/d3dx9_30/d3dx9_30.spec b/reactos/dll/directx/wine/d3dx9_30/d3dx9_30.spec index eb39c0f4140..365bd5bd6ad 100644 --- a/reactos/dll/directx/wine/d3dx9_30/d3dx9_30.spec +++ b/reactos/dll/directx/wine/d3dx9_30/d3dx9_30.spec @@ -22,7 +22,7 @@ @ stdcall D3DXComputeIMTFromPerTexelSignal(ptr long ptr long long long long long ptr ptr ptr) d3dx9_36.D3DXComputeIMTFromPerTexelSignal @ stdcall D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr) d3dx9_36.D3DXComputeIMTFromSignal @ stdcall D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr) d3dx9_36.D3DXComputeIMTFromTexture -@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long long) d3dx9_36.D3DXComputeNormalMap +@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) d3dx9_36.D3DXComputeNormalMap @ stdcall D3DXComputeNormals(ptr ptr) d3dx9_36.D3DXComputeNormals @ stdcall D3DXComputeTangent(ptr long long long long ptr) d3dx9_36.D3DXComputeTangent @ stdcall D3DXComputeTangentFrame(ptr long) d3dx9_36.D3DXComputeTangentFrame @@ -135,7 +135,7 @@ @ stdcall D3DXFrameAppendChild(ptr ptr) d3dx9_36.D3DXFrameAppendChild @ stdcall D3DXFrameCalculateBoundingSphere(ptr ptr ptr) d3dx9_36.D3DXFrameCalculateBoundingSphere @ stdcall D3DXFrameDestroy(ptr ptr) d3dx9_36.D3DXFrameDestroy -@ stdcall D3DXFrameFind(ptr ptr) d3dx9_36.D3DXFrameFind +@ stdcall D3DXFrameFind(ptr str) d3dx9_36.D3DXFrameFind @ stdcall D3DXFrameNumNamedMatrices(ptr) d3dx9_36.D3DXFrameNumNamedMatrices @ stdcall D3DXFrameRegisterNamedMatrices(ptr ptr) d3dx9_36.D3DXFrameRegisterNamedMatrices @ stdcall D3DXFresnelTerm(float float) d3dx9_36.D3DXFresnelTerm diff --git a/reactos/dll/directx/wine/d3dx9_31/d3dx9_31.spec b/reactos/dll/directx/wine/d3dx9_31/d3dx9_31.spec index 1667a51013d..51337055748 100644 --- a/reactos/dll/directx/wine/d3dx9_31/d3dx9_31.spec +++ b/reactos/dll/directx/wine/d3dx9_31/d3dx9_31.spec @@ -22,7 +22,7 @@ @ stdcall D3DXComputeIMTFromPerTexelSignal(ptr long ptr long long long long long ptr ptr ptr) d3dx9_36.D3DXComputeIMTFromPerTexelSignal @ stdcall D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr) d3dx9_36.D3DXComputeIMTFromSignal @ stdcall D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr) d3dx9_36.D3DXComputeIMTFromTexture -@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long long) d3dx9_36.D3DXComputeNormalMap +@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) d3dx9_36.D3DXComputeNormalMap @ stdcall D3DXComputeNormals(ptr ptr) d3dx9_36.D3DXComputeNormals @ stdcall D3DXComputeTangent(ptr long long long long ptr) d3dx9_36.D3DXComputeTangent @ stdcall D3DXComputeTangentFrame(ptr long) d3dx9_36.D3DXComputeTangentFrame @@ -134,7 +134,7 @@ @ stdcall D3DXFrameAppendChild(ptr ptr) d3dx9_36.D3DXFrameAppendChild @ stdcall D3DXFrameCalculateBoundingSphere(ptr ptr ptr) d3dx9_36.D3DXFrameCalculateBoundingSphere @ stdcall D3DXFrameDestroy(ptr ptr) d3dx9_36.D3DXFrameDestroy -@ stdcall D3DXFrameFind(ptr ptr) d3dx9_36.D3DXFrameFind +@ stdcall D3DXFrameFind(ptr str) d3dx9_36.D3DXFrameFind @ stdcall D3DXFrameNumNamedMatrices(ptr) d3dx9_36.D3DXFrameNumNamedMatrices @ stdcall D3DXFrameRegisterNamedMatrices(ptr ptr) d3dx9_36.D3DXFrameRegisterNamedMatrices @ stdcall D3DXFresnelTerm(float float) d3dx9_36.D3DXFresnelTerm diff --git a/reactos/dll/directx/wine/d3dx9_32/d3dx9_32.spec b/reactos/dll/directx/wine/d3dx9_32/d3dx9_32.spec index f1c4b627a51..b93865b6305 100644 --- a/reactos/dll/directx/wine/d3dx9_32/d3dx9_32.spec +++ b/reactos/dll/directx/wine/d3dx9_32/d3dx9_32.spec @@ -22,7 +22,7 @@ @ stdcall D3DXComputeIMTFromPerTexelSignal(ptr long ptr long long long long long ptr ptr ptr) d3dx9_36.D3DXComputeIMTFromPerTexelSignal @ stdcall D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr) d3dx9_36.D3DXComputeIMTFromSignal @ stdcall D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr) d3dx9_36.D3DXComputeIMTFromTexture -@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long long) d3dx9_36.D3DXComputeNormalMap +@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) d3dx9_36.D3DXComputeNormalMap @ stdcall D3DXComputeNormals(ptr ptr) d3dx9_36.D3DXComputeNormals @ stdcall D3DXComputeTangent(ptr long long long long ptr) d3dx9_36.D3DXComputeTangent @ stdcall D3DXComputeTangentFrame(ptr long) d3dx9_36.D3DXComputeTangentFrame @@ -134,7 +134,7 @@ @ stdcall D3DXFrameAppendChild(ptr ptr) d3dx9_36.D3DXFrameAppendChild @ stdcall D3DXFrameCalculateBoundingSphere(ptr ptr ptr) d3dx9_36.D3DXFrameCalculateBoundingSphere @ stdcall D3DXFrameDestroy(ptr ptr) d3dx9_36.D3DXFrameDestroy -@ stdcall D3DXFrameFind(ptr ptr) d3dx9_36.D3DXFrameFind +@ stdcall D3DXFrameFind(ptr str) d3dx9_36.D3DXFrameFind @ stdcall D3DXFrameNumNamedMatrices(ptr) d3dx9_36.D3DXFrameNumNamedMatrices @ stdcall D3DXFrameRegisterNamedMatrices(ptr ptr) d3dx9_36.D3DXFrameRegisterNamedMatrices @ stdcall D3DXFresnelTerm(float float) d3dx9_36.D3DXFresnelTerm diff --git a/reactos/dll/directx/wine/d3dx9_33/d3dx9_33.spec b/reactos/dll/directx/wine/d3dx9_33/d3dx9_33.spec index f1c4b627a51..b93865b6305 100644 --- a/reactos/dll/directx/wine/d3dx9_33/d3dx9_33.spec +++ b/reactos/dll/directx/wine/d3dx9_33/d3dx9_33.spec @@ -22,7 +22,7 @@ @ stdcall D3DXComputeIMTFromPerTexelSignal(ptr long ptr long long long long long ptr ptr ptr) d3dx9_36.D3DXComputeIMTFromPerTexelSignal @ stdcall D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr) d3dx9_36.D3DXComputeIMTFromSignal @ stdcall D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr) d3dx9_36.D3DXComputeIMTFromTexture -@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long long) d3dx9_36.D3DXComputeNormalMap +@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) d3dx9_36.D3DXComputeNormalMap @ stdcall D3DXComputeNormals(ptr ptr) d3dx9_36.D3DXComputeNormals @ stdcall D3DXComputeTangent(ptr long long long long ptr) d3dx9_36.D3DXComputeTangent @ stdcall D3DXComputeTangentFrame(ptr long) d3dx9_36.D3DXComputeTangentFrame @@ -134,7 +134,7 @@ @ stdcall D3DXFrameAppendChild(ptr ptr) d3dx9_36.D3DXFrameAppendChild @ stdcall D3DXFrameCalculateBoundingSphere(ptr ptr ptr) d3dx9_36.D3DXFrameCalculateBoundingSphere @ stdcall D3DXFrameDestroy(ptr ptr) d3dx9_36.D3DXFrameDestroy -@ stdcall D3DXFrameFind(ptr ptr) d3dx9_36.D3DXFrameFind +@ stdcall D3DXFrameFind(ptr str) d3dx9_36.D3DXFrameFind @ stdcall D3DXFrameNumNamedMatrices(ptr) d3dx9_36.D3DXFrameNumNamedMatrices @ stdcall D3DXFrameRegisterNamedMatrices(ptr ptr) d3dx9_36.D3DXFrameRegisterNamedMatrices @ stdcall D3DXFresnelTerm(float float) d3dx9_36.D3DXFresnelTerm diff --git a/reactos/dll/directx/wine/d3dx9_34/d3dx9_34.spec b/reactos/dll/directx/wine/d3dx9_34/d3dx9_34.spec index f1c4b627a51..b93865b6305 100644 --- a/reactos/dll/directx/wine/d3dx9_34/d3dx9_34.spec +++ b/reactos/dll/directx/wine/d3dx9_34/d3dx9_34.spec @@ -22,7 +22,7 @@ @ stdcall D3DXComputeIMTFromPerTexelSignal(ptr long ptr long long long long long ptr ptr ptr) d3dx9_36.D3DXComputeIMTFromPerTexelSignal @ stdcall D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr) d3dx9_36.D3DXComputeIMTFromSignal @ stdcall D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr) d3dx9_36.D3DXComputeIMTFromTexture -@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long long) d3dx9_36.D3DXComputeNormalMap +@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) d3dx9_36.D3DXComputeNormalMap @ stdcall D3DXComputeNormals(ptr ptr) d3dx9_36.D3DXComputeNormals @ stdcall D3DXComputeTangent(ptr long long long long ptr) d3dx9_36.D3DXComputeTangent @ stdcall D3DXComputeTangentFrame(ptr long) d3dx9_36.D3DXComputeTangentFrame @@ -134,7 +134,7 @@ @ stdcall D3DXFrameAppendChild(ptr ptr) d3dx9_36.D3DXFrameAppendChild @ stdcall D3DXFrameCalculateBoundingSphere(ptr ptr ptr) d3dx9_36.D3DXFrameCalculateBoundingSphere @ stdcall D3DXFrameDestroy(ptr ptr) d3dx9_36.D3DXFrameDestroy -@ stdcall D3DXFrameFind(ptr ptr) d3dx9_36.D3DXFrameFind +@ stdcall D3DXFrameFind(ptr str) d3dx9_36.D3DXFrameFind @ stdcall D3DXFrameNumNamedMatrices(ptr) d3dx9_36.D3DXFrameNumNamedMatrices @ stdcall D3DXFrameRegisterNamedMatrices(ptr ptr) d3dx9_36.D3DXFrameRegisterNamedMatrices @ stdcall D3DXFresnelTerm(float float) d3dx9_36.D3DXFresnelTerm diff --git a/reactos/dll/directx/wine/d3dx9_35/d3dx9_35.spec b/reactos/dll/directx/wine/d3dx9_35/d3dx9_35.spec index f1c4b627a51..b93865b6305 100644 --- a/reactos/dll/directx/wine/d3dx9_35/d3dx9_35.spec +++ b/reactos/dll/directx/wine/d3dx9_35/d3dx9_35.spec @@ -22,7 +22,7 @@ @ stdcall D3DXComputeIMTFromPerTexelSignal(ptr long ptr long long long long long ptr ptr ptr) d3dx9_36.D3DXComputeIMTFromPerTexelSignal @ stdcall D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr) d3dx9_36.D3DXComputeIMTFromSignal @ stdcall D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr) d3dx9_36.D3DXComputeIMTFromTexture -@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long long) d3dx9_36.D3DXComputeNormalMap +@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) d3dx9_36.D3DXComputeNormalMap @ stdcall D3DXComputeNormals(ptr ptr) d3dx9_36.D3DXComputeNormals @ stdcall D3DXComputeTangent(ptr long long long long ptr) d3dx9_36.D3DXComputeTangent @ stdcall D3DXComputeTangentFrame(ptr long) d3dx9_36.D3DXComputeTangentFrame @@ -134,7 +134,7 @@ @ stdcall D3DXFrameAppendChild(ptr ptr) d3dx9_36.D3DXFrameAppendChild @ stdcall D3DXFrameCalculateBoundingSphere(ptr ptr ptr) d3dx9_36.D3DXFrameCalculateBoundingSphere @ stdcall D3DXFrameDestroy(ptr ptr) d3dx9_36.D3DXFrameDestroy -@ stdcall D3DXFrameFind(ptr ptr) d3dx9_36.D3DXFrameFind +@ stdcall D3DXFrameFind(ptr str) d3dx9_36.D3DXFrameFind @ stdcall D3DXFrameNumNamedMatrices(ptr) d3dx9_36.D3DXFrameNumNamedMatrices @ stdcall D3DXFrameRegisterNamedMatrices(ptr ptr) d3dx9_36.D3DXFrameRegisterNamedMatrices @ stdcall D3DXFresnelTerm(float float) d3dx9_36.D3DXFresnelTerm diff --git a/reactos/dll/directx/wine/d3dx9_36/d3dx9_36.spec b/reactos/dll/directx/wine/d3dx9_36/d3dx9_36.spec index f3b751256ae..3704fdea53a 100644 --- a/reactos/dll/directx/wine/d3dx9_36/d3dx9_36.spec +++ b/reactos/dll/directx/wine/d3dx9_36/d3dx9_36.spec @@ -22,7 +22,7 @@ @ stdcall -stub D3DXComputeIMTFromPerTexelSignal(ptr long ptr long long long long long ptr ptr ptr) @ stdcall -stub D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr) @ stdcall -stub D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr) -@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long long) +@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) @ stdcall D3DXComputeNormals(ptr ptr) @ stdcall -stub D3DXComputeTangent(ptr long long long long ptr) @ stdcall -stub D3DXComputeTangentFrame(ptr long) @@ -135,7 +135,7 @@ @ stdcall -stub D3DXFrameAppendChild(ptr ptr) @ stdcall -stub D3DXFrameCalculateBoundingSphere(ptr ptr ptr) @ stdcall D3DXFrameDestroy(ptr ptr) -@ stdcall -stub D3DXFrameFind(ptr ptr) +@ stdcall D3DXFrameFind(ptr str) @ stdcall -stub D3DXFrameNumNamedMatrices(ptr) @ stdcall -stub D3DXFrameRegisterNamedMatrices(ptr ptr) @ stdcall D3DXFresnelTerm(float float) diff --git a/reactos/dll/directx/wine/d3dx9_36/effect.c b/reactos/dll/directx/wine/d3dx9_36/effect.c index 03964f02a3b..798715836a3 100644 --- a/reactos/dll/directx/wine/d3dx9_36/effect.c +++ b/reactos/dll/directx/wine/d3dx9_36/effect.c @@ -20,6 +20,11 @@ #include "d3dx9_36_private.h" #include +#include + +/* d3dx9_26 provides an ID3DXEffect interface where the last function SetRawValue + * is missing. Since its otherwise identical, we just use the same vtable. */ +DEFINE_GUID(IID_ID3DXEffect26, 0xc7b17651, 0x5420, 0x490e, 0x8a, 0x7f, 0x92, 0x36, 0x75, 0xa2, 0xd6, 0x87); /* Constants for special INT/FLOAT conversation */ #define INT_FLOAT_MULTI 255.0f @@ -2492,7 +2497,8 @@ static HRESULT WINAPI ID3DXEffectImpl_QueryInterface(ID3DXEffect *iface, REFIID TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), object); if (IsEqualGUID(riid, &IID_IUnknown) || - IsEqualGUID(riid, &IID_ID3DXEffect)) + IsEqualGUID(riid, &IID_ID3DXEffect) || + IsEqualGUID(riid, &IID_ID3DXEffect26)) { iface->lpVtbl->AddRef(iface); *object = iface; @@ -3382,7 +3388,12 @@ static HRESULT WINAPI ID3DXEffectImpl_CloneEffect(ID3DXEffect *iface, FIXME("(%p)->(%p, %p): stub\n", This, device, effect); - return E_NOTIMPL; + if (!effect) + return D3DXERR_INVALIDDATA; + + iface->lpVtbl->AddRef(iface); + *effect = iface; + return S_OK; } static HRESULT WINAPI ID3DXEffectImpl_SetRawValue(ID3DXEffect *iface, diff --git a/reactos/dll/directx/wine/d3dx9_36/mesh.c b/reactos/dll/directx/wine/d3dx9_36/mesh.c index fc9d8822772..d6f2a92b2a2 100644 --- a/reactos/dll/directx/wine/d3dx9_36/mesh.c +++ b/reactos/dll/directx/wine/d3dx9_36/mesh.c @@ -59,7 +59,7 @@ struct d3dx9_mesh D3DXATTRIBUTERANGE *attrib_table; }; -const UINT d3dx_decltype_size[] = +static const UINT d3dx_decltype_size[] = { /* D3DDECLTYPE_FLOAT1 */ sizeof(FLOAT), /* D3DDECLTYPE_FLOAT2 */ sizeof(D3DXVECTOR2), @@ -3166,7 +3166,7 @@ static HRESULT parse_mesh(ID3DXFileData *filedata, struct mesh_data *mesh_data, ID3DXFileData *child = NULL; DWORD i; SIZE_T nb_children; - DWORD nb_skin_weigths_info = 0; + DWORD nb_skin_weights_info = 0; /* * template Mesh { @@ -3296,14 +3296,14 @@ static HRESULT parse_mesh(ID3DXFileData *filedata, struct mesh_data *mesh_data, goto end; } else if (IsEqualGUID(&type, &DXFILEOBJ_SkinWeights)) { if (!mesh_data->skin_info) { - WARN("Skin weigths found but skin mesh header not encountered yet\n"); + WARN("Skin weights found but skin mesh header not encountered yet\n"); hr = E_FAIL; goto end; } - hr = parse_skin_mesh_info(child, mesh_data, nb_skin_weigths_info); + hr = parse_skin_mesh_info(child, mesh_data, nb_skin_weights_info); if (FAILED(hr)) goto end; - nb_skin_weigths_info++; + nb_skin_weights_info++; } } if (FAILED(hr)) @@ -3313,9 +3313,9 @@ static HRESULT parse_mesh(ID3DXFileData *filedata, struct mesh_data *mesh_data, child = NULL; } - if (mesh_data->skin_info && (nb_skin_weigths_info != mesh_data->nb_bones)) { + if (mesh_data->skin_info && (nb_skin_weights_info != mesh_data->nb_bones)) { WARN("Mismatch between nb skin weights info %u encountered and nb bones %u from skin mesh header\n", - nb_skin_weigths_info, mesh_data->nb_bones); + nb_skin_weights_info, mesh_data->nb_bones); hr = E_FAIL; goto end; } @@ -4030,6 +4030,12 @@ HRESULT WINAPI D3DXFrameDestroy(D3DXFRAME *frame, ID3DXAllocateHierarchy *alloc_ return D3D_OK; } +D3DXFRAME* WINAPI D3DXFrameFind(const D3DXFRAME *frame_root, const char *name) +{ + FIXME("frame_root %p, name %s stub.\n", frame_root, debugstr_a(name)); + return NULL; +} + HRESULT WINAPI D3DXLoadMeshFromXA(const char *filename, DWORD options, struct IDirect3DDevice9 *device, struct ID3DXBuffer **adjacency, struct ID3DXBuffer **materials, struct ID3DXBuffer **effect_instances, DWORD *num_materials, struct ID3DXMesh **mesh) @@ -6991,7 +6997,7 @@ HRESULT WINAPI D3DXWeldVertices(ID3DXMesh *mesh, DWORD flags, const D3DXWELDEPSI if (flags == 0) { - WARN("No flags is undefined. Using D3DXWELDEPSILONS_WELDPARTIALMATCHES instead.\n"); + WARN("No flags are undefined. Using D3DXWELDEPSILONS_WELDPARTIALMATCHES instead.\n"); flags = D3DXWELDEPSILONS_WELDPARTIALMATCHES; } diff --git a/reactos/dll/directx/wine/d3dx9_36/surface.c b/reactos/dll/directx/wine/d3dx9_36/surface.c index 01ed40f4de2..349a1089cff 100644 --- a/reactos/dll/directx/wine/d3dx9_36/surface.c +++ b/reactos/dll/directx/wine/d3dx9_36/surface.c @@ -1848,7 +1848,7 @@ HRESULT WINAPI D3DXLoadSurfaceFromMemory(IDirect3DSurface9 *dst_surface, struct volume src_size, dst_size; HRESULT ret = D3D_OK; - TRACE("(%p, %p, %s, %p, %#x, %u, %p, %s %#x, 0x%08x)\n", + TRACE("(%p, %p, %s, %p, %#x, %u, %p, %s, %#x, 0x%08x)\n", dst_surface, dst_palette, wine_dbgstr_rect(dst_rect), src_memory, src_format, src_pitch, src_palette, wine_dbgstr_rect(src_rect), filter, color_key); @@ -2161,7 +2161,7 @@ HRESULT WINAPI D3DXSaveSurfaceToFileInMemory(ID3DXBuffer **dst_buffer, D3DXIMAGE if (src_palette) { - FIXME("Saving surfaces with palettized pixel formats not implemented yet\n"); + FIXME("Saving surfaces with palettized pixel formats is not implemented yet\n"); return D3DERR_INVALIDCALL; } diff --git a/reactos/dll/directx/wine/d3dx9_36/texture.c b/reactos/dll/directx/wine/d3dx9_36/texture.c index 32112697375..28a1118db93 100644 --- a/reactos/dll/directx/wine/d3dx9_36/texture.c +++ b/reactos/dll/directx/wine/d3dx9_36/texture.c @@ -265,7 +265,7 @@ HRESULT WINAPI D3DXCheckTextureRequirements(struct IDirect3DDevice9 *device, UIN unsigned int channels; const struct pixel_format_desc *curfmt, *bestfmt = NULL; - TRACE("Requested format not supported, looking for a fallback.\n"); + TRACE("Requested format is not supported, looking for a fallback.\n"); if (!fmt) { @@ -657,7 +657,7 @@ HRESULT WINAPI D3DXCreateTextureFromFileInMemoryEx(struct IDirect3DDevice9 *devi if (imginfo.MipLevels < miplevels && (D3DFMT_DXT1 <= imginfo.Format && imginfo.Format <= D3DFMT_DXT5)) { - FIXME("Generation of mipmaps for compressed pixel formats is not implemented yet\n"); + FIXME("Generation of mipmaps for compressed pixel formats is not implemented yet.\n"); miplevels = imginfo.MipLevels; } if (imginfo.ResourceType == D3DRTYPE_VOLUMETEXTURE @@ -1215,7 +1215,7 @@ HRESULT WINAPI D3DXCreateVolumeTextureFromFileInMemoryEx(IDirect3DDevice9 *devic if (mip_levels > image_info.MipLevels) { - FIXME("Generation of mipmaps for volume textures is not implemented yet\n"); + FIXME("Generation of mipmaps for volume textures is not implemented yet.\n"); mip_levels = image_info.MipLevels; } @@ -1456,7 +1456,7 @@ HRESULT WINAPI D3DXCreateCubeTextureFromFileInMemoryEx(IDirect3DDevice9 *device, if (mip_levels > img_info.MipLevels && (D3DFMT_DXT1 <= img_info.Format && img_info.Format <= D3DFMT_DXT5)) { - FIXME("Generation of mipmaps for compressed pixel formats not supported yet\n"); + FIXME("Generation of mipmaps for compressed pixel formats is not supported yet.\n"); mip_levels = img_info.MipLevels; } diff --git a/reactos/dll/directx/wine/d3dx9_36/volume.c b/reactos/dll/directx/wine/d3dx9_36/volume.c index 756f270e776..f77c8755ea1 100644 --- a/reactos/dll/directx/wine/d3dx9_36/volume.c +++ b/reactos/dll/directx/wine/d3dx9_36/volume.c @@ -186,7 +186,7 @@ HRESULT WINAPI D3DXLoadVolumeFromMemory(IDirect3DVolume9 *dst_volume, if (((src_format_desc->type != FORMAT_ARGB) && (src_format_desc->type != FORMAT_INDEX)) || (dst_format_desc->type != FORMAT_ARGB)) { - FIXME("Pixel format conversion not implemented %#x -> %#x\n", + FIXME("Pixel format conversion is not implemented %#x -> %#x\n", src_format_desc->format, dst_format_desc->format); return E_NOTIMPL; } diff --git a/reactos/dll/directx/wine/d3dx9_36/xfile.c b/reactos/dll/directx/wine/d3dx9_36/xfile.c index 1442f529f25..f8c5a2d98d2 100644 --- a/reactos/dll/directx/wine/d3dx9_36/xfile.c +++ b/reactos/dll/directx/wine/d3dx9_36/xfile.c @@ -327,7 +327,7 @@ static HRESULT d3dx9_file_data_create(IDirectXFileObject *dxfile_object, ID3DXFi } else { - FIXME("Don't known what to do with binary object\n"); + FIXME("Don't know what to do with binary object\n"); HeapFree(GetProcessHeap(), 0, object); return E_FAIL; } diff --git a/reactos/dll/directx/wine/d3dx9_37/d3dx9_37.spec b/reactos/dll/directx/wine/d3dx9_37/d3dx9_37.spec index 324855e51a0..9a5ed8874ac 100644 --- a/reactos/dll/directx/wine/d3dx9_37/d3dx9_37.spec +++ b/reactos/dll/directx/wine/d3dx9_37/d3dx9_37.spec @@ -22,7 +22,7 @@ @ stdcall D3DXComputeIMTFromPerTexelSignal(ptr long ptr long long long long long ptr ptr ptr) d3dx9_36.D3DXComputeIMTFromPerTexelSignal @ stdcall D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr) d3dx9_36.D3DXComputeIMTFromSignal @ stdcall D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr) d3dx9_36.D3DXComputeIMTFromTexture -@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long long) d3dx9_36.D3DXComputeNormalMap +@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) d3dx9_36.D3DXComputeNormalMap @ stdcall D3DXComputeNormals(ptr ptr) d3dx9_36.D3DXComputeNormals @ stdcall D3DXComputeTangent(ptr long long long long ptr) d3dx9_36.D3DXComputeTangent @ stdcall D3DXComputeTangentFrame(ptr long) d3dx9_36.D3DXComputeTangentFrame @@ -135,7 +135,7 @@ @ stdcall D3DXFrameAppendChild(ptr ptr) d3dx9_36.D3DXFrameAppendChild @ stdcall D3DXFrameCalculateBoundingSphere(ptr ptr ptr) d3dx9_36.D3DXFrameCalculateBoundingSphere @ stdcall D3DXFrameDestroy(ptr ptr) d3dx9_36.D3DXFrameDestroy -@ stdcall D3DXFrameFind(ptr ptr) d3dx9_36.D3DXFrameFind +@ stdcall D3DXFrameFind(ptr str) d3dx9_36.D3DXFrameFind @ stdcall D3DXFrameNumNamedMatrices(ptr) d3dx9_36.D3DXFrameNumNamedMatrices @ stdcall D3DXFrameRegisterNamedMatrices(ptr ptr) d3dx9_36.D3DXFrameRegisterNamedMatrices @ stdcall D3DXFresnelTerm(float float) d3dx9_36.D3DXFresnelTerm diff --git a/reactos/dll/directx/wine/d3dx9_38/d3dx9_38.spec b/reactos/dll/directx/wine/d3dx9_38/d3dx9_38.spec index 324855e51a0..9a5ed8874ac 100644 --- a/reactos/dll/directx/wine/d3dx9_38/d3dx9_38.spec +++ b/reactos/dll/directx/wine/d3dx9_38/d3dx9_38.spec @@ -22,7 +22,7 @@ @ stdcall D3DXComputeIMTFromPerTexelSignal(ptr long ptr long long long long long ptr ptr ptr) d3dx9_36.D3DXComputeIMTFromPerTexelSignal @ stdcall D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr) d3dx9_36.D3DXComputeIMTFromSignal @ stdcall D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr) d3dx9_36.D3DXComputeIMTFromTexture -@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long long) d3dx9_36.D3DXComputeNormalMap +@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) d3dx9_36.D3DXComputeNormalMap @ stdcall D3DXComputeNormals(ptr ptr) d3dx9_36.D3DXComputeNormals @ stdcall D3DXComputeTangent(ptr long long long long ptr) d3dx9_36.D3DXComputeTangent @ stdcall D3DXComputeTangentFrame(ptr long) d3dx9_36.D3DXComputeTangentFrame @@ -135,7 +135,7 @@ @ stdcall D3DXFrameAppendChild(ptr ptr) d3dx9_36.D3DXFrameAppendChild @ stdcall D3DXFrameCalculateBoundingSphere(ptr ptr ptr) d3dx9_36.D3DXFrameCalculateBoundingSphere @ stdcall D3DXFrameDestroy(ptr ptr) d3dx9_36.D3DXFrameDestroy -@ stdcall D3DXFrameFind(ptr ptr) d3dx9_36.D3DXFrameFind +@ stdcall D3DXFrameFind(ptr str) d3dx9_36.D3DXFrameFind @ stdcall D3DXFrameNumNamedMatrices(ptr) d3dx9_36.D3DXFrameNumNamedMatrices @ stdcall D3DXFrameRegisterNamedMatrices(ptr ptr) d3dx9_36.D3DXFrameRegisterNamedMatrices @ stdcall D3DXFresnelTerm(float float) d3dx9_36.D3DXFresnelTerm diff --git a/reactos/dll/directx/wine/d3dx9_39/d3dx9_39.spec b/reactos/dll/directx/wine/d3dx9_39/d3dx9_39.spec index 324855e51a0..9a5ed8874ac 100644 --- a/reactos/dll/directx/wine/d3dx9_39/d3dx9_39.spec +++ b/reactos/dll/directx/wine/d3dx9_39/d3dx9_39.spec @@ -22,7 +22,7 @@ @ stdcall D3DXComputeIMTFromPerTexelSignal(ptr long ptr long long long long long ptr ptr ptr) d3dx9_36.D3DXComputeIMTFromPerTexelSignal @ stdcall D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr) d3dx9_36.D3DXComputeIMTFromSignal @ stdcall D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr) d3dx9_36.D3DXComputeIMTFromTexture -@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long long) d3dx9_36.D3DXComputeNormalMap +@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) d3dx9_36.D3DXComputeNormalMap @ stdcall D3DXComputeNormals(ptr ptr) d3dx9_36.D3DXComputeNormals @ stdcall D3DXComputeTangent(ptr long long long long ptr) d3dx9_36.D3DXComputeTangent @ stdcall D3DXComputeTangentFrame(ptr long) d3dx9_36.D3DXComputeTangentFrame @@ -135,7 +135,7 @@ @ stdcall D3DXFrameAppendChild(ptr ptr) d3dx9_36.D3DXFrameAppendChild @ stdcall D3DXFrameCalculateBoundingSphere(ptr ptr ptr) d3dx9_36.D3DXFrameCalculateBoundingSphere @ stdcall D3DXFrameDestroy(ptr ptr) d3dx9_36.D3DXFrameDestroy -@ stdcall D3DXFrameFind(ptr ptr) d3dx9_36.D3DXFrameFind +@ stdcall D3DXFrameFind(ptr str) d3dx9_36.D3DXFrameFind @ stdcall D3DXFrameNumNamedMatrices(ptr) d3dx9_36.D3DXFrameNumNamedMatrices @ stdcall D3DXFrameRegisterNamedMatrices(ptr ptr) d3dx9_36.D3DXFrameRegisterNamedMatrices @ stdcall D3DXFresnelTerm(float float) d3dx9_36.D3DXFresnelTerm diff --git a/reactos/dll/directx/wine/d3dx9_40/d3dx9_40.spec b/reactos/dll/directx/wine/d3dx9_40/d3dx9_40.spec index 324855e51a0..9a5ed8874ac 100644 --- a/reactos/dll/directx/wine/d3dx9_40/d3dx9_40.spec +++ b/reactos/dll/directx/wine/d3dx9_40/d3dx9_40.spec @@ -22,7 +22,7 @@ @ stdcall D3DXComputeIMTFromPerTexelSignal(ptr long ptr long long long long long ptr ptr ptr) d3dx9_36.D3DXComputeIMTFromPerTexelSignal @ stdcall D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr) d3dx9_36.D3DXComputeIMTFromSignal @ stdcall D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr) d3dx9_36.D3DXComputeIMTFromTexture -@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long long) d3dx9_36.D3DXComputeNormalMap +@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) d3dx9_36.D3DXComputeNormalMap @ stdcall D3DXComputeNormals(ptr ptr) d3dx9_36.D3DXComputeNormals @ stdcall D3DXComputeTangent(ptr long long long long ptr) d3dx9_36.D3DXComputeTangent @ stdcall D3DXComputeTangentFrame(ptr long) d3dx9_36.D3DXComputeTangentFrame @@ -135,7 +135,7 @@ @ stdcall D3DXFrameAppendChild(ptr ptr) d3dx9_36.D3DXFrameAppendChild @ stdcall D3DXFrameCalculateBoundingSphere(ptr ptr ptr) d3dx9_36.D3DXFrameCalculateBoundingSphere @ stdcall D3DXFrameDestroy(ptr ptr) d3dx9_36.D3DXFrameDestroy -@ stdcall D3DXFrameFind(ptr ptr) d3dx9_36.D3DXFrameFind +@ stdcall D3DXFrameFind(ptr str) d3dx9_36.D3DXFrameFind @ stdcall D3DXFrameNumNamedMatrices(ptr) d3dx9_36.D3DXFrameNumNamedMatrices @ stdcall D3DXFrameRegisterNamedMatrices(ptr ptr) d3dx9_36.D3DXFrameRegisterNamedMatrices @ stdcall D3DXFresnelTerm(float float) d3dx9_36.D3DXFresnelTerm diff --git a/reactos/dll/directx/wine/d3dx9_41/d3dx9_41.spec b/reactos/dll/directx/wine/d3dx9_41/d3dx9_41.spec index 324855e51a0..9a5ed8874ac 100644 --- a/reactos/dll/directx/wine/d3dx9_41/d3dx9_41.spec +++ b/reactos/dll/directx/wine/d3dx9_41/d3dx9_41.spec @@ -22,7 +22,7 @@ @ stdcall D3DXComputeIMTFromPerTexelSignal(ptr long ptr long long long long long ptr ptr ptr) d3dx9_36.D3DXComputeIMTFromPerTexelSignal @ stdcall D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr) d3dx9_36.D3DXComputeIMTFromSignal @ stdcall D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr) d3dx9_36.D3DXComputeIMTFromTexture -@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long long) d3dx9_36.D3DXComputeNormalMap +@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) d3dx9_36.D3DXComputeNormalMap @ stdcall D3DXComputeNormals(ptr ptr) d3dx9_36.D3DXComputeNormals @ stdcall D3DXComputeTangent(ptr long long long long ptr) d3dx9_36.D3DXComputeTangent @ stdcall D3DXComputeTangentFrame(ptr long) d3dx9_36.D3DXComputeTangentFrame @@ -135,7 +135,7 @@ @ stdcall D3DXFrameAppendChild(ptr ptr) d3dx9_36.D3DXFrameAppendChild @ stdcall D3DXFrameCalculateBoundingSphere(ptr ptr ptr) d3dx9_36.D3DXFrameCalculateBoundingSphere @ stdcall D3DXFrameDestroy(ptr ptr) d3dx9_36.D3DXFrameDestroy -@ stdcall D3DXFrameFind(ptr ptr) d3dx9_36.D3DXFrameFind +@ stdcall D3DXFrameFind(ptr str) d3dx9_36.D3DXFrameFind @ stdcall D3DXFrameNumNamedMatrices(ptr) d3dx9_36.D3DXFrameNumNamedMatrices @ stdcall D3DXFrameRegisterNamedMatrices(ptr ptr) d3dx9_36.D3DXFrameRegisterNamedMatrices @ stdcall D3DXFresnelTerm(float float) d3dx9_36.D3DXFresnelTerm diff --git a/reactos/dll/directx/wine/d3dx9_42/d3dx9_42.spec b/reactos/dll/directx/wine/d3dx9_42/d3dx9_42.spec index 324855e51a0..9a5ed8874ac 100644 --- a/reactos/dll/directx/wine/d3dx9_42/d3dx9_42.spec +++ b/reactos/dll/directx/wine/d3dx9_42/d3dx9_42.spec @@ -22,7 +22,7 @@ @ stdcall D3DXComputeIMTFromPerTexelSignal(ptr long ptr long long long long long ptr ptr ptr) d3dx9_36.D3DXComputeIMTFromPerTexelSignal @ stdcall D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr) d3dx9_36.D3DXComputeIMTFromSignal @ stdcall D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr) d3dx9_36.D3DXComputeIMTFromTexture -@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long long) d3dx9_36.D3DXComputeNormalMap +@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) d3dx9_36.D3DXComputeNormalMap @ stdcall D3DXComputeNormals(ptr ptr) d3dx9_36.D3DXComputeNormals @ stdcall D3DXComputeTangent(ptr long long long long ptr) d3dx9_36.D3DXComputeTangent @ stdcall D3DXComputeTangentFrame(ptr long) d3dx9_36.D3DXComputeTangentFrame @@ -135,7 +135,7 @@ @ stdcall D3DXFrameAppendChild(ptr ptr) d3dx9_36.D3DXFrameAppendChild @ stdcall D3DXFrameCalculateBoundingSphere(ptr ptr ptr) d3dx9_36.D3DXFrameCalculateBoundingSphere @ stdcall D3DXFrameDestroy(ptr ptr) d3dx9_36.D3DXFrameDestroy -@ stdcall D3DXFrameFind(ptr ptr) d3dx9_36.D3DXFrameFind +@ stdcall D3DXFrameFind(ptr str) d3dx9_36.D3DXFrameFind @ stdcall D3DXFrameNumNamedMatrices(ptr) d3dx9_36.D3DXFrameNumNamedMatrices @ stdcall D3DXFrameRegisterNamedMatrices(ptr ptr) d3dx9_36.D3DXFrameRegisterNamedMatrices @ stdcall D3DXFresnelTerm(float float) d3dx9_36.D3DXFresnelTerm diff --git a/reactos/dll/directx/wine/d3dx9_43/d3dx9_43.spec b/reactos/dll/directx/wine/d3dx9_43/d3dx9_43.spec index 9da1640398b..122dff44a8a 100644 --- a/reactos/dll/directx/wine/d3dx9_43/d3dx9_43.spec +++ b/reactos/dll/directx/wine/d3dx9_43/d3dx9_43.spec @@ -22,7 +22,7 @@ @ stdcall D3DXComputeIMTFromPerVertexSignal(ptr ptr long long long ptr ptr ptr) d3dx9_36.D3DXComputeIMTFromPerVertexSignal @ stdcall D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr) d3dx9_36.D3DXComputeIMTFromSignal @ stdcall D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr) d3dx9_36.D3DXComputeIMTFromTexture -@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long long) d3dx9_36.D3DXComputeNormalMap +@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long float) d3dx9_36.D3DXComputeNormalMap @ stdcall D3DXComputeNormals(ptr ptr) d3dx9_36.D3DXComputeNormals @ stdcall D3DXComputeTangent(ptr long long long long ptr) d3dx9_36.D3DXComputeTangent @ stdcall D3DXComputeTangentFrame(ptr long) d3dx9_36.D3DXComputeTangentFrame @@ -133,7 +133,7 @@ @ stdcall D3DXFrameAppendChild(ptr ptr) d3dx9_36.D3DXFrameAppendChild @ stdcall D3DXFrameCalculateBoundingSphere(ptr ptr ptr) d3dx9_36.D3DXFrameCalculateBoundingSphere @ stdcall D3DXFrameDestroy(ptr ptr) d3dx9_36.D3DXFrameDestroy -@ stdcall D3DXFrameFind(ptr ptr) d3dx9_36.D3DXFrameFind +@ stdcall D3DXFrameFind(ptr str) d3dx9_36.D3DXFrameFind @ stdcall D3DXFrameNumNamedMatrices(ptr) d3dx9_36.D3DXFrameNumNamedMatrices @ stdcall D3DXFrameRegisterNamedMatrices(ptr ptr) d3dx9_36.D3DXFrameRegisterNamedMatrices @ stdcall D3DXFresnelTerm(float float) d3dx9_36.D3DXFresnelTerm diff --git a/reactos/media/doc/README.WINE b/reactos/media/doc/README.WINE index 18094fd0618..0e617d4e73a 100644 --- a/reactos/media/doc/README.WINE +++ b/reactos/media/doc/README.WINE @@ -26,7 +26,7 @@ reactos/dll/directx/wine/d3d8 # Synced to WineStaging-1.7.47 reactos/dll/directx/wine/d3d9 # Synced to WineStaging-1.7.47 reactos/dll/directx/wine/d3dcompiler_43 # Synced to WineStaging-1.7.47 reactos/dll/directx/wine/d3drm # Synced to WineStaging-1.7.47 -reactos/dll/directx/wine/d3dx9_24 => 43 # Synced to WineStaging-1.7.37 +reactos/dll/directx/wine/d3dx9_24 => 43 # Synced to WineStaging-1.7.47 reactos/dll/directx/wine/d3dxof # Synced to WineStaging-1.7.47 reactos/dll/directx/wine/ddraw # Synced to WineStaging-1.7.47 reactos/dll/directx/wine/devenum # Synced to WineStaging-1.7.47