From 44af049de77829b0f0ada1954c97586841cfb427 Mon Sep 17 00:00:00 2001 From: Zebediah Figura Date: Thu, 18 Mar 2021 00:32:41 -0500 Subject: [PATCH] Rebase against 2828d0820a1661e46f606f28db090d710cef11f4. --- ...port-for-progress-callback-in-CopyFi.patch | 62 +++++-- ...thread-id-alerts-on-top-of-Mach-sema.patch | 8 +- ...tore-TEB-to-x18-on-aarch-64-on-retur.patch | 10 +- patches/patchinstall.sh | 2 +- ...01-windows.gaming.input-Add-stub-dll.patch | 49 +----- ...nput-Implement-IGamepadStatics-stubs.patch | 160 +----------------- ...nput-Implement-IRawGameControllerSta.patch | 30 ++-- staging/upstream-commit | 2 +- 8 files changed, 76 insertions(+), 247 deletions(-) diff --git a/patches/kernel32-CopyFileEx/0001-kernel32-Add-support-for-progress-callback-in-CopyFi.patch b/patches/kernel32-CopyFileEx/0001-kernel32-Add-support-for-progress-callback-in-CopyFi.patch index 8fb8c9fa..09094503 100644 --- a/patches/kernel32-CopyFileEx/0001-kernel32-Add-support-for-progress-callback-in-CopyFi.patch +++ b/patches/kernel32-CopyFileEx/0001-kernel32-Add-support-for-progress-callback-in-CopyFi.patch @@ -1,18 +1,18 @@ -From 34b3bcb23bf0a4b81b1cddca90f8a248f478fee5 Mon Sep 17 00:00:00 2001 +From b2a5efcef525f887c7fe40ce3ed0a8a47c42d5fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Thu, 26 Feb 2015 06:41:26 +0100 Subject: [PATCH] kernelbase: Add support for progress callback in CopyFileEx. --- - dlls/kernel32/tests/file.c | 6 ---- - dlls/kernelbase/file.c | 65 ++++++++++++++++++++++++++++++++++++-- - 2 files changed, 63 insertions(+), 8 deletions(-) + dlls/kernel32/tests/file.c | 6 --- + dlls/kernelbase/file.c | 77 +++++++++++++++++++++++++++++++++++--- + 2 files changed, 71 insertions(+), 12 deletions(-) diff --git a/dlls/kernel32/tests/file.c b/dlls/kernel32/tests/file.c -index 2e26e2ace86..1cccb105448 100644 +index 6ea9dffde5c..b12d0477e04 100644 --- a/dlls/kernel32/tests/file.c +++ b/dlls/kernel32/tests/file.c -@@ -1173,23 +1173,17 @@ static void test_CopyFileEx(void) +@@ -1169,23 +1169,17 @@ static void test_CopyFileEx(void) ok(hfile != INVALID_HANDLE_VALUE, "failed to open destination file, error %d\n", GetLastError()); SetLastError(0xdeadbeef); retok = CopyFileExA(source, dest, copy_progress_cb, hfile, NULL, 0); @@ -37,10 +37,17 @@ index 2e26e2ace86..1cccb105448 100644 retok = CopyFileExA(source, NULL, copy_progress_cb, hfile, NULL, 0); diff --git a/dlls/kernelbase/file.c b/dlls/kernelbase/file.c -index 3b00321eb1a..ab95c8babf1 100644 +index 23a36b0a765..98cf7e58368 100644 --- a/dlls/kernelbase/file.c +++ b/dlls/kernelbase/file.c -@@ -503,6 +503,10 @@ BOOL WINAPI CopyFileExW( const WCHAR *source, const WCHAR *dest, LPPROGRESS_ROUT +@@ -499,11 +499,16 @@ BOOL WINAPI CopyFileExW( const WCHAR *source, const WCHAR *dest, LPPROGRESS_ROUT + { + static const int buffer_size = 65536; + HANDLE h1, h2; +- FILE_BASIC_INFORMATION info; ++ FILE_NETWORK_OPEN_INFORMATION info; ++ FILE_BASIC_INFORMATION basic_info; + IO_STATUS_BLOCK io; DWORD count; BOOL ret = FALSE; char *buffer; @@ -51,7 +58,7 @@ index 3b00321eb1a..ab95c8babf1 100644 if (!source || !dest) { -@@ -517,7 +521,15 @@ BOOL WINAPI CopyFileExW( const WCHAR *source, const WCHAR *dest, LPPROGRESS_ROUT +@@ -518,7 +523,15 @@ BOOL WINAPI CopyFileExW( const WCHAR *source, const WCHAR *dest, LPPROGRESS_ROUT TRACE("%s -> %s, %x\n", debugstr_w(source), debugstr_w(dest), flags); @@ -68,25 +75,33 @@ index 3b00321eb1a..ab95c8babf1 100644 NULL, OPEN_EXISTING, 0, 0 )) == INVALID_HANDLE_VALUE) { WARN("Unable to open source %s\n", debugstr_w(source)); -@@ -551,7 +563,11 @@ BOOL WINAPI CopyFileExW( const WCHAR *source, const WCHAR *dest, LPPROGRESS_ROUT +@@ -526,7 +539,7 @@ BOOL WINAPI CopyFileExW( const WCHAR *source, const WCHAR *dest, LPPROGRESS_ROUT + return FALSE; + } + +- if (!set_ntstatus( NtQueryInformationFile( h1, &io, &info, sizeof(info), FileBasicInformation ))) ++ if (!set_ntstatus( NtQueryInformationFile( h1, &io, &info, sizeof(info), FileNetworkOpenInformation ))) + { + WARN("GetFileInformationByHandle returned error for %s\n", debugstr_w(source)); + HeapFree( GetProcessHeap(), 0, buffer ); +@@ -552,7 +565,11 @@ BOOL WINAPI CopyFileExW( const WCHAR *source, const WCHAR *dest, LPPROGRESS_ROUT } } - if ((h2 = CreateFileW( dest, GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, + if ((h2 = CreateFileW( dest, GENERIC_WRITE | DELETE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, + (flags & COPY_FILE_FAIL_IF_EXISTS) ? CREATE_NEW : CREATE_ALWAYS, -+ info.dwFileAttributes, h1 )) == INVALID_HANDLE_VALUE && ++ info.FileAttributes, h1 )) == INVALID_HANDLE_VALUE && + /* retry without DELETE if we got a sharing violation */ + (h2 = CreateFileW( dest, GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, (flags & COPY_FILE_FAIL_IF_EXISTS) ? CREATE_NEW : CREATE_ALWAYS, - info.dwFileAttributes, h1 )) == INVALID_HANDLE_VALUE) + info.FileAttributes, h1 )) == INVALID_HANDLE_VALUE) { -@@ -561,6 +577,30 @@ BOOL WINAPI CopyFileExW( const WCHAR *source, const WCHAR *dest, LPPROGRESS_ROUT +@@ -562,6 +579,29 @@ BOOL WINAPI CopyFileExW( const WCHAR *source, const WCHAR *dest, LPPROGRESS_ROUT return FALSE; } -+ size.u.LowPart = info.nFileSizeLow; -+ size.u.HighPart = info.nFileSizeHigh; ++ size = info.EndOfFile; + transferred.QuadPart = 0; + + if (progress) @@ -112,7 +127,7 @@ index 3b00321eb1a..ab95c8babf1 100644 while (ReadFile( h1, buffer, buffer_size, &count, NULL ) && count) { char *p = buffer; -@@ -570,6 +610,27 @@ BOOL WINAPI CopyFileExW( const WCHAR *source, const WCHAR *dest, LPPROGRESS_ROUT +@@ -571,13 +611,38 @@ BOOL WINAPI CopyFileExW( const WCHAR *source, const WCHAR *dest, LPPROGRESS_ROUT if (!WriteFile( h2, p, count, &res, NULL ) || !res) goto done; p += res; count -= res; @@ -140,6 +155,19 @@ index 3b00321eb1a..ab95c8babf1 100644 } } ret = TRUE; + done: + /* Maintain the timestamp of source file to destination file */ +- info.FileAttributes = 0; +- NtSetInformationFile( h2, &io, &info, sizeof(info), FileBasicInformation ); ++ basic_info.CreationTime = info.CreationTime; ++ basic_info.LastAccessTime = info.LastAccessTime; ++ basic_info.LastWriteTime = info.LastWriteTime; ++ basic_info.ChangeTime = info.ChangeTime; ++ basic_info.FileAttributes = 0; ++ NtSetInformationFile( h2, &io, &basic_info, sizeof(basic_info), FileBasicInformation ); + HeapFree( GetProcessHeap(), 0, buffer ); + CloseHandle( h1 ); + CloseHandle( h2 ); -- -2.26.2 +2.30.2 diff --git a/patches/ntdll-NtAlertThreadByThreadId/0007-ntdll-Implement-thread-id-alerts-on-top-of-Mach-sema.patch b/patches/ntdll-NtAlertThreadByThreadId/0007-ntdll-Implement-thread-id-alerts-on-top-of-Mach-sema.patch index 0f492083..637c4fa6 100644 --- a/patches/ntdll-NtAlertThreadByThreadId/0007-ntdll-Implement-thread-id-alerts-on-top-of-Mach-sema.patch +++ b/patches/ntdll-NtAlertThreadByThreadId/0007-ntdll-Implement-thread-id-alerts-on-top-of-Mach-sema.patch @@ -1,4 +1,4 @@ -From 002d5f21931d383a28be7aefdcb0a5299e51afb8 Mon Sep 17 00:00:00 2001 +From 17e0fb2e0be8d53b485c96941faaa76d30d0c032 Mon Sep 17 00:00:00 2001 From: Zebediah Figura Date: Mon, 31 Aug 2020 23:03:34 -0500 Subject: [PATCH] ntdll: Implement thread-id alerts on top of Mach semaphores @@ -104,7 +104,7 @@ index 87f5a97131e..e97a9657f03 100644 pthread_attr_init( &pthread_attr ); pthread_attr_setstack( &pthread_attr, teb->DeallocationStack, diff --git a/dlls/ntdll/unix/unix_private.h b/dlls/ntdll/unix/unix_private.h -index f7aec55e355..4b4b90f4944 100644 +index 2da19c6844f..3c4d5dd8a2b 100644 --- a/dlls/ntdll/unix/unix_private.h +++ b/dlls/ntdll/unix/unix_private.h @@ -27,6 +27,11 @@ @@ -118,8 +118,8 @@ index f7aec55e355..4b4b90f4944 100644 + #ifdef __i386__ static const enum cpu_type client_cpu = CPU_x86; - #elif defined(__x86_64__) -@@ -58,10 +63,14 @@ struct ntdll_thread_data + static const WORD current_machine = IMAGE_FILE_MACHINE_I386; +@@ -62,10 +67,14 @@ struct ntdll_thread_data struct list entry; /* entry in TEB list */ PRTL_THREAD_START_ROUTINE start; /* thread entry point */ void *param; /* thread entry point parameter */ diff --git a/patches/ntdll-aarch-TEB/0002-ntdll-Always-restore-TEB-to-x18-on-aarch-64-on-retur.patch b/patches/ntdll-aarch-TEB/0002-ntdll-Always-restore-TEB-to-x18-on-aarch-64-on-retur.patch index 78206b21..35cb91ff 100644 --- a/patches/ntdll-aarch-TEB/0002-ntdll-Always-restore-TEB-to-x18-on-aarch-64-on-retur.patch +++ b/patches/ntdll-aarch-TEB/0002-ntdll-Always-restore-TEB-to-x18-on-aarch-64-on-retur.patch @@ -1,4 +1,4 @@ -From 3a0372bf303cbbfbb94f23455758b6020f038241 Mon Sep 17 00:00:00 2001 +From 53921ff97159fcd4a060568df463886192d41420 Mon Sep 17 00:00:00 2001 From: Martin Storsjo Date: Wed, 16 Aug 2017 23:48:40 +0300 Subject: [PATCH] ntdll: Always restore TEB to x18 on aarch 64 on return from @@ -20,12 +20,12 @@ Signed-off-by: Martin Storsjo 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c -index f54e25fcc5c..87ffc74062b 100644 +index 092c47eac3b..05e36598cdb 100644 --- a/dlls/ntdll/loader.c +++ b/dlls/ntdll/loader.c -@@ -2073,7 +2073,13 @@ static NTSTATUS build_module( LPCWSTR load_path, const UNICODE_STRING *nt_name, +@@ -1890,7 +1890,13 @@ static NTSTATUS build_module( LPCWSTR load_path, const UNICODE_STRING *nt_name, - if (image_info->u.s.WineBuiltin) + if (is_builtin) { - if (TRACE_ON(relay)) RELAY_SetupDLL( *module ); +#ifdef __aarch64__ @@ -56,5 +56,5 @@ index be2dc833377..e29496a8c7a 100644 } -- -2.30.0 +2.20.1 diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index f1c8ab0f..7035467e 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -51,7 +51,7 @@ usage() # Get the upstream commit sha upstream_commit() { - echo "4d5824112e13160e538013a25f1c13a124565180" + echo "2828d0820a1661e46f606f28db090d710cef11f4" } # Show version information diff --git a/patches/windows.gaming.input-dll/0001-windows.gaming.input-Add-stub-dll.patch b/patches/windows.gaming.input-dll/0001-windows.gaming.input-Add-stub-dll.patch index a90d8859..96ebc1ac 100644 --- a/patches/windows.gaming.input-dll/0001-windows.gaming.input-Add-stub-dll.patch +++ b/patches/windows.gaming.input-dll/0001-windows.gaming.input-Add-stub-dll.patch @@ -1,4 +1,4 @@ -From 029200956d78cda3fc27514adaf8d52541881367 Mon Sep 17 00:00:00 2001 +From df4e50780191fa5ab30808b4b9dc34321650e070 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Bernon?= Date: Fri, 9 Oct 2020 13:38:18 +0200 Subject: [PATCH] windows.gaming.input: Add stub dll. @@ -8,13 +8,10 @@ Subject: [PATCH] windows.gaming.input: Add stub dll. dlls/windows.gaming.input.dll/Makefile.in | 5 + .../windows.gaming.input.spec | 3 + .../windows.gaming.input_main.c | 140 ++++++++++++++++++ - include/Makefile.in | 1 + - include/windows.gaming.input.idl | 24 +++ - 6 files changed, 174 insertions(+) + 4 files changed, 149 insertions(+) create mode 100644 dlls/windows.gaming.input.dll/Makefile.in create mode 100644 dlls/windows.gaming.input.dll/windows.gaming.input.spec create mode 100644 dlls/windows.gaming.input.dll/windows.gaming.input_main.c - create mode 100644 include/windows.gaming.input.idl diff --git a/configure.ac b/configure.ac index 8c092fb020c..558d2e906a2 100644 @@ -194,48 +191,6 @@ index 00000000000..2b6abc4dd84 + IUnknown_AddRef(*factory); + return S_OK; +} -diff --git a/include/Makefile.in b/include/Makefile.in -index d3494dde7a0..71afc8c0c99 100644 ---- a/include/Makefile.in -+++ b/include/Makefile.in -@@ -749,6 +749,7 @@ SOURCES = \ - windns.h \ - windows.foundation.collections.idl \ - windows.foundation.idl \ -+ windows.gaming.input.idl \ - windows.h \ - windows.media.speechsynthesis.idl \ - windowscontracts.idl \ -diff --git a/include/windows.gaming.input.idl b/include/windows.gaming.input.idl -new file mode 100644 -index 00000000000..575f34ccb58 ---- /dev/null -+++ b/include/windows.gaming.input.idl -@@ -0,0 +1,24 @@ -+/* -+ * Copyright 2020 RĂ©mi Bernon for CodeWeavers -+ * -+ * 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 -+ */ -+ -+#ifdef __WIDL__ -+#pragma winrt ns_prefix -+#endif -+ -+import "inspectable.idl"; -+import "windows.foundation.idl"; -- 2.20.1 diff --git a/patches/windows.gaming.input-dll/0002-windows.gaming.input-Implement-IGamepadStatics-stubs.patch b/patches/windows.gaming.input-dll/0002-windows.gaming.input-Implement-IGamepadStatics-stubs.patch index 03420d9b..cc98b3c6 100644 --- a/patches/windows.gaming.input-dll/0002-windows.gaming.input-Implement-IGamepadStatics-stubs.patch +++ b/patches/windows.gaming.input-dll/0002-windows.gaming.input-Implement-IGamepadStatics-stubs.patch @@ -1,15 +1,13 @@ -From c198ba64a5ccf37f06e61b2baf523773e1cdb350 Mon Sep 17 00:00:00 2001 +From f94d77d2f797f524793f74c455e56f33725b7728 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Bernon?= Date: Sat, 20 Feb 2021 00:51:48 +0100 Subject: [PATCH] windows.gaming.input: Implement IGamepadStatics stubs. --- - .../windows.gaming.input_main.c | 125 +++++++++++++++++ + .../windows.gaming.input_main.c | 125 ++++++++++++++++++ include/windows.foundation.collections.idl | 6 + - include/windows.foundation.idl | 5 + - include/windows.gaming.input.idl | 128 ++++++++++++++++++ loader/wine.inf.in | 1 + - 5 files changed, 265 insertions(+) + 3 files changed, 132 insertions(+) diff --git a/dlls/windows.gaming.input.dll/windows.gaming.input_main.c b/dlls/windows.gaming.input.dll/windows.gaming.input_main.c index 2b6abc4dd84..a910f9bf40e 100644 @@ -193,158 +191,6 @@ index ed05016b96d..ba860a1e82e 100644 namespace Collections { [ -diff --git a/include/windows.foundation.idl b/include/windows.foundation.idl -index 3c60278cf05..90bbc876339 100644 ---- a/include/windows.foundation.idl -+++ b/include/windows.foundation.idl -@@ -27,6 +27,11 @@ import "windowscontracts.idl"; - /* import "ivectorchangedeventargs.idl"; */ - import "windows.foundation.collections.idl"; - -+typedef struct EventRegistrationToken -+{ -+ __int64 value; -+} EventRegistrationToken; -+ - namespace Windows { - namespace Foundation { - [contract(Windows.Foundation.FoundationContract, 1.0)] -diff --git a/include/windows.gaming.input.idl b/include/windows.gaming.input.idl -index 575f34ccb58..b5af4e24a66 100644 ---- a/include/windows.gaming.input.idl -+++ b/include/windows.gaming.input.idl -@@ -22,3 +22,131 @@ - - import "inspectable.idl"; - import "windows.foundation.idl"; -+ -+namespace Windows { -+ namespace Gaming { -+ namespace Input { -+ typedef enum GamepadButtons GamepadButtons; -+ typedef struct GamepadReading GamepadReading; -+ typedef struct GamepadVibration GamepadVibration; -+ interface IGameController; -+ interface IGameControllerBatteryInfo; -+ interface IGamepad; -+ interface IGamepad2; -+ interface IGamepadStatics; -+ interface IGamepadStatics2; -+ runtimeclass Gamepad; -+ } -+ } -+} -+ -+namespace Windows { -+ namespace Gaming { -+ namespace Input { -+ declare { -+ interface Windows.Foundation.EventHandler; -+ interface Windows.Foundation.Collections.IVectorView; -+ } -+ } -+ } -+} -+ -+namespace Windows { -+ namespace Gaming { -+ namespace Input { -+ [ -+ contract(Windows.Foundation.UniversalApiContract, 1.0), -+ flags -+ ] -+ enum GamepadButtons -+ { -+ None = 0x0, -+ Menu = 0x1, -+ View = 0x2, -+ A = 0x4, -+ B = 0x8, -+ X = 0x10, -+ Y = 0x20, -+ DPadUp = 0x40, -+ DPadDown = 0x80, -+ DPadLeft = 0x100, -+ DPadRight = 0x200, -+ LeftShoulder = 0x400, -+ RightShoulder = 0x800, -+ LeftThumbstick = 0x1000, -+ RightThumbstick = 0x2000, -+ [contract(Windows.Foundation.UniversalApiContract, 3.0)] -+ Paddle1 = 0x4000, -+ [contract(Windows.Foundation.UniversalApiContract, 3.0)] -+ Paddle2 = 0x8000, -+ [contract(Windows.Foundation.UniversalApiContract, 3.0)] -+ Paddle3 = 0x10000, -+ [contract(Windows.Foundation.UniversalApiContract, 3.0)] -+ Paddle4 = 0x20000 -+ }; -+ -+ [contract(Windows.Foundation.UniversalApiContract, 1.0)] -+ struct GamepadReading -+ { -+ UINT64 Timestamp; -+ Windows.Gaming.Input.GamepadButtons Buttons; -+ DOUBLE LeftTrigger; -+ DOUBLE RightTrigger; -+ DOUBLE LeftThumbstickX; -+ DOUBLE LeftThumbstickY; -+ DOUBLE RightThumbstickX; -+ DOUBLE RightThumbstickY; -+ }; -+ -+ [contract(Windows.Foundation.UniversalApiContract, 1.0)] -+ struct GamepadVibration -+ { -+ DOUBLE LeftMotor; -+ DOUBLE RightMotor; -+ DOUBLE LeftTrigger; -+ DOUBLE RightTrigger; -+ }; -+ -+ [ -+ contract(Windows.Foundation.UniversalApiContract, 1.0), -+ exclusiveto(Windows.Gaming.Input.Gamepad), -+ uuid(bc7bb43c-0a69-3903-9e9d-a50f86a45de5) -+ ] -+ interface IGamepad : IInspectable -+ requires Windows.Gaming.Input.IGameController -+ { -+ [propget] HRESULT Vibration([out, retval] Windows.Gaming.Input.GamepadVibration* value); -+ [propput] HRESULT Vibration([in] Windows.Gaming.Input.GamepadVibration value); -+ HRESULT GetCurrentReading([out, retval] Windows.Gaming.Input.GamepadReading* value); -+ } -+ -+ [ -+ object, -+ uuid(8bbce529-d49c-39e9-9560-e47dde96b7c8) -+ ] -+ interface IGamepadStatics : IInspectable -+ { -+ [eventadd] HRESULT GamepadAdded([in] Windows.Foundation.EventHandler *value, [out, retval] EventRegistrationToken* token); -+ [eventremove] HRESULT GamepadAdded([in] EventRegistrationToken token); -+ [eventadd] HRESULT GamepadRemoved([in] Windows.Foundation.EventHandler *value, [out, retval] EventRegistrationToken* token); -+ [eventremove] HRESULT GamepadRemoved([in] EventRegistrationToken token); -+ [propget] HRESULT Gamepads([out, retval] Windows.Foundation.Collections.IVectorView **value); -+ } -+ -+ [ -+ contract(Windows.Foundation.UniversalApiContract, 1.0), -+ marshaling_behavior(agile), -+ static(Windows.Gaming.Input.IGamepadStatics, Windows.Foundation.UniversalApiContract, 1.0), -+ static(Windows.Gaming.Input.IGamepadStatics2, Windows.Foundation.UniversalApiContract, 4.0), -+ threading(both) -+ ] -+ runtimeclass Gamepad -+ { -+ [default] interface Windows.Gaming.Input.IGamepad; -+ interface Windows.Gaming.Input.IGameController; -+ [contract(Windows.Foundation.UniversalApiContract, 3.0)] interface Windows.Gaming.Input.IGamepad2; -+ [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.Gaming.Input.IGameControllerBatteryInfo; -+ } -+ } -+ } -+} diff --git a/loader/wine.inf.in b/loader/wine.inf.in index 4cef944fb88..a1cc73d6e57 100644 --- a/loader/wine.inf.in diff --git a/patches/windows.gaming.input-dll/0006-windows.gaming.input-Implement-IRawGameControllerSta.patch b/patches/windows.gaming.input-dll/0006-windows.gaming.input-Implement-IRawGameControllerSta.patch index 7488a7c3..490fefb8 100644 --- a/patches/windows.gaming.input-dll/0006-windows.gaming.input-Implement-IRawGameControllerSta.patch +++ b/patches/windows.gaming.input-dll/0006-windows.gaming.input-Implement-IRawGameControllerSta.patch @@ -1,4 +1,4 @@ -From 3398500d3ed2a90361d431d2fb630b60a6d7e8be Mon Sep 17 00:00:00 2001 +From 1f15403b2743fa55e204fd42049df117acee6e78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Bernon?= Date: Mon, 12 Oct 2020 12:50:32 +0200 Subject: [PATCH] windows.gaming.input: Implement IRawGameControllerStatics @@ -189,7 +189,7 @@ index dec9d39e7a3..1a40a8ddc35 100644 0 }; diff --git a/include/Makefile.in b/include/Makefile.in -index 71afc8c0c99..22ed5f3a2d5 100644 +index 1c80421ef6f..ab49ee0e4b3 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -20,6 +20,7 @@ SOURCES = \ @@ -200,7 +200,7 @@ index 71afc8c0c99..22ed5f3a2d5 100644 asynot.idl \ asysta.idl \ atlbase.h \ -@@ -750,8 +751,10 @@ SOURCES = \ +@@ -751,8 +752,10 @@ SOURCES = \ windows.foundation.collections.idl \ windows.foundation.idl \ windows.gaming.input.idl \ @@ -302,7 +302,7 @@ index ba860a1e82e..2562d34791f 100644 { [ diff --git a/include/windows.foundation.idl b/include/windows.foundation.idl -index 90bbc876339..2bed3d54cda 100644 +index 3c60278cf05..b06b9eadaf4 100644 --- a/include/windows.foundation.idl +++ b/include/windows.foundation.idl @@ -21,7 +21,7 @@ @@ -314,7 +314,7 @@ index 90bbc876339..2bed3d54cda 100644 import "windowscontracts.idl"; /* import "eventtoken.idl"; */ /* import "ivectorchangedeventargs.idl"; */ -@@ -119,3 +119,12 @@ namespace Windows { +@@ -114,3 +114,12 @@ namespace Windows { } } } @@ -445,11 +445,11 @@ index 00000000000..fa9da2f7656 + } +} diff --git a/include/windows.gaming.input.idl b/include/windows.gaming.input.idl -index b5af4e24a66..36d4038ed1f 100644 +index 1da22408eeb..90c1f02bd9d 100644 --- a/include/windows.gaming.input.idl +++ b/include/windows.gaming.input.idl -@@ -22,11 +22,16 @@ - +@@ -23,11 +23,16 @@ + import "eventtoken.idl"; import "inspectable.idl"; import "windows.foundation.idl"; +import "windows.system.idl"; @@ -465,7 +465,7 @@ index b5af4e24a66..36d4038ed1f 100644 typedef struct GamepadReading GamepadReading; typedef struct GamepadVibration GamepadVibration; interface IGameController; -@@ -35,7 +40,11 @@ namespace Windows { +@@ -36,7 +41,11 @@ namespace Windows { interface IGamepad2; interface IGamepadStatics; interface IGamepadStatics2; @@ -477,7 +477,7 @@ index b5af4e24a66..36d4038ed1f 100644 } } } -@@ -45,7 +54,11 @@ namespace Windows { +@@ -46,7 +55,11 @@ namespace Windows { namespace Input { declare { interface Windows.Foundation.EventHandler; @@ -489,7 +489,7 @@ index b5af4e24a66..36d4038ed1f 100644 } } } -@@ -85,6 +98,102 @@ namespace Windows { +@@ -86,6 +99,102 @@ namespace Windows { Paddle4 = 0x20000 }; @@ -592,7 +592,7 @@ index b5af4e24a66..36d4038ed1f 100644 [contract(Windows.Foundation.UniversalApiContract, 1.0)] struct GamepadReading { -@@ -107,6 +216,23 @@ namespace Windows { +@@ -108,6 +217,23 @@ namespace Windows { DOUBLE RightTrigger; }; @@ -616,7 +616,7 @@ index b5af4e24a66..36d4038ed1f 100644 [ contract(Windows.Foundation.UniversalApiContract, 1.0), exclusiveto(Windows.Gaming.Input.Gamepad), -@@ -120,6 +246,25 @@ namespace Windows { +@@ -121,6 +247,25 @@ namespace Windows { HRESULT GetCurrentReading([out, retval] Windows.Gaming.Input.GamepadReading* value); } @@ -642,7 +642,7 @@ index b5af4e24a66..36d4038ed1f 100644 [ object, uuid(8bbce529-d49c-39e9-9560-e47dde96b7c8) -@@ -133,6 +278,31 @@ namespace Windows { +@@ -134,6 +279,31 @@ namespace Windows { [propget] HRESULT Gamepads([out, retval] Windows.Foundation.Collections.IVectorView **value); } @@ -674,7 +674,7 @@ index b5af4e24a66..36d4038ed1f 100644 [ contract(Windows.Foundation.UniversalApiContract, 1.0), marshaling_behavior(agile), -@@ -147,6 +317,31 @@ namespace Windows { +@@ -148,6 +318,31 @@ namespace Windows { [contract(Windows.Foundation.UniversalApiContract, 3.0)] interface Windows.Gaming.Input.IGamepad2; [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.Gaming.Input.IGameControllerBatteryInfo; } diff --git a/staging/upstream-commit b/staging/upstream-commit index 4aff49d0..b84ed306 100644 --- a/staging/upstream-commit +++ b/staging/upstream-commit @@ -1 +1 @@ -4d5824112e13160e538013a25f1c13a124565180 +2828d0820a1661e46f606f28db090d710cef11f4