diff --git a/debian/changelog b/debian/changelog index 4c6d6c0c..587c0a37 100644 --- a/debian/changelog +++ b/debian/changelog @@ -7,6 +7,7 @@ wine-staging (1.7.39) UNRELEASED; urgency=low * Added patch to avoid crash in d3d9 tests by skipping when texture/surface creation fails. * Added patch to fix wrong version of ID3DXEffect interface for d3dx9_24. * Added patch to fix wrong version of ID3DXEffect interface for d3dx9_25. + * Added patch to allow to query for d3dx9_26 specific ID3DXEffect interface. * Removed patch to avoid hardcoded values for sizeof(GUID) (accepted upstream). * Removed patches for SLGetWindowsInformationDWORD (accepted upstream). -- Sebastian Lackner Mon, 09 Mar 2015 16:52:35 +0100 diff --git a/patches/d3dx9_26-ID3DXEffect/0001-d3dx9_36-Allow-to-query-for-d3dx9_26-specific-ID3DXE.patch b/patches/d3dx9_26-ID3DXEffect/0001-d3dx9_36-Allow-to-query-for-d3dx9_26-specific-ID3DXE.patch new file mode 100644 index 00000000..1038e3c2 --- /dev/null +++ b/patches/d3dx9_26-ID3DXEffect/0001-d3dx9_36-Allow-to-query-for-d3dx9_26-specific-ID3DXE.patch @@ -0,0 +1,38 @@ +From 5dfbc3b61422b52ee6763b39b60d0e6bce6cc63b Mon Sep 17 00:00:00 2001 +From: Sebastian Lackner +Date: Sat, 14 Mar 2015 17:00:08 +0100 +Subject: d3dx9_36: Allow to query for d3dx9_26 specific ID3DXEffect interface. + +--- + dlls/d3dx9_36/effect.c | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/dlls/d3dx9_36/effect.c b/dlls/d3dx9_36/effect.c +index 8e2f850..0cb220a 100644 +--- a/dlls/d3dx9_36/effect.c ++++ b/dlls/d3dx9_36/effect.c +@@ -27,6 +27,11 @@ + #include "wingdi.h" + #include "d3dx9_36_private.h" + #include "d3dcompiler.h" ++#include "initguid.h" ++ ++/* 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 +@@ -2501,7 +2506,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; +-- +2.3.2 + diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index 4886dc58..f90ab462 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -76,6 +76,7 @@ patch_enable_all () enable_d3drm_Specfile="$1" enable_d3dx9_24_ID3DXEffect="$1" enable_d3dx9_25_ID3DXEffect="$1" + enable_d3dx9_26_ID3DXEffect="$1" enable_d3dx9_36_AnimationController="$1" enable_d3dx9_36_D3DXStubs="$1" enable_d3dx9_36_DDS="$1" @@ -273,6 +274,9 @@ patch_enable () d3dx9_25-ID3DXEffect) enable_d3dx9_25_ID3DXEffect="$2" ;; + d3dx9_26-ID3DXEffect) + enable_d3dx9_26_ID3DXEffect="$2" + ;; d3dx9_36-AnimationController) enable_d3dx9_36_AnimationController="$2" ;; @@ -1394,6 +1398,18 @@ if test "$enable_d3dx9_24_ID3DXEffect" -eq 1; then ) >> "$patchlist" fi +# Patchset d3dx9_26-ID3DXEffect +# | +# | Modified files: +# | * dlls/d3dx9_36/effect.c +# | +if test "$enable_d3dx9_26_ID3DXEffect" -eq 1; then + patch_apply d3dx9_26-ID3DXEffect/0001-d3dx9_36-Allow-to-query-for-d3dx9_26-specific-ID3DXE.patch + ( + echo '+ { "Sebastian Lackner", "d3dx9_36: Allow to query for d3dx9_26 specific ID3DXEffect interface.", 1 },'; + ) >> "$patchlist" +fi + # Patchset wined3d-DXTn # | # | This patchset fixes the following Wine bugs: