Compare commits

...

76 Commits

Author SHA1 Message Date
Alistair Leslie-Hughes
2f3062bc92 Release v9.0-rc4 2024-01-06 17:02:21 +11:00
Alistair Leslie-Hughes
ddfaf18da9 Rebase against d56fc6d318d96bb80495f015e271d485ac41b9d7. 2024-01-06 10:00:35 +11:00
Alistair Leslie-Hughes
40c8ba4a5b Updated vkd3d-latest patchset 2024-01-05 11:03:51 +11:00
Alistair Leslie-Hughes
836fa152e2 Updated vkd3d-latest patchset 2024-01-04 12:27:58 +11:00
Alistair Leslie-Hughes
92b36477fa Updated vkd3d-latest patchset 2024-01-03 19:11:38 +11:00
Alistair Leslie-Hughes
75f626ecc8 Release v9.0-rc3 2023-12-23 15:16:12 +11:00
Alistair Leslie-Hughes
2600edffb6 Release v9.0-rc2 2023-12-16 18:59:51 +11:00
Alistair Leslie-Hughes
a0ba29447f Updated vkd3d-latest patchset 2023-12-16 18:59:12 +11:00
Alistair Leslie-Hughes
5c20f9daef Rebase against 7a8c039a5c34fe0c625b3684b4c7026a21dd290e. 2023-12-16 09:53:42 +11:00
Alistair Leslie-Hughes
e7da8d2e49 Updated vkd3d-latest patchset 2023-12-14 10:29:38 +11:00
Alistair Leslie-Hughes
6a68d558cd Rebase against 19ad5bd598d603617341cbb2beec90bd69fa6349. 2023-12-14 10:05:14 +11:00
Alistair Leslie-Hughes
06d1eb5825 Updated vkd3d-latest patchset 2023-12-13 18:30:39 +11:00
Alistair Leslie-Hughes
8984896a4d Added programs-where patchset 2023-12-13 18:29:14 +11:00
Alistair Leslie-Hughes
713c9cba97 Added setupapi-DriverStoreFindDriverPackageW patchset 2023-12-13 18:28:24 +11:00
Alistair Leslie-Hughes
2c4143bc13 Release v9.0-rc1 2023-12-09 13:54:24 +11:00
Alistair Leslie-Hughes
74a39ff539 Updated vkd3d-latest patchset
Fixed header path for list/rbtree/.h
2023-12-08 14:19:28 +11:00
Alistair Leslie-Hughes
0d3b1342bb Updated vkd3d-latest patchset 2023-12-08 13:32:00 +11:00
Alistair Leslie-Hughes
10db6d3f1f Rebase against f0c08bd01e6d3b01bfc28961bb5922b94ecbb7bc. 2023-12-07 14:54:04 +11:00
Alistair Leslie-Hughes
a59492214b Rebase against 30c074963acd05a3a31676085653460eea86bc78. 2023-12-06 10:12:36 +11:00
Paul Gofman
c55ec69939 ntdll-ForceBottomUpAlloc: fix a crash in debug.c:init_options().
After upstream commit 62a979347a4dc1bd68f79b86397de85c016ec588
any TRACE() present on the way of virtual_init() will cause
a crash with WINEDEBUG present regardless of actual debug channels.
Avoid TRACE in virtual_init().
2023-12-03 15:53:53 -06:00
Paul Gofman
33d3ba124f ntdll-Syscall_Emulation: Fix compilation. 2023-12-03 13:42:02 -06:00
Paul Gofman
3f29e4a76e ntdll-ForceBottomUpAlloc: Rebase and reenable. 2023-12-03 13:30:37 -06:00
Zebediah Figura
63aff53684 Rebase against 369b540abf32869df8e9b28e283d795ae92b6a05. 2023-12-01 17:23:49 -06:00
Zebediah Figura
e9a9a6e87f mfplat-streaming-support: Remove patch 0043.
This has no real effect. It was probably written because it looks more correct, but it never actually matters: we only get a short read at EOF, and in that case we will break out at the next iteration anyway.
2023-12-01 17:14:16 -06:00
Zebediah Figura
66c86503bd Rebase against 1e4db62e0ba0b8595748c94b032dfb0064207de1. 2023-11-30 17:52:18 -06:00
Zebediah Figura
6702ce8bcc ntdll-DOS_Attributes: Remove patch 0008.
This was done by 824547805559ee4993b8113436161638f3cd7990.
2023-11-29 23:42:01 -06:00
Zebediah Figura
ebab7bc29e ntdll-DOS_Attributes: Remove patch 0007.
This is refactoring, and as it happens was effectively done by a8b6966a91453f5c6147dc2c74a337d016bbd53a.
2023-11-29 23:39:23 -06:00
Zebediah Figura
ecb88d82a3 d3d12core-D3D12GetInterface: Remove patch set.
No real application has yet been found that requires this.
2023-11-29 23:32:43 -06:00
Zebediah Figura
a0ada8ef9f Fix rebase. 2023-11-29 20:00:02 -06:00
Zebediah Figura
614cfc4589 Rebase against fcddf19498fca9b51baea705f5748b998f4560b9. 2023-11-29 18:35:48 -06:00
Alistair Leslie-Hughes
97a1486fb9 Rebase against bc13bda5ee4edaafa7ba9472d41acbad50c42112. 2023-11-29 14:48:04 +11:00
Alistair Leslie-Hughes
301f1b35fc Updated vkd3d-latest patchset 2023-11-28 12:32:57 +11:00
Alistair Leslie-Hughes
0054ae2116 Rebase against 6343dc6c9571fce20cd00102c5b0bd5c96861cfd. 2023-11-28 11:46:56 +11:00
Alistair Leslie-Hughes
e546e2f1e3 Release v8.21 2023-11-25 15:29:41 +11:00
Alistair Leslie-Hughes
234289ffd8 Rebase against 13c43cf3d06178dc39d98981f55d27e3cbd79ad0. 2023-11-25 13:08:00 +11:00
Alistair Leslie-Hughes
52219e1eef Rebase against e04c976fa95776300ee5b485a6b65c0071d3bb84.
Sync to latest code - macos issue
2023-11-24 20:06:01 +11:00
Alistair Leslie-Hughes
d5bf5c5e7d Updatred vkd3d-latest patchset
Fix for macos build.  Squished update into one.
2023-11-24 19:40:14 +11:00
Alistair Leslie-Hughes
d1eba8eddd Updated vkd3d-latest patchset 2023-11-24 19:14:11 +11:00
Alistair Leslie-Hughes
8717caf994 Rebase against 9b9f7a007786b32a4c80f69ceb6753acdc8c2091. 2023-11-23 09:53:41 +11:00
Alistair Leslie-Hughes
6278681370 Rebase against c64aa0006e4a33d755a57a693cd81dc1ed95fa9d. 2023-11-17 11:20:22 +11:00
Alistair Leslie-Hughes
a101f89071 Rebase against b0ad8b8cfb6e664cc6cfdd87ddb28af077149417. 2023-11-16 11:07:12 +11:00
Alistair Leslie-Hughes
e278be7a45 Rebase against 137638e185e9302602bcd9cc796d7bcfa03caee5. 2023-11-15 15:40:46 +11:00
Alistair Leslie-Hughes
f32f8c62ac Release v8.20 2023-11-11 22:04:12 +11:00
Alistair Leslie-Hughes
284d054923 Updated vkd3d-latest patchset 2023-11-11 09:57:14 +11:00
Alistair Leslie-Hughes
88c8c3688e Rebase against 3a8d71041c159d76a76856867caa1de8ca297151. 2023-11-11 09:42:35 +11:00
Alistair Leslie-Hughes
e26a92bace Updated vkd3d-latest patchset 2023-11-07 16:14:23 +11:00
Zebediah Figura
0c217b7048 Rebase against b1bd72343e49f68e42b4493055b1f5de9796d335. 2023-11-06 17:23:28 -06:00
Zebediah Figura
c02c8b8c25 patchinstall.py: Force applying with --whitespace=warn. 2023-11-04 12:08:26 -05:00
Alistair Leslie-Hughes
9150a8751e Rebase against cb4939eb0ebfe24d6a818e3de060363a58ef9535. 2023-11-04 14:20:40 +11:00
Alistair Leslie-Hughes
aeddc191a7 Rebase against a3209daea543104fbfac5900bf9ec0c05a0a43fc. 2023-11-02 14:01:32 +11:00
Alistair Leslie-Hughes
753c2c9012 Rebase against 0170cd3a4c67bd99291234dd8e0d638a824d7715. 2023-11-01 12:11:07 +11:00
Alistair Leslie-Hughes
28a14dc978 Rebase against 28210162472459d2afe57e638e2f50ee37f2b63f. 2023-10-31 10:54:56 +11:00
Alistair Leslie-Hughes
c6e61e267a Release v8.19 2023-10-30 08:49:23 +11:00
Alistair Leslie-Hughes
519fde9b1a Updated vkd3d-latest patchset 2023-10-30 07:33:57 +11:00
Alistair Leslie-Hughes
e9a4c9a06f Updated fltmgr.sys-FltBuildDefaultSecurityDescriptor patchset 2023-10-30 07:33:57 +11:00
Alistair Leslie-Hughes
28180a60fd Rebase against 6391b8d5c99c206689c6e55a675b51086d8be821. 2023-10-19 09:21:42 +11:00
Alistair Leslie-Hughes
9486ca2543 Rebase against 0c7a09cb1f92d55d8381ff6460e13ed085d434db. 2023-10-18 08:56:48 +11:00
Alistair Leslie-Hughes
7d2672183d Rebase against de66ea9df6746917cada71d2c27b5cc38cbdd2f0. 2023-10-17 10:12:05 +11:00
Alistair Leslie-Hughes
3dcd383186 Remove Whitespace noise 2023-10-16 11:21:36 +11:00
Alistair Leslie-Hughes
a562590978 Release v8.18 2023-10-15 08:09:19 +11:00
Alistair Leslie-Hughes
428a6cdcd0 Rebase against 9d78031de6261f29d42e18db04f9925cfba24108. 2023-10-14 09:49:00 +11:00
Alistair Leslie-Hughes
9497ddf2fe Updated vkd3d-latest patchset 2023-10-13 10:12:25 +11:00
Alistair Leslie-Hughes
5967c68f85 Rebase against d177709b10ce07ddd234b0e8e00764ae4b1d8488. 2023-10-13 10:12:24 +11:00
Alistair Leslie-Hughes
5d9b555b72 Rebase against 8943fcbca4963ac6740a5c6e13d5fc9b7748cad2. 2023-10-11 19:13:43 +11:00
Alistair Leslie-Hughes
f8231c23e7 Rebase against eb06f991725d21e1ce4e3353a377e8708ae8471f. 2023-10-10 18:41:08 +11:00
Alistair Leslie-Hughes
72534ddaea Rebase against 41ab207c71cfaa82ef95c83b291654aba023a45c. 2023-10-06 08:38:46 +11:00
Alistair Leslie-Hughes
f75a04e4aa Rebase against 3f4f116dc52c2d37b98e62c3d9bdd8a79e44ccc1. 2023-10-06 06:59:15 +11:00
Alistair Leslie-Hughes
7ab0b0f5f5 Updated odbc-remove-unixodbc patchset 2023-10-06 06:59:15 +11:00
Paul Gofman
953c54145c Updated msxml3-FreeThreadedXMLHTTP60 patchset. 2023-10-05 13:53:15 -06:00
Alistair Leslie-Hughes
a777ae6b81 Rebase against d5b64a1f14b472563c95a02d0062ba592c64e06a. 2023-10-04 07:49:18 +11:00
Alistair Leslie-Hughes
a01941da19 Rebase against 209b2c23c5e302ed9211d67ab044386d3fe0bef4. 2023-10-03 09:48:06 +11:00
Alistair Leslie-Hughes
2827fd6727 Release v8.17.1 2023-10-02 13:02:27 +11:00
Alistair Leslie-Hughes
c55fa81f35 Updated sapi-ISpObjectToken-CreateInstance patchset 2023-10-01 09:43:09 +11:00
Alistair Leslie-Hughes
46ac00b4a4 Updated ntdll-Junction_Points patchset 2023-10-01 09:36:47 +11:00
Alistair Leslie-Hughes
3aed8374fa Updated d3d12core-D3D12GetInterface patchset 2023-10-01 09:33:09 +11:00
Alistair Leslie-Hughes
8b016d206e Updated eventfd_synchronization patchset 2023-10-01 08:49:40 +11:00
130 changed files with 7589 additions and 11225 deletions

View File

@@ -1,4 +1,4 @@
From 3dd0480317fe0ed3951daf1cf5757204d11a1ae5 Mon Sep 17 00:00:00 2001
From bd5dfbb4768404c53ad623a2c0b3c3b9d635b562 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Tue, 22 Mar 2016 21:55:12 +0100
Subject: [PATCH] d3d9: Avoid implicit cast of interface pointer.
@@ -8,10 +8,10 @@ Subject: [PATCH] d3d9: Avoid implicit cast of interface pointer.
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/dlls/d3d9/texture.c b/dlls/d3d9/texture.c
index d3662f8..ebc3413 100644
index 4de7d2eb99e..9a4ab3601e3 100644
--- a/dlls/d3d9/texture.c
+++ b/dlls/d3d9/texture.c
@@ -25,17 +25,17 @@ WINE_DEFAULT_DEBUG_CHANNEL(d3d9);
@@ -77,17 +77,17 @@ static void d3d9_texture_preload(struct d3d9_texture *texture)
static inline struct d3d9_texture *impl_from_IDirect3DTexture9(IDirect3DTexture9 *iface)
{
@@ -31,7 +31,7 @@ index d3662f8..ebc3413 100644
+ return CONTAINING_RECORD((IDirect3DBaseTexture9 *)iface, struct d3d9_texture, IDirect3DBaseTexture9_iface);
}
static void STDMETHODCALLTYPE srv_wined3d_object_destroyed(void *parent)
/* wined3d critical section must be taken by the caller. */
--
1.9.1
2.42.0

View File

@@ -1,38 +1,17 @@
From 81a36b530261731d6020e09770237ae5bf58166d Mon Sep 17 00:00:00 2001
From ebe00ceb4f2d24f2611dbec87486d6597a3466a9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Fri, 2 May 2014 20:46:19 +0200
Subject: [PATCH] user32: Decrease minimum SetTimer interval to 5 ms. (try 2)
---
dlls/user32/tests/msg.c | 2 ++
dlls/win32u/message.c | 2 +-
2 files changed, 3 insertions(+), 1 deletion(-)
dlls/win32u/message.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/user32/tests/msg.c b/dlls/user32/tests/msg.c
index 4519da6962d..304a3b87f46 100644
--- a/dlls/user32/tests/msg.c
+++ b/dlls/user32/tests/msg.c
@@ -10709,6 +10709,7 @@ static void test_timers(void)
start = GetTickCount();
while (GetTickCount()-start < 1001 && GetMessageA(&msg, info.hWnd, 0, 0))
DispatchMessageA(&msg);
+todo_wine
ok(abs(count-TIMER_COUNT_EXPECTED) < TIMER_COUNT_TOLERANCE /* xp */
|| broken(abs(count-64) <= TIMER_COUNT_TOLERANCE) /* most common */
|| broken(abs(count-43) <= TIMER_COUNT_TOLERANCE) /* w2k3, win8 */,
@@ -10779,6 +10780,7 @@ static void test_timers_no_wnd(void)
start = GetTickCount();
while (GetTickCount()-start < 1001 && GetMessageA(&msg, NULL, 0, 0))
DispatchMessageA(&msg);
+todo_wine
ok(abs(count-TIMER_COUNT_EXPECTED) < TIMER_COUNT_TOLERANCE /* xp */
|| broken(abs(count-64) <= TIMER_COUNT_TOLERANCE) /* most common */
|| broken(abs(count-43) <= TIMER_COUNT_TOLERANCE) /* w1064v1809 */,
diff --git a/dlls/win32u/message.c b/dlls/win32u/message.c
index d00178e6aa4..513150a3d61 100644
index d2909339983..337d4a2cc1d 100644
--- a/dlls/win32u/message.c
+++ b/dlls/win32u/message.c
@@ -170,7 +170,7 @@ UINT_PTR WINAPI NtUserSetSystemTimer( HWND hwnd, UINT_PTR id, UINT timeout, TIME
@@ -3975,7 +3975,7 @@ UINT_PTR WINAPI NtUserSetTimer( HWND hwnd, UINT_PTR id, UINT timeout, TIMERPROC
if (proc) winproc = alloc_winproc( (WNDPROC)proc, TRUE );
@@ -42,5 +21,5 @@ index d00178e6aa4..513150a3d61 100644
SERVER_START_REQ( set_win_timer )
{
--
2.35.1
2.42.0

View File

@@ -1,4 +1,4 @@
From 36b4dbb687232d783cc3203da1dee4a797606ba7 Mon Sep 17 00:00:00 2001
From e6354103c243e13c177f6a534a9e786cfdcf7c92 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,10 +9,10 @@ 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 255d5afef79..00add6728cc 100644
index 1a87f4d1f5e..31c0a3bae94 100644
--- a/dlls/ntdll/loader.c
+++ b/dlls/ntdll/loader.c
@@ -44,6 +44,7 @@ WINE_DECLARE_DEBUG_CHANNEL(relay);
@@ -42,6 +42,7 @@ WINE_DECLARE_DEBUG_CHANNEL(relay);
WINE_DECLARE_DEBUG_CHANNEL(snoop);
WINE_DECLARE_DEBUG_CHANNEL(loaddll);
WINE_DECLARE_DEBUG_CHANNEL(imports);
@@ -20,7 +20,7 @@ index 255d5afef79..00add6728cc 100644
#ifdef _WIN64
#define DEFAULT_SECURITY_COOKIE_64 (((ULONGLONG)0x00002b99 << 32) | 0x2ddfa232)
@@ -3536,6 +3537,7 @@ void WINAPI LdrShutdownProcess(void)
@@ -3749,6 +3750,7 @@ void WINAPI LdrShutdownProcess(void)
process_detach();
}
@@ -28,9 +28,9 @@ index 255d5afef79..00add6728cc 100644
/******************************************************************
* RtlExitUserProcess (NTDLL.@)
@@ -3955,6 +3957,9 @@ static void release_address_space(void)
@@ -4195,6 +4197,9 @@ static void release_address_space(void)
*/
void WINAPI LdrInitializeThunk( CONTEXT *context, ULONG_PTR unknown2, ULONG_PTR unknown3, ULONG_PTR unknown4 )
void loader_init( CONTEXT *context, void **entry )
{
+ OBJECT_ATTRIBUTES staging_event_attr;
+ UNICODE_STRING staging_event_string;
@@ -38,7 +38,7 @@ index 255d5afef79..00add6728cc 100644
static int attach_done;
NTSTATUS status;
ULONG_PTR cookie;
@@ -4041,6 +4046,16 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, ULONG_PTR unknown2, ULONG_PTR
@@ -4274,6 +4279,16 @@ void loader_init( CONTEXT *context, void **entry )
if (NtCurrentTeb()->WowTebOffset) init_wow64( context );
#endif
@@ -56,5 +56,5 @@ index 255d5afef79..00add6728cc 100644
InsertHeadList( &tls_links, &NtCurrentTeb()->TlsLinks );
RtlReleasePebLock();
--
2.33.0
2.42.0

View File

@@ -1,312 +0,0 @@
From 1768ecfc4a7181600df254069f02655fe4e5fa0b Mon Sep 17 00:00:00 2001
From: Derek Lesho <dlesho@codeweavers.com>
Date: Fri, 2 Oct 2020 11:29:24 -0500
Subject: [PATCH] bcrypt: Allow multiple backends to coexist.
Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
---
dlls/bcrypt/Makefile.in | 3 +-
dlls/bcrypt/bcrypt_internal.h | 3 +
dlls/bcrypt/gnutls.c | 32 ++++--
dlls/bcrypt/unixlib.c | 208 ++++++++++++++++++++++++++++++++++
4 files changed, 235 insertions(+), 11 deletions(-)
create mode 100644 dlls/bcrypt/unixlib.c
diff --git a/dlls/bcrypt/Makefile.in b/dlls/bcrypt/Makefile.in
index 63a731fa9d9..6dd3066d4a5 100644
--- a/dlls/bcrypt/Makefile.in
+++ b/dlls/bcrypt/Makefile.in
@@ -8,6 +8,7 @@ C_SRCS = \
gnutls.c \
md2.c \
sha256.c \
- sha512.c
+ sha512.c \
+ unixlib.c
RC_SRCS = version.rc
diff --git a/dlls/bcrypt/bcrypt_internal.h b/dlls/bcrypt/bcrypt_internal.h
index 61c367cae9d..d0697ed807e 100644
--- a/dlls/bcrypt/bcrypt_internal.h
+++ b/dlls/bcrypt/bcrypt_internal.h
@@ -219,4 +219,7 @@ struct key_funcs
NTSTATUS (CDECL *key_import_rsa)( struct key *, UCHAR *, ULONG );
};
+struct key_funcs *gnutls_lib_init(DWORD reason);
+struct key_funcs *macos_lib_init(DWORD reason);
+
#endif /* __BCRYPT_INTERNAL_H */
diff --git a/dlls/bcrypt/gnutls.c b/dlls/bcrypt/gnutls.c
index 7b1bceda889..66845ffc8cf 100644
--- a/dlls/bcrypt/gnutls.c
+++ b/dlls/bcrypt/gnutls.c
@@ -373,9 +373,12 @@ fail:
static void gnutls_uninitialize(void)
{
- pgnutls_global_deinit();
- dlclose( libgnutls_handle );
- libgnutls_handle = NULL;
+ if (libgnutls_handle)
+ {
+ pgnutls_global_deinit();
+ dlclose( libgnutls_handle );
+ libgnutls_handle = NULL;
+ }
}
struct buffer
@@ -1894,19 +1897,28 @@ static const struct key_funcs key_funcs =
key_import_rsa
};
-NTSTATUS CDECL __wine_init_unix_lib( HMODULE module, DWORD reason, const void *ptr_in, void *ptr_out )
+struct key_funcs * gnutls_lib_init( DWORD reason )
{
switch (reason)
{
case DLL_PROCESS_ATTACH:
- if (!gnutls_initialize()) return STATUS_DLL_NOT_FOUND;
- *(const struct key_funcs **)ptr_out = &key_funcs;
- break;
+ if (!gnutls_initialize()) return NULL;
+ return &key_funcs;
case DLL_PROCESS_DETACH:
if (libgnutls_handle) gnutls_uninitialize();
- break;
}
- return STATUS_SUCCESS;
+ return NULL;
}
-#endif /* HAVE_GNUTLS_CIPHER_INIT */
+#else /* HAVE_GNUTLS_CIPHER_INIT */
+#include "ntstatus.h"
+#define WIN32_NO_STATUS
+#include "windef.h"
+#include "winbase.h"
+#include "winternl.h"
+
+struct key_funcs * gnutls_lib_init( DWORD reason )
+{
+ return NULL;
+}
+#endif
diff --git a/dlls/bcrypt/unixlib.c b/dlls/bcrypt/unixlib.c
new file mode 100644
index 00000000000..1937a8172a4
--- /dev/null
+++ b/dlls/bcrypt/unixlib.c
@@ -0,0 +1,208 @@
+#if 0
+#pragma makedep unix
+#endif
+
+#include "config.h"
+#include "wine/port.h"
+
+#include <stdarg.h>
+
+#include "ntstatus.h"
+#define WIN32_NO_STATUS
+#include "windef.h"
+#include "winbase.h"
+#include "ntsecapi.h"
+#include "bcrypt.h"
+
+#include "bcrypt_internal.h"
+
+#include "wine/debug.h"
+#include "wine/unicode.h"
+
+#if defined(HAVE_COMMONCRYPTO_COMMONCRYPTOR_H) && MAC_OS_X_VERSION_MAX_ALLOWED >= 1080 || defined(HAVE_GNUTLS_CIPHER_INIT)
+WINE_DEFAULT_DEBUG_CHANNEL(bcrypt);
+
+static NTSTATUS CDECL key_set_property( struct key *key, const WCHAR *prop, UCHAR *value, ULONG size, ULONG flags )
+{
+ FIXME( "not implemented\n" );
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+static NTSTATUS CDECL key_symmetric_init( struct key *key )
+{
+ FIXME( "not implemented\n" );
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+static void CDECL key_symmetric_vector_reset( struct key *key )
+{
+ FIXME( "not implemented\n" );
+}
+
+static NTSTATUS CDECL key_symmetric_set_auth_data( struct key *key, UCHAR *auth_data, ULONG len )
+{
+ FIXME( "not implemented\n" );
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+static NTSTATUS CDECL key_symmetric_encrypt( struct key *key, const UCHAR *input, ULONG input_len, UCHAR *output, ULONG output_len )
+{
+ FIXME( "not implemented\n" );
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+static NTSTATUS CDECL key_symmetric_decrypt( struct key *key, const UCHAR *input, ULONG input_len, UCHAR *output, ULONG output_len )
+{
+ FIXME( "not implemented\n" );
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+static NTSTATUS CDECL key_symmetric_get_tag( struct key *key, UCHAR *tag, ULONG len )
+{
+ FIXME( "not implemented\n" );
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+static void CDECL key_symmetric_destroy( struct key *key )
+{
+ FIXME( "not implemented\n" );
+}
+
+static NTSTATUS CDECL key_asymmetric_init( struct key *key )
+{
+ FIXME( "not implemented\n" );
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+static NTSTATUS CDECL key_asymmetric_sign( struct key *key, void *padding, UCHAR *input, ULONG input_len, UCHAR *output,
+ ULONG output_len, ULONG *ret_len, ULONG flags )
+{
+ FIXME( "not implemented\n" );
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+static NTSTATUS CDECL key_asymmetric_verify( struct key *key, void *padding, UCHAR *hash, ULONG hash_len,
+ UCHAR *signature, ULONG signature_len, DWORD flags )
+{
+ FIXME( "not implemented\n" );
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+static NTSTATUS CDECL key_export_dsa_capi( struct key *key, UCHAR *buf, ULONG len, ULONG *ret_len )
+{
+ FIXME( "not implemented\n" );
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+static NTSTATUS CDECL key_export_ecc( struct key *key, UCHAR *output, ULONG len, ULONG *ret_len )
+{
+ FIXME( "not implemented\n" );
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+static NTSTATUS CDECL key_import_dsa_capi( struct key *key, UCHAR *buf, ULONG len )
+{
+ FIXME( "not implemented\n" );
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+static NTSTATUS CDECL key_import_ecc( struct key *key, UCHAR *input, ULONG len )
+{
+ FIXME( "not implemented\n" );
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+static NTSTATUS CDECL key_asymmetric_generate( struct key *key )
+{
+ FIXME( "not implemented\n" );
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+static NTSTATUS CDECL key_asymmetric_duplicate( struct key *key_orig, struct key *key_copy )
+{
+ FIXME( "not implemented\n" );
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+static void CDECL key_asymmetric_destroy( struct key *key )
+{
+ FIXME( "not implemented\n" );
+}
+
+static NTSTATUS CDECL key_asymmetric_decrypt( struct key *key, UCHAR *input, ULONG input_len,
+ UCHAR *output, ULONG output_len, ULONG *ret)
+{
+ FIXME( "not implemented\n" );
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+static NTSTATUS CDECL key_import_rsa( struct key *key, UCHAR *input, ULONG input_len )
+{
+ FIXME( "not implemented\n" );
+ return STATUS_NOT_IMPLEMENTED;
+}
+
+static struct key_funcs key_funcs =
+{
+ key_set_property,
+ key_symmetric_init,
+ key_symmetric_vector_reset,
+ key_symmetric_set_auth_data,
+ key_symmetric_encrypt,
+ key_symmetric_decrypt,
+ key_symmetric_get_tag,
+ key_symmetric_destroy,
+ key_asymmetric_init,
+ key_asymmetric_generate,
+ key_asymmetric_decrypt,
+ key_asymmetric_duplicate,
+ key_asymmetric_sign,
+ key_asymmetric_verify,
+ key_asymmetric_destroy,
+ key_export_dsa_capi,
+ key_export_ecc,
+ key_import_dsa_capi,
+ key_import_ecc,
+ key_import_rsa,
+};
+
+NTSTATUS CDECL __wine_init_unix_lib( HMODULE module, DWORD reason, const void *ptr_in, void *ptr_out )
+{
+ struct key_funcs *gnutls_funcs = gnutls_lib_init(reason);
+
+ if (reason == DLL_PROCESS_ATTACH)
+ {
+#define RESOLVE_FUNC(name) \
+ if (gnutls_funcs && gnutls_funcs->key_##name) \
+ key_funcs.key_##name = gnutls_funcs->key_##name;
+
+ RESOLVE_FUNC(set_property)
+ RESOLVE_FUNC(symmetric_init)
+ RESOLVE_FUNC(symmetric_vector_reset)
+ RESOLVE_FUNC(symmetric_set_auth_data)
+ RESOLVE_FUNC(symmetric_encrypt)
+ RESOLVE_FUNC(symmetric_decrypt)
+ RESOLVE_FUNC(symmetric_get_tag)
+ RESOLVE_FUNC(symmetric_destroy)
+ RESOLVE_FUNC(asymmetric_init)
+ RESOLVE_FUNC(asymmetric_generate)
+ RESOLVE_FUNC(asymmetric_decrypt)
+ RESOLVE_FUNC(asymmetric_duplicate)
+ RESOLVE_FUNC(asymmetric_sign)
+ RESOLVE_FUNC(asymmetric_verify)
+ RESOLVE_FUNC(asymmetric_destroy)
+ RESOLVE_FUNC(export_dsa_capi)
+ RESOLVE_FUNC(export_ecc)
+ RESOLVE_FUNC(import_dsa_capi)
+ RESOLVE_FUNC(import_ecc)
+ RESOLVE_FUNC(import_rsa)
+
+#undef RESOLVE_FUNC
+
+ *(struct key_funcs **)ptr_out = &key_funcs;
+ }
+
+ return STATUS_SUCCESS;
+}
+
+#endif
--
2.33.0

View File

@@ -1,155 +0,0 @@
From 305131e59c071ca84e4447ab053b04bf4023fee8 Mon Sep 17 00:00:00 2001
From: Derek Lesho <dlesho@codeweavers.com>
Date: Tue, 7 Jan 2020 14:22:49 -0600
Subject: [PATCH] bcrypt: Implement BCRYPT_KDF_HASH.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47699
Signed-off-by: Derek Lesho <dlesho at codeweavers.com>
---
dlls/bcrypt/bcrypt_main.c | 108 ++++++++++++++++++++++++++++++++++++-
dlls/bcrypt/tests/bcrypt.c | 3 +-
2 files changed, 108 insertions(+), 3 deletions(-)
diff --git a/dlls/bcrypt/bcrypt_main.c b/dlls/bcrypt/bcrypt_main.c
index 0655c5dcfe81..70e914bd41f1 100644
--- a/dlls/bcrypt/bcrypt_main.c
+++ b/dlls/bcrypt/bcrypt_main.c
@@ -1993,7 +1993,113 @@ NTSTATUS WINAPI BCryptDeriveKey(BCRYPT_SECRET_HANDLE handle, LPCWSTR kdf, BCrypt
if (!secret || secret->hdr.magic != MAGIC_SECRET) return STATUS_INVALID_HANDLE;
if (!kdf) return STATUS_INVALID_PARAMETER;
- if (!(lstrcmpW( kdf, BCRYPT_KDF_RAW_SECRET )))
+ if (flags) FIXME("flags ignored: %08x\n", flags);
+
+ if (!(lstrcmpW( kdf, BCRYPT_KDF_HASH )))
+ {
+ unsigned int i;
+ BCryptBuffer *hash_algorithm = NULL;
+ BCryptBuffer *secret_prepend = NULL;
+ BCryptBuffer *secret_append = NULL;
+ enum alg_id hash_alg_id;
+ ULONG hash_length;
+ struct hash_impl hash;
+ NTSTATUS status;
+
+ if (parameter)
+ {
+ for (i = 0; i < parameter->cBuffers; i++)
+ {
+ BCryptBuffer *cur_buffer = &parameter->pBuffers[i];
+ switch(cur_buffer->BufferType)
+ {
+ case KDF_HASH_ALGORITHM:
+ if (hash_algorithm)
+ FIXME("Duplicate KDF_HASH_ALGORITHM, untested\n");
+ hash_algorithm = cur_buffer;
+ break;
+ case KDF_SECRET_PREPEND:
+ if (secret_prepend)
+ FIXME("Multiple prefixes unsupported\n");
+ secret_prepend = cur_buffer;
+ break;
+ case KDF_SECRET_APPEND:
+ if (secret_append)
+ FIXME("Multiple suffixes unsupported\n");
+ secret_append = cur_buffer;
+ break;
+ default:
+ FIXME("Unsupported BCRYPT_KDF_HASH parameter type %x\n", cur_buffer->BufferType);
+ break;
+ }
+ }
+ }
+
+ if (!(hash_algorithm))
+ hash_alg_id = ALG_ID_SHA1;
+ else
+ {
+ for (i = 0; i < ARRAY_SIZE( builtin_algorithms ); i++)
+ {
+ if (!lstrcmpW( hash_algorithm->pvBuffer, builtin_algorithms[i].name))
+ {
+ hash_alg_id = i;
+ break;
+ }
+ }
+ if (i == ARRAY_SIZE(builtin_algorithms))
+ {
+ WARN("Algorithm %s not found\n", debugstr_w(hash_algorithm->pvBuffer));
+ return STATUS_NOT_SUPPORTED;
+ }
+ if (builtin_algorithms[hash_alg_id].class != BCRYPT_HASH_INTERFACE)
+ {
+ return STATUS_NOT_SUPPORTED;
+ }
+ }
+
+ hash_length = builtin_algorithms[hash_alg_id].hash_length;
+
+ if (!derived)
+ {
+ *result = hash_length;
+ return STATUS_SUCCESS;
+ }
+
+ if ((status = hash_init(&hash, hash_alg_id)))
+ {
+ return status;
+ }
+
+ if (secret_prepend)
+ {
+ hash_update(&hash, hash_alg_id, secret_prepend->pvBuffer, secret_prepend->cbBuffer);
+ }
+
+ hash_update(&hash, hash_alg_id, secret->data, secret->len);
+
+ if (secret_append)
+ {
+ hash_update(&hash, hash_alg_id, secret_append->pvBuffer, secret_append->cbBuffer);
+ }
+
+ if (derived_size >= hash_length)
+ {
+ hash_finish(&hash, hash_alg_id, derived, derived_size);
+ *result = hash_length;
+ }
+ else
+ {
+ UCHAR *output = heap_alloc(hash_length);
+ hash_finish(&hash, hash_alg_id, output, hash_length);
+ memcpy(derived, output, derived_size);
+ heap_free(output);
+ *result = derived_size;
+ }
+
+ return STATUS_SUCCESS;
+ }
+ else if (!(lstrcmpW( kdf, BCRYPT_KDF_RAW_SECRET )))
{
ULONG n;
ULONG secret_length = secret->len;
diff --git a/dlls/bcrypt/tests/bcrypt.c b/dlls/bcrypt/tests/bcrypt.c
index 6be406dee21f..b13432523d15 100644
--- a/dlls/bcrypt/tests/bcrypt.c
+++ b/dlls/bcrypt/tests/bcrypt.c
@@ -2180,7 +2180,7 @@ static void test_ECDH(void)
raw_secret_end:
status = pBCryptDeriveKey(secret, BCRYPT_KDF_HASH, &hash_params, NULL, 0, &size, 0);
- todo_wine ok (status == STATUS_SUCCESS, "got %08x\n", status);
+ ok (status == STATUS_SUCCESS, "got %08x\n", status);
if (status != STATUS_SUCCESS)
{
@@ -2716,7 +2716,6 @@ static void test_SecretAgreement(void)
ok(status == STATUS_INVALID_PARAMETER, "got %08x\n", status);
status = pBCryptDeriveKey(secret, L"HASH", NULL, NULL, 0, &size, 0);
- todo_wine
ok(status == STATUS_SUCCESS, "got %08x\n", status);
status = pBCryptDestroyHash(secret);
--
2.29.2

View File

@@ -1,6 +0,0 @@
Fixes: [47699] Multiple games fail to connect to online services (missing BCryptSecretAgreement / BCryptDeriveKey implementation)
# Needs to be moved to the unix lib, but that's a nontrivial amount of work, and
# using gcrypt is the wrong way forward (we should expose the missing APIs from
# gnutls instead).
# Temporarily disabled pending a rebase from author.
Disabled: true

View File

@@ -1,69 +0,0 @@
From b30d3de1043cef20b57984035968fc78d5fcd2bb Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Sat, 22 Jul 2023 10:22:03 +1000
Subject: [PATCH] d3d12core: Add D3D12GetInterface stub
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55135
---
dlls/d3d12core/Makefile.in | 3 +++
dlls/d3d12core/d3d12core.spec | 2 +-
dlls/d3d12core/d3d12core_main.c | 30 ++++++++++++++++++++++++++++++
3 files changed, 34 insertions(+), 1 deletion(-)
create mode 100644 dlls/d3d12core/d3d12core_main.c
diff --git a/dlls/d3d12core/Makefile.in b/dlls/d3d12core/Makefile.in
index 8778b66138b..94d8fd4da00 100644
--- a/dlls/d3d12core/Makefile.in
+++ b/dlls/d3d12core/Makefile.in
@@ -1 +1,4 @@
MODULE = d3d12core.dll
+
+C_SRCS = \
+ d3d12core_main.c
diff --git a/dlls/d3d12core/d3d12core.spec b/dlls/d3d12core/d3d12core.spec
index c9c73bd4ee4..3f3e0a0f2e1 100644
--- a/dlls/d3d12core/d3d12core.spec
+++ b/dlls/d3d12core/d3d12core.spec
@@ -1,2 +1,2 @@
-@ stub D3D12GetInterface
+@ stdcall D3D12GetInterface(ptr ptr ptr)
@ stub D3D12SDKVersion
diff --git a/dlls/d3d12core/d3d12core_main.c b/dlls/d3d12core/d3d12core_main.c
new file mode 100644
index 00000000000..75a083ad276
--- /dev/null
+++ b/dlls/d3d12core/d3d12core_main.c
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2023 Alistair Leslie-Hughes
+ *
+ * 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 <stdarg.h>
+
+#include "wine/debug.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(d3d12core);
+
+HRESULT WINAPI D3D12GetInterface(REFCLSID rclsid, REFIID riid, void **out)
+{
+ FIXME("%d, %s, %p\n", debugstr_guid(rclsid), debugstr_guid(riid), out);
+
+ return E_NOINTERFACE;
+}
--
2.40.1

View File

@@ -1 +0,0 @@
Fixes: [55135] d3d12core: Add D3D12GetInterface stub

View File

@@ -1,169 +0,0 @@
From c79c2913f06f0fe703f00ca324270e0551ca7027 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Thu, 28 Sep 2023 12:35:29 +1000
Subject: [PATCH] d3dx9: D3DXLoadMeshHierarchyFromXInMemory support empty mesh.
---
dlls/d3dx9_36/mesh.c | 36 ++++++++++++++++++++++++-----
dlls/d3dx9_36/tests/mesh.c | 46 ++++++++++++++++++++++++++++++++++++++
2 files changed, 77 insertions(+), 5 deletions(-)
diff --git a/dlls/d3dx9_36/mesh.c b/dlls/d3dx9_36/mesh.c
index 442b56a7e19..c85a9774fdd 100644
--- a/dlls/d3dx9_36/mesh.c
+++ b/dlls/d3dx9_36/mesh.c
@@ -3506,6 +3506,16 @@ HRESULT WINAPI D3DXLoadSkinMeshFromXof(struct ID3DXFileData *filedata, DWORD opt
hr = parse_mesh(filedata, &mesh_data, provide_flags);
if (FAILED(hr)) goto cleanup;
+ if (mesh_data.num_vertices == 0)
+ {
+ if (adjacency_out) *adjacency_out = NULL;
+ if (materials_out) *materials_out = NULL;
+ if (effects_out) *effects_out = NULL;
+ *mesh_out = NULL;
+ hr = D3D_OK;
+ goto cleanup;
+ }
+
total_vertices = mesh_data.num_vertices;
if (mesh_data.fvf & D3DFVF_NORMAL) {
/* duplicate vertices with multiple normals */
@@ -3815,7 +3825,8 @@ static HRESULT load_mesh_container(struct ID3DXFileData *filedata, DWORD options
hr = filedata_get_name(filedata, &name);
if (FAILED(hr)) goto cleanup;
- hr = alloc_hier->lpVtbl->CreateMeshContainer(alloc_hier, name, &mesh_data,
+ if (mesh_data.pMesh)
+ hr = alloc_hier->lpVtbl->CreateMeshContainer(alloc_hier, name, &mesh_data,
materials ? ID3DXBuffer_GetBufferPointer(materials) : NULL,
effects ? ID3DXBuffer_GetBufferPointer(effects) : NULL,
num_materials,
@@ -4201,13 +4212,21 @@ static HRESULT parse_frame(struct ID3DXFileData *filedata, DWORD options, struct
hr = E_OUTOFMEMORY;
goto err;
}
- list_add_tail(container_list, &container->entry);
- container->transform = transform;
hr = D3DXLoadSkinMeshFromXof(child, options, device,
(provide_flags & PROVIDE_ADJACENCY) ? &container->adjacency : NULL,
(provide_flags & PROVIDE_MATERIALS) ? &container->materials : NULL,
NULL, &container->num_materials, NULL, &container->mesh);
+
+ if (container->mesh)
+ {
+ list_add_tail(container_list, &container->entry);
+ container->transform = transform;
+ }
+ else
+ {
+ HeapFree(GetProcessHeap(), HEAP_ZERO_MEMORY, container);
+ }
} else if (IsEqualGUID(&type, &TID_D3DRMFrameTransformMatrix)) {
D3DXMATRIX new_transform;
hr = parse_transform_matrix(child, &new_transform);
@@ -4295,13 +4314,20 @@ HRESULT WINAPI D3DXLoadMeshFromXInMemory(const void *memory, DWORD memory_size,
hr = E_OUTOFMEMORY;
goto cleanup;
}
- list_add_tail(&container_list, &container_ptr->entry);
- D3DXMatrixIdentity(&container_ptr->transform);
hr = D3DXLoadSkinMeshFromXof(filedata, options, device,
(provide_flags & PROVIDE_ADJACENCY) ? &container_ptr->adjacency : NULL,
(provide_flags & PROVIDE_MATERIALS) ? &container_ptr->materials : NULL,
NULL, &container_ptr->num_materials, NULL, &container_ptr->mesh);
+ if (container_ptr->mesh)
+ {
+ list_add_tail(&container_list, &container_ptr->entry);
+ D3DXMatrixIdentity(&container_ptr->transform);
+ }
+ else
+ {
+ HeapFree(GetProcessHeap(), 0, container_ptr);
+ }
} else if (IsEqualGUID(&guid, &TID_D3DRMFrame)) {
hr = parse_frame(filedata, options, device, &identity, &container_list, provide_flags);
}
diff --git a/dlls/d3dx9_36/tests/mesh.c b/dlls/d3dx9_36/tests/mesh.c
index ce0f238412d..21428f12e26 100644
--- a/dlls/d3dx9_36/tests/mesh.c
+++ b/dlls/d3dx9_36/tests/mesh.c
@@ -2068,6 +2068,14 @@ static void D3DXLoadMeshTest(void)
"}"
"Mesh { 3; 0.0; 0.0; 0.0;, 0.0; 1.0; 0.0;, 3.0; 1.0; 0.0;; 1; 3; 0, 1, 2;; }"
"}";
+ static const char framed_xfile2[] =
+ "xof 0303txt 0032"
+ "Frame Box01 {"
+ "Mesh { 0;; 0;;"
+ "MeshNormals { 0;; 0;; }"
+ "}"
+ "}";
+
static const WORD framed_index_buffer[] = { 0, 1, 2 };
static const D3DXVECTOR3 framed_vertex_buffers[3][3] = {
{{0.0, 0.0, 0.0}, {0.0, 1.0, 0.0}, {1.0, 1.0, 0.0}},
@@ -2513,6 +2521,19 @@ static void D3DXLoadMeshTest(void)
frame_hier = NULL;
}
+ hr = D3DXLoadMeshHierarchyFromXInMemory(framed_xfile2, sizeof(framed_xfile2) - 1,
+ D3DXMESH_MANAGED, device, &alloc_hier, NULL, &frame_hier, NULL);
+ ok(hr == D3D_OK, "Expected D3D_OK, got %#lx\n", hr);
+ if (SUCCEEDED(hr)) {
+ D3DXMESHCONTAINER *container = frame_hier->pMeshContainer;
+
+ ok(!strcmp(frame_hier->Name, "Box01"), "Expected '', got '%s'\n", frame_hier->Name);
+ ok(container == NULL, "Expected NULL, got %p\n", container);
+
+ hr = D3DXFrameDestroy(frame_hier, &alloc_hier);
+ ok(hr == D3D_OK, "Expected D3D_OK, got %#lx\n", hr);
+ frame_hier = NULL;
+ }
hr = D3DXLoadMeshFromXInMemory(NULL, 0, D3DXMESH_MANAGED,
device, NULL, NULL, NULL, NULL, &mesh);
@@ -11426,6 +11447,9 @@ static void test_load_skin_mesh_from_xof(void)
"1;"
"3; 0, 1, 2;;"
"}";
+ static const char simple_xfile_empty[] =
+ "xof 0303txt 0032"
+ "Mesh { 0;; 0;; }";
static const D3DVERTEXELEMENT9 expected_declaration[] =
{
{0, 0, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 0},
@@ -11537,6 +11561,28 @@ static void test_load_skin_mesh_from_xof(void)
mesh->lpVtbl->Release(mesh);
adjacency->lpVtbl->Release(adjacency);
file_data->lpVtbl->Release(file_data);
+
+ /* Empty Mesh Test */
+ file_data = get_mesh_data(simple_xfile_empty, sizeof(simple_xfile_empty) - 1);
+ ok(!!file_data, "Failed to load mesh data.\n");
+
+ adjacency = materials = effects = (void *)0xdeadbeef;
+ count = ~0u;
+ skin_info = (void *)0xdeadbeef;
+ mesh = (void *)0xdeadbeef;
+
+ hr = D3DXLoadSkinMeshFromXof(file_data, 0, device, &adjacency, &materials, &effects, &count,
+ &skin_info, &mesh);
+ todo_wine ok(hr == D3DXERR_LOADEDMESHASNODATA, "Got unexpected hr %#lx.\n", hr);
+ ok(!adjacency, "Got unexpected value %p.\n", adjacency);
+ ok(!materials, "Got unexpected value %p.\n", materials);
+ ok(!effects, "Got unexpected value %p.\n", effects);
+ ok(count == ~0u, "Got unexpected value %lu.\n", count);
+ ok(skin_info == (void *)0xdeadbeef, "Got unexpected value %p.\n", skin_info);
+ ok(!mesh, "Got unexpected value %p.\n", mesh);
+
+ file_data->lpVtbl->Release(file_data);
+
refcount = IDirect3DDevice9_Release(device);
ok(!refcount, "Device has %lu references left.\n", refcount);
DestroyWindow(hwnd);
--
2.42.0

View File

@@ -1,4 +1,4 @@
From e9f5c886b6b40ca77eb1dd7f0d21bbdc483b7a95 Mon Sep 17 00:00:00 2001
From 9d274e6d152c3f3961212f3cbd71dc8f14641367 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 74647820126..9f0aad2fc4f 100644
index 152ef80611a..06ebb65e2af 100644
--- a/dlls/dbghelp/Makefile.in
+++ b/dlls/dbghelp/Makefile.in
@@ -2,7 +2,7 @@ MODULE = dbghelp.dll
@@ -18,11 +18,11 @@ index 74647820126..9f0aad2fc4f 100644
EXTRAINCL = $(ZLIB_PE_CFLAGS)
-EXTRADEFS = -D_IMAGEHLP_SOURCE_
+EXTRADEFS = -D_IMAGEHLP_SOURCE_ -DBINDIR="L\"${bindir}\""
DELAYIMPORTS = version
C_SRCS = \
SOURCES = \
coff.c \
diff --git a/dlls/dbghelp/elf_module.c b/dlls/dbghelp/elf_module.c
index a2a60752a68..a2bca11048f 100644
index 5ada8c70c9b..a9a6303c8d7 100644
--- a/dlls/dbghelp/elf_module.c
+++ b/dlls/dbghelp/elf_module.c
@@ -1457,6 +1457,7 @@ static BOOL elf_search_and_load_file(struct process* pcs, const WCHAR* filename,
@@ -34,5 +34,5 @@ index a2a60752a68..a2bca11048f 100644
}
--
2.40.1
2.42.0

View File

@@ -70,7 +70,7 @@ index 80556e96787..b3b63d7b361 100644
}
+ if (This->pick_record_size > 0)
+ heap_free(This->pick_records);
+ free(This->pick_records);
+
TRACE("Releasing render target %p.\n", This->rt_iface);
rt_iface = This->rt_iface;
@@ -353,7 +353,7 @@ index 13e639eda3f..bb050fe16b8 100644
+ {
+ if (device->pick_record_size == 0) device->pick_record_size = 1;
+ device->pick_record_size *= 2;
+ device->pick_records = heap_realloc(device->pick_records,
+ device->pick_records = realloc(device->pick_records,
+ sizeof(*device->pick_records) * device->pick_record_size);
+ }
+

View File

@@ -1,155 +0,0 @@
From aa953a66080d49a697101fb55a1bd950de4a59db Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Fri, 2 Dec 2022 14:41:30 +1100
Subject: [PATCH] dmime: Implement IDirectMusicSegment8 Download
---
dlls/dmime/dmime_private.h | 2 +
dlls/dmime/performance.c | 7 ++++
dlls/dmime/segment.c | 84 +++++++++++++++++++++++++++++++++++++-
3 files changed, 92 insertions(+), 1 deletion(-)
diff --git a/dlls/dmime/dmime_private.h b/dlls/dmime/dmime_private.h
index eacde4b46be..cd34378b66e 100644
--- a/dlls/dmime/dmime_private.h
+++ b/dlls/dmime/dmime_private.h
@@ -70,6 +70,8 @@ extern void set_audiopath_perf_pointer(IDirectMusicAudioPath*,IDirectMusicPerfor
extern void set_audiopath_dsound_buffer(IDirectMusicAudioPath*,IDirectSoundBuffer*);
extern void set_audiopath_primary_dsound_buffer(IDirectMusicAudioPath*,IDirectSoundBuffer*);
+extern IDirectSound *get_dsound_interface(IDirectMusicPerformance8*);
+
/*****************************************************************************
* Auxiliary definitions
*/
diff --git a/dlls/dmime/performance.c b/dlls/dmime/performance.c
index 111d7c60568..8a418b8df13 100644
--- a/dlls/dmime/performance.c
+++ b/dlls/dmime/performance.c
@@ -251,6 +251,13 @@ static inline struct performance *impl_from_IDirectMusicPerformance8(IDirectMusi
return CONTAINING_RECORD(iface, struct performance, IDirectMusicPerformance8_iface);
}
+IDirectSound *get_dsound_interface(IDirectMusicPerformance8* iface)
+{
+ struct performance *This = impl_from_IDirectMusicPerformance8(iface);
+ return This->dsound;
+}
+
+
/* IDirectMusicPerformance8 IUnknown part: */
static HRESULT WINAPI performance_QueryInterface(IDirectMusicPerformance8 *iface, REFIID riid, void **ret_iface)
{
diff --git a/dlls/dmime/segment.c b/dlls/dmime/segment.c
index af7729f34b9..284564749df 100644
--- a/dlls/dmime/segment.c
+++ b/dlls/dmime/segment.c
@@ -54,6 +54,7 @@ struct segment
PCMWAVEFORMAT wave_format;
void *wave_data;
int data_size;
+ IDirectSoundBuffer *buffer;
};
static struct segment *segment_create(void);
@@ -114,6 +115,8 @@ static ULONG WINAPI segment_Release(IDirectMusicSegment8 *iface)
track_entry_destroy(entry);
}
+ if (This->buffer)
+ IDirectSoundBuffer_Release(This->buffer);
if (This->wave_data)
free(This->wave_data);
@@ -533,8 +536,87 @@ static HRESULT WINAPI segment_Compose(IDirectMusicSegment8 *iface, MUSIC_TIME mt
static HRESULT WINAPI segment_Download(IDirectMusicSegment8 *iface, IUnknown *audio_path)
{
struct segment *This = impl_from_IDirectMusicSegment8(iface);
+ IDirectMusicPerformance8 *perf;
+ IDirectMusicAudioPath *audio;
+ IDirectSound *dsound;
+ HRESULT hr;
+ DSBUFFERDESC dsbd = {.dwSize = sizeof(dsbd)};
+ void *data;
+ DWORD size;
+ DWORD buffer = 0;
+
TRACE("(%p, %p)\n", This, audio_path);
- return IDirectMusicSegment8_SetParam(iface, &GUID_DownloadToAudioPath, -1, DMUS_SEG_ALLTRACKS, 0, audio_path);
+
+ if (!audio_path)
+ return E_INVALIDARG;
+
+ hr = IDirectMusicSegment8_SetParam(iface, &GUID_DownloadToAudioPath, -1, DMUS_SEG_ALLTRACKS, 0, audio_path);
+ if (FAILED(hr))
+ return hr;
+
+ if (This->buffer)
+ {
+ TRACE("Using Cached buffer\n");
+ return S_OK;
+ }
+
+ /* pAudioPath can either be IDirectMusicAudioPath or IDirectMusicPerformance */
+ hr = IUnknown_QueryInterface(audio_path, &IID_IDirectMusicPerformance8, (void**)&perf);
+ if (FAILED(hr))
+ {
+ TRACE("Checking for IDirectMusicAudioPath interface\n");
+ hr = IUnknown_QueryInterface(audio_path, &IID_IDirectMusicAudioPath, (void**)&audio);
+ if (FAILED(hr))
+ {
+ WARN("Cannot query for IDirectMusicAudioPath\n");
+ return E_INVALIDARG;
+ }
+
+ IDirectMusicAudioPath_GetObjectInPath(audio, DMUS_PCHANNEL_ALL, DMUS_PATH_PERFORMANCE, buffer, &GUID_NULL,
+ 0, &IID_IDirectMusicPerformance, (void**)&perf);
+ IDirectMusicAudioPath_Release(audio);
+ }
+
+ if (!perf)
+ {
+ ERR("Failed to get IDirectMusicPerformance interface\n");
+ return E_INVALIDARG;
+ }
+
+ dsound = get_dsound_interface(perf);
+ if (!dsound)
+ {
+ ERR("Failed get_dsound_interface\n");
+ return E_INVALIDARG;
+ }
+
+ if (This->data_size == 0)
+ {
+ FIXME("No wave data skipping\n");
+ return S_OK;
+ }
+
+ dsbd.dwBufferBytes = This->data_size;
+ dsbd.lpwfxFormat = (WAVEFORMATEX*)&This->wave_format;
+
+ hr = IDirectSound_CreateSoundBuffer(dsound, &dsbd, &This->buffer, NULL);
+ if (FAILED(hr))
+ {
+ ERR("IDirectSound_CreateSoundBuffer failed 0x%08lx\n", hr);
+ return E_INVALIDARG;
+ }
+
+ TRACE("CreateSoundBuffer successful\n");
+
+ hr = IDirectSoundBuffer_Lock(This->buffer, 0, This->data_size, &data, &size, NULL, 0, 0);
+ TRACE("IDirectSoundBuffer_Lock hr 0x%08lx\n", hr);
+
+ memcpy(data, This->wave_data, This->data_size);
+
+ hr = IDirectSoundBuffer_Unlock(This->buffer, data, This->data_size, NULL, 0);
+ TRACE("IDirectSoundBuffer_Unlock hr 0x%08lx\n", hr);
+
+ return S_OK;
}
static HRESULT WINAPI segment_Unload(IDirectMusicSegment8 *iface, IUnknown *audio_path)
--
2.42.0

View File

@@ -1,80 +0,0 @@
From 5c84cc44881073aa756e4797a776acbde4d063ae Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Mon, 12 Dec 2022 15:20:10 +1100
Subject: [PATCH] dmime: Play a sound in IDirectMusicPerformance8 PlaySegmentEx
---
dlls/dmime/dmime_private.h | 1 +
dlls/dmime/performance.c | 25 +++++++++++++++++++------
dlls/dmime/segment.c | 6 ++++++
3 files changed, 26 insertions(+), 6 deletions(-)
diff --git a/dlls/dmime/dmime_private.h b/dlls/dmime/dmime_private.h
index cd34378b66e..c83f6675333 100644
--- a/dlls/dmime/dmime_private.h
+++ b/dlls/dmime/dmime_private.h
@@ -71,6 +71,7 @@ extern void set_audiopath_dsound_buffer(IDirectMusicAudioPath*,IDirectSoundBuffe
extern void set_audiopath_primary_dsound_buffer(IDirectMusicAudioPath*,IDirectSoundBuffer*);
extern IDirectSound *get_dsound_interface(IDirectMusicPerformance8*);
+extern IDirectSoundBuffer *get_segment_buffer(IDirectMusicSegment8 *iface);
/*****************************************************************************
* Auxiliary definitions
diff --git a/dlls/dmime/performance.c b/dlls/dmime/performance.c
index 8a418b8df13..a0dbdbd5aad 100644
--- a/dlls/dmime/performance.c
+++ b/dlls/dmime/performance.c
@@ -1075,13 +1075,26 @@ static HRESULT WINAPI performance_PlaySegmentEx(IDirectMusicPerformance8 *iface,
WCHAR *pwzSegmentName, IUnknown *pTransition, DWORD dwFlags, __int64 i64StartTime,
IDirectMusicSegmentState **ppSegmentState, IUnknown *pFrom, IUnknown *pAudioPath)
{
- struct performance *This = impl_from_IDirectMusicPerformance8(iface);
+ struct performance *This = impl_from_IDirectMusicPerformance8(iface);
+ IDirectMusicSegment8 *segment;
+ IDirectSoundBuffer *buffer;
+ HRESULT hr;
- FIXME("(%p, %p, %p, %p, %ld, 0x%s, %p, %p, %p): stub\n", This, pSource, pwzSegmentName,
- pTransition, dwFlags, wine_dbgstr_longlong(i64StartTime), ppSegmentState, pFrom, pAudioPath);
- if (ppSegmentState)
- return create_dmsegmentstate(&IID_IDirectMusicSegmentState,(void**)ppSegmentState);
- return S_OK;
+ FIXME("(%p, %p, %p, %p, %ld, 0x%s, %p, %p, %p): semi-stub\n", This, pSource, pwzSegmentName,
+ pTransition, dwFlags, wine_dbgstr_longlong(i64StartTime), ppSegmentState, pFrom, pAudioPath);
+
+ hr = IUnknown_QueryInterface(pSource, &IID_IDirectMusicSegment8, (void**)&segment);
+ if (FAILED(hr))
+ return hr;
+
+ buffer = get_segment_buffer(segment);
+
+ if (segment)
+ hr = IDirectSoundBuffer_Play(buffer, 0, 0, 0);
+
+ if (ppSegmentState)
+ return create_dmsegmentstate(&IID_IDirectMusicSegmentState,(void**)ppSegmentState);
+ return S_OK;
}
static HRESULT WINAPI performance_StopEx(IDirectMusicPerformance8 *iface, IUnknown *pObjectToStop,
diff --git a/dlls/dmime/segment.c b/dlls/dmime/segment.c
index 284564749df..af76258c979 100644
--- a/dlls/dmime/segment.c
+++ b/dlls/dmime/segment.c
@@ -64,6 +64,12 @@ static inline struct segment *impl_from_IDirectMusicSegment8(IDirectMusicSegment
return CONTAINING_RECORD(iface, struct segment, IDirectMusicSegment8_iface);
}
+IDirectSoundBuffer *get_segment_buffer(IDirectMusicSegment8 *iface)
+{
+ struct segment *This = impl_from_IDirectMusicSegment8(iface);
+ return This->buffer;
+}
+
static HRESULT WINAPI segment_QueryInterface(IDirectMusicSegment8 *iface, REFIID riid, void **ret_iface)
{
struct segment *This = impl_from_IDirectMusicSegment8(iface);
--
2.42.0

View File

@@ -1,13 +0,0 @@
Fixes: [48220] dmime: Handle basic loading of Wave files and playing them.
Fixes: [61322] dmine: No Sound in Black Rockman Shooter.
Fixes: [34751] dmime: Aura: Fate of the Ages: sounds aren't played, but music works fine
Fixes: [9027] dmime: No sound for rise of nations - all versions.
# Also
# - Cloning Clyde demo
# Doesnt fix
# The following are known not to work, at the moment.
# [31586] : Myst sounds (Voices)
# [30969] : Tron 2.0 Background music
# [32896] : Serious Sam: The Random Encounter

View File

@@ -1,4 +1,4 @@
From c3f44de2b3a1dbcc91b1ed1a864e6995ce1eb87b Mon Sep 17 00:00:00 2001
From d7a094dd68e005ed2271d9874ba3ee03c7dc12b2 Mon Sep 17 00:00:00 2001
From: Mark Harmstone <mark@harmstone.com>
Date: Sun, 22 Mar 2015 13:58:53 +0000
Subject: [PATCH] dsound: Add EAX propset stubs.
@@ -12,10 +12,10 @@ Subject: [PATCH] dsound: Add EAX propset stubs.
create mode 100644 dlls/dsound/eax.c
diff --git a/dlls/dsound/Makefile.in b/dlls/dsound/Makefile.in
index 6cb653fdfa0..1c04bf34162 100644
index 13cb6e8b615..ee097767ecd 100644
--- a/dlls/dsound/Makefile.in
+++ b/dlls/dsound/Makefile.in
@@ -9,6 +9,7 @@ C_SRCS = \
@@ -10,6 +10,7 @@ SOURCES = \
dsound_convert.c \
dsound_main.c \
duplex.c \
@@ -48,7 +48,7 @@ index 447b41bffbb..5c8c495bfe4 100644
}
diff --git a/dlls/dsound/dsound_private.h b/dlls/dsound/dsound_private.h
index b5546c7d9db..185b8efd014 100644
index 1113d07fa21..911d60dec61 100644
--- a/dlls/dsound/dsound_private.h
+++ b/dlls/dsound/dsound_private.h
@@ -230,6 +230,14 @@ LONG capped_refcount_dec(LONG *ref);
@@ -58,10 +58,10 @@ index b5546c7d9db..185b8efd014 100644
+/* eax.c */
+HRESULT WINAPI EAX_Get(IDirectSoundBufferImpl *buf, REFGUID guidPropSet,
+ ULONG dwPropID, void *pInstanceData, ULONG cbInstanceData, void *pPropData,
+ ULONG cbPropData, ULONG *pcbReturned) DECLSPEC_HIDDEN;
+ ULONG cbPropData, ULONG *pcbReturned);
+HRESULT WINAPI EAX_Set(IDirectSoundBufferImpl *buf, REFGUID guidPropSet,
+ ULONG dwPropID, void *pInstanceData, ULONG cbInstanceData, void *pPropData,
+ ULONG cbPropData) DECLSPEC_HIDDEN;
+ ULONG cbPropData);
+
/* mixer.c */
void DSOUND_CheckEvent(const IDirectSoundBufferImpl *dsb, DWORD playpos, int len);
@@ -127,5 +127,5 @@ index 00000000000..c1264f977b6
+ return E_PROP_ID_UNSUPPORTED;
+}
--
2.40.1
2.42.0

View File

@@ -1,4 +1,4 @@
From 3a08f97fcd9ffd224c917cc52298702b6feaea9e Mon Sep 17 00:00:00 2001
From 5401bf0e1d666f14efae1a81383502d3c6231e57 Mon Sep 17 00:00:00 2001
From: Mark Harmstone <mark@harmstone.com>
Date: Fri, 27 Mar 2015 20:58:37 +0000
Subject: [PATCH] dsound: Add EAX init and free stubs.
@@ -32,15 +32,15 @@ index ede6d9f1ba1..309d632397a 100644
free(This);
diff --git a/dlls/dsound/dsound_private.h b/dlls/dsound/dsound_private.h
index c2dcda9da67..12203876623 100644
index a89f635739c..e58a45cfb7d 100644
--- a/dlls/dsound/dsound_private.h
+++ b/dlls/dsound/dsound_private.h
@@ -241,6 +241,8 @@ HRESULT WINAPI EAX_Get(IDirectSoundBufferImpl *buf, REFGUID guidPropSet,
HRESULT WINAPI EAX_Set(IDirectSoundBufferImpl *buf, REFGUID guidPropSet,
ULONG dwPropID, void *pInstanceData, ULONG cbInstanceData, void *pPropData,
ULONG cbPropData) DECLSPEC_HIDDEN;
+void free_eax_buffer(IDirectSoundBufferImpl *dsb) DECLSPEC_HIDDEN;
+void init_eax_buffer(IDirectSoundBufferImpl *dsb) DECLSPEC_HIDDEN;
ULONG cbPropData);
+void free_eax_buffer(IDirectSoundBufferImpl *dsb);
+void init_eax_buffer(IDirectSoundBufferImpl *dsb);
/* mixer.c */
void DSOUND_CheckEvent(const IDirectSoundBufferImpl *dsb, DWORD playpos, int len);
@@ -97,5 +97,5 @@ index 03b6e0a9813..91438efc335 100644
HRESULT WINAPI EAX_Get(IDirectSoundBufferImpl *buf, REFGUID guidPropSet,
--
2.40.1
2.42.0

View File

@@ -1,4 +1,4 @@
From a0ff76bc868a22624a06989f675c5d574125aa5c Mon Sep 17 00:00:00 2001
From 035915e64ffbd674e38bb46c4ac10834bfc25961 Mon Sep 17 00:00:00 2001
From: Mark Harmstone <mark@harmstone.com>
Date: Fri, 27 Mar 2015 20:59:57 +0000
Subject: [PATCH] dsound: Feed data through EAX function.
@@ -10,14 +10,14 @@ Subject: [PATCH] dsound: Feed data through EAX function.
3 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/dlls/dsound/dsound_private.h b/dlls/dsound/dsound_private.h
index 12203876623..11cfa641d77 100644
index e58a45cfb7d..b9b608be7c0 100644
--- a/dlls/dsound/dsound_private.h
+++ b/dlls/dsound/dsound_private.h
@@ -243,6 +243,7 @@ HRESULT WINAPI EAX_Set(IDirectSoundBufferImpl *buf, REFGUID guidPropSet,
ULONG cbPropData) DECLSPEC_HIDDEN;
void free_eax_buffer(IDirectSoundBufferImpl *dsb) DECLSPEC_HIDDEN;
void init_eax_buffer(IDirectSoundBufferImpl *dsb) DECLSPEC_HIDDEN;
+void process_eax_buffer(IDirectSoundBufferImpl *dsb, float *buf, DWORD count) DECLSPEC_HIDDEN;
ULONG cbPropData);
void free_eax_buffer(IDirectSoundBufferImpl *dsb);
void init_eax_buffer(IDirectSoundBufferImpl *dsb);
+void process_eax_buffer(IDirectSoundBufferImpl *dsb, float *buf, DWORD count);
/* mixer.c */
void DSOUND_CheckEvent(const IDirectSoundBufferImpl *dsb, DWORD playpos, int len);
@@ -61,5 +61,5 @@ index f261588454a..33dcd8a953c 100644
ostride = dsb->device->pwfx->nChannels * sizeof(float);
for (i = 0; i < frames; i++) {
--
2.40.1
2.42.0

View File

@@ -1,4 +1,4 @@
From 673e9f32e39fce78a02f6519a435051ffec3664d Mon Sep 17 00:00:00 2001
From b6f55f023339b8a254680e833c9ed6e03ad2a106 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sat, 4 Apr 2015 21:09:18 +0200
Subject: [PATCH] dsound: Various improvements to EAX support.
@@ -24,10 +24,10 @@ the buffers).
5 files changed, 37 insertions(+), 39 deletions(-)
diff --git a/dlls/dsound/buffer.c b/dlls/dsound/buffer.c
index 72e96765883..bdb93657017 100644
index 309d632397a..aa7bbe13cc5 100644
--- a/dlls/dsound/buffer.c
+++ b/dlls/dsound/buffer.c
@@ -1223,7 +1223,7 @@ HRESULT IDirectSoundBufferImpl_Duplicate(
@@ -1216,7 +1216,7 @@ HRESULT IDirectSoundBufferImpl_Duplicate(
VOID *committedbuff;
TRACE("(%p,%p,%p)\n", device, ppdsb, pdsb);
@@ -36,7 +36,7 @@ index 72e96765883..bdb93657017 100644
if (dsb == NULL) {
WARN("out of memory\n");
*ppdsb = NULL;
@@ -1271,6 +1271,8 @@ HRESULT IDirectSoundBufferImpl_Duplicate(
@@ -1264,6 +1264,8 @@ HRESULT IDirectSoundBufferImpl_Duplicate(
InitializeSRWLock(&dsb->lock);
@@ -46,7 +46,7 @@ index 72e96765883..bdb93657017 100644
hres = DirectSoundDevice_AddBuffer(device, dsb);
if (hres != DS_OK) {
diff --git a/dlls/dsound/dsound.c b/dlls/dsound/dsound.c
index bdf3a824511..4df26e93c6e 100644
index 482dc5c109d..b382b51000e 100644
--- a/dlls/dsound/dsound.c
+++ b/dlls/dsound/dsound.c
@@ -182,6 +182,8 @@ static HRESULT DirectSoundDevice_Create(DirectSoundDevice ** ppDevice)
@@ -71,17 +71,17 @@ index a650108f570..a555a75e458 100644
float *SampleBuffer;
diff --git a/dlls/dsound/dsound_private.h b/dlls/dsound/dsound_private.h
index 9131fa8792e..f2b2c353643 100644
index b9b608be7c0..4afddbff72f 100644
--- a/dlls/dsound/dsound_private.h
+++ b/dlls/dsound/dsound_private.h
@@ -240,6 +240,7 @@ HRESULT WINAPI EAX_Get(IDirectSoundBufferImpl *buf, REFGUID guidPropSet,
@@ -241,6 +241,7 @@ HRESULT WINAPI EAX_Get(IDirectSoundBufferImpl *buf, REFGUID guidPropSet,
HRESULT WINAPI EAX_Set(IDirectSoundBufferImpl *buf, REFGUID guidPropSet,
ULONG dwPropID, void *pInstanceData, ULONG cbInstanceData, void *pPropData,
ULONG cbPropData) DECLSPEC_HIDDEN;
+void init_eax_device(DirectSoundDevice *dev) DECLSPEC_HIDDEN;
void free_eax_buffer(IDirectSoundBufferImpl *dsb) DECLSPEC_HIDDEN;
void init_eax_buffer(IDirectSoundBufferImpl *dsb) DECLSPEC_HIDDEN;
void process_eax_buffer(IDirectSoundBufferImpl *dsb, float *buf, DWORD count) DECLSPEC_HIDDEN;
ULONG cbPropData);
+void init_eax_device(DirectSoundDevice *dev);
void free_eax_buffer(IDirectSoundBufferImpl *dsb);
void init_eax_buffer(IDirectSoundBufferImpl *dsb);
void process_eax_buffer(IDirectSoundBufferImpl *dsb, float *buf, DWORD count);
diff --git a/dlls/dsound/eax.c b/dlls/dsound/eax.c
index 5f2b8ef07e2..2244565897b 100644
--- a/dlls/dsound/eax.c
@@ -244,5 +244,5 @@ index 5f2b8ef07e2..2244565897b 100644
switch (dwPropID) {
case DSPROPERTY_EAXBUFFER_ALL:
--
2.39.2
2.42.0

View File

@@ -1,4 +1,4 @@
From 375f83afce055fc37c5d453b0f922c604d9ad6f8 Mon Sep 17 00:00:00 2001
From 4e1d6e94b034635b603beb7d13eab6eaab7cb3c5 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sun, 5 Apr 2015 19:13:18 +0200
Subject: [PATCH] dsound: Allow disabling of EAX support in the registry.
@@ -7,9 +7,9 @@ Based on a patch by Mark Harmstone.
---
dlls/dsound/buffer.c | 16 ++++++----------
dlls/dsound/dsound_main.c | 8 ++++++++
dlls/dsound/dsound_private.h | 15 ++++++++-------
dlls/dsound/dsound_private.h | 3 ++-
dlls/dsound/eax.c | 28 ++++++++++++++++++++++++++++
4 files changed, 50 insertions(+), 17 deletions(-)
4 files changed, 44 insertions(+), 11 deletions(-)
diff --git a/dlls/dsound/buffer.c b/dlls/dsound/buffer.c
index aa7bbe13cc5..18a16535978 100644
@@ -46,10 +46,10 @@ index aa7bbe13cc5..18a16535978 100644
return E_PROP_ID_UNSUPPORTED;
diff --git a/dlls/dsound/dsound_main.c b/dlls/dsound/dsound_main.c
index 11983a4cb47..2c09f9c5b42 100644
index 96e5fe2487e..d785e905527 100644
--- a/dlls/dsound/dsound_main.c
+++ b/dlls/dsound/dsound_main.c
@@ -94,6 +94,10 @@ const WCHAR wine_vxd_drv[] = L"winemm.vxd";
@@ -84,6 +84,10 @@ const WCHAR wine_vxd_drv[] = L"winemm.vxd";
/* All default settings, you most likely don't want to touch these, see wiki on UsefulRegistryKeys */
int ds_hel_buflen = 32768 * 2;
int ds_hq_buffers_max = 4;
@@ -60,7 +60,7 @@ index 11983a4cb47..2c09f9c5b42 100644
/*
* Get a config key from either the app-specific or the default config
@@ -148,11 +152,15 @@ void setup_dsound_options(void)
@@ -138,11 +142,15 @@ void setup_dsound_options(void)
if (!get_config_key( hkey, appkey, "HQBuffersMax", buffer, MAX_PATH ))
ds_hq_buffers_max = atoi(buffer);
@@ -77,7 +77,7 @@ index 11983a4cb47..2c09f9c5b42 100644
static const char * get_device_id(LPCGUID pGuid)
diff --git a/dlls/dsound/dsound_private.h b/dlls/dsound/dsound_private.h
index 1c544ad2e96..43f9df866a3 100644
index 4afddbff72f..10c6617c38b 100644
--- a/dlls/dsound/dsound_private.h
+++ b/dlls/dsound/dsound_private.h
@@ -35,9 +35,9 @@
@@ -91,30 +91,14 @@ index 1c544ad2e96..43f9df866a3 100644
/*****************************************************************************
* Predeclare the interface implementation structures
@@ -235,16 +235,17 @@ LONG capped_refcount_dec(LONG *ref);
@@ -235,6 +235,7 @@ LONG capped_refcount_dec(LONG *ref);
HRESULT DSOUND_FullDuplexCreate(REFIID riid, void **ppv);
/* eax.c */
+BOOL WINAPI EAX_QuerySupport(REFGUID guidPropSet, ULONG dwPropID, ULONG *pTypeSupport);
HRESULT WINAPI EAX_Get(IDirectSoundBufferImpl *buf, REFGUID guidPropSet,
ULONG dwPropID, void *pInstanceData, ULONG cbInstanceData, void *pPropData,
- ULONG cbPropData, ULONG *pcbReturned) DECLSPEC_HIDDEN;
+ ULONG cbPropData, ULONG *pcbReturned);
HRESULT WINAPI EAX_Set(IDirectSoundBufferImpl *buf, REFGUID guidPropSet,
ULONG dwPropID, void *pInstanceData, ULONG cbInstanceData, void *pPropData,
- ULONG cbPropData) DECLSPEC_HIDDEN;
-void init_eax_device(DirectSoundDevice *dev) DECLSPEC_HIDDEN;
-void free_eax_buffer(IDirectSoundBufferImpl *dsb) DECLSPEC_HIDDEN;
-void init_eax_buffer(IDirectSoundBufferImpl *dsb) DECLSPEC_HIDDEN;
-void process_eax_buffer(IDirectSoundBufferImpl *dsb, float *buf, DWORD count) DECLSPEC_HIDDEN;
+ ULONG cbPropData);
+void init_eax_device(DirectSoundDevice *dev);
+void free_eax_buffer(IDirectSoundBufferImpl *dsb);
+void init_eax_buffer(IDirectSoundBufferImpl *dsb);
+void process_eax_buffer(IDirectSoundBufferImpl *dsb, float *buf, DWORD count);
/* mixer.c */
void DSOUND_CheckEvent(const IDirectSoundBufferImpl *dsb, DWORD playpos, int len);
ULONG cbPropData, ULONG *pcbReturned);
diff --git a/dlls/dsound/eax.c b/dlls/dsound/eax.c
index 2244565897b..3e15ac59480 100644
--- a/dlls/dsound/eax.c
@@ -169,5 +153,5 @@ index 2244565897b..3e15ac59480 100644
buf->device->eax.using_eax = TRUE;
--
2.40.1
2.42.0

Some files were not shown because too many files have changed in this diff Show More