You've already forked wine-staging
mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-04-13 14:42:51 -07:00
Compare commits
101 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
af985310ab | ||
|
87f607719e | ||
|
776c2a6800 | ||
|
5d957e4169 | ||
|
c1cf0bc05a | ||
|
05ea40b936 | ||
|
bcfed21ea1 | ||
|
d260d1fe3c | ||
|
99c88fee27 | ||
|
dec87df6ec | ||
|
4b36169b46 | ||
|
17abc8d4ef | ||
|
d0bde2925f | ||
|
e7fe22daa6 | ||
|
5cfa68940f | ||
|
68441b1d95 | ||
|
abc1c143f3 | ||
|
316d085a4b | ||
|
2e7e083424 | ||
|
b9f7ec5ccf | ||
|
b5193cb799 | ||
|
00b2e468d3 | ||
|
aec9113618 | ||
|
773483f7f5 | ||
|
54850aa1ff | ||
|
f538f2e2db | ||
|
80c80bbaa8 | ||
|
136d5e3400 | ||
|
ecf05ee19e | ||
|
ec936167b3 | ||
|
c437a01e2f | ||
|
8630febc5c | ||
|
f5ca8f5a0c | ||
|
cafb155af5 | ||
|
b1a5648b37 | ||
|
b8a377e8d7 | ||
|
5b0e78d2c0 | ||
|
c87f47bcba | ||
|
d5e8d145c8 | ||
|
2239795e43 | ||
|
766e1ee8f8 | ||
|
95bf669895 | ||
|
2fc92f8ba6 | ||
|
0111d074e6 | ||
|
b4028037d9 | ||
|
e1c496b21e | ||
|
ee4ca71a7f | ||
|
3b01c6e2c5 | ||
|
98c906f843 | ||
|
a43d3ddd1c | ||
|
78d28293de | ||
|
440e5eee17 | ||
|
93e94fcbc0 | ||
|
fa5989b7aa | ||
|
8f579c4eed | ||
|
278310cf80 | ||
|
544f90dacc | ||
|
9937bf0463 | ||
|
155e98e765 | ||
|
2653c32b45 | ||
|
a2fcffc18e | ||
|
82e4617d86 | ||
|
24753f8756 | ||
|
0ed3e9c774 | ||
|
61c3c024a2 | ||
|
7f17af3a42 | ||
|
4c51f4f5f6 | ||
|
3b7c98ebf1 | ||
|
2056903cdf | ||
|
65ca056d29 | ||
|
edb3417124 | ||
|
7655d14b6a | ||
|
61120ad0dd | ||
|
915b0a246f | ||
|
68918863dc | ||
|
a703038b94 | ||
|
643f96ec62 | ||
|
d3d93cfa0d | ||
|
7e42d0ac1a | ||
|
0ee2ac8499 | ||
|
a9aa06c58e | ||
|
97b65c93c2 | ||
|
310f4c498b | ||
|
ad41ee0c01 | ||
|
45230b51db | ||
|
b090c12d6d | ||
|
55c5bac511 | ||
|
c165d96d23 | ||
|
63c3baa9e5 | ||
|
980a476c49 | ||
|
120e2d362f | ||
|
df26057ddf | ||
|
fa3a80f5af | ||
|
00ab8180c0 | ||
|
fe634350d2 | ||
|
b10ac7d8ac | ||
|
56fd61a713 | ||
|
c9c7130f3c | ||
|
5f113860f5 | ||
|
9a5667dba1 | ||
|
1295604add |
15
.github/workflows/macOS.yml
vendored
15
.github/workflows/macOS.yml
vendored
@@ -17,20 +17,18 @@ jobs:
|
||||
brew update
|
||||
brew install --cask xquartz
|
||||
brew install bison \
|
||||
faudio \
|
||||
gphoto2 \
|
||||
gst-plugins-base \
|
||||
jxrlib \
|
||||
little-cms2 \
|
||||
mingw-w64 \
|
||||
gcenx/wine/mingw-w64@9 \
|
||||
molten-vk \
|
||||
mpg123
|
||||
sdl2
|
||||
|
||||
- name: Add bison & krb5 to $PATH
|
||||
run: |
|
||||
set -eu
|
||||
echo "$(brew --prefix bison)/bin" >> $GITHUB_PATH
|
||||
echo "$(brew --prefix krb5)/bin" >> $GITHUB_PATH
|
||||
echo "$(brew --prefix mingw-w64@9)/bin" >> $GITHUB_PATH
|
||||
|
||||
- name: Get upstream-commit
|
||||
run: |
|
||||
@@ -64,6 +62,8 @@ jobs:
|
||||
--x-lib=/opt/X11/lib
|
||||
|
||||
- name: Build wine64
|
||||
# mingw-w64 brew formula bumped binutils 2.38 causing a regression in parallel builds
|
||||
# use gcenx/wine/mingw-w64@9 this uses binutils 2.37
|
||||
run: |
|
||||
cd $GITHUB_WORKSPACE/wine
|
||||
make -j$(sysctl -n hw.ncpu 2>/dev/null)
|
||||
@@ -84,7 +84,7 @@ jobs:
|
||||
gst-plugins-base \
|
||||
jxrlib \
|
||||
little-cms2 \
|
||||
mingw-w64 \
|
||||
gcenx/wine/mingw-w64@9 \
|
||||
molten-vk \
|
||||
mpg123
|
||||
|
||||
@@ -93,6 +93,7 @@ jobs:
|
||||
set -eu
|
||||
echo "$(brew --prefix bison)/bin" >> $GITHUB_PATH
|
||||
echo "$(brew --prefix krb5)/bin" >> $GITHUB_PATH
|
||||
echo "$(brew --prefix mingw-w64@9)/bin" >> $GITHUB_PATH
|
||||
|
||||
- name: Get upstream-commit
|
||||
run: |
|
||||
@@ -124,6 +125,8 @@ jobs:
|
||||
--x-lib=/opt/X11/lib
|
||||
|
||||
- name: Build wine64
|
||||
# mingw-w64 brew formula bumped binutils 2.38 causing a regression in parallel builds
|
||||
# use gcenx/wine/mingw-w64@9 this uses binutils 2.37
|
||||
run: |
|
||||
cd $GITHUB_WORKSPACE/wine
|
||||
make -j$(sysctl -n hw.ncpu 2>/dev/null)
|
||||
|
@@ -1,18 +1,17 @@
|
||||
From b51fdc7e211f676d169c937209bf689e57252c5d Mon Sep 17 00:00:00 2001
|
||||
From 7e3c4d732bacaeaf37ab8f32a7548715825eff4d Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Tue, 22 Mar 2016 21:58:40 +0100
|
||||
Subject: [PATCH] dwrite: Avoid implicit cast of interface pointer.
|
||||
|
||||
---
|
||||
dlls/dwrite/font.c | 4 ++--
|
||||
dlls/dwrite/layout.c | 2 +-
|
||||
2 files changed, 3 insertions(+), 3 deletions(-)
|
||||
dlls/dwrite/font.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/dwrite/font.c b/dlls/dwrite/font.c
|
||||
index aa51c744297..7cad015480f 100644
|
||||
index 2296c74c1e3..2b5e18aab19 100644
|
||||
--- a/dlls/dwrite/font.c
|
||||
+++ b/dlls/dwrite/font.c
|
||||
@@ -2130,7 +2130,7 @@ static struct dwrite_font *unsafe_impl_from_IDWriteFont(IDWriteFont *iface)
|
||||
@@ -2514,7 +2514,7 @@ static struct dwrite_font *unsafe_impl_from_IDWriteFont(IDWriteFont *iface)
|
||||
if (!iface)
|
||||
return NULL;
|
||||
assert(iface->lpVtbl == (IDWriteFontVtbl*)&dwritefontvtbl);
|
||||
@@ -21,7 +20,7 @@ index aa51c744297..7cad015480f 100644
|
||||
}
|
||||
|
||||
struct dwrite_fontface *unsafe_impl_from_IDWriteFontFace(IDWriteFontFace *iface)
|
||||
@@ -2138,7 +2138,7 @@ struct dwrite_fontface *unsafe_impl_from_IDWriteFontFace(IDWriteFontFace *iface)
|
||||
@@ -2522,7 +2522,7 @@ struct dwrite_fontface *unsafe_impl_from_IDWriteFontFace(IDWriteFontFace *iface)
|
||||
if (!iface)
|
||||
return NULL;
|
||||
assert(iface->lpVtbl == (IDWriteFontFaceVtbl*)&dwritefontfacevtbl);
|
||||
@@ -30,19 +29,6 @@ index aa51c744297..7cad015480f 100644
|
||||
}
|
||||
|
||||
static struct dwrite_fontfacereference *unsafe_impl_from_IDWriteFontFaceReference(IDWriteFontFaceReference *iface)
|
||||
diff --git a/dlls/dwrite/layout.c b/dlls/dwrite/layout.c
|
||||
index 1f6201a6a93..35791d5c22e 100644
|
||||
--- a/dlls/dwrite/layout.c
|
||||
+++ b/dlls/dwrite/layout.c
|
||||
@@ -5886,7 +5886,7 @@ static const IDWriteTextFormat3Vtbl dwritetextformatvtbl =
|
||||
static struct dwrite_textformat *unsafe_impl_from_IDWriteTextFormat(IDWriteTextFormat *iface)
|
||||
{
|
||||
return (iface->lpVtbl == (IDWriteTextFormatVtbl*)&dwritetextformatvtbl) ?
|
||||
- CONTAINING_RECORD(iface, struct dwrite_textformat, IDWriteTextFormat3_iface) : NULL;
|
||||
+ CONTAINING_RECORD((IDWriteTextFormat3 *)iface, struct dwrite_textformat, IDWriteTextFormat3_iface) : NULL;
|
||||
}
|
||||
|
||||
HRESULT create_textformat(const WCHAR *family_name, IDWriteFontCollection *collection, DWRITE_FONT_WEIGHT weight,
|
||||
--
|
||||
2.29.2
|
||||
2.34.1
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From a349cc8bdcc3a083ea507dbbdeba9053e3a338e4 Mon Sep 17 00:00:00 2001
|
||||
From bd6e11aee0fbe2f880f87bec8b3d145b3de15dab Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Tue, 22 Mar 2016 23:08:30 +0100
|
||||
Subject: [PATCH] include: Check element type in CONTAINING_RECORD and similar
|
||||
@@ -31,31 +31,31 @@ index b4d681fe0f3..287ad394fae 100644
|
||||
|
||||
#endif /* __WINE_SERVER_LIST_H */
|
||||
diff --git a/include/wine/rbtree.h b/include/wine/rbtree.h
|
||||
index 8aae29c8c10..330b3e8fbc9 100644
|
||||
index 4e86f3cfb84..694dc039cb1 100644
|
||||
--- a/include/wine/rbtree.h
|
||||
+++ b/include/wine/rbtree.h
|
||||
@@ -23,8 +23,14 @@
|
||||
#ifndef __WINE_WINE_RBTREE_H
|
||||
#define __WINE_WINE_RBTREE_H
|
||||
|
||||
-#define WINE_RB_ENTRY_VALUE(element, type, field) \
|
||||
-#define RB_ENTRY_VALUE(element, type, field) \
|
||||
- ((type *)((char *)(element) - offsetof(type, field)))
|
||||
+#ifdef __GNUC__
|
||||
+# define WINE_RB_ENTRY_VALUE(element, type, field) ({ \
|
||||
+# define RB_ENTRY_VALUE(element, type, field) ({ \
|
||||
+ const typeof(((type *)0)->field) *__ptr = (element); \
|
||||
+ (type *)((char *)__ptr - offsetof(type, field)); })
|
||||
+#else
|
||||
+# define WINE_RB_ENTRY_VALUE(element, type, field) \
|
||||
+# define RB_ENTRY_VALUE(element, type, field) \
|
||||
+ ((type *)((char *)(element) - offsetof(type, field)))
|
||||
+#endif
|
||||
|
||||
struct wine_rb_entry
|
||||
struct rb_entry
|
||||
{
|
||||
diff --git a/include/winnt.h b/include/winnt.h
|
||||
index 46e17c546a7..d5c65d2017b 100644
|
||||
index 9296a3dc555..c7406b8db39 100644
|
||||
--- a/include/winnt.h
|
||||
+++ b/include/winnt.h
|
||||
@@ -793,8 +793,14 @@ typedef struct _MEMORY_BASIC_INFORMATION
|
||||
@@ -840,8 +840,14 @@ typedef struct _WIN32_MEMORY_RANGE_ENTRY
|
||||
#define RTL_FIELD_SIZE(type, field) (sizeof(((type *)0)->field))
|
||||
#define RTL_SIZEOF_THROUGH_FIELD(type, field) (FIELD_OFFSET(type, field) + RTL_FIELD_SIZE(type, field))
|
||||
|
||||
@@ -73,5 +73,5 @@ index 46e17c546a7..d5c65d2017b 100644
|
||||
#define ARRAYSIZE(x) (sizeof(x) / sizeof((x)[0]))
|
||||
#ifdef __WINESRC__
|
||||
--
|
||||
2.26.2
|
||||
2.34.1
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 7784b62bd2b64aabd6bfef9ef39ac4f3e8c55c77 Mon Sep 17 00:00:00 2001
|
||||
From eb21fcc668da85977bc86b6105f3830cb26c93e6 Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Tue, 8 Jun 2021 08:56:40 +1000
|
||||
Subject: [PATCH] bcrypt: Stop compile error when HAVE_GNUTLS_CIPHER_INIT not
|
||||
@@ -20,21 +20,21 @@ Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/bcrypt/gnutls.c b/dlls/bcrypt/gnutls.c
|
||||
index 37a80bdc062..64825f5b99b 100644
|
||||
index d7b4499c692..11596d5f7ac 100644
|
||||
--- a/dlls/bcrypt/gnutls.c
|
||||
+++ b/dlls/bcrypt/gnutls.c
|
||||
@@ -25,9 +25,10 @@
|
||||
@@ -24,9 +24,10 @@
|
||||
|
||||
#include "config.h"
|
||||
#include "wine/port.h"
|
||||
|
||||
+#include <stdarg.h>
|
||||
+
|
||||
#ifdef HAVE_GNUTLS_CIPHER_INIT
|
||||
|
||||
-#include <stdarg.h>
|
||||
#include <stdlib.h>
|
||||
#include <assert.h>
|
||||
#include <gnutls/gnutls.h>
|
||||
#include <gnutls/crypto.h>
|
||||
#include <sys/types.h>
|
||||
--
|
||||
2.30.2
|
||||
2.33.0
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From f34ee38467781b2f7bae7e7f8a04a4210bf7d046 Mon Sep 17 00:00:00 2001
|
||||
From 6d3e24776dac1c5bf4625617c61367f506c42f92 Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Tue, 8 Jun 2021 11:22:48 +1000
|
||||
Subject: [PATCH] rpcrt4: Avoid implicit cast of interface pointer.
|
||||
@@ -9,7 +9,7 @@ Subject: [PATCH] rpcrt4: Avoid implicit cast of interface pointer.
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/rpcrt4/ndr_marshall.c b/dlls/rpcrt4/ndr_marshall.c
|
||||
index 764b304a047..58ea128e8a4 100644
|
||||
index d0d2e19342c..991ec052283 100644
|
||||
--- a/dlls/rpcrt4/ndr_marshall.c
|
||||
+++ b/dlls/rpcrt4/ndr_marshall.c
|
||||
@@ -6999,7 +6999,7 @@ static unsigned char *WINAPI NdrContextHandleMarshall(
|
||||
@@ -22,7 +22,7 @@ index 764b304a047..58ea128e8a4 100644
|
||||
NdrServerContextNewMarshall(pStubMsg, ctxt, rundown, pFormat);
|
||||
}
|
||||
diff --git a/dlls/rpcrt4/ndr_typelib.c b/dlls/rpcrt4/ndr_typelib.c
|
||||
index f1f25885b75..126e8ec8766 100644
|
||||
index ff1d1025838..a8425a1e519 100644
|
||||
--- a/dlls/rpcrt4/ndr_typelib.c
|
||||
+++ b/dlls/rpcrt4/ndr_typelib.c
|
||||
@@ -1452,7 +1452,7 @@ struct typelib_stub
|
||||
@@ -33,7 +33,7 @@ index f1f25885b75..126e8ec8766 100644
|
||||
+ struct typelib_stub *stub = CONTAINING_RECORD((CStdStubBuffer *)iface, struct typelib_stub, stub.stub_buffer);
|
||||
ULONG refcount = InterlockedDecrement(&stub->stub.stub_buffer.RefCount);
|
||||
|
||||
TRACE("(%p) decreasing refs to %d\n", stub, refcount);
|
||||
TRACE("(%p) decreasing refs to %ld\n", stub, refcount);
|
||||
--
|
||||
2.30.2
|
||||
2.34.1
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 916189d1cdf149f16867870121171e20f129da9f Mon Sep 17 00:00:00 2001
|
||||
From 36b4dbb687232d783cc3203da1dee4a797606ba7 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Thu, 2 Oct 2014 19:44:31 +0200
|
||||
Subject: [PATCH] ntdll: Print a warning message specifying the wine-staging
|
||||
@@ -9,7 +9,7 @@ Subject: [PATCH] ntdll: Print a warning message specifying the wine-staging
|
||||
1 file changed, 15 insertions(+)
|
||||
|
||||
diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
|
||||
index 3339596944a..1d435f88755 100644
|
||||
index 255d5afef79..00add6728cc 100644
|
||||
--- a/dlls/ntdll/loader.c
|
||||
+++ b/dlls/ntdll/loader.c
|
||||
@@ -44,6 +44,7 @@ WINE_DECLARE_DEBUG_CHANNEL(relay);
|
||||
@@ -20,7 +20,7 @@ index 3339596944a..1d435f88755 100644
|
||||
|
||||
#ifdef _WIN64
|
||||
#define DEFAULT_SECURITY_COOKIE_64 (((ULONGLONG)0x00002b99 << 32) | 0x2ddfa232)
|
||||
@@ -3373,6 +3374,7 @@ void WINAPI LdrShutdownProcess(void)
|
||||
@@ -3536,6 +3537,7 @@ void WINAPI LdrShutdownProcess(void)
|
||||
process_detach();
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ index 3339596944a..1d435f88755 100644
|
||||
|
||||
/******************************************************************
|
||||
* RtlExitUserProcess (NTDLL.@)
|
||||
@@ -3783,6 +3785,9 @@ static void init_wow64( CONTEXT *context )
|
||||
@@ -3955,6 +3957,9 @@ static void release_address_space(void)
|
||||
*/
|
||||
void WINAPI LdrInitializeThunk( CONTEXT *context, ULONG_PTR unknown2, ULONG_PTR unknown3, ULONG_PTR unknown4 )
|
||||
{
|
||||
@@ -36,9 +36,9 @@ index 3339596944a..1d435f88755 100644
|
||||
+ UNICODE_STRING staging_event_string;
|
||||
+ HANDLE staging_event;
|
||||
static int attach_done;
|
||||
int i;
|
||||
NTSTATUS status;
|
||||
@@ -3869,6 +3874,16 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, ULONG_PTR unknown2, ULONG_PTR
|
||||
ULONG_PTR cookie;
|
||||
@@ -4041,6 +4046,16 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, ULONG_PTR unknown2, ULONG_PTR
|
||||
if (NtCurrentTeb()->WowTebOffset) init_wow64( context );
|
||||
#endif
|
||||
|
||||
@@ -56,5 +56,5 @@ index 3339596944a..1d435f88755 100644
|
||||
InsertHeadList( &tls_links, &NtCurrentTeb()->TlsLinks );
|
||||
RtlReleasePebLock();
|
||||
--
|
||||
2.30.2
|
||||
2.33.0
|
||||
|
||||
|
@@ -1,25 +1,25 @@
|
||||
From cfcc687562d4fa68b507cbf2c29722ef523d26aa Mon Sep 17 00:00:00 2001
|
||||
From 8aa6fb73e3142d86ba354c204313b8a74a5fa43d Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Thu, 2 Oct 2014 19:53:46 +0200
|
||||
Subject: [PATCH] winelib: Append '(Staging)' at the end of the version string.
|
||||
|
||||
---
|
||||
Makefile.in | 2 +-
|
||||
configure.ac | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Makefile.in b/Makefile.in
|
||||
index b52495f741f..d5a8cad20da 100644
|
||||
--- a/Makefile.in
|
||||
+++ b/Makefile.in
|
||||
@@ -116,7 +116,7 @@ install-manpages:: manpages
|
||||
# Rules for generated source files
|
||||
|
||||
dlls/ntdll/unix/version.c: dummy
|
||||
- @version=`(GIT_DIR=$(srcdir)/.git git describe HEAD 2>/dev/null || echo "wine-$(PACKAGE_VERSION)") | sed -n -e '$$s/\(.*\)/const char wine_build[] = "\1";/p'` && (echo $$version | cmp -s - $@) || echo $$version >$@ || ($(RM) $@ && exit 1)
|
||||
+ @version=`(GIT_DIR=$(srcdir)/.git git describe HEAD 2>/dev/null || echo "wine-$(PACKAGE_VERSION)") | sed -n -e '$$s/\(.*\)/const char wine_build[] = "\1 (Staging)";/p'` && (echo $$version | cmp -s - $@) || echo $$version >$@ || (rm -f $@ && exit 1)
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index f86a5decb07..3d7f9cc96e6 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -3910,7 +3910,7 @@ dnl Rules for generated source files
|
||||
|
||||
WINE_APPEND_RULE(
|
||||
[dlls/ntdll/unix/version.c: dummy
|
||||
- @version=\`(GIT_DIR=${wine_srcdir}.git git describe HEAD 2>/dev/null || echo \"wine-\$(PACKAGE_VERSION)\") | sed -n -e '\$\$s/\(.*\)/const char wine_build[[]] = \"\\1\";/p'\` && (echo \$\$version | cmp -s - \$[@]) || echo \$\$version >\$[@] || (rm -f \$[@] && exit 1)
|
||||
+ @version=\`(GIT_DIR=${wine_srcdir}.git git describe HEAD 2>/dev/null || echo \"wine-\$(PACKAGE_VERSION)\") | sed -n -e '\$\$s/\(.*\)/const char wine_build[[]] = \"\\1 (Staging)\";/p'\` && (echo \$\$version | cmp -s - \$[@]) || echo \$\$version >\$[@] || (rm -f \$[@] && exit 1)
|
||||
programs/winetest/build.rc: dummy
|
||||
@build="STRINGTABLE { 1 \"`GIT_DIR=$(srcdir)/.git git rev-parse HEAD 2>/dev/null`\" }" && (echo $$build | cmp -s - $@) || echo $$build >$@ || (rm -f $@ && exit 1)
|
||||
@build=\"STRINGTABLE { 1 \\\"\`GIT_DIR=${wine_srcdir}.git git rev-parse HEAD 2>/dev/null\`\\\" }\" && (echo \$\$build | cmp -s - \$[@]) || echo \$\$build >\$[@] || (rm -f \$[@] && exit 1)
|
||||
programs/winetest/build.nfo:
|
||||
--
|
||||
2.20.1
|
||||
2.33.0
|
||||
|
||||
|
@@ -1,8 +1,8 @@
|
||||
From 971cfbe9ab8a7cb62c5b3e62fe4fe0bfc4518889 Mon Sep 17 00:00:00 2001
|
||||
From a59b5e6351edfc13baca665b4f69a5d0786e7edc Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Sun, 5 Mar 2017 23:04:36 +0100
|
||||
Subject: advapi32: Fix error code when calling LsaOpenPolicy for non existing
|
||||
remote machine.
|
||||
Subject: [PATCH] advapi32: Fix error code when calling LsaOpenPolicy for non
|
||||
existing remote machine.
|
||||
|
||||
---
|
||||
dlls/advapi32/lsa.c | 2 +-
|
||||
@@ -10,10 +10,10 @@ Subject: advapi32: Fix error code when calling LsaOpenPolicy for non existing
|
||||
2 files changed, 11 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/advapi32/lsa.c b/dlls/advapi32/lsa.c
|
||||
index bfd879bbc73..2e021a1ec2d 100644
|
||||
index b63519c0299..d8a084ff408 100644
|
||||
--- a/dlls/advapi32/lsa.c
|
||||
+++ b/dlls/advapi32/lsa.c
|
||||
@@ -659,7 +659,7 @@ NTSTATUS WINAPI LsaOpenPolicy(
|
||||
@@ -739,7 +739,7 @@ NTSTATUS WINAPI LsaOpenPolicy(
|
||||
ObjectAttributes, DesiredAccess, PolicyHandle);
|
||||
|
||||
ADVAPI_ForceLocalComputer(SystemName ? SystemName->Buffer : NULL,
|
||||
@@ -23,10 +23,10 @@ index bfd879bbc73..2e021a1ec2d 100644
|
||||
|
||||
if(PolicyHandle) *PolicyHandle = (LSA_HANDLE)0xcafe;
|
||||
diff --git a/dlls/advapi32/tests/lsa.c b/dlls/advapi32/tests/lsa.c
|
||||
index 861fea0525e..bb291e65a71 100644
|
||||
index 5c00298d41e..d04f5645345 100644
|
||||
--- a/dlls/advapi32/tests/lsa.c
|
||||
+++ b/dlls/advapi32/tests/lsa.c
|
||||
@@ -39,6 +39,8 @@ DEFINE_GUID(GUID_NULL,0,0,0,0,0,0,0,0,0,0,0);
|
||||
@@ -43,6 +43,8 @@ static NTSTATUS (WINAPI *pLsaGetUserName)(PUNICODE_STRING *user, PUNICODE_STRING
|
||||
|
||||
static void test_lsa(void)
|
||||
{
|
||||
@@ -35,7 +35,7 @@ index 861fea0525e..bb291e65a71 100644
|
||||
NTSTATUS status;
|
||||
LSA_HANDLE handle;
|
||||
LSA_OBJECT_ATTRIBUTES object_attributes;
|
||||
@@ -46,6 +48,14 @@ static void test_lsa(void)
|
||||
@@ -50,6 +52,14 @@ static void test_lsa(void)
|
||||
ZeroMemory(&object_attributes, sizeof(object_attributes));
|
||||
object_attributes.Length = sizeof(object_attributes);
|
||||
|
||||
@@ -49,7 +49,7 @@ index 861fea0525e..bb291e65a71 100644
|
||||
+
|
||||
status = LsaOpenPolicy( NULL, &object_attributes, POLICY_ALL_ACCESS, &handle);
|
||||
ok(status == STATUS_SUCCESS || status == STATUS_ACCESS_DENIED,
|
||||
"LsaOpenPolicy(POLICY_ALL_ACCESS) returned 0x%08x\n", status);
|
||||
"LsaOpenPolicy(POLICY_ALL_ACCESS) returned 0x%08lx\n", status);
|
||||
--
|
||||
2.14.2
|
||||
2.34.1
|
||||
|
||||
|
@@ -1,34 +1,34 @@
|
||||
From 19efcf925a49a5d7e0b82eb6e4797b0ac725f2dc Mon Sep 17 00:00:00 2001
|
||||
From 49de5f50cf6eb5a3c4ab07be05ca25f96991ab8a Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Sun, 17 Jan 2016 17:07:35 +0100
|
||||
Subject: [PATCH] ext-ms-win-xaml-pal-l1-1-0: Add dll and add stub for
|
||||
XamlBehaviorEnabled.
|
||||
|
||||
---
|
||||
configure.ac | 1 +
|
||||
dlls/ext-ms-win-xaml-pal-l1-1-0/Makefile.in | 4 +++
|
||||
.../ext-ms-win-xaml-pal-l1-1-0.spec | 6 ++++
|
||||
dlls/ext-ms-win-xaml-pal-l1-1-0/main.c | 35 ++++++++++++++++++++++
|
||||
configure.ac | 1 +
|
||||
dlls/ext-ms-win-xaml-pal-l1-1-0/Makefile.in | 4 +++
|
||||
.../ext-ms-win-xaml-pal-l1-1-0.spec | 6 ++++
|
||||
dlls/ext-ms-win-xaml-pal-l1-1-0/main.c | 35 +++++++++++++++++++
|
||||
4 files changed, 46 insertions(+)
|
||||
create mode 100644 dlls/ext-ms-win-xaml-pal-l1-1-0/Makefile.in
|
||||
create mode 100644 dlls/ext-ms-win-xaml-pal-l1-1-0/ext-ms-win-xaml-pal-l1-1-0.spec
|
||||
create mode 100644 dlls/ext-ms-win-xaml-pal-l1-1-0/main.c
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 8484c83..a9b51d2 100644
|
||||
index 7fb2da63a0b..e9ea24f2680 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -3255,6 +3255,7 @@ WINE_CONFIG_MAKEFILE(dlls/ext-ms-win-shell-comctl32-init-l1-1-0)
|
||||
WINE_CONFIG_MAKEFILE(dlls/ext-ms-win-shell-comdlg32-l1-1-0)
|
||||
WINE_CONFIG_MAKEFILE(dlls/ext-ms-win-shell-shell32-l1-2-0)
|
||||
WINE_CONFIG_MAKEFILE(dlls/ext-ms-win-uxtheme-themes-l1-1-0)
|
||||
@@ -2572,6 +2572,7 @@ WINE_CONFIG_MAKEFILE(dlls/evr)
|
||||
WINE_CONFIG_MAKEFILE(dlls/evr/tests)
|
||||
WINE_CONFIG_MAKEFILE(dlls/explorerframe)
|
||||
WINE_CONFIG_MAKEFILE(dlls/explorerframe/tests)
|
||||
+WINE_CONFIG_MAKEFILE(dlls/ext-ms-win-xaml-pal-l1-1-0)
|
||||
WINE_CONFIG_MAKEFILE(dlls/faultrep)
|
||||
WINE_CONFIG_MAKEFILE(dlls/faultrep/tests)
|
||||
WINE_CONFIG_MAKEFILE(dlls/feclient)
|
||||
diff --git a/dlls/ext-ms-win-xaml-pal-l1-1-0/Makefile.in b/dlls/ext-ms-win-xaml-pal-l1-1-0/Makefile.in
|
||||
new file mode 100644
|
||||
index 0000000..6382d85
|
||||
index 00000000000..6382d85272b
|
||||
--- /dev/null
|
||||
+++ b/dlls/ext-ms-win-xaml-pal-l1-1-0/Makefile.in
|
||||
@@ -0,0 +1,4 @@
|
||||
@@ -38,7 +38,7 @@ index 0000000..6382d85
|
||||
+ main.c
|
||||
diff --git a/dlls/ext-ms-win-xaml-pal-l1-1-0/ext-ms-win-xaml-pal-l1-1-0.spec b/dlls/ext-ms-win-xaml-pal-l1-1-0/ext-ms-win-xaml-pal-l1-1-0.spec
|
||||
new file mode 100644
|
||||
index 0000000..c167f5e
|
||||
index 00000000000..c167f5e753e
|
||||
--- /dev/null
|
||||
+++ b/dlls/ext-ms-win-xaml-pal-l1-1-0/ext-ms-win-xaml-pal-l1-1-0.spec
|
||||
@@ -0,0 +1,6 @@
|
||||
@@ -50,7 +50,7 @@ index 0000000..c167f5e
|
||||
+@ stub XamlPalUninitialize
|
||||
diff --git a/dlls/ext-ms-win-xaml-pal-l1-1-0/main.c b/dlls/ext-ms-win-xaml-pal-l1-1-0/main.c
|
||||
new file mode 100644
|
||||
index 0000000..3e28275
|
||||
index 00000000000..3e282758f41
|
||||
--- /dev/null
|
||||
+++ b/dlls/ext-ms-win-xaml-pal-l1-1-0/main.c
|
||||
@@ -0,0 +1,35 @@
|
||||
@@ -90,5 +90,5 @@ index 0000000..3e28275
|
||||
+ return TRUE;
|
||||
+}
|
||||
--
|
||||
1.9.1
|
||||
2.34.1
|
||||
|
||||
|
@@ -1,34 +1,34 @@
|
||||
From 65dda249fcbd5c1685fc89ede60e946b910508e3 Mon Sep 17 00:00:00 2001
|
||||
From adf1cce491f1580f73599ba2ec951a4004b4e091 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Sun, 17 Jan 2016 17:12:45 +0100
|
||||
Subject: [PATCH] ext-ms-win-appmodel-usercontext-l1-1-0: Add dll and add stub
|
||||
for UserContextExtInitialize.
|
||||
|
||||
---
|
||||
configure.ac | 1 +
|
||||
.../Makefile.in | 4 +++
|
||||
.../ext-ms-win-appmodel-usercontext-l1-1-0.spec | 3 ++
|
||||
dlls/ext-ms-win-appmodel-usercontext-l1-1-0/main.c | 35 ++++++++++++++++++++++
|
||||
configure.ac | 1 +
|
||||
.../Makefile.in | 4 +++
|
||||
...xt-ms-win-appmodel-usercontext-l1-1-0.spec | 3 ++
|
||||
.../main.c | 35 +++++++++++++++++++
|
||||
4 files changed, 43 insertions(+)
|
||||
create mode 100644 dlls/ext-ms-win-appmodel-usercontext-l1-1-0/Makefile.in
|
||||
create mode 100644 dlls/ext-ms-win-appmodel-usercontext-l1-1-0/ext-ms-win-appmodel-usercontext-l1-1-0.spec
|
||||
create mode 100644 dlls/ext-ms-win-appmodel-usercontext-l1-1-0/main.c
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 53ddeea..4061187 100644
|
||||
index e9ea24f2680..54c8fcb183b 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -3238,6 +3238,7 @@ WINE_CONFIG_MAKEFILE(dlls/evr)
|
||||
@@ -2572,6 +2572,7 @@ WINE_CONFIG_MAKEFILE(dlls/evr)
|
||||
WINE_CONFIG_MAKEFILE(dlls/evr/tests)
|
||||
WINE_CONFIG_MAKEFILE(dlls/explorerframe)
|
||||
WINE_CONFIG_MAKEFILE(dlls/explorerframe/tests)
|
||||
+WINE_CONFIG_MAKEFILE(dlls/ext-ms-win-appmodel-usercontext-l1-1-0)
|
||||
WINE_CONFIG_MAKEFILE(dlls/ext-ms-win-authz-context-l1-1-0)
|
||||
WINE_CONFIG_MAKEFILE(dlls/ext-ms-win-domainjoin-netjoin-l1-1-0)
|
||||
WINE_CONFIG_MAKEFILE(dlls/ext-ms-win-dwmapi-ext-l1-1-0)
|
||||
WINE_CONFIG_MAKEFILE(dlls/ext-ms-win-xaml-pal-l1-1-0)
|
||||
WINE_CONFIG_MAKEFILE(dlls/faultrep)
|
||||
WINE_CONFIG_MAKEFILE(dlls/faultrep/tests)
|
||||
diff --git a/dlls/ext-ms-win-appmodel-usercontext-l1-1-0/Makefile.in b/dlls/ext-ms-win-appmodel-usercontext-l1-1-0/Makefile.in
|
||||
new file mode 100644
|
||||
index 0000000..16eee75
|
||||
index 00000000000..16eee7588ff
|
||||
--- /dev/null
|
||||
+++ b/dlls/ext-ms-win-appmodel-usercontext-l1-1-0/Makefile.in
|
||||
@@ -0,0 +1,4 @@
|
||||
@@ -38,7 +38,7 @@ index 0000000..16eee75
|
||||
+ main.c
|
||||
diff --git a/dlls/ext-ms-win-appmodel-usercontext-l1-1-0/ext-ms-win-appmodel-usercontext-l1-1-0.spec b/dlls/ext-ms-win-appmodel-usercontext-l1-1-0/ext-ms-win-appmodel-usercontext-l1-1-0.spec
|
||||
new file mode 100644
|
||||
index 0000000..7642d15
|
||||
index 00000000000..7642d156c94
|
||||
--- /dev/null
|
||||
+++ b/dlls/ext-ms-win-appmodel-usercontext-l1-1-0/ext-ms-win-appmodel-usercontext-l1-1-0.spec
|
||||
@@ -0,0 +1,3 @@
|
||||
@@ -47,7 +47,7 @@ index 0000000..7642d15
|
||||
+@ stub UserContextExtSetToken
|
||||
diff --git a/dlls/ext-ms-win-appmodel-usercontext-l1-1-0/main.c b/dlls/ext-ms-win-appmodel-usercontext-l1-1-0/main.c
|
||||
new file mode 100644
|
||||
index 0000000..7a9e75f
|
||||
index 00000000000..7a9e75f7109
|
||||
--- /dev/null
|
||||
+++ b/dlls/ext-ms-win-appmodel-usercontext-l1-1-0/main.c
|
||||
@@ -0,0 +1,35 @@
|
||||
@@ -87,5 +87,5 @@ index 0000000..7a9e75f
|
||||
+ return S_OK;
|
||||
+}
|
||||
--
|
||||
2.7.4
|
||||
2.34.1
|
||||
|
||||
|
@@ -1,125 +0,0 @@
|
||||
From ffea83bdf88a4b7d35c2f9a7e1a773d3110b5771 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Tue, 12 Apr 2016 01:02:34 +0200
|
||||
Subject: [PATCH] uiautomationcore: Add dll and stub some functions.
|
||||
|
||||
---
|
||||
dlls/uiautomationcore/Makefile.in | 1 +
|
||||
dlls/uiautomationcore/uia_main.c | 53 +++++++++++++++++++++++++++----
|
||||
2 files changed, 48 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/dlls/uiautomationcore/Makefile.in b/dlls/uiautomationcore/Makefile.in
|
||||
index 71ea7b99c94..3e6c2d7688a 100644
|
||||
--- a/dlls/uiautomationcore/Makefile.in
|
||||
+++ b/dlls/uiautomationcore/Makefile.in
|
||||
@@ -1,5 +1,6 @@
|
||||
MODULE = uiautomationcore.dll
|
||||
IMPORTLIB = uiautomationcore
|
||||
+IMPORTS = uuid
|
||||
|
||||
EXTRADLLFLAGS = -Wb,--prefer-native
|
||||
|
||||
diff --git a/dlls/uiautomationcore/uia_main.c b/dlls/uiautomationcore/uia_main.c
|
||||
index 2dada95af80..a32ef552f15 100644
|
||||
--- a/dlls/uiautomationcore/uia_main.c
|
||||
+++ b/dlls/uiautomationcore/uia_main.c
|
||||
@@ -1,4 +1,5 @@
|
||||
/*
|
||||
+ * Copyright 2016 Michael Müller
|
||||
* Copyright 2017 Jacek Caban for CodeWeavers
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
@@ -16,18 +17,58 @@
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
+#define COBJMACROS
|
||||
#include "uiautomation.h"
|
||||
|
||||
#include "wine/debug.h"
|
||||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(uiautomation);
|
||||
|
||||
+static HRESULT WINAPI dummy_QueryInterface(IUnknown *iface, REFIID iid, void **ppv)
|
||||
+{
|
||||
+ TRACE("(%p, %s, %p)\n", iface, debugstr_guid(iid), ppv);
|
||||
+
|
||||
+ if (!ppv) return E_INVALIDARG;
|
||||
+
|
||||
+ if (!IsEqualIID(&IID_IUnknown, iid))
|
||||
+ {
|
||||
+ FIXME("Unknown interface: %s\n", debugstr_guid(iid));
|
||||
+ *ppv = NULL;
|
||||
+ return E_NOINTERFACE;
|
||||
+ }
|
||||
+
|
||||
+ *ppv = iface;
|
||||
+ IUnknown_AddRef((IUnknown *)*ppv);
|
||||
+ return S_OK;
|
||||
+}
|
||||
+
|
||||
+static ULONG WINAPI dummy_AddRef(IUnknown *iface)
|
||||
+{
|
||||
+ FIXME("(%p): stub\n", iface);
|
||||
+ return 1;
|
||||
+}
|
||||
+
|
||||
+static ULONG WINAPI dummy_Release(IUnknown *iface)
|
||||
+{
|
||||
+ FIXME("(%p): stub\n", iface);
|
||||
+ return 1;
|
||||
+}
|
||||
+
|
||||
+static const IUnknownVtbl dummy_Vtbl =
|
||||
+{
|
||||
+ dummy_QueryInterface,
|
||||
+ dummy_AddRef,
|
||||
+ dummy_Release,
|
||||
+};
|
||||
+
|
||||
+static IUnknown dummy = { &dummy_Vtbl };
|
||||
+
|
||||
/***********************************************************************
|
||||
* UiaClientsAreListening (uiautomationcore.@)
|
||||
*/
|
||||
BOOL WINAPI UiaClientsAreListening(void)
|
||||
{
|
||||
- FIXME("()\n");
|
||||
+ FIXME("(): stub\n");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@@ -36,8 +77,8 @@ BOOL WINAPI UiaClientsAreListening(void)
|
||||
*/
|
||||
HRESULT WINAPI UiaGetReservedMixedAttributeValue(IUnknown **value)
|
||||
{
|
||||
- FIXME("(%p) stub!\n", value);
|
||||
- *value = NULL;
|
||||
+ FIXME("(%p): stub!\n", value);
|
||||
+ *value = &dummy;
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
@@ -46,8 +87,8 @@ HRESULT WINAPI UiaGetReservedMixedAttributeValue(IUnknown **value)
|
||||
*/
|
||||
HRESULT WINAPI UiaGetReservedNotSupportedValue(IUnknown **value)
|
||||
{
|
||||
- FIXME("(%p) stub!\n", value);
|
||||
- *value = NULL;
|
||||
+ FIXME("(%p): stub!\n", value);
|
||||
+ *value = &dummy;
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
@@ -66,7 +107,7 @@ int WINAPI UiaLookupId(enum AutomationIdentifierType type, const GUID *guid)
|
||||
LRESULT WINAPI UiaReturnRawElementProvider(HWND hwnd, WPARAM wParam,
|
||||
LPARAM lParam, IRawElementProviderSimple *elprov)
|
||||
{
|
||||
- FIXME("(%p, %lx, %lx, %p) stub!\n", hwnd, wParam, lParam, elprov);
|
||||
+ FIXME("(%p, %lx, %lx, %p): stub!\n", hwnd, wParam, lParam, elprov);
|
||||
return 0;
|
||||
}
|
||||
|
||||
--
|
||||
2.33.0
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From e3a6b75cbce69e18742135fdd8e105132d8ca9dd Mon Sep 17 00:00:00 2001
|
||||
From ea3579b5b3d701647f5c7f16de658f1cd7fe876d Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Fri, 30 Jul 2021 15:57:29 +1000
|
||||
Subject: [PATCH] d3dx11_43: Implement D3DX11GetImageInfoFromMemory
|
||||
@@ -38,7 +38,7 @@ index ccd4319ace2..6854c73ebcb 100644
|
||||
EXTRADLLFLAGS = -Wb,--prefer-native
|
||||
|
||||
diff --git a/dlls/d3dx11_43/main.c b/dlls/d3dx11_43/main.c
|
||||
index 950f6d76f5c..00c1db35e42 100644
|
||||
index 5dad027864f..00c1db35e42 100644
|
||||
--- a/dlls/d3dx11_43/main.c
|
||||
+++ b/dlls/d3dx11_43/main.c
|
||||
@@ -66,12 +66,3 @@ HRESULT WINAPI D3DX11GetImageInfoFromFileW(const WCHAR *filename, ID3DX11ThreadP
|
||||
@@ -49,13 +49,13 @@ index 950f6d76f5c..00c1db35e42 100644
|
||||
-HRESULT WINAPI D3DX11GetImageInfoFromMemory(const void *src_data, SIZE_T src_data_size, ID3DX11ThreadPump *pump,
|
||||
- D3DX11_IMAGE_INFO *img_info, HRESULT *hresult)
|
||||
-{
|
||||
- FIXME("src_data %p, src_data_size %lu, pump %p, img_info %p, hresult %p stub!\n",
|
||||
- FIXME("src_data %p, src_data_size %Iu, pump %p, img_info %p, hresult %p stub!\n",
|
||||
- src_data, src_data_size, pump, img_info, hresult);
|
||||
-
|
||||
- return E_NOTIMPL;
|
||||
-}
|
||||
diff --git a/dlls/d3dx11_43/texture.c b/dlls/d3dx11_43/texture.c
|
||||
index ee6808d76d6..8addf4f84d3 100644
|
||||
index 81ac8ee6db7..6881eec107d 100644
|
||||
--- a/dlls/d3dx11_43/texture.c
|
||||
+++ b/dlls/d3dx11_43/texture.c
|
||||
@@ -15,14 +15,190 @@
|
||||
@@ -155,7 +155,7 @@ index ee6808d76d6..8addf4f84d3 100644
|
||||
+ GUID container_format;
|
||||
+ HRESULT hr;
|
||||
+
|
||||
+ TRACE("src_data %p, src_data_size %lu, pump %p, img_info %p, hresult %p.\n",
|
||||
+ TRACE("src_data %p, src_data_size %Iu, pump %p, img_info %p, hresult %p.\n",
|
||||
+ src_data, src_data_size, pump, img_info, hresult);
|
||||
+
|
||||
+ if (!src_data || !src_data_size || !img_info)
|
||||
@@ -250,5 +250,5 @@ index ee6808d76d6..8addf4f84d3 100644
|
||||
SIZE_T data_size, D3DX11_IMAGE_LOAD_INFO *load_info, ID3DX11ThreadPump *pump,
|
||||
ID3D11ShaderResourceView **view, HRESULT *hresult)
|
||||
--
|
||||
2.33.0
|
||||
2.34.1
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 2f65959901f62bfc6a48c683e6eaa5d6ed5f7416 Mon Sep 17 00:00:00 2001
|
||||
From 5be34c9e347d4379179eeba742b25986152d4e4f Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Tue, 3 Aug 2021 11:13:18 +1000
|
||||
Subject: [PATCH] d3dx11_42: Implement D3DX11CreateTextureFromMemory
|
||||
@@ -9,7 +9,7 @@ Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
1 file changed, 342 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/dlls/d3dx11_43/texture.c b/dlls/d3dx11_43/texture.c
|
||||
index 8addf4f84d3..f47b8583c6c 100644
|
||||
index 6881eec107d..b91bd8d881a 100644
|
||||
--- a/dlls/d3dx11_43/texture.c
|
||||
+++ b/dlls/d3dx11_43/texture.c
|
||||
@@ -22,6 +22,7 @@
|
||||
@@ -239,7 +239,7 @@ index 8addf4f84d3..f47b8583c6c 100644
|
||||
+ SIZE_T src_data_size, D3DX11_IMAGE_LOAD_INFO *load_info, ID3DX11ThreadPump *pump,
|
||||
ID3D11Resource **texture, HRESULT *hresult)
|
||||
{
|
||||
- FIXME("device %p, data %p, data_size %lu, load_info %p, pump %p, texture %p, hresult %p stub.\n",
|
||||
- FIXME("device %p, data %p, data_size %Iu, load_info %p, pump %p, texture %p, hresult %p stub.\n",
|
||||
- device, data, data_size, load_info, pump, texture, hresult);
|
||||
+ unsigned int frame_count, width, height, stride, frame_size;
|
||||
+ IWICFormatConverter *converter = NULL;
|
||||
@@ -259,7 +259,7 @@ index 8addf4f84d3..f47b8583c6c 100644
|
||||
+ HRESULT hr;
|
||||
|
||||
- return E_NOTIMPL;
|
||||
+ TRACE("device %p, src_data %p, src_data_size %lu, load_info %p, pump %p, texture %p, hresult %p.\n",
|
||||
+ TRACE("device %p, data %p, data_size %Iu, load_info %p, pump %p, texture %p, hresult %p.\n",
|
||||
+ device, src_data, src_data_size, load_info, pump, texture, hresult);
|
||||
+
|
||||
+ if (!src_data || !src_data_size || !texture)
|
||||
@@ -391,5 +391,5 @@ index 8addf4f84d3..f47b8583c6c 100644
|
||||
|
||||
HRESULT WINAPI D3DX11SaveTextureToFileW(ID3D11DeviceContext *context, ID3D11Resource *texture,
|
||||
--
|
||||
2.30.2
|
||||
2.34.1
|
||||
|
||||
|
@@ -1,67 +0,0 @@
|
||||
From a31e5531eb8f3be5fddf9f81f48f191b1a10c2aa Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Mon, 16 Mar 2015 08:18:33 +0100
|
||||
Subject: [PATCH] d3dx9_36: Improve stub for ID3DXEffectImpl_CloneEffect.
|
||||
|
||||
---
|
||||
dlls/d3dx9_36/effect.c | 4 +++-
|
||||
dlls/d3dx9_36/tests/effect.c | 16 +++++-----------
|
||||
2 files changed, 8 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/dlls/d3dx9_36/effect.c b/dlls/d3dx9_36/effect.c
|
||||
index 7d686a435d..f8d8ab9cd2 100644
|
||||
--- a/dlls/d3dx9_36/effect.c
|
||||
+++ b/dlls/d3dx9_36/effect.c
|
||||
@@ -4100,7 +4100,9 @@ static HRESULT WINAPI d3dx_effect_CloneEffect(ID3DXEffect *iface, IDirect3DDevic
|
||||
if (!device)
|
||||
return D3DERR_INVALIDCALL;
|
||||
|
||||
- return E_NOTIMPL;
|
||||
+ iface->lpVtbl->AddRef(iface);
|
||||
+ *new_effect = iface;
|
||||
+ return S_OK;
|
||||
}
|
||||
|
||||
#if D3DX_SDK_VERSION >= 27
|
||||
diff --git a/dlls/d3dx9_36/tests/effect.c b/dlls/d3dx9_36/tests/effect.c
|
||||
index 5c4a3c5e77..ff15426938 100644
|
||||
--- a/dlls/d3dx9_36/tests/effect.c
|
||||
+++ b/dlls/d3dx9_36/tests/effect.c
|
||||
@@ -7419,29 +7419,23 @@ static void test_effect_clone(void)
|
||||
ok(hr == D3DERR_INVALIDCALL, "Got result %#x.\n", hr);
|
||||
|
||||
hr = effect->lpVtbl->CloneEffect(effect, device, &cloned);
|
||||
-todo_wine
|
||||
ok(hr == D3D_OK, "Got result %#x.\n", hr);
|
||||
-if (hr == D3D_OK)
|
||||
-{
|
||||
- ok(cloned != effect, "Expected new effect instance.\n");
|
||||
+
|
||||
+ todo_wine ok(cloned != effect, "Expected new effect instance.\n");
|
||||
cloned->lpVtbl->Release(cloned);
|
||||
-}
|
||||
/* Try with different device. */
|
||||
device2 = create_device(&window2);
|
||||
hr = effect->lpVtbl->CloneEffect(effect, device2, &cloned);
|
||||
-todo_wine
|
||||
ok(hr == D3D_OK, "Got result %#x.\n", hr);
|
||||
-if (hr == D3D_OK)
|
||||
-{
|
||||
- ok(cloned != effect, "Expected new effect instance.\n");
|
||||
+ todo_wine ok(cloned != effect, "Expected new effect instance.\n");
|
||||
|
||||
hr = cloned->lpVtbl->GetDevice(cloned, &device3);
|
||||
ok(hr == S_OK, "Failed to get effect device.\n");
|
||||
- ok(device3 == device2, "Unexpected device instance.\n");
|
||||
+ todo_wine ok(device3 == device2, "Unexpected device instance, device3 %p, device2 %p.\n", device3, device2);
|
||||
IDirect3DDevice9_Release(device3);
|
||||
|
||||
cloned->lpVtbl->Release(cloned);
|
||||
-}
|
||||
+
|
||||
IDirect3DDevice9_Release(device2);
|
||||
DestroyWindow(window2);
|
||||
effect->lpVtbl->Release(effect);
|
||||
--
|
||||
2.21.0
|
||||
|
@@ -1 +0,0 @@
|
||||
Fixes: [44635] Improve stub for ID3DXEffectImpl_CloneEffect
|
@@ -1,317 +0,0 @@
|
||||
From a8d19eb67828f3c4f157f0734d0d22c47cc11882 Mon Sep 17 00:00:00 2001
|
||||
From: Andrey Gusev <andrey.goosev@gmail.com>
|
||||
Date: Mon, 17 Dec 2018 12:23:40 +1100
|
||||
Subject: [PATCH] d3dx9_*: Add D3DXSHProjectCubeMap stub
|
||||
|
||||
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46284
|
||||
---
|
||||
dlls/d3dx9_24/d3dx9_24.spec | 2 +-
|
||||
dlls/d3dx9_25/d3dx9_25.spec | 2 +-
|
||||
dlls/d3dx9_26/d3dx9_26.spec | 2 +-
|
||||
dlls/d3dx9_27/d3dx9_27.spec | 2 +-
|
||||
dlls/d3dx9_28/d3dx9_28.spec | 2 +-
|
||||
dlls/d3dx9_29/d3dx9_29.spec | 2 +-
|
||||
dlls/d3dx9_30/d3dx9_30.spec | 2 +-
|
||||
dlls/d3dx9_31/d3dx9_31.spec | 2 +-
|
||||
dlls/d3dx9_32/d3dx9_32.spec | 2 +-
|
||||
dlls/d3dx9_33/d3dx9_33.spec | 2 +-
|
||||
dlls/d3dx9_34/d3dx9_34.spec | 2 +-
|
||||
dlls/d3dx9_35/d3dx9_35.spec | 2 +-
|
||||
dlls/d3dx9_36/math.c | 14 ++++++++++++++
|
||||
dlls/d3dx9_37/d3dx9_37.spec | 2 +-
|
||||
dlls/d3dx9_38/d3dx9_38.spec | 2 +-
|
||||
dlls/d3dx9_39/d3dx9_39.spec | 2 +-
|
||||
dlls/d3dx9_40/d3dx9_40.spec | 2 +-
|
||||
dlls/d3dx9_41/d3dx9_41.spec | 2 +-
|
||||
dlls/d3dx9_42/d3dx9_42.spec | 2 +-
|
||||
dlls/d3dx9_43/d3dx9_43.spec | 2 +-
|
||||
include/d3dx9math.h | 1 +
|
||||
21 files changed, 34 insertions(+), 19 deletions(-)
|
||||
|
||||
diff --git a/dlls/d3dx9_24/d3dx9_24.spec b/dlls/d3dx9_24/d3dx9_24.spec
|
||||
index 7002e2b..06fb3ca 100644
|
||||
--- a/dlls/d3dx9_24/d3dx9_24.spec
|
||||
+++ b/dlls/d3dx9_24/d3dx9_24.spec
|
||||
@@ -256,7 +256,7 @@
|
||||
@ stdcall D3DXSHEvalSphericalLight(long ptr float float float float ptr ptr ptr)
|
||||
@ stub D3DXSHPRTCompSplitMeshSC(ptr long long ptr long ptr long long ptr ptr long ptr ptr ptr ptr ptr)
|
||||
@ stub D3DXSHPRTCompSuperCluster(ptr ptr long long ptr ptr)
|
||||
-@ stub D3DXSHProjectCubeMap(long ptr ptr ptr ptr)
|
||||
+@ stdcall D3DXSHProjectCubeMap(long ptr ptr ptr ptr)
|
||||
@ stdcall D3DXSHRotate(ptr long ptr ptr)
|
||||
@ stdcall D3DXSHRotateZ(ptr long float ptr)
|
||||
@ stdcall D3DXSHScale(ptr long ptr float)
|
||||
diff --git a/dlls/d3dx9_25/d3dx9_25.spec b/dlls/d3dx9_25/d3dx9_25.spec
|
||||
index 3010005..e7b5f6b 100644
|
||||
--- a/dlls/d3dx9_25/d3dx9_25.spec
|
||||
+++ b/dlls/d3dx9_25/d3dx9_25.spec
|
||||
@@ -256,7 +256,7 @@
|
||||
@ stdcall D3DXSHEvalSphericalLight(long ptr float float float float ptr ptr ptr)
|
||||
@ stub D3DXSHPRTCompSplitMeshSC(ptr long long ptr long ptr long long ptr ptr long ptr ptr ptr ptr ptr)
|
||||
@ stub D3DXSHPRTCompSuperCluster(ptr ptr long long ptr ptr)
|
||||
-@ stub D3DXSHProjectCubeMap(long ptr ptr ptr ptr)
|
||||
+@ stdcall D3DXSHProjectCubeMap(long ptr ptr ptr ptr)
|
||||
@ stdcall D3DXSHRotate(ptr long ptr ptr)
|
||||
@ stdcall D3DXSHRotateZ(ptr long float ptr)
|
||||
@ stdcall D3DXSHScale(ptr long ptr float)
|
||||
diff --git a/dlls/d3dx9_26/d3dx9_26.spec b/dlls/d3dx9_26/d3dx9_26.spec
|
||||
index fe641a7..c4a6c9f 100644
|
||||
--- a/dlls/d3dx9_26/d3dx9_26.spec
|
||||
+++ b/dlls/d3dx9_26/d3dx9_26.spec
|
||||
@@ -260,7 +260,7 @@
|
||||
@ stdcall D3DXSHEvalSphericalLight(long ptr float float float float ptr ptr ptr)
|
||||
@ stub D3DXSHPRTCompSplitMeshSC(ptr long long ptr long ptr long long ptr ptr long ptr ptr ptr ptr ptr)
|
||||
@ stub D3DXSHPRTCompSuperCluster(ptr ptr long long ptr ptr)
|
||||
-@ stub D3DXSHProjectCubeMap(long ptr ptr ptr ptr)
|
||||
+@ stdcall D3DXSHProjectCubeMap(long ptr ptr ptr ptr)
|
||||
@ stdcall D3DXSHRotate(ptr long ptr ptr)
|
||||
@ stdcall D3DXSHRotateZ(ptr long float ptr)
|
||||
@ stdcall D3DXSHScale(ptr long ptr float)
|
||||
diff --git a/dlls/d3dx9_27/d3dx9_27.spec b/dlls/d3dx9_27/d3dx9_27.spec
|
||||
index fe641a7..c4a6c9f 100644
|
||||
--- a/dlls/d3dx9_27/d3dx9_27.spec
|
||||
+++ b/dlls/d3dx9_27/d3dx9_27.spec
|
||||
@@ -260,7 +260,7 @@
|
||||
@ stdcall D3DXSHEvalSphericalLight(long ptr float float float float ptr ptr ptr)
|
||||
@ stub D3DXSHPRTCompSplitMeshSC(ptr long long ptr long ptr long long ptr ptr long ptr ptr ptr ptr ptr)
|
||||
@ stub D3DXSHPRTCompSuperCluster(ptr ptr long long ptr ptr)
|
||||
-@ stub D3DXSHProjectCubeMap(long ptr ptr ptr ptr)
|
||||
+@ stdcall D3DXSHProjectCubeMap(long ptr ptr ptr ptr)
|
||||
@ stdcall D3DXSHRotate(ptr long ptr ptr)
|
||||
@ stdcall D3DXSHRotateZ(ptr long float ptr)
|
||||
@ stdcall D3DXSHScale(ptr long ptr float)
|
||||
diff --git a/dlls/d3dx9_28/d3dx9_28.spec b/dlls/d3dx9_28/d3dx9_28.spec
|
||||
index acbcf26..480396b 100644
|
||||
--- a/dlls/d3dx9_28/d3dx9_28.spec
|
||||
+++ b/dlls/d3dx9_28/d3dx9_28.spec
|
||||
@@ -265,7 +265,7 @@
|
||||
@ stdcall D3DXSHEvalSphericalLight(long ptr float float float float ptr ptr ptr)
|
||||
@ stub D3DXSHPRTCompSplitMeshSC(ptr long long ptr long ptr long long ptr ptr long ptr ptr ptr ptr ptr)
|
||||
@ stub D3DXSHPRTCompSuperCluster(ptr ptr long long ptr ptr)
|
||||
-@ stub D3DXSHProjectCubeMap(long ptr ptr ptr ptr)
|
||||
+@ stdcall D3DXSHProjectCubeMap(long ptr ptr ptr ptr)
|
||||
@ stdcall D3DXSHRotate(ptr long ptr ptr)
|
||||
@ stdcall D3DXSHRotateZ(ptr long float ptr)
|
||||
@ stdcall D3DXSHScale(ptr long ptr float)
|
||||
diff --git a/dlls/d3dx9_29/d3dx9_29.spec b/dlls/d3dx9_29/d3dx9_29.spec
|
||||
index acbcf26..480396b 100644
|
||||
--- a/dlls/d3dx9_29/d3dx9_29.spec
|
||||
+++ b/dlls/d3dx9_29/d3dx9_29.spec
|
||||
@@ -265,7 +265,7 @@
|
||||
@ stdcall D3DXSHEvalSphericalLight(long ptr float float float float ptr ptr ptr)
|
||||
@ stub D3DXSHPRTCompSplitMeshSC(ptr long long ptr long ptr long long ptr ptr long ptr ptr ptr ptr ptr)
|
||||
@ stub D3DXSHPRTCompSuperCluster(ptr ptr long long ptr ptr)
|
||||
-@ stub D3DXSHProjectCubeMap(long ptr ptr ptr ptr)
|
||||
+@ stdcall D3DXSHProjectCubeMap(long ptr ptr ptr ptr)
|
||||
@ stdcall D3DXSHRotate(ptr long ptr ptr)
|
||||
@ stdcall D3DXSHRotateZ(ptr long float ptr)
|
||||
@ stdcall D3DXSHScale(ptr long ptr float)
|
||||
diff --git a/dlls/d3dx9_30/d3dx9_30.spec b/dlls/d3dx9_30/d3dx9_30.spec
|
||||
index fdf5ee4..09014db 100644
|
||||
--- a/dlls/d3dx9_30/d3dx9_30.spec
|
||||
+++ b/dlls/d3dx9_30/d3dx9_30.spec
|
||||
@@ -265,7 +265,7 @@
|
||||
@ stdcall D3DXSHEvalSphericalLight(long ptr float float float float ptr ptr ptr)
|
||||
@ stub D3DXSHPRTCompSplitMeshSC(ptr long long ptr long ptr long long ptr ptr long ptr ptr ptr ptr ptr)
|
||||
@ stub D3DXSHPRTCompSuperCluster(ptr ptr long long ptr ptr)
|
||||
-@ stub D3DXSHProjectCubeMap(long ptr ptr ptr ptr)
|
||||
+@ stdcall D3DXSHProjectCubeMap(long ptr ptr ptr ptr)
|
||||
@ stdcall D3DXSHRotate(ptr long ptr ptr)
|
||||
@ stdcall D3DXSHRotateZ(ptr long float ptr)
|
||||
@ stdcall D3DXSHScale(ptr long ptr float)
|
||||
diff --git a/dlls/d3dx9_31/d3dx9_31.spec b/dlls/d3dx9_31/d3dx9_31.spec
|
||||
index ed842cd..3506942 100644
|
||||
--- a/dlls/d3dx9_31/d3dx9_31.spec
|
||||
+++ b/dlls/d3dx9_31/d3dx9_31.spec
|
||||
@@ -262,7 +262,7 @@
|
||||
@ stdcall D3DXSHEvalSphericalLight(long ptr float float float float ptr ptr ptr)
|
||||
@ stub D3DXSHPRTCompSplitMeshSC(ptr long long ptr long ptr long long ptr ptr long ptr ptr ptr ptr ptr)
|
||||
@ stub D3DXSHPRTCompSuperCluster(ptr ptr long long ptr ptr)
|
||||
-@ stub D3DXSHProjectCubeMap(long ptr ptr ptr ptr)
|
||||
+@ stdcall D3DXSHProjectCubeMap(long ptr ptr ptr ptr)
|
||||
@ stdcall D3DXSHRotate(ptr long ptr ptr)
|
||||
@ stdcall D3DXSHRotateZ(ptr long float ptr)
|
||||
@ stdcall D3DXSHScale(ptr long ptr float)
|
||||
diff --git a/dlls/d3dx9_32/d3dx9_32.spec b/dlls/d3dx9_32/d3dx9_32.spec
|
||||
index af5624c..4d24919 100644
|
||||
--- a/dlls/d3dx9_32/d3dx9_32.spec
|
||||
+++ b/dlls/d3dx9_32/d3dx9_32.spec
|
||||
@@ -267,7 +267,7 @@
|
||||
@ stub D3DXSHMultiply6(ptr ptr ptr)
|
||||
@ stub D3DXSHPRTCompSplitMeshSC(ptr long long ptr long ptr long long ptr ptr long ptr ptr ptr ptr ptr)
|
||||
@ stub D3DXSHPRTCompSuperCluster(ptr ptr long long ptr ptr)
|
||||
-@ stub D3DXSHProjectCubeMap(long ptr ptr ptr ptr)
|
||||
+@ stdcall D3DXSHProjectCubeMap(long ptr ptr ptr ptr)
|
||||
@ stdcall D3DXSHRotate(ptr long ptr ptr)
|
||||
@ stdcall D3DXSHRotateZ(ptr long float ptr)
|
||||
@ stdcall D3DXSHScale(ptr long ptr float)
|
||||
diff --git a/dlls/d3dx9_33/d3dx9_33.spec b/dlls/d3dx9_33/d3dx9_33.spec
|
||||
index af5624c..4d24919 100644
|
||||
--- a/dlls/d3dx9_33/d3dx9_33.spec
|
||||
+++ b/dlls/d3dx9_33/d3dx9_33.spec
|
||||
@@ -267,7 +267,7 @@
|
||||
@ stub D3DXSHMultiply6(ptr ptr ptr)
|
||||
@ stub D3DXSHPRTCompSplitMeshSC(ptr long long ptr long ptr long long ptr ptr long ptr ptr ptr ptr ptr)
|
||||
@ stub D3DXSHPRTCompSuperCluster(ptr ptr long long ptr ptr)
|
||||
-@ stub D3DXSHProjectCubeMap(long ptr ptr ptr ptr)
|
||||
+@ stdcall D3DXSHProjectCubeMap(long ptr ptr ptr ptr)
|
||||
@ stdcall D3DXSHRotate(ptr long ptr ptr)
|
||||
@ stdcall D3DXSHRotateZ(ptr long float ptr)
|
||||
@ stdcall D3DXSHScale(ptr long ptr float)
|
||||
diff --git a/dlls/d3dx9_34/d3dx9_34.spec b/dlls/d3dx9_34/d3dx9_34.spec
|
||||
index af5624c..4d24919 100644
|
||||
--- a/dlls/d3dx9_34/d3dx9_34.spec
|
||||
+++ b/dlls/d3dx9_34/d3dx9_34.spec
|
||||
@@ -267,7 +267,7 @@
|
||||
@ stub D3DXSHMultiply6(ptr ptr ptr)
|
||||
@ stub D3DXSHPRTCompSplitMeshSC(ptr long long ptr long ptr long long ptr ptr long ptr ptr ptr ptr ptr)
|
||||
@ stub D3DXSHPRTCompSuperCluster(ptr ptr long long ptr ptr)
|
||||
-@ stub D3DXSHProjectCubeMap(long ptr ptr ptr ptr)
|
||||
+@ stdcall D3DXSHProjectCubeMap(long ptr ptr ptr ptr)
|
||||
@ stdcall D3DXSHRotate(ptr long ptr ptr)
|
||||
@ stdcall D3DXSHRotateZ(ptr long float ptr)
|
||||
@ stdcall D3DXSHScale(ptr long ptr float)
|
||||
diff --git a/dlls/d3dx9_35/d3dx9_35.spec b/dlls/d3dx9_35/d3dx9_35.spec
|
||||
index af5624c..4d24919 100644
|
||||
--- a/dlls/d3dx9_35/d3dx9_35.spec
|
||||
+++ b/dlls/d3dx9_35/d3dx9_35.spec
|
||||
@@ -267,7 +267,7 @@
|
||||
@ stub D3DXSHMultiply6(ptr ptr ptr)
|
||||
@ stub D3DXSHPRTCompSplitMeshSC(ptr long long ptr long ptr long long ptr ptr long ptr ptr ptr ptr ptr)
|
||||
@ stub D3DXSHPRTCompSuperCluster(ptr ptr long long ptr ptr)
|
||||
-@ stub D3DXSHProjectCubeMap(long ptr ptr ptr ptr)
|
||||
+@ stdcall D3DXSHProjectCubeMap(long ptr ptr ptr ptr)
|
||||
@ stdcall D3DXSHRotate(ptr long ptr ptr)
|
||||
@ stdcall D3DXSHRotateZ(ptr long float ptr)
|
||||
@ stdcall D3DXSHScale(ptr long ptr float)
|
||||
diff --git a/dlls/d3dx9_36/math.c b/dlls/d3dx9_36/math.c
|
||||
index 8909c3c..bc1a7fc 100644
|
||||
--- a/dlls/d3dx9_36/math.c
|
||||
+++ b/dlls/d3dx9_36/math.c
|
||||
@@ -3007,6 +3007,20 @@ static void rotate_X(FLOAT *out, UINT order, FLOAT a, FLOAT *in)
|
||||
out[35] = 0.9057110548f * in[31] - 0.4192627370f * in[33] + 0.0624999329f * in[35];
|
||||
}
|
||||
|
||||
+HRESULT WINAPI D3DXSHProjectCubeMap(UINT order, IDirect3DCubeTexture9 *cubemap, FLOAT *rout, FLOAT *gout, FLOAT *bout)
|
||||
+{
|
||||
+ FIXME("order %u, cubemap %p, rout %p, gout %p, bout %p: stub!\n", order, cubemap, rout, gout, bout);
|
||||
+
|
||||
+ if(!cubemap || order < D3DXSH_MINORDER || order > D3DXSH_MAXORDER)
|
||||
+ return D3DERR_INVALIDCALL;
|
||||
+
|
||||
+ *rout = 0.0f;
|
||||
+ *gout = 0.0f;
|
||||
+ *bout = 0.0f;
|
||||
+
|
||||
+ return D3D_OK;
|
||||
+}
|
||||
+
|
||||
FLOAT* WINAPI D3DXSHRotate(FLOAT *out, UINT order, const D3DXMATRIX *matrix, const FLOAT *in)
|
||||
{
|
||||
FLOAT alpha, beta, gamma, sinb, temp[36], temp1[36];
|
||||
diff --git a/dlls/d3dx9_37/d3dx9_37.spec b/dlls/d3dx9_37/d3dx9_37.spec
|
||||
index de8b12c..10395ff 100644
|
||||
--- a/dlls/d3dx9_37/d3dx9_37.spec
|
||||
+++ b/dlls/d3dx9_37/d3dx9_37.spec
|
||||
@@ -269,7 +269,7 @@
|
||||
@ stub D3DXSHMultiply6(ptr ptr ptr)
|
||||
@ stub D3DXSHPRTCompSplitMeshSC(ptr long long ptr long ptr long long ptr ptr long ptr ptr ptr ptr ptr)
|
||||
@ stub D3DXSHPRTCompSuperCluster(ptr ptr long long ptr ptr)
|
||||
-@ stub D3DXSHProjectCubeMap(long ptr ptr ptr ptr)
|
||||
+@ stdcall D3DXSHProjectCubeMap(long ptr ptr ptr ptr)
|
||||
@ stdcall D3DXSHRotate(ptr long ptr ptr)
|
||||
@ stdcall D3DXSHRotateZ(ptr long float ptr)
|
||||
@ stdcall D3DXSHScale(ptr long ptr float)
|
||||
diff --git a/dlls/d3dx9_38/d3dx9_38.spec b/dlls/d3dx9_38/d3dx9_38.spec
|
||||
index de8b12c..10395ff 100644
|
||||
--- a/dlls/d3dx9_38/d3dx9_38.spec
|
||||
+++ b/dlls/d3dx9_38/d3dx9_38.spec
|
||||
@@ -269,7 +269,7 @@
|
||||
@ stub D3DXSHMultiply6(ptr ptr ptr)
|
||||
@ stub D3DXSHPRTCompSplitMeshSC(ptr long long ptr long ptr long long ptr ptr long ptr ptr ptr ptr ptr)
|
||||
@ stub D3DXSHPRTCompSuperCluster(ptr ptr long long ptr ptr)
|
||||
-@ stub D3DXSHProjectCubeMap(long ptr ptr ptr ptr)
|
||||
+@ stdcall D3DXSHProjectCubeMap(long ptr ptr ptr ptr)
|
||||
@ stdcall D3DXSHRotate(ptr long ptr ptr)
|
||||
@ stdcall D3DXSHRotateZ(ptr long float ptr)
|
||||
@ stdcall D3DXSHScale(ptr long ptr float)
|
||||
diff --git a/dlls/d3dx9_39/d3dx9_39.spec b/dlls/d3dx9_39/d3dx9_39.spec
|
||||
index de8b12c..10395ff 100644
|
||||
--- a/dlls/d3dx9_39/d3dx9_39.spec
|
||||
+++ b/dlls/d3dx9_39/d3dx9_39.spec
|
||||
@@ -269,7 +269,7 @@
|
||||
@ stub D3DXSHMultiply6(ptr ptr ptr)
|
||||
@ stub D3DXSHPRTCompSplitMeshSC(ptr long long ptr long ptr long long ptr ptr long ptr ptr ptr ptr ptr)
|
||||
@ stub D3DXSHPRTCompSuperCluster(ptr ptr long long ptr ptr)
|
||||
-@ stub D3DXSHProjectCubeMap(long ptr ptr ptr ptr)
|
||||
+@ stdcall D3DXSHProjectCubeMap(long ptr ptr ptr ptr)
|
||||
@ stdcall D3DXSHRotate(ptr long ptr ptr)
|
||||
@ stdcall D3DXSHRotateZ(ptr long float ptr)
|
||||
@ stdcall D3DXSHScale(ptr long ptr float)
|
||||
diff --git a/dlls/d3dx9_40/d3dx9_40.spec b/dlls/d3dx9_40/d3dx9_40.spec
|
||||
index de8b12c..10395ff 100644
|
||||
--- a/dlls/d3dx9_40/d3dx9_40.spec
|
||||
+++ b/dlls/d3dx9_40/d3dx9_40.spec
|
||||
@@ -269,7 +269,7 @@
|
||||
@ stub D3DXSHMultiply6(ptr ptr ptr)
|
||||
@ stub D3DXSHPRTCompSplitMeshSC(ptr long long ptr long ptr long long ptr ptr long ptr ptr ptr ptr ptr)
|
||||
@ stub D3DXSHPRTCompSuperCluster(ptr ptr long long ptr ptr)
|
||||
-@ stub D3DXSHProjectCubeMap(long ptr ptr ptr ptr)
|
||||
+@ stdcall D3DXSHProjectCubeMap(long ptr ptr ptr ptr)
|
||||
@ stdcall D3DXSHRotate(ptr long ptr ptr)
|
||||
@ stdcall D3DXSHRotateZ(ptr long float ptr)
|
||||
@ stdcall D3DXSHScale(ptr long ptr float)
|
||||
diff --git a/dlls/d3dx9_41/d3dx9_41.spec b/dlls/d3dx9_41/d3dx9_41.spec
|
||||
index de8b12c..10395ff 100644
|
||||
--- a/dlls/d3dx9_41/d3dx9_41.spec
|
||||
+++ b/dlls/d3dx9_41/d3dx9_41.spec
|
||||
@@ -269,7 +269,7 @@
|
||||
@ stub D3DXSHMultiply6(ptr ptr ptr)
|
||||
@ stub D3DXSHPRTCompSplitMeshSC(ptr long long ptr long ptr long long ptr ptr long ptr ptr ptr ptr ptr)
|
||||
@ stub D3DXSHPRTCompSuperCluster(ptr ptr long long ptr ptr)
|
||||
-@ stub D3DXSHProjectCubeMap(long ptr ptr ptr ptr)
|
||||
+@ stdcall D3DXSHProjectCubeMap(long ptr ptr ptr ptr)
|
||||
@ stdcall D3DXSHRotate(ptr long ptr ptr)
|
||||
@ stdcall D3DXSHRotateZ(ptr long float ptr)
|
||||
@ stdcall D3DXSHScale(ptr long ptr float)
|
||||
diff --git a/dlls/d3dx9_42/d3dx9_42.spec b/dlls/d3dx9_42/d3dx9_42.spec
|
||||
index c3bd9d5..5524bd0 100644
|
||||
--- a/dlls/d3dx9_42/d3dx9_42.spec
|
||||
+++ b/dlls/d3dx9_42/d3dx9_42.spec
|
||||
@@ -262,7 +262,7 @@
|
||||
@ stub D3DXSHMultiply6(ptr ptr ptr)
|
||||
@ stub D3DXSHPRTCompSplitMeshSC(ptr long long ptr long ptr long long ptr ptr long ptr ptr ptr ptr ptr)
|
||||
@ stub D3DXSHPRTCompSuperCluster(ptr ptr long long ptr ptr)
|
||||
-@ stub D3DXSHProjectCubeMap(long ptr ptr ptr ptr)
|
||||
+@ stdcall D3DXSHProjectCubeMap(long ptr ptr ptr ptr)
|
||||
@ stdcall D3DXSHRotate(ptr long ptr ptr)
|
||||
@ stdcall D3DXSHRotateZ(ptr long float ptr)
|
||||
@ stdcall D3DXSHScale(ptr long ptr float)
|
||||
diff --git a/dlls/d3dx9_43/d3dx9_43.spec b/dlls/d3dx9_43/d3dx9_43.spec
|
||||
index c3bd9d5..5524bd0 100644
|
||||
--- a/dlls/d3dx9_43/d3dx9_43.spec
|
||||
+++ b/dlls/d3dx9_43/d3dx9_43.spec
|
||||
@@ -262,7 +262,7 @@
|
||||
@ stub D3DXSHMultiply6(ptr ptr ptr)
|
||||
@ stub D3DXSHPRTCompSplitMeshSC(ptr long long ptr long ptr long long ptr ptr long ptr ptr ptr ptr ptr)
|
||||
@ stub D3DXSHPRTCompSuperCluster(ptr ptr long long ptr ptr)
|
||||
-@ stub D3DXSHProjectCubeMap(long ptr ptr ptr ptr)
|
||||
+@ stdcall D3DXSHProjectCubeMap(long ptr ptr ptr ptr)
|
||||
@ stdcall D3DXSHRotate(ptr long ptr ptr)
|
||||
@ stdcall D3DXSHRotateZ(ptr long float ptr)
|
||||
@ stdcall D3DXSHScale(ptr long ptr float)
|
||||
diff --git a/include/d3dx9math.h b/include/d3dx9math.h
|
||||
index bf03ca3..9296400d 100644
|
||||
--- a/include/d3dx9math.h
|
||||
+++ b/include/d3dx9math.h
|
||||
@@ -396,6 +396,7 @@ HRESULT WINAPI D3DXSHEvalSphericalLight(UINT order, const D3DXVECTOR3 *dir, FLOA
|
||||
FLOAT* WINAPI D3DXSHMultiply2(FLOAT *out, const FLOAT *a, const FLOAT *b);
|
||||
FLOAT* WINAPI D3DXSHMultiply3(FLOAT *out, const FLOAT *a, const FLOAT *b);
|
||||
FLOAT* WINAPI D3DXSHMultiply4(FLOAT *out, const FLOAT *a, const FLOAT *b);
|
||||
+HRESULT WINAPI D3DXSHProjectCubeMap(UINT order, IDirect3DCubeTexture9 *cubemap, FLOAT *rout, FLOAT *gout, FLOAT *bout);
|
||||
FLOAT* WINAPI D3DXSHRotate(FLOAT *out, UINT order, const D3DXMATRIX *matrix, const FLOAT *in);
|
||||
FLOAT* WINAPI D3DXSHRotateZ(FLOAT *out, UINT order, FLOAT angle, const FLOAT *in);
|
||||
FLOAT* WINAPI D3DXSHScale(FLOAT *out, UINT order, const FLOAT *a, const FLOAT scale);
|
||||
--
|
||||
1.9.1
|
||||
|
@@ -1 +0,0 @@
|
||||
Fixes: [46284] Add D3DXSHProjectCubeMap stub
|
@@ -1,4 +1,4 @@
|
||||
From b094a7cf3f804ea40e5bd05ad738c48b5464e0bb Mon Sep 17 00:00:00 2001
|
||||
From 8c78d1203c965927d0a0e6fcde31dd651cc704db Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Mon, 6 Oct 2014 05:06:06 +0200
|
||||
Subject: [PATCH] dbghelp: Always check for debug symbols in BINDIR.
|
||||
@@ -9,7 +9,7 @@ Subject: [PATCH] dbghelp: Always check for debug symbols in BINDIR.
|
||||
2 files changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/dbghelp/Makefile.in b/dlls/dbghelp/Makefile.in
|
||||
index 22be2612eeb..f3f31eb3671 100644
|
||||
index 22be2612eeb..2e11bb2b62d 100644
|
||||
--- a/dlls/dbghelp/Makefile.in
|
||||
+++ b/dlls/dbghelp/Makefile.in
|
||||
@@ -2,7 +2,7 @@ MODULE = dbghelp.dll
|
||||
@@ -22,10 +22,10 @@ index 22be2612eeb..f3f31eb3671 100644
|
||||
|
||||
C_SRCS = \
|
||||
diff --git a/dlls/dbghelp/elf_module.c b/dlls/dbghelp/elf_module.c
|
||||
index 553b212c526..3584a27953e 100644
|
||||
index 404c7c11dbb..e0779e4e3a7 100644
|
||||
--- a/dlls/dbghelp/elf_module.c
|
||||
+++ b/dlls/dbghelp/elf_module.c
|
||||
@@ -1451,6 +1451,7 @@ static BOOL elf_search_and_load_file(struct process* pcs, const WCHAR* filename,
|
||||
@@ -1445,6 +1445,7 @@ static BOOL elf_search_and_load_file(struct process* pcs, const WCHAR* filename,
|
||||
load_elf.elf_info = elf_info;
|
||||
|
||||
ret = search_unix_path(filename, process_getenv(pcs, L"LD_LIBRARY_PATH"), elf_load_file_cb, &load_elf)
|
||||
@@ -34,5 +34,5 @@ index 553b212c526..3584a27953e 100644
|
||||
}
|
||||
|
||||
--
|
||||
2.33.0
|
||||
2.34.1
|
||||
|
||||
|
@@ -1,3 +0,0 @@
|
||||
Fixes: [47326] dinput: Allow mapping of controls based of genre type.
|
||||
Depends: dinput-joy-mappings
|
||||
Disabled: True
|
@@ -1,45 +1,33 @@
|
||||
From 2ff7da682aa87e09966fa0fb7c8846cd82bd1eea Mon Sep 17 00:00:00 2001
|
||||
From e7104770d4b57539d5b64a67212504910692e920 Mon Sep 17 00:00:00 2001
|
||||
From: Jetro Jormalainen <jje-wine@jv.jetro.fi>
|
||||
Date: Tue, 30 Apr 2019 09:20:54 +1000
|
||||
Subject: [PATCH] dinput: Allow empty Joystick mappings.
|
||||
|
||||
---
|
||||
dlls/dinput/device.c | 82 ++++++++++++++++++++++++++++++-------
|
||||
dlls/dinput/joystick.c | 2 +-
|
||||
dlls/dinput8/tests/device.c | 50 ++++++++++++++++++++++
|
||||
3 files changed, 119 insertions(+), 15 deletions(-)
|
||||
dlls/dinput/device.c | 77 ++++++++++++++++++++++++++++++-------
|
||||
dlls/dinput/tests/device8.c | 50 ++++++++++++++++++++++++
|
||||
2 files changed, 113 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/dlls/dinput/device.c b/dlls/dinput/device.c
|
||||
index e99d14b4cff..540034de1e9 100644
|
||||
index 6cc190ee7fb..2fd9329aa68 100644
|
||||
--- a/dlls/dinput/device.c
|
||||
+++ b/dlls/dinput/device.c
|
||||
@@ -30,6 +30,7 @@
|
||||
#include <string.h>
|
||||
#include "wine/debug.h"
|
||||
#include "wine/unicode.h"
|
||||
+#include "wine/heap.h"
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "winreg.h"
|
||||
@@ -655,12 +656,29 @@ static DWORD semantic_to_obj_id(IDirectInputDeviceImpl* This, DWORD dwSemantic)
|
||||
return type | (0x0000ff00 & (obj_instance << 8));
|
||||
@@ -364,12 +364,26 @@ static DWORD semantic_to_obj_id( struct dinput_device *This, DWORD dwSemantic )
|
||||
return type | (0x0000ff00 & (instance << 8));
|
||||
}
|
||||
|
||||
+static void del_mapping_key(const WCHAR *device, const WCHAR *username, const WCHAR *guid) {
|
||||
+ static const WCHAR subkey[] = {
|
||||
+ 'S','o','f','t','w','a','r','e','\\',
|
||||
+ 'W','i','n','e','\\',
|
||||
+ 'D','i','r','e','c','t','I','n','p','u','t','\\',
|
||||
+ 'M','a','p','p','i','n','g','s','\\','%','s','\\','%','s','\\','%','s','\0'};
|
||||
+ static const WCHAR subkey[] = L"Software\\Wine\\DirectInput\\Mappings\\%s\\%s\\%s";
|
||||
+ DWORD len = wcslen(subkey) + wcslen(username) + wcslen(device) + wcslen(guid);
|
||||
+ WCHAR *keyname;
|
||||
+
|
||||
+ keyname = heap_alloc(sizeof(WCHAR) * (lstrlenW(subkey) + strlenW(username) + strlenW(device) + strlenW(guid)));
|
||||
+ sprintfW(keyname, subkey, username, device, guid);
|
||||
+ keyname = malloc(len * sizeof(WCHAR));
|
||||
+ swprintf(keyname, len, subkey, username, device, guid);
|
||||
+
|
||||
+ /* Remove old key mappings so there will be no overlapping mappings */
|
||||
+ RegDeleteKeyW(HKEY_CURRENT_USER, keyname);
|
||||
+
|
||||
+ heap_free(keyname);
|
||||
+ free(keyname);
|
||||
+}
|
||||
+
|
||||
/*
|
||||
@@ -50,10 +38,10 @@ index e99d14b4cff..540034de1e9 100644
|
||||
-static HKEY get_mapping_key(const WCHAR *device, const WCHAR *username, const WCHAR *guid)
|
||||
+static HKEY get_mapping_key(const WCHAR *device, const WCHAR *username, const WCHAR *guid, BOOL create)
|
||||
{
|
||||
static const WCHAR subkey[] = {
|
||||
'S','o','f','t','w','a','r','e','\\',
|
||||
@@ -675,8 +693,11 @@ static HKEY get_mapping_key(const WCHAR *device, const WCHAR *username, const WC
|
||||
sprintfW(keyname, subkey, username, device, guid);
|
||||
static const WCHAR *subkey = L"Software\\Wine\\DirectInput\\Mappings\\%s\\%s\\%s";
|
||||
HKEY hkey;
|
||||
@@ -380,8 +394,11 @@ static HKEY get_mapping_key(const WCHAR *device, const WCHAR *username, const WC
|
||||
swprintf( keyname, len, subkey, username, device, guid );
|
||||
|
||||
/* The key used is HKCU\Software\Wine\DirectInput\Mappings\[username]\[device]\[mapping_guid] */
|
||||
- if (RegCreateKeyW(HKEY_CURRENT_USER, keyname, &hkey))
|
||||
@@ -64,9 +52,9 @@ index e99d14b4cff..540034de1e9 100644
|
||||
+ } else if (RegOpenKeyW(HKEY_CURRENT_USER, keyname, &hkey))
|
||||
+ hkey = 0;
|
||||
|
||||
HeapFree(GetProcessHeap(), 0, keyname);
|
||||
free( keyname );
|
||||
|
||||
@@ -696,7 +717,9 @@ static HRESULT save_mapping_settings(IDirectInputDevice8W *iface, LPDIACTIONFORM
|
||||
@@ -401,7 +418,9 @@ static HRESULT save_mapping_settings(IDirectInputDevice8W *iface, LPDIACTIONFORM
|
||||
if (StringFromCLSID(&lpdiaf->guidActionMap, &guid_str) != S_OK)
|
||||
return DI_SETTINGSNOTSAVED;
|
||||
|
||||
@@ -77,7 +65,7 @@ index e99d14b4cff..540034de1e9 100644
|
||||
|
||||
if (!hkey)
|
||||
{
|
||||
@@ -731,7 +754,7 @@ BOOL load_mapping_settings(IDirectInputDeviceImpl *This, LPDIACTIONFORMATW lpdia
|
||||
@@ -436,7 +455,7 @@ static BOOL load_mapping_settings( struct dinput_device *This, LPDIACTIONFORMATW
|
||||
HKEY hkey;
|
||||
WCHAR *guid_str;
|
||||
DIDEVICEINSTANCEW didev;
|
||||
@@ -86,7 +74,7 @@ index e99d14b4cff..540034de1e9 100644
|
||||
|
||||
didev.dwSize = sizeof(didev);
|
||||
IDirectInputDevice8_GetDeviceInfo(&This->IDirectInputDevice8W_iface, &didev);
|
||||
@@ -739,7 +762,7 @@ BOOL load_mapping_settings(IDirectInputDeviceImpl *This, LPDIACTIONFORMATW lpdia
|
||||
@@ -444,7 +463,7 @@ static BOOL load_mapping_settings( struct dinput_device *This, LPDIACTIONFORMATW
|
||||
if (StringFromCLSID(&lpdiaf->guidActionMap, &guid_str) != S_OK)
|
||||
return FALSE;
|
||||
|
||||
@@ -95,20 +83,19 @@ index e99d14b4cff..540034de1e9 100644
|
||||
|
||||
if (!hkey)
|
||||
{
|
||||
@@ -760,15 +783,21 @@ BOOL load_mapping_settings(IDirectInputDeviceImpl *This, LPDIACTIONFORMATW lpdia
|
||||
@@ -464,15 +483,20 @@ static BOOL load_mapping_settings( struct dinput_device *This, LPDIACTIONFORMATW
|
||||
{
|
||||
lpdiaf->rgoAction[i].dwObjID = id;
|
||||
lpdiaf->rgoAction[i].guidInstance = didev.guidInstance;
|
||||
- lpdiaf->rgoAction[i].dwHow = DIAH_DEFAULT;
|
||||
- mapped += 1;
|
||||
+ lpdiaf->rgoAction[i].dwHow = DIAH_USERCONFIG;
|
||||
}
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ memset(&lpdiaf->rgoAction[i].guidInstance, 0, sizeof(GUID));
|
||||
+ lpdiaf->rgoAction[i].dwHow = DIAH_UNMAPPED;
|
||||
+ }
|
||||
+
|
||||
}
|
||||
}
|
||||
|
||||
RegCloseKey(hkey);
|
||||
@@ -119,96 +106,83 @@ index e99d14b4cff..540034de1e9 100644
|
||||
+ return TRUE;
|
||||
}
|
||||
|
||||
static BOOL set_app_data(IDirectInputDeviceImpl *dev, int offset, UINT_PTR app_data)
|
||||
@@ -831,13 +860,18 @@ HRESULT _build_action_map(LPDIRECTINPUTDEVICE8W iface, LPDIACTIONFORMATW lpdiaf,
|
||||
load_success = load_mapping_settings(This, lpdiaf, username);
|
||||
static BOOL set_app_data( struct dinput_device *dev, int offset, UINT_PTR app_data )
|
||||
@@ -1935,13 +1959,18 @@ static HRESULT WINAPI dinput_device_BuildActionMap( IDirectInputDevice8W *iface,
|
||||
load_success = load_mapping_settings( impl, format, username_buf );
|
||||
}
|
||||
|
||||
- if (load_success) return DI_OK;
|
||||
+ if (load_success) {
|
||||
+ /* Update dwCRC to track if action format has changed */
|
||||
+ for (i=0; i < lpdiaf->dwNumActions; i++)
|
||||
+ for (i=0; i < format->dwNumActions; i++)
|
||||
+ {
|
||||
+ lpdiaf->dwCRC ^= (lpdiaf->rgoAction[i].dwObjID << i * 2) | (lpdiaf->rgoAction[i].dwObjID >> (sizeof(lpdiaf->dwCRC) * 8 - i * 2));
|
||||
+ lpdiaf->dwCRC ^= (lpdiaf->rgoAction[i].dwSemantic << (i * 2 + 5)) | (lpdiaf->rgoAction[i].dwSemantic >> (sizeof(lpdiaf->dwCRC) * 8 - (i * 2 + 5)));
|
||||
+ format->dwCRC ^= (format->rgoAction[i].dwObjID << i * 2) | (format->rgoAction[i].dwObjID >> (sizeof(format->dwCRC) * 8 - i * 2));
|
||||
+ format->dwCRC ^= (format->rgoAction[i].dwSemantic << (i * 2 + 5)) | (format->rgoAction[i].dwSemantic >> (sizeof(format->dwCRC) * 8 - (i * 2 + 5)));
|
||||
+ }
|
||||
+ return DI_OK;
|
||||
+ }
|
||||
|
||||
for (i=0; i < lpdiaf->dwNumActions; i++)
|
||||
for (i = 0; i < format->dwNumActions; i++)
|
||||
{
|
||||
- /* Don't touch a user configured action */
|
||||
- if (lpdiaf->rgoAction[i].dwHow == DIAH_USERCONFIG) continue;
|
||||
- if (format->rgoAction[i].dwHow == DIAH_USERCONFIG) continue;
|
||||
-
|
||||
if ((lpdiaf->rgoAction[i].dwSemantic & devMask) == devMask)
|
||||
genre = format->rgoAction[i].dwSemantic & DIGENRE_ANY;
|
||||
if (devMask == genre || (devMask == DIGENRE_ANY && genre != DIMOUSE_MASK && genre != DIKEYBOARD_MASK))
|
||||
{
|
||||
DWORD obj_id = semantic_to_obj_id(This, lpdiaf->rgoAction[i].dwSemantic);
|
||||
@@ -868,6 +902,14 @@ HRESULT _build_action_map(LPDIRECTINPUTDEVICE8W iface, LPDIACTIONFORMATW lpdiaf,
|
||||
@@ -1973,6 +2002,14 @@ static HRESULT WINAPI dinput_device_BuildActionMap( IDirectInputDevice8W *iface,
|
||||
}
|
||||
}
|
||||
|
||||
+ /* Update dwCRC to track if action format has changed */
|
||||
+ lpdiaf->dwCRC = 0;
|
||||
+ for (i=0; i < lpdiaf->dwNumActions; i++)
|
||||
+ format->dwCRC = 0;
|
||||
+ for (i=0; i < format->dwNumActions; i++)
|
||||
+ {
|
||||
+ lpdiaf->dwCRC ^= (lpdiaf->rgoAction[i].dwObjID << i * 2) | (lpdiaf->rgoAction[i].dwObjID >> (sizeof(lpdiaf->dwCRC) * 8 - i * 2));
|
||||
+ lpdiaf->dwCRC ^= (lpdiaf->rgoAction[i].dwSemantic << (i * 2 + 5)) | (lpdiaf->rgoAction[i].dwSemantic >> (sizeof(lpdiaf->dwCRC) * 8 - (i * 2 + 5)));
|
||||
+ format->dwCRC ^= (format->rgoAction[i].dwObjID << i * 2) | (format->rgoAction[i].dwObjID >> (sizeof(format->dwCRC) * 8 - i * 2));
|
||||
+ format->dwCRC ^= (format->rgoAction[i].dwSemantic << (i * 2 + 5)) | (format->rgoAction[i].dwSemantic >> (sizeof(format->dwCRC) * 8 - (i * 2 + 5)));
|
||||
+ }
|
||||
+
|
||||
if (!has_actions) return DI_NOEFFECT;
|
||||
|
||||
return IDirectInputDevice8WImpl_BuildActionMap(iface, lpdiaf, lpszUserName, dwFlags);
|
||||
@@ -883,6 +925,7 @@ HRESULT _set_action_map(LPDIRECTINPUTDEVICE8W iface, LPDIACTIONFORMATW lpdiaf, L
|
||||
if (flags & (DIDBAM_DEFAULT|DIDBAM_PRESERVE|DIDBAM_INITIALIZE|DIDBAM_HWDEFAULTS))
|
||||
FIXME( "Unimplemented flags %#lx\n", flags );
|
||||
@@ -1990,6 +2027,7 @@ static HRESULT WINAPI dinput_device_SetActionMap( IDirectInputDevice8W *iface, D
|
||||
DIPROPSTRING dps;
|
||||
WCHAR username[MAX_PATH];
|
||||
DWORD username_size = MAX_PATH;
|
||||
WCHAR username_buf[MAX_PATH];
|
||||
DWORD username_len = MAX_PATH;
|
||||
+ DWORD new_crc = 0;
|
||||
int i, action = 0, num_actions = 0;
|
||||
unsigned int offset = 0;
|
||||
ActionMap *action_map;
|
||||
@@ -894,12 +937,23 @@ HRESULT _set_action_map(LPDIRECTINPUTDEVICE8W iface, LPDIACTIONFORMATW lpdiaf, L
|
||||
const DIDATAFORMAT *df;
|
||||
@@ -2022,12 +2060,23 @@ static HRESULT WINAPI dinput_device_SetActionMap( IDirectInputDevice8W *iface, D
|
||||
data_format.dwFlags = DIDF_RELAXIS;
|
||||
data_format.dwDataSize = lpdiaf->dwDataSize;
|
||||
data_format.dwDataSize = format->dwDataSize;
|
||||
|
||||
+ /* Calculate checksum for actionformat */
|
||||
+ for (i=0; i < lpdiaf->dwNumActions; i++)
|
||||
+ for (i=0; i < format->dwNumActions; i++)
|
||||
+ {
|
||||
+ new_crc ^= (lpdiaf->rgoAction[i].dwObjID << i * 2) | (lpdiaf->rgoAction[i].dwObjID >> (sizeof(lpdiaf->dwCRC) * 8 - i * 2));
|
||||
+ new_crc ^= (lpdiaf->rgoAction[i].dwSemantic << (i * 2 + 5)) | (lpdiaf->rgoAction[i].dwSemantic >> (sizeof(lpdiaf->dwCRC) * 8 - (i * 2 + 5)));
|
||||
+ new_crc ^= (format->rgoAction[i].dwObjID << i * 2) | (format->rgoAction[i].dwObjID >> (sizeof(format->dwCRC) * 8 - i * 2));
|
||||
+ new_crc ^= (format->rgoAction[i].dwSemantic << (i * 2 + 5)) | (format->rgoAction[i].dwSemantic >> (sizeof(format->dwCRC) * 8 - (i * 2 + 5)));
|
||||
+ }
|
||||
+
|
||||
/* Count the actions */
|
||||
for (i=0; i < lpdiaf->dwNumActions; i++)
|
||||
if (IsEqualGUID(&This->guid, &lpdiaf->rgoAction[i].guidInstance))
|
||||
for (i = 0; i < format->dwNumActions; i++)
|
||||
if (IsEqualGUID( &impl->guid, &format->rgoAction[i].guidInstance ))
|
||||
num_actions++;
|
||||
|
||||
- if (num_actions == 0) return DI_NOEFFECT;
|
||||
+ /* Should return DI_NOEFFECT if we dont have any actions and actionformat has not changed */
|
||||
+ if (num_actions == 0 && lpdiaf->dwCRC == new_crc && !(dwFlags & DIDSAM_FORCESAVE)) return DI_NOEFFECT;
|
||||
+ if (num_actions == 0 && format->dwCRC == new_crc && !(flags & DIDSAM_FORCESAVE)) return DI_NOEFFECT;
|
||||
+
|
||||
+ /* update dwCRC to track if action format has changed */
|
||||
+ lpdiaf->dwCRC = new_crc;
|
||||
+ format->dwCRC = new_crc;
|
||||
|
||||
/* Construct the dataformat and actionmap */
|
||||
obj_df = HeapAlloc(GetProcessHeap(), 0, sizeof(DIOBJECTDATAFORMAT)*num_actions);
|
||||
diff --git a/dlls/dinput/joystick.c b/dlls/dinput/joystick.c
|
||||
index 0cddfbc634b..93211ea13a6 100644
|
||||
--- a/dlls/dinput/joystick.c
|
||||
+++ b/dlls/dinput/joystick.c
|
||||
@@ -749,7 +749,7 @@ HRESULT WINAPI JoystickWGenericImpl_BuildActionMap(LPDIRECTINPUTDEVICE8W iface,
|
||||
else
|
||||
lstrcpynW(username, lpszUserName, size);
|
||||
|
||||
- load_success = load_mapping_settings((IDirectInputDeviceImpl *) This, lpdiaf, username);
|
||||
+ load_success = load_mapping_settings(&This->base, lpdiaf, username);
|
||||
heap_free(username);
|
||||
}
|
||||
|
||||
diff --git a/dlls/dinput8/tests/device.c b/dlls/dinput8/tests/device.c
|
||||
index 17deed193dd..3bfb34eb2ca 100644
|
||||
--- a/dlls/dinput8/tests/device.c
|
||||
+++ b/dlls/dinput8/tests/device.c
|
||||
@@ -38,6 +38,8 @@ struct enum_data {
|
||||
obj_df = malloc( sizeof(DIOBJECTDATAFORMAT) * num_actions );
|
||||
diff --git a/dlls/dinput/tests/device8.c b/dlls/dinput/tests/device8.c
|
||||
index 2586736cb1d..e2be36ad7d3 100644
|
||||
--- a/dlls/dinput/tests/device8.c
|
||||
+++ b/dlls/dinput/tests/device8.c
|
||||
@@ -48,6 +48,8 @@ struct enum_data {
|
||||
/* Dummy GUID */
|
||||
static const GUID ACTION_MAPPING_GUID = { 0x1, 0x2, 0x3, { 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb } };
|
||||
|
||||
@@ -217,9 +191,9 @@ index 17deed193dd..3bfb34eb2ca 100644
|
||||
enum {
|
||||
DITEST_AXIS,
|
||||
DITEST_BUTTON,
|
||||
@@ -429,6 +431,17 @@ static void test_action_mapping(void)
|
||||
@@ -472,6 +474,17 @@ static void test_action_mapping(void)
|
||||
hr = IDirectInputDevice8_SetActionMap(data.keyboard, data.lpdiaf, NULL, 0);
|
||||
ok (hr == DI_NOEFFECT, "SetActionMap should have no effect with no actions to map hr=%08x\n", hr);
|
||||
ok (hr == DI_NOEFFECT, "SetActionMap should have no effect with no actions to map hr=%#lx\n", hr);
|
||||
|
||||
+ /* Test that after changing actionformat SetActionMap has effect and that second
|
||||
+ * SetActionMap call with same empty actionformat has no effect */
|
||||
@@ -235,8 +209,8 @@ index 17deed193dd..3bfb34eb2ca 100644
|
||||
af.dwDataSize = 4 * ARRAY_SIZE(actionMapping);
|
||||
af.dwNumActions = ARRAY_SIZE(actionMapping);
|
||||
|
||||
@@ -620,6 +633,43 @@ static void test_save_settings(void)
|
||||
"Mapped incorrectly expected: 0x%08x got: 0x%08x\n", other_results[1], af.rgoAction[1].dwObjID);
|
||||
@@ -663,6 +676,43 @@ static void test_save_settings(void)
|
||||
"Mapped incorrectly expected: 0x%#lx got: 0x%#lx\n", other_results[1], af.rgoAction[1].dwObjID);
|
||||
ok (IsEqualGUID(&GUID_SysKeyboard, &af.rgoAction[1].guidInstance), "Action should be mapped to keyboard\n");
|
||||
|
||||
+ /* Save and load empty mapping */
|
||||
@@ -280,5 +254,5 @@ index 17deed193dd..3bfb34eb2ca 100644
|
||||
IDirectInput_Release(pDI);
|
||||
}
|
||||
--
|
||||
2.30.2
|
||||
2.34.1
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user