diff --git a/README.md b/README.md index f2505feb..d1b7489d 100644 --- a/README.md +++ b/README.md @@ -121,7 +121,7 @@ for more details.* * Do not wait for hook thread startup in IDirectInput8::Initialize ([Wine Bug #21403](https://bugs.winehq.org/show_bug.cgi?id=21403)) * Enforce that surfaces are flushed after ReleaseDC ([Wine Bug #39465](https://bugs.winehq.org/show_bug.cgi?id=39465)) * Ensure NtProtectVirtualMemory and NtCreateSection are on separate pages ([Wine Bug #33162](https://bugs.winehq.org/show_bug.cgi?id=33162)) -* Ensure X11 input events are handled even without explicit message loop ([Wine Bug #8854](https://bugs.winehq.org/show_bug.cgi?id=8854)) +* ~~Ensure X11 input events are handled even without explicit message loop~~ ([Wine Bug #8854](https://bugs.winehq.org/show_bug.cgi?id=8854)) * Exception during start of fr-043 caused by missing DXTn support ([Wine Bug #37391](https://bugs.winehq.org/show_bug.cgi?id=37391)) * Export additional OpenAL32 functions ([Wine Bug #38972](https://bugs.winehq.org/show_bug.cgi?id=38972)) * Expose PKEY_AudioEndpoint_PhysicalSpeakers device property in PulseAudio driver @@ -155,7 +155,7 @@ for more details.* * Fix implementation of msvcrt.close when stdout == stderr * Fix issues with dragging layers between images in Adobe Photoshop 7.0 ([Wine Bug #12007](https://bugs.winehq.org/show_bug.cgi?id=12007)) * Fix missing video introduced by pixelformat changes. ([Wine Bug #36900](https://bugs.winehq.org/show_bug.cgi?id=36900)) -* Fix multiple issues in widl typelib generation +* ~~Fix multiple issues in widl typelib generation~~ * Fix multithreading issues with fullscreen clipping ([Wine Bug #38087](https://bugs.winehq.org/show_bug.cgi?id=38087)) * Fix possible segfault in pulse_rd_loop of PulseAudio backend * Fix race-condition when threads are killed during shutdown @@ -253,7 +253,7 @@ for more details.* * Return proper status codes when NtReadFile/NtWriteFile is called on closed (but not disconnected) pipe * SHFileOperation with FO_MOVE should create new directory on Vista+ ([Wine Bug #25207](https://bugs.winehq.org/show_bug.cgi?id=25207)) * SO_CONNECT_TIME returns the appropriate time -* Scrolling causes mouse and screen to lock in Call to Power II ([Wine Bug #34559](https://bugs.winehq.org/show_bug.cgi?id=34559)) +* ~~Scrolling causes mouse and screen to lock in Call to Power II~~ ([Wine Bug #34559](https://bugs.winehq.org/show_bug.cgi?id=34559)) * Send WM_PAINT event during dialog creation ([Wine Bug #35652](https://bugs.winehq.org/show_bug.cgi?id=35652)) * Set EOF on file which has a memory mapping should fail * Set NamedPipeState to FILE_PIPE_CLOSING_STATE on broken pipe in NtQueryInformationFile diff --git a/debian/changelog b/debian/changelog index 8844780d..512b4057 100644 --- a/debian/changelog +++ b/debian/changelog @@ -13,6 +13,10 @@ wine-staging (1.7.55) UNRELEASED; urgency=low * Removed various PulseAudio driver patches (accepted upstream). * Removed patch to protect TVM_GETITEM from invalid item pointers (accepted upstream). + * Removed patch to ensure that X11 input events handled even without explicit + message loop (accepted upstream). + * Removed patches to fix multiple issues in widl typelib generator (accepted + upstream). -- Sebastian Lackner Sun, 01 Nov 2015 01:06:20 +0100 wine-staging (1.7.54) unstable; urgency=low diff --git a/patches/dinput-Events/0001-dinput-Ensure-X11-input-events-are-handled-even-with.patch b/patches/dinput-Events/0001-dinput-Ensure-X11-input-events-are-handled-even-with.patch deleted file mode 100644 index 52edc478..00000000 --- a/patches/dinput-Events/0001-dinput-Ensure-X11-input-events-are-handled-even-with.patch +++ /dev/null @@ -1,103 +0,0 @@ -From 278d2cd8f466e786bed9fa4a621d627c20c83b8d Mon Sep 17 00:00:00 2001 -From: Sebastian Lackner -Date: Thu, 18 Dec 2014 01:04:34 +0100 -Subject: dinput: Ensure X11 input events are handled even without explicit - message loop. (v4) -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This commit basically reverts b22ff8018aca7c365e505f1db7732f7050ae259b. - -Michael Müller did a full analysis of this problem, which reveals that the issue -is caused by the way user32 and winex11 works. Wine establishes separate X server -connections for each thread, so each thread needs to call -USER_Driver->pMsgWaitForMultipleObjectsEx from time to time to ensure that events -are properly forwarded to the wineserver. On Windows all this isn't necessary -because the kernel itself is responsible for generating window events, and there -is no need to pass them from the application to the kernel. - -A proper fix would mean to rewrite winex11 to always handle X11 events -asynchronously, and without explicit need for a message loop. Since such a rewrite -is rather unlikely and will not happen during the near future, adding a workaround -till a better solution is found. This workaround will have no disadvantage, except -that this isn't a complete fix. Please note that not only hooks are affected by -this issue, also *RawInput* functions show the same issue - which is the reason why -native dinput will still not work (already tested). - -Since games use very different code in order to query for input events, we have to -call __wine_check_for_events from multiple locations in the code. See: -* https://bugs.wine-staging.com/show_bug.cgi?id=42 -* https://bugs.wine-staging.com/show_bug.cgi?id=149 ---- - dlls/dinput/device.c | 5 +++-- - dlls/dinput/keyboard.c | 2 ++ - dlls/dinput/mouse.c | 2 ++ - dlls/dinput/tests/mouse.c | 2 ++ - 4 files changed, 9 insertions(+), 2 deletions(-) - -diff --git a/dlls/dinput/device.c b/dlls/dinput/device.c -index ab43029..501eae8 100644 ---- a/dlls/dinput/device.c -+++ b/dlls/dinput/device.c -@@ -1631,8 +1631,9 @@ HRESULT WINAPI IDirectInputDevice2WImpl_Poll(LPDIRECTINPUTDEVICE8W iface) - IDirectInputDeviceImpl *This = impl_from_IDirectInputDevice8W(iface); - - if (!This->acquired) return DIERR_NOTACQUIRED; -- /* Because wine devices do not need to be polled, just return DI_NOEFFECT */ -- return DI_NOEFFECT; -+ -+ MsgWaitForMultipleObjectsEx(0, NULL, 0, QS_ALLINPUT, 0); -+ return DI_OK; - } - - HRESULT WINAPI IDirectInputDevice2AImpl_Poll(LPDIRECTINPUTDEVICE8A iface) -diff --git a/dlls/dinput/keyboard.c b/dlls/dinput/keyboard.c -index f3ac30e..1e273f6 100644 ---- a/dlls/dinput/keyboard.c -+++ b/dlls/dinput/keyboard.c -@@ -335,6 +335,8 @@ static HRESULT WINAPI SysKeyboardWImpl_GetDeviceState(LPDIRECTINPUTDEVICE8W ifac - if (len != This->base.data_format.user_df->dwDataSize ) - return DIERR_INVALIDPARAM; - -+ MsgWaitForMultipleObjectsEx(0, NULL, 0, QS_ALLINPUT, 0); -+ - EnterCriticalSection(&This->base.crit); - - if (TRACE_ON(dinput)) { -diff --git a/dlls/dinput/mouse.c b/dlls/dinput/mouse.c -index 132efce..8126c1e 100644 ---- a/dlls/dinput/mouse.c -+++ b/dlls/dinput/mouse.c -@@ -552,6 +552,8 @@ static HRESULT WINAPI SysMouseWImpl_GetDeviceState(LPDIRECTINPUTDEVICE8W iface, - - if(This->base.acquired == 0) return DIERR_NOTACQUIRED; - -+ MsgWaitForMultipleObjectsEx(0, NULL, 0, QS_ALLINPUT, 0); -+ - TRACE("(this=%p,0x%08x,%p):\n", This, len, ptr); - _dump_mouse_state(&This->m_state); - -diff --git a/dlls/dinput/tests/mouse.c b/dlls/dinput/tests/mouse.c -index 1a5f4bc..711abcf 100644 ---- a/dlls/dinput/tests/mouse.c -+++ b/dlls/dinput/tests/mouse.c -@@ -160,6 +160,7 @@ static void test_acquire(IDirectInputA *pDI, HWND hwnd) - IDirectInputDevice_Acquire(pMouse); - cnt = 1; - hr = IDirectInputDevice_GetDeviceData(pMouse, sizeof(mouse_state), &mouse_state, &cnt, 0); -+ todo_wine - ok(hr == S_OK && cnt > 0, "GetDeviceData() failed: %08x cnt:%d\n", hr, cnt); - - /* Check for buffer owerflow */ -@@ -171,6 +172,7 @@ static void test_acquire(IDirectInputA *pDI, HWND hwnd) - ok(hr == DI_OK, "GetDeviceData() failed: %08x cnt:%d\n", hr, cnt); - cnt = 1; - hr = IDirectInputDevice_GetDeviceData(pMouse, sizeof(mouse_state), &mouse_state, &cnt, 0); -+ todo_wine - ok(hr == DI_OK && cnt == 1, "GetDeviceData() failed: %08x cnt:%d\n", hr, cnt); - - if (pMouse) IUnknown_Release(pMouse); --- -2.6.1 - diff --git a/patches/dinput-Events/definition b/patches/dinput-Events/definition deleted file mode 100644 index 735a3196..00000000 --- a/patches/dinput-Events/definition +++ /dev/null @@ -1,3 +0,0 @@ -Fixes: [8854] Ensure X11 input events are handled even without explicit message loop -Fixes: [34559] Scrolling causes mouse and screen to lock in Call to Power II -Category: stable diff --git a/patches/ntdll-Syscall_Wrappers/0002-ntdll-Use-wrapper-functions-for-syscalls.patch b/patches/ntdll-Syscall_Wrappers/0002-ntdll-Use-wrapper-functions-for-syscalls.patch index 7088ed13..9a0b5718 100644 --- a/patches/ntdll-Syscall_Wrappers/0002-ntdll-Use-wrapper-functions-for-syscalls.patch +++ b/patches/ntdll-Syscall_Wrappers/0002-ntdll-Use-wrapper-functions-for-syscalls.patch @@ -1,4 +1,4 @@ -From 446c222f1cda30dd0cc4c36a2feb4256537dec7d Mon Sep 17 00:00:00 2001 +From 1b7d74bd0325ceb988838324875369cdea6b26d9 Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Fri, 16 Oct 2015 02:32:58 +0200 Subject: ntdll: Use wrapper functions for syscalls. @@ -14,7 +14,7 @@ Subject: ntdll: Use wrapper functions for syscalls. dlls/ntdll/ntdll_misc.h | 17 ++++++ dlls/ntdll/om.c | 39 +++++++++----- dlls/ntdll/process.c | 15 ++++-- - dlls/ntdll/reg.c | 57 +++++++++++++------- + dlls/ntdll/reg.c | 60 ++++++++++++++------- dlls/ntdll/resource.c | 16 ++++-- dlls/ntdll/sec.c | 9 ++-- dlls/ntdll/signal_arm.c | 3 +- @@ -26,7 +26,7 @@ Subject: ntdll: Use wrapper functions for syscalls. dlls/ntdll/thread.c | 36 ++++++++----- dlls/ntdll/time.c | 12 +++-- dlls/ntdll/virtual.c | 48 +++++++++++------ - 22 files changed, 410 insertions(+), 191 deletions(-) + 22 files changed, 412 insertions(+), 192 deletions(-) diff --git a/dlls/ntdll/atom.c b/dlls/ntdll/atom.c index 304b7f6..222fde9 100644 @@ -950,7 +950,7 @@ index ca9462a..37c08f1 100644 { NTSTATUS status; diff --git a/dlls/ntdll/reg.c b/dlls/ntdll/reg.c -index a104c2e..c8d8704 100644 +index c0fc641..6df88c3 100644 --- a/dlls/ntdll/reg.c +++ b/dlls/ntdll/reg.c @@ -51,7 +51,8 @@ WINE_DEFAULT_DEBUG_CHANNEL(reg); @@ -963,7 +963,17 @@ index a104c2e..c8d8704 100644 ULONG TitleIndex, const UNICODE_STRING *class, ULONG options, PULONG dispos ) { -@@ -113,7 +114,8 @@ NTSTATUS WINAPI RtlpNtCreateKey( PHANDLE retkey, ACCESS_MASK access, const OBJEC +@@ -109,7 +110,8 @@ NTSTATUS WINAPI RtlpNtCreateKey( PHANDLE retkey, ACCESS_MASK access, const OBJEC + * NtOpenKeyEx [NTDLL.@] + * ZwOpenKeyEx [NTDLL.@] + */ +-NTSTATUS WINAPI NtOpenKeyEx( PHANDLE retkey, ACCESS_MASK access, const OBJECT_ATTRIBUTES *attr, ULONG options ) ++DEFINE_SYSCALL_ENTRYPOINT( NtOpenKeyEx, 4 ); ++NTSTATUS WINAPI SYSCALL(NtOpenKeyEx)( PHANDLE retkey, ACCESS_MASK access, const OBJECT_ATTRIBUTES *attr, ULONG options ) + { + NTSTATUS ret; + DWORD len; +@@ -146,7 +148,8 @@ NTSTATUS WINAPI NtOpenKeyEx( PHANDLE retkey, ACCESS_MASK access, const OBJECT_AT * IN ACCESS_MASK access * IN POBJECT_ATTRIBUTES attr */ @@ -971,9 +981,9 @@ index a104c2e..c8d8704 100644 +DEFINE_SYSCALL_ENTRYPOINT( NtOpenKey, 3 ); +NTSTATUS WINAPI SYSCALL(NtOpenKey)( PHANDLE retkey, ACCESS_MASK access, const OBJECT_ATTRIBUTES *attr ) { - NTSTATUS ret; - DWORD len; -@@ -156,7 +158,8 @@ NTSTATUS WINAPI RtlpNtOpenKey( PHANDLE retkey, ACCESS_MASK access, OBJECT_ATTRIB + return NtOpenKeyEx( retkey, access, attr, 0 ); + } +@@ -167,7 +170,8 @@ NTSTATUS WINAPI RtlpNtOpenKey( PHANDLE retkey, ACCESS_MASK access, OBJECT_ATTRIB * NtDeleteKey [NTDLL.@] * ZwDeleteKey [NTDLL.@] */ @@ -983,7 +993,7 @@ index a104c2e..c8d8704 100644 { NTSTATUS ret; -@@ -185,7 +188,8 @@ NTSTATUS WINAPI RtlpNtMakeTemporaryKey( HANDLE hkey ) +@@ -196,7 +200,8 @@ NTSTATUS WINAPI RtlpNtMakeTemporaryKey( HANDLE hkey ) * NtDeleteValueKey [NTDLL.@] * ZwDeleteValueKey [NTDLL.@] */ @@ -993,7 +1003,7 @@ index a104c2e..c8d8704 100644 { NTSTATUS ret; -@@ -311,7 +315,8 @@ static NTSTATUS enumerate_key( HANDLE handle, int index, KEY_INFORMATION_CLASS i +@@ -322,7 +327,8 @@ static NTSTATUS enumerate_key( HANDLE handle, int index, KEY_INFORMATION_CLASS i * NOTES * the name copied into the buffer is NOT 0-terminated */ @@ -1003,7 +1013,7 @@ index a104c2e..c8d8704 100644 void *info, DWORD length, DWORD *result_len ) { /* -1 means query key, so avoid it here */ -@@ -370,7 +375,8 @@ NTSTATUS WINAPI RtlpNtEnumerateSubKey( HANDLE handle, UNICODE_STRING *out, ULONG +@@ -381,7 +387,8 @@ NTSTATUS WINAPI RtlpNtEnumerateSubKey( HANDLE handle, UNICODE_STRING *out, ULONG * NtQueryKey [NTDLL.@] * ZwQueryKey [NTDLL.@] */ @@ -1013,7 +1023,7 @@ index a104c2e..c8d8704 100644 void *info, DWORD length, DWORD *result_len ) { return enumerate_key( handle, -1, info_class, info, length, result_len ); -@@ -425,7 +431,8 @@ static void copy_key_value_info( KEY_VALUE_INFORMATION_CLASS info_class, void *i +@@ -436,7 +443,8 @@ static void copy_key_value_info( KEY_VALUE_INFORMATION_CLASS info_class, void *i * NtEnumerateValueKey [NTDLL.@] * ZwEnumerateValueKey [NTDLL.@] */ @@ -1023,7 +1033,7 @@ index a104c2e..c8d8704 100644 KEY_VALUE_INFORMATION_CLASS info_class, void *info, DWORD length, DWORD *result_len ) { -@@ -473,7 +480,8 @@ NTSTATUS WINAPI NtEnumerateValueKey( HANDLE handle, ULONG index, +@@ -484,7 +492,8 @@ NTSTATUS WINAPI NtEnumerateValueKey( HANDLE handle, ULONG index, * NOTES * the name in the KeyValueInformation is never set */ @@ -1033,7 +1043,7 @@ index a104c2e..c8d8704 100644 KEY_VALUE_INFORMATION_CLASS info_class, void *info, DWORD length, DWORD *result_len ) { -@@ -575,7 +583,8 @@ NTSTATUS WINAPI RtlpNtQueryValueKey( HANDLE handle, ULONG *result_type, PBYTE de +@@ -586,7 +595,8 @@ NTSTATUS WINAPI RtlpNtQueryValueKey( HANDLE handle, ULONG *result_type, PBYTE de * NtFlushKey [NTDLL.@] * ZwFlushKey [NTDLL.@] */ @@ -1043,7 +1053,7 @@ index a104c2e..c8d8704 100644 { NTSTATUS ret; -@@ -595,7 +604,8 @@ NTSTATUS WINAPI NtFlushKey(HANDLE key) +@@ -606,7 +616,8 @@ NTSTATUS WINAPI NtFlushKey(HANDLE key) * NtLoadKey [NTDLL.@] * ZwLoadKey [NTDLL.@] */ @@ -1053,7 +1063,7 @@ index a104c2e..c8d8704 100644 { NTSTATUS ret; HANDLE hive; -@@ -625,7 +635,8 @@ NTSTATUS WINAPI NtLoadKey( const OBJECT_ATTRIBUTES *attr, OBJECT_ATTRIBUTES *fil +@@ -636,7 +647,8 @@ NTSTATUS WINAPI NtLoadKey( const OBJECT_ATTRIBUTES *attr, OBJECT_ATTRIBUTES *fil * NtNotifyChangeKey [NTDLL.@] * ZwNotifyChangeKey [NTDLL.@] */ @@ -1063,7 +1073,7 @@ index a104c2e..c8d8704 100644 IN HANDLE KeyHandle, IN HANDLE Event, IN PIO_APC_ROUTINE ApcRoutine OPTIONAL, -@@ -680,7 +691,8 @@ NTSTATUS WINAPI NtNotifyChangeKey( +@@ -691,7 +703,8 @@ NTSTATUS WINAPI NtNotifyChangeKey( * ZwQueryMultipleValueKey */ @@ -1073,7 +1083,7 @@ index a104c2e..c8d8704 100644 HANDLE KeyHandle, PKEY_MULTIPLE_VALUE_INFORMATION ListOfValuesToQuery, ULONG NumberOfItems, -@@ -698,7 +710,8 @@ NTSTATUS WINAPI NtQueryMultipleValueKey( +@@ -709,7 +722,8 @@ NTSTATUS WINAPI NtQueryMultipleValueKey( * NtReplaceKey [NTDLL.@] * ZwReplaceKey [NTDLL.@] */ @@ -1083,7 +1093,7 @@ index a104c2e..c8d8704 100644 IN POBJECT_ATTRIBUTES ObjectAttributes, IN HANDLE Key, IN POBJECT_ATTRIBUTES ReplacedObjectAttributes) -@@ -711,7 +724,8 @@ NTSTATUS WINAPI NtReplaceKey( +@@ -722,7 +736,8 @@ NTSTATUS WINAPI NtReplaceKey( * NtRestoreKey [NTDLL.@] * ZwRestoreKey [NTDLL.@] */ @@ -1093,7 +1103,7 @@ index a104c2e..c8d8704 100644 HANDLE KeyHandle, HANDLE FileHandle, ULONG RestoreFlags) -@@ -724,7 +738,8 @@ NTSTATUS WINAPI NtRestoreKey( +@@ -735,7 +750,8 @@ NTSTATUS WINAPI NtRestoreKey( * NtSaveKey [NTDLL.@] * ZwSaveKey [NTDLL.@] */ @@ -1103,7 +1113,7 @@ index a104c2e..c8d8704 100644 { NTSTATUS ret; -@@ -744,7 +759,8 @@ NTSTATUS WINAPI NtSaveKey(IN HANDLE KeyHandle, IN HANDLE FileHandle) +@@ -755,7 +771,8 @@ NTSTATUS WINAPI NtSaveKey(IN HANDLE KeyHandle, IN HANDLE FileHandle) * NtSetInformationKey [NTDLL.@] * ZwSetInformationKey [NTDLL.@] */ @@ -1113,7 +1123,7 @@ index a104c2e..c8d8704 100644 IN HANDLE KeyHandle, IN const int KeyInformationClass, IN PVOID KeyInformation, -@@ -764,7 +780,8 @@ NTSTATUS WINAPI NtSetInformationKey( +@@ -775,7 +792,8 @@ NTSTATUS WINAPI NtSetInformationKey( * win95 does not care about count for REG_SZ and finds out the len by itself (js) * NT does definitely care (aj) */ @@ -1123,7 +1133,7 @@ index a104c2e..c8d8704 100644 ULONG type, const void *data, ULONG count ) { NTSTATUS ret; -@@ -803,7 +820,8 @@ NTSTATUS WINAPI RtlpNtSetValueKey( HANDLE hkey, ULONG type, const void *data, +@@ -814,7 +832,8 @@ NTSTATUS WINAPI RtlpNtSetValueKey( HANDLE hkey, ULONG type, const void *data, * NtUnloadKey [NTDLL.@] * ZwUnloadKey [NTDLL.@] */ @@ -1133,7 +1143,7 @@ index a104c2e..c8d8704 100644 { NTSTATUS ret; -@@ -1410,7 +1428,8 @@ NTSTATUS WINAPI RtlWriteRegistryValue( ULONG RelativeTo, PCWSTR path, PCWSTR nam +@@ -1421,7 +1440,8 @@ NTSTATUS WINAPI RtlWriteRegistryValue( ULONG RelativeTo, PCWSTR path, PCWSTR nam * unless there is some app which explicitly depends on that, there is * no good reason to reproduce that. */ @@ -2091,5 +2101,5 @@ index 4d4bc3b..f30d94a 100644 struct file_view *view1, *view2; struct stat st1, st2; -- -2.6.1 +2.6.2 diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index dbecdddc..2d676339 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -52,7 +52,7 @@ usage() # Get the upstream commit sha upstream_commit() { - echo "60fedd23f95c66f4dce06c5c447de9ec99ebefa5" + echo "bfb845f9fccb2ff5bff0b0ba3238fec7f9f7b710" } # Show version information @@ -125,7 +125,6 @@ patch_enable_all () enable_ddraw_Write_Vtable="$1" enable_ddraw_ZBufferBitDepths="$1" enable_ddraw_d3d_execute_buffer="$1" - enable_dinput_Events="$1" enable_dinput_Initialize="$1" enable_dsound_EAX="$1" enable_dsound_Fast_Mixer="$1" @@ -284,7 +283,6 @@ patch_enable_all () enable_uxtheme_GTK_Theming="$1" enable_version_VerQueryValue="$1" enable_wbemdisp_ISWbemSecurity="$1" - enable_widl_Typelib_Generator="$1" enable_wine_inf_Performance="$1" enable_wine_inf_ProfileList_UserSID="$1" enable_wineboot_DriveSerial="$1" @@ -474,9 +472,6 @@ patch_enable () ddraw-d3d_execute_buffer) enable_ddraw_d3d_execute_buffer="$2" ;; - dinput-Events) - enable_dinput_Events="$2" - ;; dinput-Initialize) enable_dinput_Initialize="$2" ;; @@ -951,9 +946,6 @@ patch_enable () wbemdisp-ISWbemSecurity) enable_wbemdisp_ISWbemSecurity="$2" ;; - widl-Typelib_Generator) - enable_widl_Typelib_Generator="$2" - ;; wine.inf-Performance) enable_wine_inf_Performance="$2" ;; @@ -1493,9 +1485,6 @@ if test "$enable_category_stable" -eq 1; then if test "$enable_ddraw_EnumSurfaces" -gt 1; then abort "Patchset ddraw-EnumSurfaces disabled, but category-stable depends on that." fi - if test "$enable_dinput_Events" -gt 1; then - abort "Patchset dinput-Events disabled, but category-stable depends on that." - fi if test "$enable_dxgi_GetDesc" -gt 1; then abort "Patchset dxgi-GetDesc disabled, but category-stable depends on that." fi @@ -1674,7 +1663,6 @@ if test "$enable_category_stable" -eq 1; then enable_d3dx9_36_UpdateSkinnedMesh=1 enable_dbghelp_Debug_Symbols=1 enable_ddraw_EnumSurfaces=1 - enable_dinput_Events=1 enable_dxgi_GetDesc=1 enable_fonts_Missing_Fonts=1 enable_gdi32_MaxPixelFormats=1 @@ -2823,22 +2811,6 @@ if test "$enable_ddraw_d3d_execute_buffer" -eq 1; then ) >> "$patchlist" fi -# Patchset dinput-Events -# | -# | This patchset fixes the following Wine bugs: -# | * [#8854] Ensure X11 input events are handled even without explicit message loop -# | * [#34559] Scrolling causes mouse and screen to lock in Call to Power II -# | -# | Modified files: -# | * dlls/dinput/device.c, dlls/dinput/keyboard.c, dlls/dinput/mouse.c, dlls/dinput/tests/mouse.c -# | -if test "$enable_dinput_Events" -eq 1; then - patch_apply dinput-Events/0001-dinput-Ensure-X11-input-events-are-handled-even-with.patch - ( - echo '+ { "Sebastian Lackner", "dinput: Ensure X11 input events are handled even without explicit message loop.", 4 },'; - ) >> "$patchlist" -fi - # Patchset dinput-Initialize # | # | This patchset fixes the following Wine bugs: @@ -5512,27 +5484,6 @@ if test "$enable_wbemdisp_ISWbemSecurity" -eq 1; then ) >> "$patchlist" fi -# Patchset widl-Typelib_Generator -# | -# | Modified files: -# | * dlls/oleaut32/tests/test_tlb.idl, dlls/oleaut32/tests/typelib.c, tools/widl/parser.y, tools/widl/typetree.c, -# | tools/widl/write_msft.c -# | -if test "$enable_widl_Typelib_Generator" -eq 1; then - patch_apply widl-Typelib_Generator/0001-widl-Ignore-assignment-of-a-duplicate-uuid.-Resend.patch - patch_apply widl-Typelib_Generator/0002-widl-Attribute-uuid-takes-precedence-over-hidden-.-R.patch - patch_apply widl-Typelib_Generator/0003-widl-Attributes-of-the-alias-are-supposed-to-replace.patch - patch_apply widl-Typelib_Generator/0004-widl-Avoid-generating-duplicate-typelib-entries-for-.patch - patch_apply widl-Typelib_Generator/0005-oleaut32-tests-Add-a-bunch-of-new-tests-for-typelib-.patch - ( - echo '+ { "Dmitry Timoshkov", "widl: Ignore assignment of a duplicate uuid. Resend.", 1 },'; - echo '+ { "Dmitry Timoshkov", "widl: Attribute uuid() takes precedence over '\''hidden'\''. Resend.", 1 },'; - echo '+ { "Dmitry Timoshkov", "widl: Attributes of the alias are supposed to replace attributes of a tag in the typelib. Resend.", 1 },'; - echo '+ { "Dmitry Timoshkov", "widl: Avoid generating duplicate typelib entries for structure tag names. Resend.", 1 },'; - echo '+ { "Dmitry Timoshkov", "oleaut32/tests: Add a bunch of new tests for typelib generation.", 1 },'; - ) >> "$patchlist" -fi - # Patchset wine.inf-Performance # | # | This patchset fixes the following Wine bugs: @@ -5650,7 +5601,8 @@ fi # | * makedep-PARENTSPEC, ntdll-DllOverrides_WOW64, ntdll-Loader_Machine_Type, ntdll-DllRedirects, wined3d-DXTn # | # | Modified files: -# | * configure.ac, dlls/d3d11/device.c, dlls/wined3d-csmt/Makefile.in, dlls/wined3d-csmt/version.rc, dlls/wined3d/resource.c, +# | * configure.ac, dlls/d3d11/device.c, dlls/d3d11/texture.c, dlls/d3d8/surface.c, dlls/d3d8/volume.c, dlls/d3d9/surface.c, +# | dlls/d3d9/volume.c, dlls/wined3d-csmt/Makefile.in, dlls/wined3d-csmt/version.rc, dlls/wined3d/resource.c, # | dlls/wined3d/wined3d.spec, include/wine/wined3d.h # | if test "$enable_wined3d_CSMT_Helper" -eq 1; then @@ -6503,11 +6455,11 @@ fi # | * dlls/ws2_32/socket.c, dlls/ws2_32/tests/sock.c, dlls/ws2_32/ws2_32.spec, include/winsock2.h # | if test "$enable_ws2_32_WSAPoll" -eq 1; then - patch_apply ws2_32-WSAPoll/0001-include-Add-stuff-related-to-WSAPoll-try-2.patch + patch_apply ws2_32-WSAPoll/0001-include-Remove-check-for-__WINE_WNE_PORT_H-in-winsoc.patch patch_apply ws2_32-WSAPoll/0002-ws2_32-tests-Add-WSAPoll-tests.patch patch_apply ws2_32-WSAPoll/0003-ws2_32-Add-WSAPoll-implementation.patch ( - echo '+ { "Bruno Jesus", "include: Add stuff related to WSAPoll().", 2 },'; + echo '+ { "Sebastian Lackner", "include: Remove check for __WINE_WNE_PORT_H in winsock2.h.", 1 },'; echo '+ { "Bruno Jesus", "ws2_32/tests: Add WSAPoll() tests.", 1 },'; echo '+ { "Bruno Jesus", "ws2_32: Add WSAPoll() implementation.", 1 },'; ) >> "$patchlist" diff --git a/patches/widl-Typelib_Generator/0001-widl-Ignore-assignment-of-a-duplicate-uuid.-Resend.patch b/patches/widl-Typelib_Generator/0001-widl-Ignore-assignment-of-a-duplicate-uuid.-Resend.patch deleted file mode 100644 index 5fad4baa..00000000 --- a/patches/widl-Typelib_Generator/0001-widl-Ignore-assignment-of-a-duplicate-uuid.-Resend.patch +++ /dev/null @@ -1,58 +0,0 @@ -From d2819273e30e3f5c89cd2f704ddb4593e3cbb540 Mon Sep 17 00:00:00 2001 -From: Dmitry Timoshkov -Date: Sat, 31 Oct 2015 14:31:38 +0800 -Subject: widl: Ignore assignment of a duplicate uuid. Resend. - -MSDN KB285146 article describes this behaviour, and the tests in the last -patch confirm that. - -Technically this means that in the construct like - -typedef [uuid(016fe2ec-b2c8-45f8-b23b-39e53a75396d)] -enum _d { d1, d2 } d; - -only 'd' gets assigned the specified uuid, '_d' will get uuid offset set -to -1 (undefined) which leads to '_d' having NULL_GUID. This matches widl -behaviour, in this case widl emits a warning (mentioned in the KB article). - -I decided to leave emitting a warning about a duplicate uuid for enums same -way as for structures and unions, this may help recognizing real bugs instead -of hiding them (although apparently midl doesn't generate a warning for enums -while still ignoring the uuid assignment). - -Signed-off-by: Dmitry Timoshkov ---- - tools/widl/write_msft.c | 14 +++++++++++++- - 1 file changed, 13 insertions(+), 1 deletion(-) - -diff --git a/tools/widl/write_msft.c b/tools/widl/write_msft.c -index 98081f2..0992cf3 100644 ---- a/tools/widl/write_msft.c -+++ b/tools/widl/write_msft.c -@@ -494,10 +494,22 @@ static int ctl2_alloc_guid( - MSFT_GuidEntry *guid_space; - int hash_key; - -+ chat("adding uuid {%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x}\n", -+ guid->guid.Data1, guid->guid.Data2, guid->guid.Data3, -+ guid->guid.Data4[0], guid->guid.Data4[1], guid->guid.Data4[2], guid->guid.Data4[3], -+ guid->guid.Data4[4], guid->guid.Data4[5], guid->guid.Data4[6], guid->guid.Data4[7]); -+ - hash_key = ctl2_hash_guid(&guid->guid); - - offset = ctl2_find_guid(typelib, hash_key, &guid->guid); -- if (offset != -1) return offset; -+ if (offset != -1) -+ { -+ warning("duplicate uuid {%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x}\n", -+ guid->guid.Data1, guid->guid.Data2, guid->guid.Data3, -+ guid->guid.Data4[0], guid->guid.Data4[1], guid->guid.Data4[2], guid->guid.Data4[3], -+ guid->guid.Data4[4], guid->guid.Data4[5], guid->guid.Data4[6], guid->guid.Data4[7]); -+ return -1; -+ } - - offset = ctl2_alloc_segment(typelib, MSFT_SEG_GUID, sizeof(MSFT_GuidEntry), 0); - --- -2.6.1 - diff --git a/patches/widl-Typelib_Generator/0002-widl-Attribute-uuid-takes-precedence-over-hidden-.-R.patch b/patches/widl-Typelib_Generator/0002-widl-Attribute-uuid-takes-precedence-over-hidden-.-R.patch deleted file mode 100644 index 9a7e85e6..00000000 --- a/patches/widl-Typelib_Generator/0002-widl-Attribute-uuid-takes-precedence-over-hidden-.-R.patch +++ /dev/null @@ -1,61 +0,0 @@ -From a9e4b8375ccef3198df93f9021a7262bb5578033 Mon Sep 17 00:00:00 2001 -From: Dmitry Timoshkov -Date: Sat, 31 Oct 2015 14:31:42 +0800 -Subject: widl: Attribute uuid() takes precedence over 'hidden'. Resend. - -This means that definition like - -[uuid(016fe2ec-b2c8-45f8-b23b-39e53a753900),hidden] -typedef struct _m { int m1; } m; - -makes both '_m' and 'm' appear in the typelib, and the tests confirm that. - -Signed-off-by: Dmitry Timoshkov ---- - tools/widl/parser.y | 15 ++++++--------- - 1 file changed, 6 insertions(+), 9 deletions(-) - -diff --git a/tools/widl/parser.y b/tools/widl/parser.y -index b42b4a2..db5897e 100644 ---- a/tools/widl/parser.y -+++ b/tools/widl/parser.y -@@ -123,7 +123,6 @@ static statement_t *make_statement_importlib(const char *str); - static statement_t *make_statement_module(type_t *type); - static statement_t *make_statement_typedef(var_list_t *names); - static statement_t *make_statement_import(const char *str); --static statement_t *make_statement_typedef(var_list_t *names); - static statement_list_t *append_statement(statement_list_t *list, statement_t *stmt); - static statement_list_t *append_statements(statement_list_t *, statement_list_t *); - static attr_list_t *append_attribs(attr_list_t *, attr_list_t *); -@@ -1881,22 +1880,20 @@ static type_t *reg_typedefs(decl_spec_t *decl_spec, declarator_list_t *decls, at - const declarator_t *decl; - type_t *type = decl_spec->type; - -+ if (is_attr(attrs, ATTR_UUID) && !is_attr(attrs, ATTR_PUBLIC)) -+ attrs = append_attr( attrs, make_attr(ATTR_PUBLIC) ); -+ - /* We must generate names for tagless enum, struct or union. - Typedef-ing a tagless enum, struct or union means we want the typedef - to be included in a library hence the public attribute. */ - if ((type_get_type_detect_alias(type) == TYPE_ENUM || - type_get_type_detect_alias(type) == TYPE_STRUCT || - type_get_type_detect_alias(type) == TYPE_UNION || -- type_get_type_detect_alias(type) == TYPE_ENCAPSULATED_UNION) && -- !type->name) -+ type_get_type_detect_alias(type) == TYPE_ENCAPSULATED_UNION)) - { -- if (! is_attr(attrs, ATTR_PUBLIC) && ! is_attr (attrs, ATTR_HIDDEN)) -- attrs = append_attr( attrs, make_attr(ATTR_PUBLIC) ); -- type->name = gen_name(); -+ if (!type->name) -+ type->name = gen_name(); - } -- else if (is_attr(attrs, ATTR_UUID) && !is_attr(attrs, ATTR_PUBLIC) -- && !is_attr(attrs, ATTR_HIDDEN)) -- attrs = append_attr( attrs, make_attr(ATTR_PUBLIC) ); - - LIST_FOR_EACH_ENTRY( decl, decls, const declarator_t, entry ) - { --- -2.6.1 - diff --git a/patches/widl-Typelib_Generator/0003-widl-Attributes-of-the-alias-are-supposed-to-replace.patch b/patches/widl-Typelib_Generator/0003-widl-Attributes-of-the-alias-are-supposed-to-replace.patch deleted file mode 100644 index 42cb1db3..00000000 --- a/patches/widl-Typelib_Generator/0003-widl-Attributes-of-the-alias-are-supposed-to-replace.patch +++ /dev/null @@ -1,68 +0,0 @@ -From 6efefd95152a5dd8f05c95558c783e42562d4bf1 Mon Sep 17 00:00:00 2001 -From: Dmitry Timoshkov -Date: Sat, 31 Oct 2015 14:31:47 +0800 -Subject: widl: Attributes of the alias are supposed to replace attributes of a - tag in the typelib. Resend. - -I have limited this functionality only to typedefs for structures, unions -and enums since I have the tests only for this types. - -I've added the tests for version() and helpcontext() attributes suggested -by Huw to the last patch with tests to make this change more convincing. - -In practice this means that the difinitions in an .idl like - -[uuid(016fe2ec-b2c8-45f8-b23b-39e53a753901),restricted] -struct _n { int n1; }; -[uuid(016fe2ec-b2c8-45f8-b23b-39e53a753902),hidden] -typedef struct _n n; -[uuid(016fe2ec-b2c8-45f8-b23b-39e53a753903)] -typedef struct _n nn; - -lead to the following typelib records: - -{ - "_n", - "{016fe2ec-b2c8-45f8-b23b-39e53a753903}", - /*kind*/ TKIND_RECORD, /*flags*/ 0, /*align*/ 4, /*size*/ sizeof(struct _n), - /*#vtbl*/ 0, /*#func*/ 0 -}, -{ - "n", - "{016fe2ec-b2c8-45f8-b23b-39e53a753902}", - /*kind*/ TKIND_ALIAS, /*flags*/ TYPEFLAG_FHIDDEN, /*align*/ 4, /*size*/ 4, - /*#vtbl*/ 0, /*#func*/ 0 -}, -{ - "nn", - "{00000000-0000-0000-0000-000000000000}", - /*kind*/ TKIND_ALIAS, /*flags*/ 0, /*align*/ 4, /*size*/ 4, - /*#vtbl*/ 0, /*#func*/ 0 -} - -and the tests confirm that. But this change is very specific to typelibs -and breaks header generation, thus it's limited only to the typelib mode. - -Signed-off-by: Dmitry Timoshkov ---- - tools/widl/parser.y | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/tools/widl/parser.y b/tools/widl/parser.y -index db5897e..4309833 100644 ---- a/tools/widl/parser.y -+++ b/tools/widl/parser.y -@@ -1893,6 +1893,10 @@ static type_t *reg_typedefs(decl_spec_t *decl_spec, declarator_list_t *decls, at - { - if (!type->name) - type->name = gen_name(); -+ -+ /* replace existing attributes when generating a typelib */ -+ if (do_typelib) -+ type->attrs = attrs; - } - - LIST_FOR_EACH_ENTRY( decl, decls, const declarator_t, entry ) --- -2.6.1 - diff --git a/patches/widl-Typelib_Generator/0004-widl-Avoid-generating-duplicate-typelib-entries-for-.patch b/patches/widl-Typelib_Generator/0004-widl-Avoid-generating-duplicate-typelib-entries-for-.patch deleted file mode 100644 index 30f3c402..00000000 --- a/patches/widl-Typelib_Generator/0004-widl-Avoid-generating-duplicate-typelib-entries-for-.patch +++ /dev/null @@ -1,38 +0,0 @@ -From a0a2310c05b8205b67a9e4aeaa6bb98d68746b52 Mon Sep 17 00:00:00 2001 -From: Dmitry Timoshkov -Date: Sat, 31 Oct 2015 14:31:51 +0800 -Subject: widl: Avoid generating duplicate typelib entries for structure tag - names. Resend. - -I've added the tests to show how it's supposed to behave. Without this -patch a generated typelib has numerous duplicate '_n' entries. - -This is merely an optimization for the typelib generator, but this change -breaks header generation, thus it's limited only to the typelib mode. - -Signed-off-by: Dmitry Timoshkov ---- - tools/widl/typetree.c | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) - -diff --git a/tools/widl/typetree.c b/tools/widl/typetree.c -index 5925d40..e316614 100644 ---- a/tools/widl/typetree.c -+++ b/tools/widl/typetree.c -@@ -300,7 +300,12 @@ type_t *type_new_enum(const char *name, struct namespace *namespace, int defined - type_t *type_new_struct(char *name, struct namespace *namespace, int defined, var_list_t *fields) - { - type_t *tag_type = name ? find_type(name, namespace, tsSTRUCT) : NULL; -- type_t *t = make_type(TYPE_STRUCT); -+ type_t *t; -+ -+ /* avoid creating duplicate typelib type entries */ -+ if (tag_type && do_typelib) return tag_type; -+ -+ t = make_type(TYPE_STRUCT); - t->name = name; - t->namespace = namespace; - --- -2.6.1 - diff --git a/patches/widl-Typelib_Generator/0005-oleaut32-tests-Add-a-bunch-of-new-tests-for-typelib-.patch b/patches/widl-Typelib_Generator/0005-oleaut32-tests-Add-a-bunch-of-new-tests-for-typelib-.patch deleted file mode 100644 index d136929e..00000000 --- a/patches/widl-Typelib_Generator/0005-oleaut32-tests-Add-a-bunch-of-new-tests-for-typelib-.patch +++ /dev/null @@ -1,491 +0,0 @@ -From e8c77ae1630f628cf2d43049399ca99b24514548 Mon Sep 17 00:00:00 2001 -From: Dmitry Timoshkov -Date: Sat, 31 Oct 2015 14:31:55 +0800 -Subject: oleaut32/tests: Add a bunch of new tests for typelib generation. - -Signed-off-by: Dmitry Timoshkov ---- - dlls/oleaut32/tests/test_tlb.idl | 50 +++++++++ - dlls/oleaut32/tests/typelib.c | 237 +++++++++++++++++++++++++++++++++++---- - 2 files changed, 265 insertions(+), 22 deletions(-) - -diff --git a/dlls/oleaut32/tests/test_tlb.idl b/dlls/oleaut32/tests/test_tlb.idl -index 8275c37..7ae5565 100644 ---- a/dlls/oleaut32/tests/test_tlb.idl -+++ b/dlls/oleaut32/tests/test_tlb.idl -@@ -2,6 +2,7 @@ - * ITypeLib test IDL - we dump it and compare results in typelib.c - * - * Copyright 2007 Google (Mikolaj Zalewski) -+ * Copyright 2015 Dmitry Timoshkov - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public -@@ -28,6 +29,34 @@ library Test - { - importlib("stdole2.tlb"); - -+ interface child_iface; -+ interface parent_iface; -+ -+ [uuid(b14b6bb5-904e-4ff9-b247-bd361f7aa001)] -+ interface parent_iface : IUnknown -+ { -+ HRESULT test1([out,retval] child_iface **); -+ } -+ [uuid(b14b6bb5-904e-4ff9-b247-bd361f7aa002)] -+ interface child_iface: parent_iface -+ { -+ HRESULT test2(void); -+ } -+ -+ [uuid(016fe2ec-b2c8-45f8-b23b-39e53a753901),restricted] -+ struct _n { int n1; }; -+ [uuid(016fe2ec-b2c8-45f8-b23b-39e53a753902),hidden] -+ typedef struct _n n; -+ [uuid(016fe2ec-b2c8-45f8-b23b-39e53a753903),version(1.2),helpcontext(3)] -+ typedef struct _n nn; -+ -+ [uuid(016fe2ec-b2c8-45f8-b23b-39e53a753904),restricted] -+ struct _m { int m1; }; -+ [uuid(016fe2ec-b2c8-45f8-b23b-39e53a753905),hidden,version(1.2)] -+ typedef struct _m m; -+ [uuid(016fe2ec-b2c8-45f8-b23b-39e53a753906),helpcontext(3)] -+ typedef struct _m mm; -+ - [dual,uuid(b14b6bb5-904e-4ff9-b247-bd361f7aaedd)] - interface IDualIface : IDispatch - { -@@ -59,6 +88,9 @@ library Test - BSTR bstr; - }; - -+ typedef [uuid(016fe2ec-b2c8-45f8-b23b-39e53a75396a),restricted] -+ int t_INT; -+ - typedef [public] enum _a { a1, a2 } a; - typedef [public] enum aa { aa1, aa2 } aa; - typedef enum _b { b1, b2 } b; -@@ -66,11 +98,29 @@ library Test - typedef [uuid(016fe2ec-b2c8-45f8-b23b-39e53a75396b)] enum _c { c1, c2 } c; - typedef [uuid(016fe2ec-b2c8-45f8-b23b-39e53a75396c)] enum cc { cc1, cc2 } cc; - -+ typedef [uuid(016fe2ec-b2c8-45f8-b23b-39e53a75396d),restricted,hidden] -+ enum _d { d1, d2 } d; -+ typedef [uuid(016fe2ec-b2c8-45f8-b23b-39e53a75396e),restricted,hidden] -+ enum dd { dd1, dd2 } dd; -+ -+ typedef [uuid(016fe2ec-b2c8-45f8-b23b-39e53a753970),restricted,hidden] -+ struct _e { int e1; } e; -+ typedef [uuid(016fe2ec-b2c8-45f8-b23b-39e53a753971),restricted,hidden] -+ struct ee { int ee1; } ee; -+ -+ typedef [uuid(016fe2ec-b2c8-45f8-b23b-39e53a753972),restricted,hidden] -+ union _f { int f1; BSTR *f2; } f; -+ typedef [uuid(016fe2ec-b2c8-45f8-b23b-39e53a753973),restricted,hidden] -+ union ff { int ff1; BSTR *ff2; } ff; -+ - [uuid(ec5dfcd6-eeb0-4cd6-b51e-8030e1dac00a)] - interface ITestIface : IDispatch - { - HRESULT test1(a value); - HRESULT test2(b value); - HRESULT test3(c value); -+ HRESULT test4(d value); -+ HRESULT test5(e value); -+ HRESULT test6(f value); - } - } -diff --git a/dlls/oleaut32/tests/typelib.c b/dlls/oleaut32/tests/typelib.c -index 1d13b89..977d7a8 100644 ---- a/dlls/oleaut32/tests/typelib.c -+++ b/dlls/oleaut32/tests/typelib.c -@@ -2,7 +2,7 @@ - * ITypeLib and ITypeInfo test - * - * Copyright 2004 Jacek Caban -- * Copyright 2006 Dmitry Timoshkov -+ * Copyright 2006,2015 Dmitry Timoshkov - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public -@@ -3862,6 +3862,10 @@ static char *print_size(BSTR name, TYPEATTR *attr) - sprintf(buf, "sizeof(struct %s)", dump_string(name)); - break; - -+ case TKIND_UNION: -+ sprintf(buf, "sizeof(union %s)", dump_string(name)); -+ break; -+ - case TKIND_ENUM: - case TKIND_ALIAS: - sprintf(buf, "4"); -@@ -3971,9 +3975,10 @@ static void test_dump_typelib(const char *name) - { - TYPEATTR *attr; - BSTR name; -+ DWORD help_ctx; - int f = 0; - -- OLE_CHECK(ITypeLib_GetDocumentation(lib, i, &name, NULL, NULL, NULL)); -+ OLE_CHECK(ITypeLib_GetDocumentation(lib, i, &name, NULL, &help_ctx, NULL)); - printf("{\n" - " \"%s\",\n", dump_string(name)); - -@@ -3983,10 +3988,11 @@ static void test_dump_typelib(const char *name) - printf(" \"%s\",\n", wine_dbgstr_guid(&attr->guid)); - - printf(" /*kind*/ %s, /*flags*/ %s, /*align*/ %d, /*size*/ %s,\n" -- " /*#vtbl*/ %d, /*#func*/ %d", -+ " /*helpctx*/ 0x%04x, /*version*/ 0x%08x, /*#vtbl*/ %d, /*#func*/ %d", - map_value(attr->typekind, tkind_map), dump_type_flags(attr->wTypeFlags), -- attr->cbAlignment, print_size(name, attr), attr->cbSizeVft/sizeof(void*), -- attr->cFuncs); -+ attr->cbAlignment, print_size(name, attr), -+ help_ctx, MAKELONG(attr->wMinorVerNum, attr->wMajorVerNum), -+ attr->cbSizeVft/sizeof(void*), attr->cFuncs); - - if (attr->cFuncs) printf(",\n {\n"); - else printf("\n"); -@@ -4072,6 +4078,8 @@ typedef struct _type_info - WORD wTypeFlags; - USHORT cbAlignment; - USHORT cbSizeInstance; -+ USHORT help_ctx; -+ DWORD version; - USHORT cbSizeVft; - USHORT cFuncs; - function_info funcs[20]; -@@ -4080,10 +4088,88 @@ typedef struct _type_info - static const type_info info[] = { - /*** Autogenerated data. Do not edit, change the generator above instead. ***/ - { -+ "parent_iface", -+ "{b14b6bb5-904e-4ff9-b247-bd361f7aa001}", -+ /*kind*/ TKIND_INTERFACE, /*flags*/ 0, /*align*/ 4, /*size*/ sizeof(parent_iface*), -+ /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 4, /*#func*/ 1, -+ { -+ { -+ /*id*/ 0x60010000, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, -+ /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 3, /*#scodes*/ 0, /*flags*/ 0, -+ {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */ -+ { /* params */ -+ {VT_PTR, -1, PARAMFLAG_FOUT|PARAMFLAG_FRETVAL}, -+ {-1, 0, 0} -+ }, -+ { /* names */ -+ "test1", -+ "__MIDL__parent_iface0000", -+ NULL, -+ }, -+ }, -+ } -+}, -+{ -+ "child_iface", -+ "{b14b6bb5-904e-4ff9-b247-bd361f7aa002}", -+ /*kind*/ TKIND_INTERFACE, /*flags*/ 0, /*align*/ 4, /*size*/ sizeof(child_iface*), -+ /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 5, /*#func*/ 1, -+ { -+ { -+ /*id*/ 0x60020000, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, -+ /*#param*/ 0, /*#opt*/ 0, /*vtbl*/ 4, /*#scodes*/ 0, /*flags*/ 0, -+ {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */ -+ { /* params */ -+ {-1, 0, 0} -+ }, -+ { /* names */ -+ "test2", -+ NULL, -+ }, -+ }, -+ } -+}, -+{ -+ "_n", -+ "{016fe2ec-b2c8-45f8-b23b-39e53a753903}", -+ /*kind*/ TKIND_RECORD, /*flags*/ 0, /*align*/ 4, /*size*/ sizeof(struct _n), -+ /*helpctx*/ 0x0003, /*version*/ 0x00010002, /*#vtbl*/ 0, /*#func*/ 0 -+}, -+{ -+ "n", -+ "{016fe2ec-b2c8-45f8-b23b-39e53a753902}", -+ /*kind*/ TKIND_ALIAS, /*flags*/ TYPEFLAG_FHIDDEN, /*align*/ 4, /*size*/ 4, -+ /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0 -+}, -+{ -+ "nn", -+ "{00000000-0000-0000-0000-000000000000}", -+ /*kind*/ TKIND_ALIAS, /*flags*/ 0, /*align*/ 4, /*size*/ 4, -+ /*helpctx*/ 0x0003, /*version*/ 0x00010002, /*#vtbl*/ 0, /*#func*/ 0 -+}, -+{ -+ "_m", -+ "{016fe2ec-b2c8-45f8-b23b-39e53a753906}", -+ /*kind*/ TKIND_RECORD, /*flags*/ 0, /*align*/ 4, /*size*/ sizeof(struct _m), -+ /*helpctx*/ 0x0003, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0 -+}, -+{ -+ "m", -+ "{016fe2ec-b2c8-45f8-b23b-39e53a753905}", -+ /*kind*/ TKIND_ALIAS, /*flags*/ TYPEFLAG_FHIDDEN, /*align*/ 4, /*size*/ 4, -+ /*helpctx*/ 0x0000, /*version*/ 0x00010002, /*#vtbl*/ 0, /*#func*/ 0 -+}, -+{ -+ "mm", -+ "{00000000-0000-0000-0000-000000000000}", -+ /*kind*/ TKIND_ALIAS, /*flags*/ 0, /*align*/ 4, /*size*/ 4, -+ /*helpctx*/ 0x0003, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0 -+}, -+{ - "IDualIface", - "{b14b6bb5-904e-4ff9-b247-bd361f7aaedd}", - /*kind*/ TKIND_DISPATCH, /*flags*/ TYPEFLAG_FDISPATCHABLE|TYPEFLAG_FDUAL, /*align*/ 4, /*size*/ sizeof(IDualIface*), -- /*#vtbl*/ 7, /*#func*/ 8, -+ /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 7, /*#func*/ 8, - { - { - /*id*/ 0x60000000, /*func*/ FUNC_DISPATCH, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, -@@ -4225,7 +4311,7 @@ static const type_info info[] = { - "ISimpleIface", - "{ec5dfcd6-eeb0-4cd6-b51e-8030e1dac009}", - /*kind*/ TKIND_INTERFACE, /*flags*/ TYPEFLAG_FDISPATCHABLE, /*align*/ 4, /*size*/ sizeof(ISimpleIface*), -- /*#vtbl*/ 8, /*#func*/ 1, -+ /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 8, /*#func*/ 1, - { - { - /*id*/ 0x60020000, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, -@@ -4245,67 +4331,127 @@ static const type_info info[] = { - "test_struct", - "{4029f190-ca4a-4611-aeb9-673983cb96dd}", - /*kind*/ TKIND_RECORD, /*flags*/ 0, /*align*/ 4, /*size*/ sizeof(struct test_struct), -- /*#vtbl*/ 0, /*#func*/ 0 -+ /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0 - }, - { - "test_struct2", - "{4029f190-ca4a-4611-aeb9-673983cb96de}", - /*kind*/ TKIND_RECORD, /*flags*/ 0, /*align*/ 4, /*size*/ sizeof(struct test_struct2), -- /*#vtbl*/ 0, /*#func*/ 0 -+ /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0 -+}, -+{ -+ "t_INT", -+ "{016fe2ec-b2c8-45f8-b23b-39e53a75396a}", -+ /*kind*/ TKIND_ALIAS, /*flags*/ TYPEFLAG_FRESTRICTED, /*align*/ 4, /*size*/ 4, -+ /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0 - }, - { - "a", - "{00000000-0000-0000-0000-000000000000}", - /*kind*/ TKIND_ALIAS, /*flags*/ 0, /*align*/ 4, /*size*/ 4, -- /*#vtbl*/ 0, /*#func*/ 0 -+ /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0 - }, - { - "_a", - "{00000000-0000-0000-0000-000000000000}", - /*kind*/ TKIND_ENUM, /*flags*/ 0, /*align*/ 4, /*size*/ 4, -- /*#vtbl*/ 0, /*#func*/ 0 -+ /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0 - }, - { - "aa", - "{00000000-0000-0000-0000-000000000000}", - /*kind*/ TKIND_ENUM, /*flags*/ 0, /*align*/ 4, /*size*/ 4, -- /*#vtbl*/ 0, /*#func*/ 0 -+ /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0 - }, - { - "_b", - "{00000000-0000-0000-0000-000000000000}", - /*kind*/ TKIND_ENUM, /*flags*/ 0, /*align*/ 4, /*size*/ 4, -- /*#vtbl*/ 0, /*#func*/ 0 -+ /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0 - }, - { - "bb", - "{00000000-0000-0000-0000-000000000000}", - /*kind*/ TKIND_ENUM, /*flags*/ 0, /*align*/ 4, /*size*/ 4, -- /*#vtbl*/ 0, /*#func*/ 0 -+ /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0 - }, - { - "c", - "{016fe2ec-b2c8-45f8-b23b-39e53a75396b}", - /*kind*/ TKIND_ALIAS, /*flags*/ 0, /*align*/ 4, /*size*/ 4, -- /*#vtbl*/ 0, /*#func*/ 0 -+ /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0 - }, - { - "_c", - "{00000000-0000-0000-0000-000000000000}", - /*kind*/ TKIND_ENUM, /*flags*/ 0, /*align*/ 4, /*size*/ 4, -- /*#vtbl*/ 0, /*#func*/ 0 -+ /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0 - }, - { - "cc", -- "{00000000-0000-0000-0000-000000000000}", -+ "{016fe2ec-b2c8-45f8-b23b-39e53a75396c}", - /*kind*/ TKIND_ENUM, /*flags*/ 0, /*align*/ 4, /*size*/ 4, -- /*#vtbl*/ 0, /*#func*/ 0 -+ /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0 -+}, -+{ -+ "d", -+ "{016fe2ec-b2c8-45f8-b23b-39e53a75396d}", -+ /*kind*/ TKIND_ALIAS, /*flags*/ TYPEFLAG_FRESTRICTED|TYPEFLAG_FHIDDEN, /*align*/ 4, /*size*/ 4, -+ /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0 -+}, -+{ -+ "_d", -+ "{00000000-0000-0000-0000-000000000000}", -+ /*kind*/ TKIND_ENUM, /*flags*/ TYPEFLAG_FRESTRICTED|TYPEFLAG_FHIDDEN, /*align*/ 4, /*size*/ 4, -+ /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0 -+}, -+{ -+ "dd", -+ "{016fe2ec-b2c8-45f8-b23b-39e53a75396e}", -+ /*kind*/ TKIND_ENUM, /*flags*/ TYPEFLAG_FRESTRICTED|TYPEFLAG_FHIDDEN, /*align*/ 4, /*size*/ 4, -+ /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0 -+}, -+{ -+ "e", -+ "{016fe2ec-b2c8-45f8-b23b-39e53a753970}", -+ /*kind*/ TKIND_ALIAS, /*flags*/ TYPEFLAG_FRESTRICTED|TYPEFLAG_FHIDDEN, /*align*/ 4, /*size*/ 4, -+ /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0 -+}, -+{ -+ "_e", -+ "{00000000-0000-0000-0000-000000000000}", -+ /*kind*/ TKIND_RECORD, /*flags*/ TYPEFLAG_FRESTRICTED|TYPEFLAG_FHIDDEN, /*align*/ 4, /*size*/ sizeof(struct _e), -+ /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0 -+}, -+{ -+ "ee", -+ "{016fe2ec-b2c8-45f8-b23b-39e53a753971}", -+ /*kind*/ TKIND_RECORD, /*flags*/ TYPEFLAG_FRESTRICTED|TYPEFLAG_FHIDDEN, /*align*/ 4, /*size*/ sizeof(struct ee), -+ /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0 -+}, -+{ -+ "f", -+ "{016fe2ec-b2c8-45f8-b23b-39e53a753972}", -+ /*kind*/ TKIND_ALIAS, /*flags*/ TYPEFLAG_FRESTRICTED|TYPEFLAG_FHIDDEN, /*align*/ 4, /*size*/ 4, -+ /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0 -+}, -+{ -+ "_f", -+ "{00000000-0000-0000-0000-000000000000}", -+ /*kind*/ TKIND_UNION, /*flags*/ TYPEFLAG_FRESTRICTED|TYPEFLAG_FHIDDEN, /*align*/ 4, /*size*/ sizeof(union _f), -+ /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0 -+}, -+{ -+ "ff", -+ "{016fe2ec-b2c8-45f8-b23b-39e53a753973}", -+ /*kind*/ TKIND_UNION, /*flags*/ TYPEFLAG_FRESTRICTED|TYPEFLAG_FHIDDEN, /*align*/ 4, /*size*/ sizeof(union ff), -+ /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 0, /*#func*/ 0 - }, - { - "ITestIface", - "{ec5dfcd6-eeb0-4cd6-b51e-8030e1dac00a}", - /*kind*/ TKIND_INTERFACE, /*flags*/ TYPEFLAG_FDISPATCHABLE, /*align*/ 4, /*size*/ sizeof(ITestIface*), -- /*#vtbl*/ 10, /*#func*/ 3, -+ /*helpctx*/ 0x0000, /*version*/ 0x00000000, /*#vtbl*/ 13, /*#func*/ 6, - { - { - /*id*/ 0x60020000, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, -@@ -4349,6 +4495,48 @@ static const type_info info[] = { - NULL, - }, - }, -+ { -+ /*id*/ 0x60020003, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, -+ /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 10, /*#scodes*/ 0, /*flags*/ 0, -+ {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */ -+ { /* params */ -+ {VT_USERDEFINED, TKIND_ALIAS, PARAMFLAG_NONE}, -+ {-1, 0, 0} -+ }, -+ { /* names */ -+ "test4", -+ "value", -+ NULL, -+ }, -+ }, -+ { -+ /*id*/ 0x60020004, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, -+ /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 11, /*#scodes*/ 0, /*flags*/ 0, -+ {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */ -+ { /* params */ -+ {VT_USERDEFINED, TKIND_ALIAS, PARAMFLAG_NONE}, -+ {-1, 0, 0} -+ }, -+ { /* names */ -+ "test5", -+ "value", -+ NULL, -+ }, -+ }, -+ { -+ /*id*/ 0x60020005, /*func*/ FUNC_PUREVIRTUAL, /*inv*/ INVOKE_FUNC, /*call*/ CC_STDCALL, -+ /*#param*/ 1, /*#opt*/ 0, /*vtbl*/ 12, /*#scodes*/ 0, /*flags*/ 0, -+ {VT_HRESULT, -1, PARAMFLAG_NONE}, /* ret */ -+ { /* params */ -+ {VT_USERDEFINED, TKIND_ALIAS, PARAMFLAG_NONE}, -+ {-1, 0, 0} -+ }, -+ { /* names */ -+ "test6", -+ "value", -+ NULL, -+ }, -+ }, - } - } - }; -@@ -4374,10 +4562,11 @@ static void test_dump_typelib(const char *name) - ITypeInfo *typeinfo; - TYPEATTR *typeattr; - BSTR bstrIfName; -+ DWORD help_ctx; - - trace("Interface %s\n", ti->name); - ole_check(ITypeLib_GetTypeInfo(typelib, iface, &typeinfo)); -- ole_check(ITypeLib_GetDocumentation(typelib, iface, &bstrIfName, NULL, NULL, NULL)); -+ ole_check(ITypeLib_GetDocumentation(typelib, iface, &bstrIfName, NULL, &help_ctx, NULL)); - expect_wstr_acpval(bstrIfName, ti->name); - SysFreeString(bstrIfName); - -@@ -4385,7 +4574,7 @@ static void test_dump_typelib(const char *name) - expect_int(typeattr->typekind, ti->type); - expect_hex(typeattr->wTypeFlags, ti->wTypeFlags); - /* FIXME: remove once widl is fixed */ -- if (typeattr->typekind == TKIND_ALIAS) -+ if (typeattr->typekind == TKIND_ALIAS && typeattr->cbAlignment != ti->cbAlignment) - { - todo_wine /* widl generates broken typelib and typeattr just reflects that */ - ok(typeattr->cbAlignment == ti->cbAlignment || broken(typeattr->cbAlignment == 1), -@@ -4399,6 +4588,8 @@ todo_wine /* widl generates broken typelib and typeattr just reflects that */ - expect_int(typeattr->cbAlignment, ti->cbAlignment); - expect_int(typeattr->cbSizeInstance, ti->cbSizeInstance); - } -+ expect_int(help_ctx, ti->help_ctx); -+ expect_int(MAKELONG(typeattr->wMinorVerNum, typeattr->wMajorVerNum), ti->version); - expect_int(typeattr->cbSizeVft, ti->cbSizeVft * sizeof(void*)); - expect_int(typeattr->cFuncs, ti->cFuncs); - -@@ -4445,7 +4636,9 @@ todo_wine /* widl generates broken typelib and typeattr just reflects that */ - ole_check(ITypeInfo_GetNames(typeinfo, desc->memid, namesTab, 256, &cNames)); - for (i = 0; i < cNames; i++) - { -- expect_wstr_acpval(namesTab[i], fn_info->names[i]); -+ /* automatically generated names differ between midl and widl */ -+ if (strncmp(fn_info->names[i], "__MIDL__", 8) != 0) -+ expect_wstr_acpval(namesTab[i], fn_info->names[i]); - SysFreeString(namesTab[i]); - } - expect_null(fn_info->names[cNames]); --- -2.6.1 - diff --git a/patches/widl-Typelib_Generator/definition b/patches/widl-Typelib_Generator/definition deleted file mode 100644 index 9d6c81d4..00000000 --- a/patches/widl-Typelib_Generator/definition +++ /dev/null @@ -1 +0,0 @@ -Fixes: Fix multiple issues in widl typelib generation diff --git a/patches/wined3d-CSMT_Helper/0001-wined3d-Rename-wined3d_resource_-un-map-to-wined3d_r.patch b/patches/wined3d-CSMT_Helper/0001-wined3d-Rename-wined3d_resource_-un-map-to-wined3d_r.patch index 168f2f43..603622dc 100644 --- a/patches/wined3d-CSMT_Helper/0001-wined3d-Rename-wined3d_resource_-un-map-to-wined3d_r.patch +++ b/patches/wined3d-CSMT_Helper/0001-wined3d-Rename-wined3d_resource_-un-map-to-wined3d_r.patch @@ -1,4 +1,4 @@ -From d28eecc1251b483848ae2bf539ca5398c8575946 Mon Sep 17 00:00:00 2001 +From 8eaad5ab61fe01c56e9d2622b11fd9f1e058273e Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Wed, 4 Nov 2015 19:31:30 +0100 Subject: wined3d: Rename wined3d_resource_(un)map to @@ -7,13 +7,18 @@ Subject: wined3d: Rename wined3d_resource_(un)map to To avoid name conflicts in the CSMT patchset. --- dlls/d3d11/device.c | 4 ++-- + dlls/d3d11/texture.c | 8 ++++---- + dlls/d3d8/surface.c | 4 ++-- + dlls/d3d8/volume.c | 4 ++-- + dlls/d3d9/surface.c | 4 ++-- + dlls/d3d9/volume.c | 4 ++-- dlls/wined3d/resource.c | 4 ++-- dlls/wined3d/wined3d.spec | 4 ++-- include/wine/wined3d.h | 6 +++--- - 4 files changed, 9 insertions(+), 9 deletions(-) + 9 files changed, 21 insertions(+), 21 deletions(-) diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c -index ca8b0ef..f5acbff 100644 +index 4560f52..b5cb5ed 100644 --- a/dlls/d3d11/device.c +++ b/dlls/d3d11/device.c @@ -215,7 +215,7 @@ static HRESULT STDMETHODCALLTYPE d3d11_immediate_context_Map(ID3D11DeviceContext @@ -34,6 +39,134 @@ index ca8b0ef..f5acbff 100644 wined3d_mutex_unlock(); } +diff --git a/dlls/d3d11/texture.c b/dlls/d3d11/texture.c +index 011a5f7..99e531a 100644 +--- a/dlls/d3d11/texture.c ++++ b/dlls/d3d11/texture.c +@@ -366,7 +366,7 @@ static HRESULT STDMETHODCALLTYPE d3d10_texture2d_Map(ID3D10Texture2D *iface, UIN + FIXME("Ignoring map_flags %#x.\n", map_flags); + + wined3d_mutex_lock(); +- if (SUCCEEDED(hr = wined3d_resource_map(wined3d_texture_get_resource(texture->wined3d_texture), sub_resource_idx, ++ if (SUCCEEDED(hr = wined3d_resource_sub_resource_map(wined3d_texture_get_resource(texture->wined3d_texture), sub_resource_idx, + &wined3d_map_desc, NULL, wined3d_map_flags_from_d3d11_map_type(map_type)))) + { + mapped_texture->pData = wined3d_map_desc.data; +@@ -384,7 +384,7 @@ static void STDMETHODCALLTYPE d3d10_texture2d_Unmap(ID3D10Texture2D *iface, UINT + TRACE("iface %p, sub_resource_idx %u.\n", iface, sub_resource_idx); + + wined3d_mutex_lock(); +- wined3d_resource_unmap(wined3d_texture_get_resource(texture->wined3d_texture), sub_resource_idx); ++ wined3d_resource_sub_resource_unmap(wined3d_texture_get_resource(texture->wined3d_texture), sub_resource_idx); + wined3d_mutex_unlock(); + } + +@@ -823,7 +823,7 @@ static HRESULT STDMETHODCALLTYPE d3d10_texture3d_Map(ID3D10Texture3D *iface, UIN + FIXME("Ignoring map_flags %#x.\n", map_flags); + + wined3d_mutex_lock(); +- if (SUCCEEDED(hr = wined3d_resource_map(wined3d_texture_get_resource(texture->wined3d_texture), sub_resource_idx, ++ if (SUCCEEDED(hr = wined3d_resource_sub_resource_map(wined3d_texture_get_resource(texture->wined3d_texture), sub_resource_idx, + &wined3d_map_desc, NULL, wined3d_map_flags_from_d3d11_map_type(map_type)))) + { + mapped_texture->pData = wined3d_map_desc.data; +@@ -842,7 +842,7 @@ static void STDMETHODCALLTYPE d3d10_texture3d_Unmap(ID3D10Texture3D *iface, UINT + TRACE("iface %p, sub_resource_idx %u.\n", iface, sub_resource_idx); + + wined3d_mutex_lock(); +- wined3d_resource_unmap(wined3d_texture_get_resource(texture->wined3d_texture), sub_resource_idx); ++ wined3d_resource_sub_resource_unmap(wined3d_texture_get_resource(texture->wined3d_texture), sub_resource_idx); + wined3d_mutex_unlock(); + } + +diff --git a/dlls/d3d8/surface.c b/dlls/d3d8/surface.c +index 679f094..21f1438 100644 +--- a/dlls/d3d8/surface.c ++++ b/dlls/d3d8/surface.c +@@ -234,7 +234,7 @@ static HRESULT WINAPI d3d8_surface_LockRect(IDirect3DSurface8 *iface, + box.back = 1; + } + +- hr = wined3d_resource_map(wined3d_texture_get_resource(surface->wined3d_texture), surface->sub_resource_idx, ++ hr = wined3d_resource_sub_resource_map(wined3d_texture_get_resource(surface->wined3d_texture), surface->sub_resource_idx, + &map_desc, rect ? &box : NULL, flags); + wined3d_mutex_unlock(); + +@@ -260,7 +260,7 @@ static HRESULT WINAPI d3d8_surface_UnlockRect(IDirect3DSurface8 *iface) + TRACE("iface %p.\n", iface); + + wined3d_mutex_lock(); +- hr = wined3d_resource_unmap(wined3d_texture_get_resource(surface->wined3d_texture), surface->sub_resource_idx); ++ hr = wined3d_resource_sub_resource_unmap(wined3d_texture_get_resource(surface->wined3d_texture), surface->sub_resource_idx); + wined3d_mutex_unlock(); + + switch(hr) +diff --git a/dlls/d3d8/volume.c b/dlls/d3d8/volume.c +index f26e424..d1ee0b5 100644 +--- a/dlls/d3d8/volume.c ++++ b/dlls/d3d8/volume.c +@@ -148,7 +148,7 @@ static HRESULT WINAPI d3d8_volume_LockBox(IDirect3DVolume8 *iface, + iface, locked_box, box, flags); + + wined3d_mutex_lock(); +- hr = wined3d_resource_map(wined3d_texture_get_resource(volume->wined3d_texture), volume->sub_resource_idx, ++ hr = wined3d_resource_sub_resource_map(wined3d_texture_get_resource(volume->wined3d_texture), volume->sub_resource_idx, + &map_desc, (const struct wined3d_box *)box, flags); + wined3d_mutex_unlock(); + +@@ -167,7 +167,7 @@ static HRESULT WINAPI d3d8_volume_UnlockBox(IDirect3DVolume8 *iface) + TRACE("iface %p.\n", iface); + + wined3d_mutex_lock(); +- hr = wined3d_resource_unmap(wined3d_texture_get_resource(volume->wined3d_texture), volume->sub_resource_idx); ++ hr = wined3d_resource_sub_resource_unmap(wined3d_texture_get_resource(volume->wined3d_texture), volume->sub_resource_idx); + wined3d_mutex_unlock(); + + return hr; +diff --git a/dlls/d3d9/surface.c b/dlls/d3d9/surface.c +index 833c1f4..54baf83 100644 +--- a/dlls/d3d9/surface.c ++++ b/dlls/d3d9/surface.c +@@ -251,7 +251,7 @@ static HRESULT WINAPI d3d9_surface_LockRect(IDirect3DSurface9 *iface, + } + + wined3d_mutex_lock(); +- hr = wined3d_resource_map(wined3d_texture_get_resource(surface->wined3d_texture), surface->sub_resource_idx, ++ hr = wined3d_resource_sub_resource_map(wined3d_texture_get_resource(surface->wined3d_texture), surface->sub_resource_idx, + &map_desc, rect ? &box : NULL, flags); + wined3d_mutex_unlock(); + +@@ -272,7 +272,7 @@ static HRESULT WINAPI d3d9_surface_UnlockRect(IDirect3DSurface9 *iface) + TRACE("iface %p.\n", iface); + + wined3d_mutex_lock(); +- hr = wined3d_resource_unmap(wined3d_texture_get_resource(surface->wined3d_texture), surface->sub_resource_idx); ++ hr = wined3d_resource_sub_resource_unmap(wined3d_texture_get_resource(surface->wined3d_texture), surface->sub_resource_idx); + wined3d_mutex_unlock(); + + switch(hr) +diff --git a/dlls/d3d9/volume.c b/dlls/d3d9/volume.c +index 52502bf..a81b6c7 100644 +--- a/dlls/d3d9/volume.c ++++ b/dlls/d3d9/volume.c +@@ -148,7 +148,7 @@ static HRESULT WINAPI d3d9_volume_LockBox(IDirect3DVolume9 *iface, + iface, locked_box, box, flags); + + wined3d_mutex_lock(); +- hr = wined3d_resource_map(wined3d_texture_get_resource(volume->wined3d_texture), volume->sub_resource_idx, ++ hr = wined3d_resource_sub_resource_map(wined3d_texture_get_resource(volume->wined3d_texture), volume->sub_resource_idx, + &map_desc, (const struct wined3d_box *)box, flags); + wined3d_mutex_unlock(); + +@@ -167,7 +167,7 @@ static HRESULT WINAPI d3d9_volume_UnlockBox(IDirect3DVolume9 *iface) + TRACE("iface %p.\n", iface); + + wined3d_mutex_lock(); +- hr = wined3d_resource_unmap(wined3d_texture_get_resource(volume->wined3d_texture), volume->sub_resource_idx); ++ hr = wined3d_resource_sub_resource_unmap(wined3d_texture_get_resource(volume->wined3d_texture), volume->sub_resource_idx); + wined3d_mutex_unlock(); + + return hr; diff --git a/dlls/wined3d/resource.c b/dlls/wined3d/resource.c index d466764..74be48d 100644 --- a/dlls/wined3d/resource.c @@ -57,7 +190,7 @@ index d466764..74be48d 100644 TRACE("resource %p, sub_resource_idx %u.\n", resource, sub_resource_idx); diff --git a/dlls/wined3d/wined3d.spec b/dlls/wined3d/wined3d.spec -index 7067e08..7c4ea7c 100644 +index a7e625d..b6be230 100644 --- a/dlls/wined3d/wined3d.spec +++ b/dlls/wined3d/wined3d.spec @@ -182,10 +182,10 @@ @@ -74,7 +207,7 @@ index 7067e08..7c4ea7c 100644 @ cdecl wined3d_rendertarget_view_create(ptr ptr ptr ptr ptr) @ cdecl wined3d_rendertarget_view_create_from_surface(ptr ptr ptr ptr) diff --git a/include/wine/wined3d.h b/include/wine/wined3d.h -index 9c9258a..d859b6f 100644 +index 2deb450..e25aa69 100644 --- a/include/wine/wined3d.h +++ b/include/wine/wined3d.h @@ -2422,11 +2422,11 @@ void __cdecl wined3d_resource_get_desc(const struct wined3d_resource *resource, diff --git a/patches/wined3d-CSMT_Main/9999-IfDefined.patch b/patches/wined3d-CSMT_Main/9999-IfDefined.patch index afebe977..17ac9fc3 100644 --- a/patches/wined3d-CSMT_Main/9999-IfDefined.patch +++ b/patches/wined3d-CSMT_Main/9999-IfDefined.patch @@ -2358,7 +2358,7 @@ diff --git a/dlls/wined3d/vertexdeclaration.c b/dlls/wined3d/vertexdeclaration.c diff --git a/dlls/winex11.drv/opengl.c b/dlls/winex11.drv/opengl.c --- a/dlls/winex11.drv/opengl.c +++ b/dlls/winex11.drv/opengl.c -@@ -2001,7 +2001,9 @@ +@@ -2002,7 +2002,9 @@ escape.code = X11DRV_FLUSH_GL_DRAWABLE; escape.gl_drawable = 0; @@ -2368,7 +2368,7 @@ diff --git a/dlls/winex11.drv/opengl.c b/dlls/winex11.drv/opengl.c if ((gl = get_gl_drawable( WindowFromDC( ctx->hdc ), 0 ))) { switch (gl->type) -@@ -2027,7 +2029,9 @@ +@@ -2028,7 +2030,9 @@ escape.code = X11DRV_FLUSH_GL_DRAWABLE; escape.gl_drawable = 0; diff --git a/patches/ws2_32-WSAPoll/0001-include-Add-stuff-related-to-WSAPoll-try-2.patch b/patches/ws2_32-WSAPoll/0001-include-Add-stuff-related-to-WSAPoll-try-2.patch deleted file mode 100644 index 91a50187..00000000 --- a/patches/ws2_32-WSAPoll/0001-include-Add-stuff-related-to-WSAPoll-try-2.patch +++ /dev/null @@ -1,81 +0,0 @@ -From bf1a093e98df52aa4576c93f3e0e165fdf73e1e4 Mon Sep 17 00:00:00 2001 -From: Bruno Jesus <00cpxxx@gmail.com> -Date: Fri, 22 May 2015 22:42:53 -0300 -Subject: include: Add stuff related to WSAPoll() (try 2) - -try 2: -I found the solution to typedef the struct pollfd just like it's done -with fd_set. ---- - include/winsock2.h | 34 ++++++++++++++++++++++++++++++++++ - 1 file changed, 34 insertions(+) - -diff --git a/include/winsock2.h b/include/winsock2.h -index fa3d26b..c90d0f6 100644 ---- a/include/winsock2.h -+++ b/include/winsock2.h -@@ -112,6 +112,31 @@ extern "C" { - #define SD_SEND 0x01 - #define SD_BOTH 0x02 - -+/* Constants for WSAPoll() */ -+#ifndef USE_WS_PREFIX -+#define POLLERR 0x0001 -+#define POLLHUP 0x0002 -+#define POLLNVAL 0x0004 -+#define POLLWRNORM 0x0010 -+#define POLLWRBAND 0x0020 -+#define POLLRDNORM 0x0100 -+#define POLLRDBAND 0x0200 -+#define POLLPRI 0x0400 -+#define POLLIN (POLLRDNORM|POLLRDBAND) -+#define POLLOUT (POLLWRNORM) -+#else -+#define WS_POLLERR 0x0001 -+#define WS_POLLHUP 0x0002 -+#define WS_POLLNVAL 0x0004 -+#define WS_POLLWRNORM 0x0010 -+#define WS_POLLWRBAND 0x0020 -+#define WS_POLLRDNORM 0x0100 -+#define WS_POLLRDBAND 0x0200 -+#define WS_POLLPRI 0x0400 -+#define WS_POLLIN (WS_POLLRDNORM|WS_POLLRDBAND) -+#define WS_POLLOUT (WS_POLLWRNORM) -+#endif -+ - /* Constants for WSAIoctl() */ - #ifdef USE_WS_PREFIX - #define WS_IOC_UNIX 0x00000000 -@@ -259,6 +284,13 @@ typedef struct _WSAPROTOCOLCHAIN - - #define SECURITY_PROTOCOL_NONE 0x0000 - -+typedef struct /*WS(pollfd)*/ -+{ -+ SOCKET fd; -+ SHORT events; -+ SHORT revents; -+} WSAPOLLFD; -+ - #define WSAPROTOCOL_LEN 255 - typedef struct _WSAPROTOCOL_INFOA - { -@@ -662,6 +694,7 @@ INT WINAPI WSALookupServiceNextW(HANDLE,DWORD,LPDWORD,LPWSAQUERYSETW); - int WINAPI WSANSPIoctl(HANDLE,DWORD,LPVOID,DWORD,LPVOID,DWORD,LPDWORD,LPWSACOMPLETION); - int WINAPI WSANtohl(SOCKET,ULONG,ULONG*); - int WINAPI WSANtohs(SOCKET,WS(u_short),WS(u_short)*); -+int WINAPI WSAPoll(WSAPOLLFD*,ULONG,int); - INT WINAPI WSAProviderConfigChange(LPHANDLE,LPWSAOVERLAPPED,LPWSAOVERLAPPED_COMPLETION_ROUTINE); - int WINAPI WSARecv(SOCKET,LPWSABUF,DWORD,LPDWORD,LPDWORD,LPWSAOVERLAPPED,LPWSAOVERLAPPED_COMPLETION_ROUTINE); - int WINAPI WSARecvDisconnect(SOCKET,LPWSABUF); -@@ -736,6 +769,7 @@ typedef int (WINAPI *LPFN_WSANSPIOCTL)(HANDLE,DWORD,LPVOID,DWORD,LPVOID,DWORD,LP - typedef int (WINAPI *LPFN_WSANTOHL)(SOCKET,ULONG,ULONG*); - typedef int (WINAPI *LPFN_WSANTOHS)(SOCKET,WS(u_short),WS(u_short)*); - typedef INT (WINAPI *LPFN_WSAPROVIDERCONFIGCHANGE)(LPHANDLE,LPWSAOVERLAPPED,LPWSAOVERLAPPED_COMPLETION_ROUTINE); -+typedef int (WINAPI *LPFN_WSAPOLL)(WSAPOLLFD*,ULONG,int); - typedef int (WINAPI *LPFN_WSARECV)(SOCKET,LPWSABUF,DWORD,LPDWORD,LPDWORD,LPWSAOVERLAPPED,LPWSAOVERLAPPED_COMPLETION_ROUTINE); - typedef int (WINAPI *LPFN_WSARECVDISCONNECT)(SOCKET,LPWSABUF); - typedef int (WINAPI *LPFN_WSARECVFROM)(SOCKET,LPWSABUF,DWORD,LPDWORD,LPDWORD,struct WS(sockaddr)*,LPINT,LPWSAOVERLAPPED,LPWSAOVERLAPPED_COMPLETION_ROUTINE); --- -2.4.1 - diff --git a/patches/ws2_32-WSAPoll/0001-include-Remove-check-for-__WINE_WNE_PORT_H-in-winsoc.patch b/patches/ws2_32-WSAPoll/0001-include-Remove-check-for-__WINE_WNE_PORT_H-in-winsoc.patch new file mode 100644 index 00000000..965480a6 --- /dev/null +++ b/patches/ws2_32-WSAPoll/0001-include-Remove-check-for-__WINE_WNE_PORT_H-in-winsoc.patch @@ -0,0 +1,32 @@ +From 168d4c1da4c5b7ce71eb2d07bb3369f2c0ad5df7 Mon Sep 17 00:00:00 2001 +From: Sebastian Lackner +Date: Thu, 5 Nov 2015 17:56:24 +0100 +Subject: include: Remove check for __WINE_WNE_PORT_H in winsock2.h. + +--- + include/winsock2.h | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/include/winsock2.h b/include/winsock2.h +index 461b90c..212352c 100644 +--- a/include/winsock2.h ++++ b/include/winsock2.h +@@ -113,7 +113,6 @@ extern "C" { + #define SD_BOTH 0x02 + + /* Constants for WSAPoll() */ +-#ifndef __WINE_WINE_PORT_H + #ifndef USE_WS_PREFIX + #define POLLERR 0x0001 + #define POLLHUP 0x0002 +@@ -137,7 +136,6 @@ extern "C" { + #define WS_POLLIN (WS_POLLRDNORM|WS_POLLRDBAND) + #define WS_POLLOUT (WS_POLLWRNORM) + #endif +-#endif + + /* Constants for WSAIoctl() */ + #ifdef USE_WS_PREFIX +-- +2.6.2 +