Added patch to allow to query for d3dx9_26 specific ID3DXEffect interface.

This commit is contained in:
Sebastian Lackner 2015-03-14 17:02:19 +01:00
parent 48b14fe20b
commit de15f131bc
3 changed files with 55 additions and 0 deletions

1
debian/changelog vendored
View File

@ -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 <sebastian@fds-team.de> Mon, 09 Mar 2015 16:52:35 +0100

View File

@ -0,0 +1,38 @@
From 5dfbc3b61422b52ee6763b39b60d0e6bce6cc63b Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
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

View File

@ -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: