Rebase against 40fef0fb71b079c1bf9667d80384cc43ec7f11fd

This commit is contained in:
Alistair Leslie-Hughes 2019-05-14 08:18:42 +10:00
parent 6e49a945cf
commit f3e2363b52
5 changed files with 23 additions and 150 deletions

View File

@ -1,103 +0,0 @@
From 4ec91bab963a508a30bc1a77b785a5014d6bf264 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Wed, 1 May 2019 12:22:14 +1000
Subject: [PATCH 1/7] dinput: Allow Enumeration of joysticks with DirectX 3.
Star Wars: Rogue 3D requests a DirectX 3.0 version
0108:trace:dinput:DirectInputCreateEx (0x400000,0300,{9a4cb684-236d-11d3-8e9d-00c04f6844ae},0x7acfa0,(nil))
and then tries to interate over all Joysticks.
The current tests show that this is the correct behaviour,
However,
On windows (Steam version of above) uses a shim to allow joystick support.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
---
dlls/dinput/joystick_linux.c | 4 ++--
dlls/dinput/joystick_linuxinput.c | 4 ++--
dlls/dinput/joystick_osx.c | 4 ++--
dlls/dinput/tests/joystick.c | 2 +-
4 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/dlls/dinput/joystick_linux.c b/dlls/dinput/joystick_linux.c
index d661a14..22f7d3b 100644
--- a/dlls/dinput/joystick_linux.c
+++ b/dlls/dinput/joystick_linux.c
@@ -377,7 +377,7 @@ static HRESULT joydev_enum_deviceA(DWORD dwDevType, DWORD dwFlags, LPDIDEVICEINS
}
if ((dwDevType == 0) ||
- ((dwDevType == DIDEVTYPE_JOYSTICK) && (version > 0x0300 && version < 0x0800)) ||
+ ((dwDevType == DIDEVTYPE_JOYSTICK) && (version >= 0x0300 && version < 0x0800)) ||
(((dwDevType == DI8DEVCLASS_GAMECTRL) || (dwDevType == DI8DEVTYPE_JOYSTICK)) && (version >= 0x0800))) {
/* check whether we have a joystick */
if ((fd = open(joystick_devices[id].device, O_RDONLY)) == -1)
@@ -406,7 +406,7 @@ static HRESULT joydev_enum_deviceW(DWORD dwDevType, DWORD dwFlags, LPDIDEVICEINS
}
if ((dwDevType == 0) ||
- ((dwDevType == DIDEVTYPE_JOYSTICK) && (version > 0x0300 && version < 0x0800)) ||
+ ((dwDevType == DIDEVTYPE_JOYSTICK) && (version >= 0x0300 && version < 0x0800)) ||
(((dwDevType == DI8DEVCLASS_GAMECTRL) || (dwDevType == DI8DEVTYPE_JOYSTICK)) && (version >= 0x0800))) {
/* check whether we have a joystick */
if ((fd = open(joystick_devices[id].device, O_RDONLY)) == -1)
diff --git a/dlls/dinput/joystick_linuxinput.c b/dlls/dinput/joystick_linuxinput.c
index 3580505..fb6b305 100644
--- a/dlls/dinput/joystick_linuxinput.c
+++ b/dlls/dinput/joystick_linuxinput.c
@@ -412,7 +412,7 @@ static HRESULT joydev_enum_deviceA(DWORD dwDevType, DWORD dwFlags, LPDIDEVICEINS
}
if (!((dwDevType == 0) ||
- ((dwDevType == DIDEVTYPE_JOYSTICK) && (version > 0x0300 && version < 0x0800)) ||
+ ((dwDevType == DIDEVTYPE_JOYSTICK) && (version >= 0x0300 && version < 0x0800)) ||
(((dwDevType == DI8DEVCLASS_GAMECTRL) || (dwDevType == DI8DEVTYPE_JOYSTICK)) && (version >= 0x0800))))
return S_FALSE;
@@ -437,7 +437,7 @@ static HRESULT joydev_enum_deviceW(DWORD dwDevType, DWORD dwFlags, LPDIDEVICEINS
}
if (!((dwDevType == 0) ||
- ((dwDevType == DIDEVTYPE_JOYSTICK) && (version > 0x0300 && version < 0x0800)) ||
+ ((dwDevType == DIDEVTYPE_JOYSTICK) && (version >= 0x0300 && version < 0x0800)) ||
(((dwDevType == DI8DEVCLASS_GAMECTRL) || (dwDevType == DI8DEVTYPE_JOYSTICK)) && (version >= 0x0800))))
return S_FALSE;
diff --git a/dlls/dinput/joystick_osx.c b/dlls/dinput/joystick_osx.c
index 4259d1a..3b7a7f0 100644
--- a/dlls/dinput/joystick_osx.c
+++ b/dlls/dinput/joystick_osx.c
@@ -955,7 +955,7 @@ static HRESULT joydev_enum_deviceA(DWORD dwDevType, DWORD dwFlags, LPDIDEVICEINS
device = get_device_ref(id);
if ((dwDevType == 0) ||
- ((dwDevType == DIDEVTYPE_JOYSTICK) && (version > 0x0300 && version < 0x0800)) ||
+ ((dwDevType == DIDEVTYPE_JOYSTICK) && (version >= 0x0300 && version < 0x0800)) ||
(((dwDevType == DI8DEVCLASS_GAMECTRL) || (dwDevType == DI8DEVTYPE_JOYSTICK)) && (version >= 0x0800)))
{
if (dwFlags & DIEDFL_FORCEFEEDBACK) {
@@ -1002,7 +1002,7 @@ static HRESULT joydev_enum_deviceW(DWORD dwDevType, DWORD dwFlags, LPDIDEVICEINS
device = get_device_ref(id);
if ((dwDevType == 0) ||
- ((dwDevType == DIDEVTYPE_JOYSTICK) && (version > 0x0300 && version < 0x0800)) ||
+ ((dwDevType == DIDEVTYPE_JOYSTICK) && (version >= 0x0300 && version < 0x0800)) ||
(((dwDevType == DI8DEVCLASS_GAMECTRL) || (dwDevType == DI8DEVTYPE_JOYSTICK)) && (version >= 0x0800))) {
if (dwFlags & DIEDFL_FORCEFEEDBACK) {
diff --git a/dlls/dinput/tests/joystick.c b/dlls/dinput/tests/joystick.c
index 631ea57..c07e821 100644
--- a/dlls/dinput/tests/joystick.c
+++ b/dlls/dinput/tests/joystick.c
@@ -321,7 +321,7 @@ static BOOL CALLBACK EnumJoysticks(const DIDEVICEINSTANCEA *lpddi, void *pvRef)
DIPROPDWORD dip_gain_set, dip_gain_get;
struct effect_enum effect_data;
- ok(data->version > 0x0300, "Joysticks not supported in version 0x%04x\n", data->version);
+ ok(data->version >= 0x0300, "Joysticks not supported in version 0x%04x\n", data->version);
hr = IDirectInput_CreateDevice(data->pDI, &lpddi->guidInstance, NULL, NULL);
ok(hr==E_POINTER,"IDirectInput_CreateDevice() should have returned "
--
1.9.1

View File

@ -1,3 +0,0 @@
Fixes: [36764] dinput: Allow DirectX version 3 to enumerate joysticks.
Fixes: [47123] dinput: Use heuristics to guess if a device is a gamepad or a joystick.

View File

@ -1,15 +1,15 @@
From e2978c13fca913a14991e286c463ede69f61831d Mon Sep 17 00:00:00 2001
From 947b2e9978e50d159f8bc368aa1d5e967c1ad593 Mon Sep 17 00:00:00 2001
From: Lucian Poston <lucianposton@pm.me>
Date: Sun, 20 May 2018 21:40:39 -0700
Subject: [PATCH 1/6] dwrite: Test IDWriteTextFormat with nonexistent font
Subject: [PATCH] dwrite: Test IDWriteTextFormat with nonexistent font
Signed-off-by: Lucian Poston <lucianposton@pm.me>
---
dlls/dwrite/tests/layout.c | 46 ++++++++++++++++++++++++++++++++++++++
dlls/dwrite/tests/layout.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 46 insertions(+)
diff --git a/dlls/dwrite/tests/layout.c b/dlls/dwrite/tests/layout.c
index 652f6b78ac..4198b8a1b1 100644
index 8337ce7..03da3c0 100644
--- a/dlls/dwrite/tests/layout.c
+++ b/dlls/dwrite/tests/layout.c
@@ -30,6 +30,7 @@
@ -20,11 +20,10 @@ index 652f6b78ac..4198b8a1b1 100644
static const WCHAR enusW[] = {'e','n','-','u','s',0};
struct testanalysissink
@@ -3292,6 +3293,51 @@ todo_wine
ok(metrics.lineCount == 1, "got %u\n", metrics.lineCount);
@@ -3311,6 +3312,51 @@ todo_wine
IDWriteTextLayout_Release(layout);
+ IDWriteTextFormat_Release(format);
IDWriteTextFormat_Release(format);
+
+ /* nonexistent font */
+ hr = IDWriteFactory_CreateTextFormat(factory, nonExistentFontW, NULL, DWRITE_FONT_WEIGHT_NORMAL, DWRITE_FONT_STYLE_NORMAL,
@ -69,9 +68,10 @@ index 652f6b78ac..4198b8a1b1 100644
+
+ IDWriteTextLayout_Release(layout);
+
IDWriteTextFormat_Release(format);
+ IDWriteTextFormat_Release(format);
IDWriteFactory_Release(factory);
}
--
2.18.0
1.9.1

View File

@ -1,4 +1,4 @@
From 985632c94e0175972f8a780f4d363bbfe7e284bf Mon Sep 17 00:00:00 2001
From e6eb1b2542caec9481f9ec0ad87d17dd568a3106 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sat, 4 Feb 2017 16:20:37 +0100
Subject: [PATCH] kernel32: Implement some processor group functions.
@ -26,7 +26,7 @@ index e653ac6..b6af37a 100644
@ stdcall GetNamedPipeServerProcessId(long ptr) kernel32.GetNamedPipeServerProcessId
@ stdcall GetShortPathNameA(str ptr long) kernel32.GetShortPathNameA
diff --git a/dlls/api-ms-win-core-kernel32-legacy-l1-1-1/api-ms-win-core-kernel32-legacy-l1-1-1.spec b/dlls/api-ms-win-core-kernel32-legacy-l1-1-1/api-ms-win-core-kernel32-legacy-l1-1-1.spec
index 5531d2d..997b80a 100644
index 946e3de..fca40f1 100644
--- a/dlls/api-ms-win-core-kernel32-legacy-l1-1-1/api-ms-win-core-kernel32-legacy-l1-1-1.spec
+++ b/dlls/api-ms-win-core-kernel32-legacy-l1-1-1/api-ms-win-core-kernel32-legacy-l1-1-1.spec
@@ -26,7 +26,7 @@
@ -37,12 +37,12 @@ index 5531d2d..997b80a 100644
+@ stdcall GetMaximumProcessorGroupCount() kernel32.GetMaximumProcessorGroupCount
@ stdcall GetNamedPipeClientProcessId(long ptr) kernel32.GetNamedPipeClientProcessId
@ stdcall GetNamedPipeServerProcessId(long ptr) kernel32.GetNamedPipeServerProcessId
@ stub GetNumaAvailableMemoryNodeEx
@ stdcall GetNumaAvailableMemoryNodeEx(long ptr)
diff --git a/dlls/kernel32/cpu.c b/dlls/kernel32/cpu.c
index 84385c7..c06db1d 100644
index 6e198ba..8d0afde 100644
--- a/dlls/kernel32/cpu.c
+++ b/dlls/kernel32/cpu.c
@@ -312,7 +312,9 @@ SIZE_T WINAPI GetLargePageMinimum(void)
@@ -284,7 +284,9 @@ SIZE_T WINAPI GetLargePageMinimum(void)
*/
WORD WINAPI GetActiveProcessorGroupCount(void)
{
@ -53,7 +53,7 @@ index 84385c7..c06db1d 100644
return 1;
}
@@ -321,14 +323,26 @@ WORD WINAPI GetActiveProcessorGroupCount(void)
@@ -293,14 +295,26 @@ WORD WINAPI GetActiveProcessorGroupCount(void)
*/
DWORD WINAPI GetActiveProcessorCount(WORD group)
{
@ -87,10 +87,10 @@ index 84385c7..c06db1d 100644
/***********************************************************************
diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec
index 85fce37..12a550b 100644
index 8346575..1928382 100644
--- a/dlls/kernel32/kernel32.spec
+++ b/dlls/kernel32/kernel32.spec
@@ -716,7 +716,7 @@
@@ -717,7 +717,7 @@
@ stdcall GetLongPathNameW (wstr long long)
@ stdcall GetMailslotInfo(long ptr ptr ptr ptr)
@ stdcall GetMaximumProcessorCount(long)
@ -100,7 +100,7 @@ index 85fce37..12a550b 100644
@ stdcall GetModuleFileNameW(long ptr long)
@ stdcall GetModuleHandleA(str)
diff --git a/dlls/kernel32/tests/process.c b/dlls/kernel32/tests/process.c
index fe68d28..dc26549 100644
index 0892d84..71d141d 100644
--- a/dlls/kernel32/tests/process.c
+++ b/dlls/kernel32/tests/process.c
@@ -91,6 +91,7 @@ static SIZE_T (WINAPI *pGetLargePageMinimum)(void);
@ -119,7 +119,7 @@ index fe68d28..dc26549 100644
return TRUE;
}
@@ -3784,6 +3786,26 @@ static void test_ProcThreadAttributeList(void)
@@ -3880,6 +3882,26 @@ static void test_ProcThreadAttributeList(void)
pDeleteProcThreadAttributeList(&list);
}
@ -146,7 +146,7 @@ index fe68d28..dc26549 100644
START_TEST(process)
{
HANDLE job;
@@ -3868,6 +3890,7 @@ START_TEST(process)
@@ -3964,6 +3986,7 @@ START_TEST(process)
test_GetNumaProcessorNode();
test_session_info();
test_GetLogicalProcessorInformationEx();
@ -155,10 +155,10 @@ index fe68d28..dc26549 100644
test_ProcThreadAttributeList();
test_SuspendProcessState();
diff --git a/include/winnt.h b/include/winnt.h
index 742b47b..520b642 100644
index 6f651c8..e0ac7d5 100644
--- a/include/winnt.h
+++ b/include/winnt.h
@@ -6096,6 +6096,8 @@ typedef struct _GROUP_AFFINITY
@@ -6355,6 +6355,8 @@ typedef struct _GROUP_AFFINITY
WORD Reserved[3];
} GROUP_AFFINITY, *PGROUP_AFFINITY;

View File

@ -52,7 +52,7 @@ usage()
# Get the upstream commit sha
upstream_commit()
{
echo "aaf9c833ee1b9dca8cffcb2a60c96093fdd36405"
echo "40fef0fb71b079c1bf9667d80384cc43ec7f11fd"
}
# Show version information
@ -130,7 +130,6 @@ patch_enable_all ()
enable_ddraw_Write_Vtable="$1"
enable_ddraw_version_check="$1"
enable_dinput_axis_recalc="$1"
enable_dinput_joy_directX3="$1"
enable_dinput_joy_mappings="$1"
enable_dinput_reconnect_joystick="$1"
enable_dinput_remap_joystick="$1"
@ -521,9 +520,6 @@ patch_enable ()
dinput-axis-recalc)
enable_dinput_axis_recalc="$2"
;;
dinput-joy-directX3)
enable_dinput_joy_directX3="$2"
;;
dinput-joy-mappings)
enable_dinput_joy_mappings="$2"
;;
@ -3087,23 +3083,6 @@ if test "$enable_dinput_axis_recalc" -eq 1; then
) >> "$patchlist"
fi
# Patchset dinput-joy-directX3
# |
# | This patchset fixes the following Wine bugs:
# | * [#36764] dinput: Allow DirectX version 3 to enumerate joysticks.
# | * [#47123] dinput: Use heuristics to guess if a device is a gamepad or a joystick.
# |
# | Modified files:
# | * dlls/dinput/joystick_linux.c, dlls/dinput/joystick_linuxinput.c, dlls/dinput/joystick_osx.c,
# | dlls/dinput/tests/joystick.c
# |
if test "$enable_dinput_joy_directX3" -eq 1; then
patch_apply dinput-joy-directX3/0001-dinput-Allow-Enumeration-of-joysticks-with-DirectX-3.patch
(
printf '%s\n' '+ { "Alistair Leslie-Hughes", "dinput: Allow Enumeration of joysticks with DirectX 3.", 1 },';
) >> "$patchlist"
fi
# Patchset dinput-joy-mappings
# |
# | This patchset fixes the following Wine bugs: