From aaeb4db3b339a3b780056e2c005c89a1c89256ef Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Tue, 9 Jun 2015 04:55:11 +0200 Subject: [PATCH] Rebase against 0922865b377913a27cea568ac688787a8117d8a7. Rebasing of CSMT will need some additional work / thoughts. --- README.md | 7 +- debian/changelog | 4 + ...umString-stub-interface-for-ACLShell.patch | 123 -------- .../browseui-ACLShell_IEnumString/definition | 1 - ...a-couple-more-file-information-class.patch | 46 +-- ...dd-tests-for-virtual-memory-align-be.patch | 286 ------------------ ...-for-AT_ROUND_TO_PAGE-flag-in-NtMap.patch} | 0 ...-code-when-NtMapViewOfSection-parame.patch | 54 ---- patches/patchinstall.sh | 165 ++++------ ...x-handling-of-periodic-advice-timers.patch | 24 -- patches/quartz-Advice_Timers/definition | 1 - ...nt-IText-Selection-Range-Set-Start-E.patch | 10 +- ...r-ITextFont-interface-and-implement-.patch | 22 +- ...r-ITextPara-interface-and-implement-.patch | 108 +++---- ...RunOfsFromCharOfs-when-nCharOfs-strl.patch | 4 +- ...iched20-Implement-ITextRange-GetText.patch | 8 +- ...ched20-Implement-ITextRange-SetRange.patch | 14 +- ...iched20-Implement-ITextRange-IsEqual.patch | 8 +- ...-Implement-ITextRange-GetStoryLength.patch | 34 +-- ...lement-ITextSelection-GetStoryLength.patch | 28 +- ...-repeated-FIXMEs-triggered-by-Adobe-.patch | 10 +- ...lement-ITextSelection_fnGetDuplicate.patch | 37 --- ...01-wined3d-Merge-get_pitch-functions.patch | 36 +-- ...s-a-context-to-surface_load_location.patch | 62 ++-- ...-surface-locations-into-the-resource.patch | 74 ++--- ...e-helper-functions-for-mapping-volum.patch | 8 +- ...urce-buffer-mapping-facilities-in-su.patch | 24 +- ...e-a-function-to-retrieve-resource-me.patch | 26 +- ...face_ops-unmap-specific-for-front-bu.patch | 18 +- ...ove-most-of-volume_map-to-resource.c.patch | 16 +- ...d3d-Use-resource_map-for-surface_map.patch | 20 +- ...ll-the-public-map-function-in-surfac.patch | 12 +- ...end-blits-through-the-command-stream.patch | 28 +- ...-up-texture-resources-through-the-cs.patch | 54 ++-- .../wined3d-CSMT_Main/9999-IfDefined.patch | 248 +++++++-------- ...put-system-information-to-the-termin.patch | 29 -- patches/winedbg-SystemInfo/definition | 1 - 37 files changed, 484 insertions(+), 1166 deletions(-) delete mode 100644 patches/browseui-ACLShell_IEnumString/0001-browseui-Add-IEnumString-stub-interface-for-ACLShell.patch delete mode 100644 patches/browseui-ACLShell_IEnumString/definition delete mode 100644 patches/ntdll-AT_ROUND_TO_PAGE/0001-kernel32-tests-Add-tests-for-virtual-memory-align-be.patch rename patches/ntdll-AT_ROUND_TO_PAGE/{0003-ntdll-Add-support-for-AT_ROUND_TO_PAGE-flag-in-NtMap.patch => 0001-ntdll-Add-support-for-AT_ROUND_TO_PAGE-flag-in-NtMap.patch} (100%) delete mode 100644 patches/ntdll-AT_ROUND_TO_PAGE/0002-ntdll-Fix-status-code-when-NtMapViewOfSection-parame.patch delete mode 100644 patches/quartz-Advice_Timers/0001-quartz-Fix-handling-of-periodic-advice-timers.patch delete mode 100644 patches/quartz-Advice_Timers/definition delete mode 100644 patches/riched20-IText_Interface/0011-riched20-Implement-ITextSelection_fnGetDuplicate.patch delete mode 100644 patches/winedbg-SystemInfo/0001-winedbg-Also-output-system-information-to-the-termin.patch delete mode 100644 patches/winedbg-SystemInfo/definition diff --git a/README.md b/README.md index d86da754..e98f0236 100644 --- a/README.md +++ b/README.md @@ -39,14 +39,13 @@ Wine. All those differences are also documented on the Included bug fixes and improvements ----------------------------------- -**Bug fixes and features included in the next upcoming release [19]:** +**Bug fixes and features included in the next upcoming release [18]:** * Add implementation for kernel32.GetNumaProcessorNode ([Wine Bug #38660](https://bugs.winehq.org/show_bug.cgi?id=38660)) * Add semi-stub for FileFsVolumeInformation information class ([Wine Bug #21466](https://bugs.winehq.org/show_bug.cgi?id=21466)) * Allow to enable/disable InsertMode in wineconsole settings ([Wine Bug #38697](https://bugs.winehq.org/show_bug.cgi?id=38697)) * Allow to set pixel format for desktop window * Fix endless loop in regedit when importing files with very long lines -* Fix handling of periodic advice timers causing high CPU usage * Fix link notification conditions for riched20 ([Wine Bug #35949](https://bugs.winehq.org/show_bug.cgi?id=35949)) * Implement default homepage button in inetcpl.cpl * Implement mscoree._CorValidateImage for mono runtime ([Wine Bug #38662](https://bugs.winehq.org/show_bug.cgi?id=38662)) @@ -72,7 +71,7 @@ releases, take a look at the for more details.* * Add HTTP Host header in HttpSendRequest instead of HttpOpenRequest ([Wine Bug #28911](https://bugs.winehq.org/show_bug.cgi?id=28911)) -* Add IEnumString stub interface for ACLShellSource ([Wine Bug #18019](https://bugs.winehq.org/show_bug.cgi?id=18019)) +* ~~Add IEnumString stub interface for ACLShellSource~~ ([Wine Bug #18019](https://bugs.winehq.org/show_bug.cgi?id=18019)) * Add a ProfileList\ registry subkey ([Wine Bug #15670](https://bugs.winehq.org/show_bug.cgi?id=15670)) * Add implementation for CreateThreadpool ([Wine Bug #35192](https://bugs.winehq.org/show_bug.cgi?id=35192)) * Add implementation for mfplat.MFTRegister ([Wine Bug #37811](https://bugs.winehq.org/show_bug.cgi?id=37811)) @@ -115,7 +114,7 @@ for more details.* * Allow to open files/directories without any access rights in order to query attributes * Allow to override number of quality levels for D3DMULTISAMPLE_NONMASKABLE. ([Wine Bug #12652](https://bugs.winehq.org/show_bug.cgi?id=12652)) * ~~Also handle '\r' as whitespace in wbemprox queries~~ -* Also output winedbg system information to the terminal, not only to dialog +* ~~Also output winedbg system information to the terminal, not only to dialog~~ * Anno 1602 installer depends on Windows 98 behavior of SHFileOperationW ([Wine Bug #37916](https://bugs.winehq.org/show_bug.cgi?id=37916)) * Assign a drive serial number during prefix creation/update ([Wine Bug #17823](https://bugs.winehq.org/show_bug.cgi?id=17823)) * Audio stuttering and performance drops in multiple applications ([Wine Bug #30639](https://bugs.winehq.org/show_bug.cgi?id=30639)) diff --git a/debian/changelog b/debian/changelog index ba3c8cf3..0ac9e3e2 100644 --- a/debian/changelog +++ b/debian/changelog @@ -44,8 +44,12 @@ wine-staging (1.7.45) UNRELEASED; urgency=low upstream). * Removed patch to make sure OpenClipboard with current owner doesn't fail (accepted upstream). + * Removed patch to add IEnumString stub interface for ACLShellSource (fixed + upstream). * Removed patch to fix NULL pointer dereference in get_frame_by_name (identical patch accepted upstream). + * Removed patch to output winedbg system information also to the terminal + (accepted upstream). -- Sebastian Lackner Sun, 31 May 2015 14:46:37 +0200 wine-staging (1.7.44) unstable; urgency=low diff --git a/patches/browseui-ACLShell_IEnumString/0001-browseui-Add-IEnumString-stub-interface-for-ACLShell.patch b/patches/browseui-ACLShell_IEnumString/0001-browseui-Add-IEnumString-stub-interface-for-ACLShell.patch deleted file mode 100644 index da85aa5a..00000000 --- a/patches/browseui-ACLShell_IEnumString/0001-browseui-Add-IEnumString-stub-interface-for-ACLShell.patch +++ /dev/null @@ -1,123 +0,0 @@ -From 49050987e49d61420d2d46dc167551ff439a537a Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Michael=20M=C3=BCller?= -Date: Wed, 13 May 2015 01:31:35 +0200 -Subject: browseui: Add IEnumString stub interface for ACLShellSource. - ---- - dlls/browseui/aclsource.c | 72 +++++++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 72 insertions(+) - -diff --git a/dlls/browseui/aclsource.c b/dlls/browseui/aclsource.c -index 07033cc..bb98b33 100644 ---- a/dlls/browseui/aclsource.c -+++ b/dlls/browseui/aclsource.c -@@ -44,6 +44,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(browseui); - - typedef struct tagACLMulti { - IACList2 IACList2_iface; -+ IEnumString IEnumString_iface; - LONG refCount; - DWORD dwOptions; - } ACLShellSource; -@@ -53,6 +54,11 @@ static inline ACLShellSource *impl_from_IACList2(IACList2 *iface) - return CONTAINING_RECORD(iface, ACLShellSource, IACList2_iface); - } - -+static inline ACLShellSource *impl_from_IEnumString(IEnumString *iface) -+{ -+ return CONTAINING_RECORD(iface, ACLShellSource, IEnumString_iface); -+} -+ - static void ACLShellSource_Destructor(ACLShellSource *This) - { - TRACE("destroying %p\n", This); -@@ -69,6 +75,10 @@ static HRESULT WINAPI ACLShellSource_QueryInterface(IACList2 *iface, REFIID iid, - { - *ppvOut = &This->IACList2_iface; - } -+ else if(IsEqualIID(iid, &IID_IEnumString)) -+ { -+ *ppvOut = &This->IEnumString_iface; -+ } - - if (*ppvOut) - { -@@ -133,6 +143,67 @@ static const IACList2Vtbl ACLMulti_ACList2Vtbl = - ACLShellSource_GetOptions - }; - -+static HRESULT WINAPI ACLShellSource_IEnumString_QueryInterface(IEnumString *iface, REFIID iid, LPVOID *ppvOut) -+{ -+ ACLShellSource *This = impl_from_IEnumString(iface); -+ return ACLShellSource_QueryInterface(&This->IACList2_iface, iid, ppvOut); -+} -+ -+static ULONG WINAPI ACLShellSource_IEnumString_AddRef(IEnumString *iface) -+{ -+ ACLShellSource *This = impl_from_IEnumString(iface); -+ return ACLShellSource_AddRef(&This->IACList2_iface); -+} -+ -+static ULONG WINAPI ACLShellSource_IEnumString_Release(IEnumString *iface) -+{ -+ ACLShellSource *This = impl_from_IEnumString(iface); -+ return ACLShellSource_Release(&This->IACList2_iface); -+} -+ -+static HRESULT WINAPI ACLShellSource_IEnumString_Next(IEnumString *iface, ULONG celt, LPOLESTR *rgelt, ULONG *pceltFetched) -+{ -+ FIXME("(%p, %d, %p, %p): stub\n", iface, celt, rgelt, pceltFetched); -+ -+ if (celt) -+ *rgelt = NULL; -+ if (pceltFetched) -+ *pceltFetched = 0; -+ -+ return S_FALSE; -+} -+ -+static HRESULT WINAPI ACLShellSource_IEnumString_Reset(IEnumString *iface) -+{ -+ FIXME("(%p): stub\n", iface); -+ return S_OK; -+} -+ -+static HRESULT WINAPI ACLShellSource_IEnumString_Skip(IEnumString *iface, ULONG celt) -+{ -+ FIXME("(%p, %u): stub\n", iface, celt); -+ return E_NOTIMPL; -+} -+ -+static HRESULT WINAPI ACLShellSource_IEnumString_Clone(IEnumString *iface, IEnumString **ppOut) -+{ -+ FIXME("(%p, %p): stub\n", iface, ppOut); -+ *ppOut = NULL; -+ return E_OUTOFMEMORY; -+} -+ -+static const IEnumStringVtbl ACLShellSource_EnumStringVtbl = -+{ -+ ACLShellSource_IEnumString_QueryInterface, -+ ACLShellSource_IEnumString_AddRef, -+ ACLShellSource_IEnumString_Release, -+ -+ ACLShellSource_IEnumString_Next, -+ ACLShellSource_IEnumString_Skip, -+ ACLShellSource_IEnumString_Reset, -+ ACLShellSource_IEnumString_Clone -+}; -+ - HRESULT ACLShellSource_Constructor(IUnknown *pUnkOuter, IUnknown **ppOut) - { - ACLShellSource *This; -@@ -144,6 +215,7 @@ HRESULT ACLShellSource_Constructor(IUnknown *pUnkOuter, IUnknown **ppOut) - return E_OUTOFMEMORY; - - This->IACList2_iface.lpVtbl = &ACLMulti_ACList2Vtbl; -+ This->IEnumString_iface.lpVtbl = &ACLShellSource_EnumStringVtbl; - This->refCount = 1; - - TRACE("returning %p\n", This); --- -2.4.0 - diff --git a/patches/browseui-ACLShell_IEnumString/definition b/patches/browseui-ACLShell_IEnumString/definition deleted file mode 100644 index 49ec3f93..00000000 --- a/patches/browseui-ACLShell_IEnumString/definition +++ /dev/null @@ -1 +0,0 @@ -Fixes: [18019] Add IEnumString stub interface for ACLShellSource diff --git a/patches/kernel32-SetFileInformationByHandle/0001-include-Declare-a-couple-more-file-information-class.patch b/patches/kernel32-SetFileInformationByHandle/0001-include-Declare-a-couple-more-file-information-class.patch index 8461931d..832e3466 100644 --- a/patches/kernel32-SetFileInformationByHandle/0001-include-Declare-a-couple-more-file-information-class.patch +++ b/patches/kernel32-SetFileInformationByHandle/0001-include-Declare-a-couple-more-file-information-class.patch @@ -1,39 +1,20 @@ -From 40983a8c7b9a83a931ac274e3ce5cdd18e9753d5 Mon Sep 17 00:00:00 2001 +From df8e954e44bbaa2f4631a3fc71a23609fc704e5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Thu, 26 Feb 2015 05:28:23 +0100 Subject: include: Declare a couple more file information class structures. --- - include/winbase.h | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 67 insertions(+) + include/winbase.h | 37 +++++++++++++++++++++++++++++++++++++ + 1 file changed, 37 insertions(+) diff --git a/include/winbase.h b/include/winbase.h -index b3066ca..12fe2b0 100644 +index 4795d87..28313e3 100644 --- a/include/winbase.h +++ b/include/winbase.h -@@ -844,6 +844,73 @@ typedef struct _FILE_NAME_INFO { - WCHAR FileName[1]; - } FILE_NAME_INFO, *PFILE_NAME_INFO; +@@ -874,6 +874,43 @@ typedef struct _FILE_RENAME_INFO { + WCHAR FileName[1]; + } FILE_RENAME_INFO, *PFILE_RENAME_INFO; -+typedef struct _FILE_RENAME_INFO { -+ BOOLEAN ReplaceIfExists; -+ HANDLE RootDirectory; -+ DWORD FileNameLength; -+ WCHAR FileName[1]; -+} FILE_RENAME_INFO, *PFILE_RENAME_INFO; -+ -+typedef struct _FILE_DISPOSITION_INFO { -+ BOOLEAN DoDeleteFile; -+} FILE_DISPOSITION_INFO, *PFILE_DISPOSITION_INFO; -+ -+typedef struct _FILE_ALLOCATION_INFO { -+ LARGE_INTEGER AllocationSize; -+} FILE_ALLOCATION_INFO, *PFILE_ALLOCATION_INFO; -+ -+typedef struct _FILE_END_OF_FILE_INFO { -+ LARGE_INTEGER EndOfFile; -+} FILE_END_OF_FILE_INFO, *PFILE_END_OF_FILE_INFO; -+ +typedef struct _FILE_STREAM_INFO { + DWORD NextEntryOffset; + DWORD StreamNameLength; @@ -70,21 +51,10 @@ index b3066ca..12fe2b0 100644 + ULONG EaSize; + WCHAR FileName[1]; +} FILE_FULL_DIR_INFO, *PFILE_FULL_DIR_INFO; -+ -+typedef enum _PRIORITY_HINT { -+ IoPriorityHintVeryLow = 0, -+ IoPriorityHintLow, -+ IoPriorityHintNormal, -+ MaximumIoPriorityHintType -+} PRIORITY_HINT; -+ -+typedef struct _FILE_IO_PRIORITY_HINT_INFO { -+ PRIORITY_HINT PriorityHint; -+} FILE_IO_PRIORITY_HINT_INFO, *PFILE_IO_PRIORITY_HINT_INFO; + #define PIPE_ACCESS_INBOUND 1 #define PIPE_ACCESS_OUTBOUND 2 #define PIPE_ACCESS_DUPLEX 3 -- -2.4.0 +2.4.2 diff --git a/patches/ntdll-AT_ROUND_TO_PAGE/0001-kernel32-tests-Add-tests-for-virtual-memory-align-be.patch b/patches/ntdll-AT_ROUND_TO_PAGE/0001-kernel32-tests-Add-tests-for-virtual-memory-align-be.patch deleted file mode 100644 index f4061d40..00000000 --- a/patches/ntdll-AT_ROUND_TO_PAGE/0001-kernel32-tests-Add-tests-for-virtual-memory-align-be.patch +++ /dev/null @@ -1,286 +0,0 @@ -From 2c9bd8d13fbe12697f121e3391d9a477afc58235 Mon Sep 17 00:00:00 2001 -From: Sebastian Lackner -Date: Fri, 5 Jun 2015 07:32:40 +0200 -Subject: kernel32/tests: Add tests for virtual memory align behaviour. - ---- - dlls/kernel32/tests/virtual.c | 201 +++++++++++++++++++++++++++++++++++++++++- - include/winnt.h | 1 + - 2 files changed, 200 insertions(+), 2 deletions(-) - -diff --git a/dlls/kernel32/tests/virtual.c b/dlls/kernel32/tests/virtual.c -index 4f50df8..497d401 100644 ---- a/dlls/kernel32/tests/virtual.c -+++ b/dlls/kernel32/tests/virtual.c -@@ -47,7 +47,10 @@ static struct _TEB * (WINAPI *pNtCurrentTeb)(void); - static PVOID (WINAPI *pRtlAddVectoredExceptionHandler)(ULONG, PVECTORED_EXCEPTION_HANDLER); - static ULONG (WINAPI *pRtlRemoveVectoredExceptionHandler)(PVOID); - static BOOL (WINAPI *pGetProcessDEPPolicy)(HANDLE, LPDWORD, PBOOL); -+static BOOL (WINAPI *pIsWow64Process)(HANDLE, PBOOL); - static NTSTATUS (WINAPI *pNtProtectVirtualMemory)(HANDLE, PVOID *, SIZE_T *, ULONG, ULONG *); -+static NTSTATUS (WINAPI *pNtAllocateVirtualMemory)(HANDLE, PVOID *, ULONG, SIZE_T *, ULONG, ULONG); -+static NTSTATUS (WINAPI *pNtFreeVirtualMemory)(HANDLE, PVOID *, SIZE_T *, ULONG); - - /* ############################### */ - -@@ -237,6 +240,8 @@ static void test_VirtualAlloc(void) - void *addr1, *addr2; - DWORD old_prot; - MEMORY_BASIC_INFORMATION info; -+ NTSTATUS status; -+ SIZE_T size; - - SetLastError(0xdeadbeef); - addr1 = VirtualAlloc(0, 0, MEM_RESERVE, PAGE_NOACCESS); -@@ -372,6 +377,42 @@ static void test_VirtualAlloc(void) - "got %d, expected ERROR_INVALID_PARAMETER\n", GetLastError()); - - ok(VirtualFree(addr1, 0, MEM_RELEASE), "VirtualFree failed\n"); -+ -+ addr1 = VirtualAlloc(0, 0x1000, MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE); -+ ok(addr1 != NULL, "VirtualAlloc failed\n"); -+ ok(!((ULONG_PTR)addr1 & 0xffff), "returned memory %p is not aligned to 64k\n", addr1); -+ -+ /* allocation conflicts because of 64k align */ -+ size = 0x1000; -+ addr2 = (char *)addr1 + 0x1000; -+ status = pNtAllocateVirtualMemory(GetCurrentProcess(), &addr2, 0, &size, -+ MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE); -+ ok(status == STATUS_CONFLICTING_ADDRESSES, "NtAllocateVirtualMemory returned %08x\n", status); -+ -+ /* it should conflict, even when zero_bits is explicitly set */ -+ size = 0x1000; -+ addr2 = (char *)addr1 + 0x1000; -+ status = pNtAllocateVirtualMemory(GetCurrentProcess(), &addr2, 12, &size, -+ MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE); -+ todo_wine -+ ok(status == STATUS_CONFLICTING_ADDRESSES, "NtAllocateVirtualMemory returned %08x\n", status); -+ if (status == STATUS_SUCCESS) ok(VirtualFree(addr2, 0, MEM_RELEASE), "VirtualFree failed\n"); -+ -+ /* AT_ROUND_TO_PAGE flag is not supported for VirtualAlloc */ -+ SetLastError(0xdeadbeef); -+ addr2 = VirtualAlloc(addr1, 0x1000, MEM_RESERVE | MEM_COMMIT | AT_ROUND_TO_PAGE, PAGE_EXECUTE_READWRITE); -+ ok(!addr2, "VirtualAlloc unexpectedly succeeded\n"); -+ ok(GetLastError() == ERROR_INVALID_PARAMETER, "got %d, expected ERROR_INVALID_PARAMETER\n", GetLastError()); -+ -+ /* AT_ROUND_TO_PAGE flag is not suppoted for NtAllocateVirtualMemory */ -+ size = 0x1000; -+ addr2 = (char *)addr1 + 0x1000; -+ status = pNtAllocateVirtualMemory(GetCurrentProcess(), &addr2, 0, &size, MEM_RESERVE | -+ MEM_COMMIT | AT_ROUND_TO_PAGE, PAGE_EXECUTE_READWRITE); -+ todo_wine -+ ok(status == STATUS_INVALID_PARAMETER_5, "NtAllocateVirtualMemory returned %08x\n", status); -+ -+ ok(VirtualFree(addr1, 0, MEM_RELEASE), "VirtualFree failed\n"); - } - - static void test_MapViewOfFile(void) -@@ -957,8 +998,8 @@ static void test_NtMapViewOfSection(void) - static const char data[] = "test data for NtMapViewOfSection"; - char buffer[sizeof(data)]; - HANDLE file, mapping; -- void *ptr; -- BOOL ret; -+ void *ptr, *ptr2; -+ BOOL is_wow64, ret; - DWORD status, written; - SIZE_T size, result; - LARGE_INTEGER offset; -@@ -988,12 +1029,165 @@ static void test_NtMapViewOfSection(void) - offset.QuadPart = 0; - status = pNtMapViewOfSection( mapping, hProcess, &ptr, 0, 0, &offset, &size, 1, 0, PAGE_READWRITE ); - ok( !status, "NtMapViewOfSection failed status %x\n", status ); -+ ok( !((ULONG_PTR)ptr & 0xffff), "returned memory %p is not aligned to 64k\n", ptr ); - - ret = ReadProcessMemory( hProcess, ptr, buffer, sizeof(buffer), &result ); - ok( ret, "ReadProcessMemory failed\n" ); - ok( result == sizeof(buffer), "ReadProcessMemory didn't read all data (%lx)\n", result ); - ok( !memcmp( buffer, data, sizeof(buffer) ), "Wrong data read\n" ); - -+ /* for some unknown reason NtMapViewOfSection fails with STATUS_NO_MEMORY when zero_bits != 0 ? */ -+ ptr2 = NULL; -+ size = 0; -+ offset.QuadPart = 0; -+ status = pNtMapViewOfSection( mapping, hProcess, &ptr2, 12, 0, &offset, &size, 1, 0, PAGE_READWRITE ); -+ todo_wine -+ ok( status == STATUS_NO_MEMORY, "NtMapViewOfSection returned %x\n", status ); -+ if (status == STATUS_SUCCESS) -+ { -+ status = pNtUnmapViewOfSection( hProcess, ptr2 ); -+ ok( !status, "NtUnmapViewOfSection failed status %x\n", status ); -+ } -+ -+ ptr2 = NULL; -+ size = 0; -+ status = pNtMapViewOfSection( mapping, hProcess, &ptr2, 16, 0, &offset, &size, 1, 0, PAGE_READWRITE ); -+ todo_wine -+ ok( status == STATUS_NO_MEMORY, "NtMapViewOfSection returned %x\n", status ); -+ if (status == STATUS_SUCCESS) -+ { -+ status = pNtUnmapViewOfSection( hProcess, ptr2 ); -+ ok( !status, "NtUnmapViewOfSection failed status %x\n", status ); -+ } -+ -+ /* mapping at the same page conflicts */ -+ ptr2 = ptr; -+ size = 0; -+ offset.QuadPart = 0; -+ status = pNtMapViewOfSection( mapping, hProcess, &ptr2, 0, 0, &offset, &size, 1, 0, PAGE_READWRITE ); -+ ok( status == STATUS_CONFLICTING_ADDRESSES, "NtMapViewOfSection returned %x\n", status ); -+ -+ /* offset has to be aligned */ -+ ptr2 = ptr; -+ size = 0; -+ offset.QuadPart = 1; -+ status = pNtMapViewOfSection( mapping, hProcess, &ptr2, 0, 0, &offset, &size, 1, 0, PAGE_READWRITE ); -+ todo_wine -+ ok( status == STATUS_MAPPED_ALIGNMENT, "NtMapViewOfSection returned %x\n", status ); -+ -+ /* ptr has to be aligned */ -+ ptr2 = (char *)ptr + 42; -+ size = 0; -+ offset.QuadPart = 0; -+ status = pNtMapViewOfSection( mapping, hProcess, &ptr2, 0, 0, &offset, &size, 1, 0, PAGE_READWRITE ); -+ todo_wine -+ ok( status == STATUS_MAPPED_ALIGNMENT, "NtMapViewOfSection returned %x\n", status ); -+ -+ /* still not 64k aligned */ -+ ptr2 = (char *)ptr + 0x1000; -+ size = 0; -+ offset.QuadPart = 0; -+ status = pNtMapViewOfSection( mapping, hProcess, &ptr2, 0, 0, &offset, &size, 1, 0, PAGE_READWRITE ); -+ todo_wine -+ ok( status == STATUS_MAPPED_ALIGNMENT, "NtMapViewOfSection returned %x\n", status ); -+ -+ /* zero_bits != 0 is not allowed when an address is set */ -+ ptr2 = (char *)ptr + 0x1000; -+ size = 0; -+ offset.QuadPart = 0; -+ status = pNtMapViewOfSection( mapping, hProcess, &ptr2, 12, 0, &offset, &size, 1, 0, PAGE_READWRITE ); -+ todo_wine -+ ok( status == STATUS_INVALID_PARAMETER_4, "NtMapViewOfSection returned %x\n", status ); -+ if (status == STATUS_SUCCESS) -+ { -+ status = pNtUnmapViewOfSection( hProcess, ptr2 ); -+ ok( !status, "NtUnmapViewOfSection failed status %x\n", status ); -+ } -+ -+ ptr2 = (char *)ptr + 0x1000; -+ size = 0; -+ offset.QuadPart = 0; -+ status = pNtMapViewOfSection( mapping, hProcess, &ptr2, 16, 0, &offset, &size, 1, 0, PAGE_READWRITE ); -+ todo_wine -+ ok( status == STATUS_INVALID_PARAMETER_4, "NtMapViewOfSection returned %x\n", status ); -+ if (status == STATUS_SUCCESS) -+ { -+ status = pNtUnmapViewOfSection( hProcess, ptr2 ); -+ ok( !status, "NtUnmapViewOfSection failed status %x\n", status ); -+ } -+ -+ if (sizeof(void *) == sizeof(int) && (!pIsWow64Process || -+ !pIsWow64Process( GetCurrentProcess(), &is_wow64 ) || !is_wow64)) -+ { -+ /* new memory region conflicts with previous mapping */ -+ ptr2 = ptr; -+ size = 0; -+ offset.QuadPart = 0; -+ status = pNtMapViewOfSection( mapping, hProcess, &ptr2, 0, 0, &offset, -+ &size, 1, AT_ROUND_TO_PAGE, PAGE_READWRITE ); -+ ok( status == STATUS_CONFLICTING_ADDRESSES, "NtMapViewOfSection returned %x\n", status ); -+ -+ ptr2 = (char *)ptr + 42; -+ size = 0; -+ offset.QuadPart = 0; -+ status = pNtMapViewOfSection( mapping, hProcess, &ptr2, 0, 0, &offset, -+ &size, 1, AT_ROUND_TO_PAGE, PAGE_READWRITE ); -+ todo_wine -+ ok( status == STATUS_CONFLICTING_ADDRESSES, "NtMapViewOfSection returned %x\n", status ); -+ -+ /* in contrary to regular NtMapViewOfSection, only 4kb align is enforced */ -+ ptr2 = (char *)ptr + 0x1000; -+ size = 0; -+ offset.QuadPart = 0; -+ status = pNtMapViewOfSection( mapping, hProcess, &ptr2, 0, 0, &offset, -+ &size, 1, AT_ROUND_TO_PAGE, PAGE_READWRITE ); -+ todo_wine -+ ok( status == STATUS_SUCCESS, "NtMapViewOfSection returned %x\n", status ); -+ ok( (char *)ptr2 == (char *)ptr + 0x1000, -+ "expected address %p, got %p\n", (char *)ptr + 0x1000, ptr2 ); -+ status = pNtUnmapViewOfSection( hProcess, ptr2 ); -+ todo_wine -+ ok( !status, "NtUnmapViewOfSection failed status %x\n", status ); -+ -+ /* the address is rounded down if not on a page boundary */ -+ ptr2 = (char *)ptr + 0x1001; -+ size = 0; -+ offset.QuadPart = 0; -+ status = pNtMapViewOfSection( mapping, hProcess, &ptr2, 0, 0, &offset, -+ &size, 1, AT_ROUND_TO_PAGE, PAGE_READWRITE ); -+ todo_wine -+ ok( status == STATUS_SUCCESS, "NtMapViewOfSection returned %x\n", status ); -+ todo_wine -+ ok( (char *)ptr2 == (char *)ptr + 0x1000, -+ "expected address %p, got %p\n", (char *)ptr + 0x1000, ptr2 ); -+ status = pNtUnmapViewOfSection( hProcess, ptr2 ); -+ todo_wine -+ ok( !status, "NtUnmapViewOfSection failed status %x\n", status ); -+ -+ ptr2 = (char *)ptr + 0x2000; -+ size = 0; -+ offset.QuadPart = 0; -+ status = pNtMapViewOfSection( mapping, hProcess, &ptr2, 0, 0, &offset, -+ &size, 1, AT_ROUND_TO_PAGE, PAGE_READWRITE ); -+ todo_wine -+ ok( status == STATUS_SUCCESS, "NtMapViewOfSection returned %x\n", status ); -+ ok( (char *)ptr2 == (char *)ptr + 0x2000, -+ "expected address %p, got %p\n", (char *)ptr + 0x2000, ptr2 ); -+ status = pNtUnmapViewOfSection( hProcess, ptr2 ); -+ todo_wine -+ ok( !status, "NtUnmapViewOfSection failed status %x\n", status ); -+ } -+ else -+ { -+ ptr2 = (char *)ptr + 0x1000; -+ size = 0; -+ offset.QuadPart = 0; -+ status = pNtMapViewOfSection( mapping, hProcess, &ptr2, 0, 0, &offset, -+ &size, 1, AT_ROUND_TO_PAGE, PAGE_READWRITE ); -+ todo_wine -+ ok( status == STATUS_INVALID_PARAMETER_9, "NtMapViewOfSection returned %x\n", status ); -+ } -+ - status = pNtUnmapViewOfSection( hProcess, ptr ); - ok( !status, "NtUnmapViewOfSection failed status %x\n", status ); - -@@ -3495,6 +3689,7 @@ START_TEST(virtual) - pGetWriteWatch = (void *) GetProcAddress(hkernel32, "GetWriteWatch"); - pResetWriteWatch = (void *) GetProcAddress(hkernel32, "ResetWriteWatch"); - pGetProcessDEPPolicy = (void *)GetProcAddress( hkernel32, "GetProcessDEPPolicy" ); -+ pIsWow64Process = (void *)GetProcAddress( hkernel32, "IsWow64Process" ); - pNtAreMappedFilesTheSame = (void *)GetProcAddress( hntdll, "NtAreMappedFilesTheSame" ); - pNtMapViewOfSection = (void *)GetProcAddress( hntdll, "NtMapViewOfSection" ); - pNtUnmapViewOfSection = (void *)GetProcAddress( hntdll, "NtUnmapViewOfSection" ); -@@ -3502,6 +3697,8 @@ START_TEST(virtual) - pRtlAddVectoredExceptionHandler = (void *)GetProcAddress( hntdll, "RtlAddVectoredExceptionHandler" ); - pRtlRemoveVectoredExceptionHandler = (void *)GetProcAddress( hntdll, "RtlRemoveVectoredExceptionHandler" ); - pNtProtectVirtualMemory = (void *)GetProcAddress( hntdll, "NtProtectVirtualMemory" ); -+ pNtAllocateVirtualMemory = (void *)GetProcAddress( hntdll, "NtAllocateVirtualMemory" ); -+ pNtFreeVirtualMemory = (void *)GetProcAddress( hntdll, "NtFreeVirtualMemory" ); - - test_shared_memory(FALSE); - test_shared_memory_ro(FALSE, FILE_MAP_READ|FILE_MAP_WRITE); -diff --git a/include/winnt.h b/include/winnt.h -index 7a08810..fcf65f2 100644 ---- a/include/winnt.h -+++ b/include/winnt.h -@@ -736,6 +736,7 @@ typedef struct _MEMORY_BASIC_INFORMATION - - #define WRITE_WATCH_FLAG_RESET 0x00000001 - -+#define AT_ROUND_TO_PAGE 0x40000000 - - #define MINCHAR 0x80 - #define MAXCHAR 0x7f --- -2.4.2 - diff --git a/patches/ntdll-AT_ROUND_TO_PAGE/0003-ntdll-Add-support-for-AT_ROUND_TO_PAGE-flag-in-NtMap.patch b/patches/ntdll-AT_ROUND_TO_PAGE/0001-ntdll-Add-support-for-AT_ROUND_TO_PAGE-flag-in-NtMap.patch similarity index 100% rename from patches/ntdll-AT_ROUND_TO_PAGE/0003-ntdll-Add-support-for-AT_ROUND_TO_PAGE-flag-in-NtMap.patch rename to patches/ntdll-AT_ROUND_TO_PAGE/0001-ntdll-Add-support-for-AT_ROUND_TO_PAGE-flag-in-NtMap.patch diff --git a/patches/ntdll-AT_ROUND_TO_PAGE/0002-ntdll-Fix-status-code-when-NtMapViewOfSection-parame.patch b/patches/ntdll-AT_ROUND_TO_PAGE/0002-ntdll-Fix-status-code-when-NtMapViewOfSection-parame.patch deleted file mode 100644 index 97ae3b9b..00000000 --- a/patches/ntdll-AT_ROUND_TO_PAGE/0002-ntdll-Fix-status-code-when-NtMapViewOfSection-parame.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 4ebf978e075ba7ff2977144606b4da6580145a1b Mon Sep 17 00:00:00 2001 -From: Sebastian Lackner -Date: Fri, 5 Jun 2015 07:35:11 +0200 -Subject: ntdll: Fix status code when NtMapViewOfSection parameter check fails. - ---- - dlls/kernel32/tests/virtual.c | 3 --- - dlls/ntdll/virtual.c | 2 +- - 2 files changed, 1 insertion(+), 4 deletions(-) - -diff --git a/dlls/kernel32/tests/virtual.c b/dlls/kernel32/tests/virtual.c -index 15fa903..08a34bf 100644 ---- a/dlls/kernel32/tests/virtual.c -+++ b/dlls/kernel32/tests/virtual.c -@@ -1075,7 +1075,6 @@ static void test_NtMapViewOfSection(void) - size = 0; - offset.QuadPart = 1; - status = pNtMapViewOfSection( mapping, hProcess, &ptr2, 0, 0, &offset, &size, 1, 0, PAGE_READWRITE ); -- todo_wine - ok( status == STATUS_MAPPED_ALIGNMENT, "NtMapViewOfSection returned %x\n", status ); - - /* ptr has to be aligned */ -@@ -1083,7 +1082,6 @@ static void test_NtMapViewOfSection(void) - size = 0; - offset.QuadPart = 0; - status = pNtMapViewOfSection( mapping, hProcess, &ptr2, 0, 0, &offset, &size, 1, 0, PAGE_READWRITE ); -- todo_wine - ok( status == STATUS_MAPPED_ALIGNMENT, "NtMapViewOfSection returned %x\n", status ); - - /* still not 64k aligned */ -@@ -1091,7 +1089,6 @@ static void test_NtMapViewOfSection(void) - size = 0; - offset.QuadPart = 0; - status = pNtMapViewOfSection( mapping, hProcess, &ptr2, 0, 0, &offset, &size, 1, 0, PAGE_READWRITE ); -- todo_wine - ok( status == STATUS_MAPPED_ALIGNMENT, "NtMapViewOfSection returned %x\n", status ); - - /* zero_bits != 0 is not allowed when an address is set */ -diff --git a/dlls/ntdll/virtual.c b/dlls/ntdll/virtual.c -index 0629816..72309f6 100644 ---- a/dlls/ntdll/virtual.c -+++ b/dlls/ntdll/virtual.c -@@ -2602,7 +2602,7 @@ NTSTATUS WINAPI NtMapViewOfSection( HANDLE handle, HANDLE process, PVOID *addr_p - /* Check parameters */ - - if ((offset.u.LowPart & mask) || (*addr_ptr && ((UINT_PTR)*addr_ptr & mask))) -- return STATUS_INVALID_PARAMETER; -+ return STATUS_MAPPED_ALIGNMENT; - - switch(protect) - { --- -2.4.2 - diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index e0273538..ddef6ccd 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -55,7 +55,7 @@ version() echo "Copyright (C) 2014-2015 the Wine Staging project authors." echo "" echo "Patchset to be applied on upstream Wine:" - echo " commit b2aa984743cb568f8e6a634a1536bf65950167db" + echo " commit 0922865b377913a27cea568ac688787a8117d8a7" echo "" } @@ -81,7 +81,6 @@ patch_enable_all () enable_Pipelight="$1" enable_Staging="$1" enable_advapi32_LsaLookupSids="$1" - enable_browseui_ACLShell_IEnumString="$1" enable_browseui_Progress_Dialog="$1" enable_combase_String="$1" enable_comctl32_LoadIconMetric="$1" @@ -196,7 +195,6 @@ patch_enable_all () enable_nvcuvid_CUDA_Video_Support="$1" enable_nvencodeapi_Video_Encoder="$1" enable_opengl32_Revert_Disable_Ext="$1" - enable_quartz_Advice_Timers="$1" enable_quartz_MediaSeeking_Positions="$1" enable_regedit_Reg_Parser="$1" enable_riched20_IText_Interface="$1" @@ -271,7 +269,6 @@ patch_enable_all () enable_wined3d_UnhandledBlendFactor="$1" enable_wined3d_resource_check_usage="$1" enable_wined3d_wined3d_swapchain_present="$1" - enable_winedbg_SystemInfo="$1" enable_winedevice_Fix_Relocation="$1" enable_winemenubuilder_Desktop_Icon_Path="$1" enable_winepulse_PulseAudio_Support="$1" @@ -325,9 +322,6 @@ patch_enable () advapi32-LsaLookupSids) enable_advapi32_LsaLookupSids="$2" ;; - browseui-ACLShell_IEnumString) - enable_browseui_ACLShell_IEnumString="$2" - ;; browseui-Progress_Dialog) enable_browseui_Progress_Dialog="$2" ;; @@ -673,9 +667,6 @@ patch_enable () opengl32-Revert_Disable_Ext) enable_opengl32_Revert_Disable_Ext="$2" ;; - quartz-Advice_Timers) - enable_quartz_Advice_Timers="$2" - ;; quartz-MediaSeeking_Positions) enable_quartz_MediaSeeking_Positions="$2" ;; @@ -898,9 +889,6 @@ patch_enable () wined3d-wined3d_swapchain_present) enable_wined3d_wined3d_swapchain_present="$2" ;; - winedbg-SystemInfo) - enable_winedbg_SystemInfo="$2" - ;; winedevice-Fix_Relocation) enable_winedevice_Fix_Relocation="$2" ;; @@ -2082,6 +2070,23 @@ if test "$enable_Staging" -eq 1; then ) >> "$patchlist" fi +# Patchset server-Misc_ACL +# | +# | This patchset fixes the following Wine bugs: +# | * [#15980] GetSecurityInfo returns NULL DACL for process object +# | +# | Modified files: +# | * dlls/advapi32/tests/security.c, server/process.c, server/security.h, server/token.c +# | +if test "$enable_server_Misc_ACL" -eq 1; then + patch_apply server-Misc_ACL/0001-server-Add-default-security-descriptor-ownership-for.patch + patch_apply server-Misc_ACL/0002-server-Add-default-security-descriptor-DACL-for-proc.patch + ( + echo '+ { "Erich E. Hoover", "server: Add default security descriptor ownership for processes.", 1 },'; + echo '+ { "Erich E. Hoover", "server: Add default security descriptor DACL for processes.", 1 },'; + ) >> "$patchlist" +fi + # Patchset server-CreateProcess_ACLs # | # | This patchset fixes the following Wine bugs: @@ -2101,23 +2106,6 @@ if test "$enable_server_CreateProcess_ACLs" -eq 1; then ) >> "$patchlist" fi -# Patchset server-Misc_ACL -# | -# | This patchset fixes the following Wine bugs: -# | * [#15980] GetSecurityInfo returns NULL DACL for process object -# | -# | Modified files: -# | * dlls/advapi32/tests/security.c, server/process.c, server/security.h, server/token.c -# | -if test "$enable_server_Misc_ACL" -eq 1; then - patch_apply server-Misc_ACL/0001-server-Add-default-security-descriptor-ownership-for.patch - patch_apply server-Misc_ACL/0002-server-Add-default-security-descriptor-DACL-for-proc.patch - ( - echo '+ { "Erich E. Hoover", "server: Add default security descriptor ownership for processes.", 1 },'; - echo '+ { "Erich E. Hoover", "server: Add default security descriptor DACL for processes.", 1 },'; - ) >> "$patchlist" -fi - # Patchset advapi32-LsaLookupSids # | # | Modified files: @@ -2142,21 +2130,6 @@ if test "$enable_advapi32_LsaLookupSids" -eq 1; then ) >> "$patchlist" fi -# Patchset browseui-ACLShell_IEnumString -# | -# | This patchset fixes the following Wine bugs: -# | * [#18019] Add IEnumString stub interface for ACLShellSource -# | -# | Modified files: -# | * dlls/browseui/aclsource.c -# | -if test "$enable_browseui_ACLShell_IEnumString" -eq 1; then - patch_apply browseui-ACLShell_IEnumString/0001-browseui-Add-IEnumString-stub-interface-for-ACLShell.patch - ( - echo '+ { "Michael Müller", "browseui: Add IEnumString stub interface for ACLShellSource.", 1 },'; - ) >> "$patchlist" -fi - # Patchset browseui-Progress_Dialog # | # | Modified files: @@ -3518,15 +3491,11 @@ fi # Patchset ntdll-AT_ROUND_TO_PAGE # | # | Modified files: -# | * dlls/kernel32/tests/virtual.c, dlls/ntdll/virtual.c, include/winnt.h +# | * dlls/kernel32/tests/virtual.c, dlls/ntdll/virtual.c # | if test "$enable_ntdll_AT_ROUND_TO_PAGE" -eq 1; then - patch_apply ntdll-AT_ROUND_TO_PAGE/0001-kernel32-tests-Add-tests-for-virtual-memory-align-be.patch - patch_apply ntdll-AT_ROUND_TO_PAGE/0002-ntdll-Fix-status-code-when-NtMapViewOfSection-parame.patch - patch_apply ntdll-AT_ROUND_TO_PAGE/0003-ntdll-Add-support-for-AT_ROUND_TO_PAGE-flag-in-NtMap.patch + patch_apply ntdll-AT_ROUND_TO_PAGE/0001-ntdll-Add-support-for-AT_ROUND_TO_PAGE-flag-in-NtMap.patch ( - echo '+ { "Sebastian Lackner", "kernel32/tests: Add tests for virtual memory align behaviour.", 1 },'; - echo '+ { "Sebastian Lackner", "ntdll: Fix status code when NtMapViewOfSection parameter check fails.", 1 },'; echo '+ { "Sebastian Lackner", "ntdll: Add support for AT_ROUND_TO_PAGE flag in NtMapViewOfSection.", 1 },'; ) >> "$patchlist" fi @@ -4202,18 +4171,6 @@ if test "$enable_opengl32_Revert_Disable_Ext" -eq 1; then ) >> "$patchlist" fi -# Patchset quartz-Advice_Timers -# | -# | Modified files: -# | * dlls/quartz/systemclock.c -# | -if test "$enable_quartz_Advice_Timers" -eq 1; then - patch_apply quartz-Advice_Timers/0001-quartz-Fix-handling-of-periodic-advice-timers.patch - ( - echo '+ { "Sebastian Lackner", "quartz: Fix handling of periodic advice timers.", 1 },'; - ) >> "$patchlist" -fi - # Patchset quartz-MediaSeeking_Positions # | # | This patchset fixes the following Wine bugs: @@ -4265,7 +4222,6 @@ if test "$enable_riched20_IText_Interface" -eq 1; then patch_apply riched20-IText_Interface/0008-riched20-Implement-ITextRange-GetStoryLength.patch patch_apply riched20-IText_Interface/0009-riched20-Implement-ITextSelection-GetStoryLength.patch patch_apply riched20-IText_Interface/0010-riched20-Silence-repeated-FIXMEs-triggered-by-Adobe-.patch - patch_apply riched20-IText_Interface/0011-riched20-Implement-ITextSelection_fnGetDuplicate.patch ( echo '+ { "Jactry Zeng", "riched20: Implement IText{Selection, Range}::Set{Start, End}.", 1 },'; echo '+ { "Jactry Zeng", "riched20: Stub for ITextFont interface and implement ITextRange::GetFont and ITextSelection::GetFont.", 1 },'; @@ -4277,7 +4233,6 @@ if test "$enable_riched20_IText_Interface" -eq 1; then echo '+ { "Jactry Zeng", "riched20: Implement ITextRange::GetStoryLength.", 1 },'; echo '+ { "Jactry Zeng", "riched20: Implement ITextSelection::GetStoryLength.", 1 },'; echo '+ { "Sebastian Lackner", "riched20: Silence repeated FIXMEs triggered by Adobe Reader.", 1 },'; - echo '+ { "Sebastian Lackner", "riched20: Implement ITextSelection_fnGetDuplicate.", 1 },'; ) >> "$patchlist" fi @@ -5195,40 +5150,6 @@ if test "$enable_wined3d_CSMT_Helper" -eq 1; then ) >> "$patchlist" fi -# Patchset wined3d-Revert_PixelFormat -# | -# | This patchset fixes the following Wine bugs: -# | * [#35655] Fix wined3d performance drop introduced by pixelformat changes. -# | * [#35718] Fix flickering introduced by pixelformat changes. -# | * [#35950] Fix black screen on startup introduced by pixelformat changes. -# | * [#35975] Fix gray screen on startup introduced by pixelformat changes. -# | * [#36900] Fix missing video introduced by pixelformat changes. -# | -# | Modified files: -# | * dlls/d3d8/tests/device.c, dlls/d3d9/tests/device.c, dlls/ddraw/tests/ddraw1.c, dlls/ddraw/tests/ddraw2.c, -# | dlls/ddraw/tests/ddraw4.c, dlls/ddraw/tests/ddraw7.c, dlls/wined3d/context.c, dlls/wined3d/wined3d_private.h -# | -if test "$enable_wined3d_Revert_PixelFormat" -eq 1; then - patch_apply wined3d-Revert_PixelFormat/0001-Revert-wined3d-Track-if-a-context-s-private-hdc-has-.patch - patch_apply wined3d-Revert_PixelFormat/0002-Revert-wined3d-Track-if-a-context-s-hdc-is-private-s.patch - patch_apply wined3d-Revert_PixelFormat/0003-Revert-wined3d-When-restoring-pixel-format-in-contex.patch - patch_apply wined3d-Revert_PixelFormat/0004-Revert-wined3d-Don-t-call-GetPixelFormat-to-set-a-fl.patch - patch_apply wined3d-Revert_PixelFormat/0005-Revert-wined3d-Restore-the-pixel-format-of-the-windo.patch - patch_apply wined3d-Revert_PixelFormat/0006-d3d8-Mark-tests-which-no-longer-pass-due-to-reverts-.patch - patch_apply wined3d-Revert_PixelFormat/0007-d3d9-Mark-tests-which-no-longer-pass-due-to-reverts-.patch - patch_apply wined3d-Revert_PixelFormat/0008-ddraw-Mark-tests-which-no-longer-pass-due-to-reverts.patch - ( - echo '+ { "Ken Thomases", "Revert \"wined3d: Track if a context'\''s private hdc has had its pixel format set, so we don'\''t need to check it.\".", 1 },'; - echo '+ { "Ken Thomases", "Revert \"wined3d: Track if a context'\''s hdc is private so we never need to restore its pixel format.\".", 1 },'; - echo '+ { "Ken Thomases", "Revert \"wined3d: When restoring pixel format in context_release(), mark the context as needing to be set on the next context_acquire().\".", 1 },'; - echo '+ { "Ken Thomases", "Revert \"wined3d: Don'\''t call GetPixelFormat() to set a flag that'\''s already set.\".", 1 },'; - echo '+ { "Ken Thomases", "Revert \"wined3d: Restore the pixel format of the window whose pixel format was actually changed.\".", 1 },'; - echo '+ { "Ken Thomases", "d3d8: Mark tests which no longer pass due to reverts as todo_wine.", 1 },'; - echo '+ { "Ken Thomases", "d3d9: Mark tests which no longer pass due to reverts as todo_wine.", 1 },'; - echo '+ { "Ken Thomases", "ddraw: Mark tests which no longer pass due to reverts as todo_wine.", 1 },'; - ) >> "$patchlist" -fi - # Patchset wined3d-UnhandledBlendFactor # | # | Modified files: @@ -5280,6 +5201,40 @@ if test "$enable_wined3d_Multisampling" -eq 1; then ) >> "$patchlist" fi +# Patchset wined3d-Revert_PixelFormat +# | +# | This patchset fixes the following Wine bugs: +# | * [#35655] Fix wined3d performance drop introduced by pixelformat changes. +# | * [#35718] Fix flickering introduced by pixelformat changes. +# | * [#35950] Fix black screen on startup introduced by pixelformat changes. +# | * [#35975] Fix gray screen on startup introduced by pixelformat changes. +# | * [#36900] Fix missing video introduced by pixelformat changes. +# | +# | Modified files: +# | * dlls/d3d8/tests/device.c, dlls/d3d9/tests/device.c, dlls/ddraw/tests/ddraw1.c, dlls/ddraw/tests/ddraw2.c, +# | dlls/ddraw/tests/ddraw4.c, dlls/ddraw/tests/ddraw7.c, dlls/wined3d/context.c, dlls/wined3d/wined3d_private.h +# | +if test "$enable_wined3d_Revert_PixelFormat" -eq 1; then + patch_apply wined3d-Revert_PixelFormat/0001-Revert-wined3d-Track-if-a-context-s-private-hdc-has-.patch + patch_apply wined3d-Revert_PixelFormat/0002-Revert-wined3d-Track-if-a-context-s-hdc-is-private-s.patch + patch_apply wined3d-Revert_PixelFormat/0003-Revert-wined3d-When-restoring-pixel-format-in-contex.patch + patch_apply wined3d-Revert_PixelFormat/0004-Revert-wined3d-Don-t-call-GetPixelFormat-to-set-a-fl.patch + patch_apply wined3d-Revert_PixelFormat/0005-Revert-wined3d-Restore-the-pixel-format-of-the-windo.patch + patch_apply wined3d-Revert_PixelFormat/0006-d3d8-Mark-tests-which-no-longer-pass-due-to-reverts-.patch + patch_apply wined3d-Revert_PixelFormat/0007-d3d9-Mark-tests-which-no-longer-pass-due-to-reverts-.patch + patch_apply wined3d-Revert_PixelFormat/0008-ddraw-Mark-tests-which-no-longer-pass-due-to-reverts.patch + ( + echo '+ { "Ken Thomases", "Revert \"wined3d: Track if a context'\''s private hdc has had its pixel format set, so we don'\''t need to check it.\".", 1 },'; + echo '+ { "Ken Thomases", "Revert \"wined3d: Track if a context'\''s hdc is private so we never need to restore its pixel format.\".", 1 },'; + echo '+ { "Ken Thomases", "Revert \"wined3d: When restoring pixel format in context_release(), mark the context as needing to be set on the next context_acquire().\".", 1 },'; + echo '+ { "Ken Thomases", "Revert \"wined3d: Don'\''t call GetPixelFormat() to set a flag that'\''s already set.\".", 1 },'; + echo '+ { "Ken Thomases", "Revert \"wined3d: Restore the pixel format of the window whose pixel format was actually changed.\".", 1 },'; + echo '+ { "Ken Thomases", "d3d8: Mark tests which no longer pass due to reverts as todo_wine.", 1 },'; + echo '+ { "Ken Thomases", "d3d9: Mark tests which no longer pass due to reverts as todo_wine.", 1 },'; + echo '+ { "Ken Thomases", "ddraw: Mark tests which no longer pass due to reverts as todo_wine.", 1 },'; + ) >> "$patchlist" +fi + # Patchset wined3d-CSMT_Main # | # | This patchset fixes the following Wine bugs: @@ -5648,18 +5603,6 @@ if test "$enable_wined3d_CSMT_Main" -eq 1; then ) >> "$patchlist" fi -# Patchset winedbg-SystemInfo -# | -# | Modified files: -# | * programs/winedbg/tgt_active.c -# | -if test "$enable_winedbg_SystemInfo" -eq 1; then - patch_apply winedbg-SystemInfo/0001-winedbg-Also-output-system-information-to-the-termin.patch - ( - echo '+ { "Sebastian Lackner", "winedbg: Also output system information to the terminal, not only to dialog.", 1 },'; - ) >> "$patchlist" -fi - # Patchset winedevice-Fix_Relocation # | # | This patchset fixes the following Wine bugs: diff --git a/patches/quartz-Advice_Timers/0001-quartz-Fix-handling-of-periodic-advice-timers.patch b/patches/quartz-Advice_Timers/0001-quartz-Fix-handling-of-periodic-advice-timers.patch deleted file mode 100644 index b5019557..00000000 --- a/patches/quartz-Advice_Timers/0001-quartz-Fix-handling-of-periodic-advice-timers.patch +++ /dev/null @@ -1,24 +0,0 @@ -From e2d401d2f7ac762968cbc25bf2fccb3fb749770a Mon Sep 17 00:00:00 2001 -From: Sebastian Lackner -Date: Sun, 7 Jun 2015 20:15:20 +0200 -Subject: quartz: Fix handling of periodic advice timers. - ---- - dlls/quartz/systemclock.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/dlls/quartz/systemclock.c b/dlls/quartz/systemclock.c -index 043299b..cdb06f7 100644 ---- a/dlls/quartz/systemclock.c -+++ b/dlls/quartz/systemclock.c -@@ -127,6 +127,7 @@ static DWORD WINAPI SystemClockAdviseThread(LPVOID lpParam) { - it = nextit; - } - if (NULL != it) timeOut = (DWORD) ((it->rtBaseTime + it->rtIntervalTime) - curTime) / (REFERENCE_TIME)10000; -+ else timeOut = INFINITE; - - /** Now Periodics Advice: semi sorted list (sort cannot be used) */ - for (it = This->pPeriodicAdvise; NULL != it; it = it->next) { --- -2.4.2 - diff --git a/patches/quartz-Advice_Timers/definition b/patches/quartz-Advice_Timers/definition deleted file mode 100644 index 367b2fd8..00000000 --- a/patches/quartz-Advice_Timers/definition +++ /dev/null @@ -1 +0,0 @@ -Fixes: Fix handling of periodic advice timers causing high CPU usage diff --git a/patches/riched20-IText_Interface/0001-riched20-Implement-IText-Selection-Range-Set-Start-E.patch b/patches/riched20-IText_Interface/0001-riched20-Implement-IText-Selection-Range-Set-Start-E.patch index 9fc86203..b39ba55c 100644 --- a/patches/riched20-IText_Interface/0001-riched20-Implement-IText-Selection-Range-Set-Start-E.patch +++ b/patches/riched20-IText_Interface/0001-riched20-Implement-IText-Selection-Range-Set-Start-E.patch @@ -1,4 +1,4 @@ -From 1245a3cdde079cccdbd7a5fbae3132e325caff0e Mon Sep 17 00:00:00 2001 +From eb8033132c15abb87c53f2e8b52c6fb6622f333b Mon Sep 17 00:00:00 2001 From: Jactry Zeng Date: Fri, 8 Aug 2014 21:32:57 +0800 Subject: riched20: Implement IText{Selection, Range}::Set{Start, End}. @@ -8,11 +8,11 @@ Subject: riched20: Implement IText{Selection, Range}::Set{Start, End}. 1 file changed, 135 insertions(+) diff --git a/dlls/riched20/tests/richole.c b/dlls/riched20/tests/richole.c -index 101896e..20cb78c 100644 +index fd4d9e8..3be6320 100644 --- a/dlls/riched20/tests/richole.c +++ b/dlls/riched20/tests/richole.c -@@ -3108,6 +3108,137 @@ static void test_InsertObject(void) - release_interfaces(&hwnd, &reole, &doc, NULL); +@@ -3251,6 +3251,137 @@ static void test_ITextSelection_GetDuplicate(void) + ITextRange_Release(range); } +static void test_ITextRange_SetStart(void) @@ -149,7 +149,7 @@ index 101896e..20cb78c 100644 START_TEST(richole) { /* Must explicitly LoadLibrary(). The test has no references to functions in -@@ -3120,11 +3251,15 @@ START_TEST(richole) +@@ -3263,11 +3394,15 @@ START_TEST(richole) test_GetText(); test_ITextSelection_GetChar(); test_ITextSelection_GetStart_GetEnd(); diff --git a/patches/riched20-IText_Interface/0002-riched20-Stub-for-ITextFont-interface-and-implement-.patch b/patches/riched20-IText_Interface/0002-riched20-Stub-for-ITextFont-interface-and-implement-.patch index 51a3d8bb..8a750803 100644 --- a/patches/riched20-IText_Interface/0002-riched20-Stub-for-ITextFont-interface-and-implement-.patch +++ b/patches/riched20-IText_Interface/0002-riched20-Stub-for-ITextFont-interface-and-implement-.patch @@ -1,4 +1,4 @@ -From ae80466c3ae5494b123bbcc7f210b85691d94eb2 Mon Sep 17 00:00:00 2001 +From fb297f3423e913e7c25e433a0257a12970666d57 Mon Sep 17 00:00:00 2001 From: Jactry Zeng Date: Mon, 11 Aug 2014 13:51:55 +0800 Subject: riched20: Stub for ITextFont interface and implement @@ -10,10 +10,10 @@ Subject: riched20: Stub for ITextFont interface and implement 2 files changed, 113 insertions(+) diff --git a/dlls/riched20/richole.c b/dlls/riched20/richole.c -index f3a4a01..9f31654 100644 +index d39bce7..64809cc 100644 --- a/dlls/riched20/richole.c +++ b/dlls/riched20/richole.c -@@ -2526,6 +2526,10 @@ static HRESULT WINAPI TextFont_SetDuplicate(ITextFont *iface, ITextFont *pFont) +@@ -2544,6 +2544,10 @@ static HRESULT WINAPI TextFont_SetDuplicate(ITextFont *iface, ITextFont *pFont) { ITextFontImpl *This = impl_from_ITextFont(iface); FIXME("(%p)->(%p): stub\n", This, pFont); @@ -24,7 +24,7 @@ index f3a4a01..9f31654 100644 return E_NOTIMPL; } -@@ -2533,6 +2537,10 @@ static HRESULT WINAPI TextFont_CanChange(ITextFont *iface, LONG *ret) +@@ -2551,6 +2555,10 @@ static HRESULT WINAPI TextFont_CanChange(ITextFont *iface, LONG *ret) { ITextFontImpl *This = impl_from_ITextFont(iface); FIXME("(%p)->(%p): stub\n", This, ret); @@ -35,7 +35,7 @@ index f3a4a01..9f31654 100644 return E_NOTIMPL; } -@@ -2540,6 +2548,10 @@ static HRESULT WINAPI TextFont_IsEqual(ITextFont *iface, ITextFont *font, LONG * +@@ -2558,6 +2566,10 @@ static HRESULT WINAPI TextFont_IsEqual(ITextFont *iface, ITextFont *font, LONG * { ITextFontImpl *This = impl_from_ITextFont(iface); FIXME("(%p)->(%p %p): stub\n", This, font, ret); @@ -46,7 +46,7 @@ index f3a4a01..9f31654 100644 return E_NOTIMPL; } -@@ -2713,6 +2725,10 @@ static HRESULT WINAPI TextFont_GetStyle(ITextFont *iface, LONG *value) +@@ -2731,6 +2743,10 @@ static HRESULT WINAPI TextFont_GetStyle(ITextFont *iface, LONG *value) { ITextFontImpl *This = impl_from_ITextFont(iface); FIXME("(%p)->(%p): stub\n", This, value); @@ -57,7 +57,7 @@ index f3a4a01..9f31654 100644 return E_NOTIMPL; } -@@ -2720,6 +2736,10 @@ static HRESULT WINAPI TextFont_SetStyle(ITextFont *iface, LONG value) +@@ -2738,6 +2754,10 @@ static HRESULT WINAPI TextFont_SetStyle(ITextFont *iface, LONG value) { ITextFontImpl *This = impl_from_ITextFont(iface); FIXME("(%p)->(%d): stub\n", This, value); @@ -69,10 +69,10 @@ index f3a4a01..9f31654 100644 } diff --git a/dlls/riched20/tests/richole.c b/dlls/riched20/tests/richole.c -index 957cbee..02576a8 100644 +index 3be6320..5f8e1cc 100644 --- a/dlls/riched20/tests/richole.c +++ b/dlls/riched20/tests/richole.c -@@ -3203,6 +3203,97 @@ static void test_ITextSelection_SetEnd(void) +@@ -3382,6 +3382,97 @@ static void test_ITextSelection_SetEnd(void) release_interfaces(&w, &reOle, &txtDoc, &txtSel); } @@ -170,7 +170,7 @@ index 957cbee..02576a8 100644 START_TEST(richole) { /* Must explicitly LoadLibrary(). The test has no references to functions in -@@ -3218,6 +3309,7 @@ START_TEST(richole) +@@ -3397,6 +3488,7 @@ START_TEST(richole) test_ITextSelection_SetStart(); test_ITextSelection_SetEnd(); test_ITextSelection_Collapse(); @@ -178,7 +178,7 @@ index 957cbee..02576a8 100644 test_ITextDocument_Range(); test_ITextRange_GetChar(); test_ITextRange_GetStart_GetEnd(); -@@ -3225,6 +3317,7 @@ START_TEST(richole) +@@ -3404,6 +3496,7 @@ START_TEST(richole) test_ITextRange_SetStart(); test_ITextRange_SetEnd(); test_ITextRange_Collapse(); diff --git a/patches/riched20-IText_Interface/0003-riched20-Stub-for-ITextPara-interface-and-implement-.patch b/patches/riched20-IText_Interface/0003-riched20-Stub-for-ITextPara-interface-and-implement-.patch index d3786010..63fc08ef 100644 --- a/patches/riched20-IText_Interface/0003-riched20-Stub-for-ITextPara-interface-and-implement-.patch +++ b/patches/riched20-IText_Interface/0003-riched20-Stub-for-ITextPara-interface-and-implement-.patch @@ -1,4 +1,4 @@ -From cdbc7f63c0cf485261d76ee0e908c041b3850a18 Mon Sep 17 00:00:00 2001 +From b2a2a423ce6d478f1d34408c5db559bffc482a17 Mon Sep 17 00:00:00 2001 From: Jactry Zeng Date: Sun, 10 Aug 2014 22:17:57 +0800 Subject: riched20: Stub for ITextPara interface and implement @@ -10,10 +10,10 @@ Subject: riched20: Stub for ITextPara interface and implement 2 files changed, 249 insertions(+) diff --git a/dlls/riched20/richole.c b/dlls/riched20/richole.c -index 9f31654..c9e4753 100644 +index 64809cc..c309292 100644 --- a/dlls/riched20/richole.c +++ b/dlls/riched20/richole.c -@@ -3246,6 +3246,16 @@ static ULONG WINAPI TextPara_Release(ITextPara *iface) +@@ -3264,6 +3264,16 @@ static ULONG WINAPI TextPara_Release(ITextPara *iface) return ref; } @@ -30,7 +30,7 @@ index 9f31654..c9e4753 100644 static HRESULT WINAPI TextPara_GetTypeInfoCount(ITextPara *iface, UINT *pctinfo) { ITextParaImpl *This = impl_from_ITextPara(iface); -@@ -3312,6 +3322,10 @@ static HRESULT WINAPI TextPara_GetDuplicate(ITextPara *iface, ITextPara **ret) +@@ -3330,6 +3340,10 @@ static HRESULT WINAPI TextPara_GetDuplicate(ITextPara *iface, ITextPara **ret) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%p)\n", This, ret); @@ -41,7 +41,7 @@ index 9f31654..c9e4753 100644 return E_NOTIMPL; } -@@ -3319,6 +3333,10 @@ static HRESULT WINAPI TextPara_SetDuplicate(ITextPara *iface, ITextPara *para) +@@ -3337,6 +3351,10 @@ static HRESULT WINAPI TextPara_SetDuplicate(ITextPara *iface, ITextPara *para) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%p)\n", This, para); @@ -52,7 +52,7 @@ index 9f31654..c9e4753 100644 return E_NOTIMPL; } -@@ -3326,6 +3344,10 @@ static HRESULT WINAPI TextPara_CanChange(ITextPara *iface, LONG *ret) +@@ -3344,6 +3362,10 @@ static HRESULT WINAPI TextPara_CanChange(ITextPara *iface, LONG *ret) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%p)\n", This, ret); @@ -63,7 +63,7 @@ index 9f31654..c9e4753 100644 return E_NOTIMPL; } -@@ -3333,6 +3355,10 @@ static HRESULT WINAPI TextPara_IsEqual(ITextPara *iface, ITextPara *para, LONG * +@@ -3351,6 +3373,10 @@ static HRESULT WINAPI TextPara_IsEqual(ITextPara *iface, ITextPara *para, LONG * { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%p %p)\n", This, para, ret); @@ -74,7 +74,7 @@ index 9f31654..c9e4753 100644 return E_NOTIMPL; } -@@ -3340,6 +3366,10 @@ static HRESULT WINAPI TextPara_Reset(ITextPara *iface, LONG value) +@@ -3358,6 +3384,10 @@ static HRESULT WINAPI TextPara_Reset(ITextPara *iface, LONG value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%d)\n", This, value); @@ -85,7 +85,7 @@ index 9f31654..c9e4753 100644 return E_NOTIMPL; } -@@ -3347,6 +3377,10 @@ static HRESULT WINAPI TextPara_GetStyle(ITextPara *iface, LONG *value) +@@ -3365,6 +3395,10 @@ static HRESULT WINAPI TextPara_GetStyle(ITextPara *iface, LONG *value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%p)\n", This, value); @@ -96,7 +96,7 @@ index 9f31654..c9e4753 100644 return E_NOTIMPL; } -@@ -3354,6 +3388,10 @@ static HRESULT WINAPI TextPara_SetStyle(ITextPara *iface, LONG value) +@@ -3372,6 +3406,10 @@ static HRESULT WINAPI TextPara_SetStyle(ITextPara *iface, LONG value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%d)\n", This, value); @@ -107,7 +107,7 @@ index 9f31654..c9e4753 100644 return E_NOTIMPL; } -@@ -3361,6 +3399,10 @@ static HRESULT WINAPI TextPara_GetAlignment(ITextPara *iface, LONG *value) +@@ -3379,6 +3417,10 @@ static HRESULT WINAPI TextPara_GetAlignment(ITextPara *iface, LONG *value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%p)\n", This, value); @@ -118,7 +118,7 @@ index 9f31654..c9e4753 100644 return E_NOTIMPL; } -@@ -3368,6 +3410,10 @@ static HRESULT WINAPI TextPara_SetAlignment(ITextPara *iface, LONG value) +@@ -3386,6 +3428,10 @@ static HRESULT WINAPI TextPara_SetAlignment(ITextPara *iface, LONG value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%d)\n", This, value); @@ -129,7 +129,7 @@ index 9f31654..c9e4753 100644 return E_NOTIMPL; } -@@ -3375,6 +3421,10 @@ static HRESULT WINAPI TextPara_GetHyphenation(ITextPara *iface, LONG *value) +@@ -3393,6 +3439,10 @@ static HRESULT WINAPI TextPara_GetHyphenation(ITextPara *iface, LONG *value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%p)\n", This, value); @@ -140,7 +140,7 @@ index 9f31654..c9e4753 100644 return E_NOTIMPL; } -@@ -3382,6 +3432,10 @@ static HRESULT WINAPI TextPara_SetHyphenation(ITextPara *iface, LONG value) +@@ -3400,6 +3450,10 @@ static HRESULT WINAPI TextPara_SetHyphenation(ITextPara *iface, LONG value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%d)\n", This, value); @@ -151,7 +151,7 @@ index 9f31654..c9e4753 100644 return E_NOTIMPL; } -@@ -3389,6 +3443,10 @@ static HRESULT WINAPI TextPara_GetFirstLineIndent(ITextPara *iface, FLOAT *value +@@ -3407,6 +3461,10 @@ static HRESULT WINAPI TextPara_GetFirstLineIndent(ITextPara *iface, FLOAT *value { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%p)\n", This, value); @@ -162,7 +162,7 @@ index 9f31654..c9e4753 100644 return E_NOTIMPL; } -@@ -3396,6 +3454,10 @@ static HRESULT WINAPI TextPara_GetKeepTogether(ITextPara *iface, LONG *value) +@@ -3414,6 +3472,10 @@ static HRESULT WINAPI TextPara_GetKeepTogether(ITextPara *iface, LONG *value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%p)\n", This, value); @@ -173,7 +173,7 @@ index 9f31654..c9e4753 100644 return E_NOTIMPL; } -@@ -3403,6 +3465,10 @@ static HRESULT WINAPI TextPara_SetKeepTogether(ITextPara *iface, LONG value) +@@ -3421,6 +3483,10 @@ static HRESULT WINAPI TextPara_SetKeepTogether(ITextPara *iface, LONG value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%d)\n", This, value); @@ -184,7 +184,7 @@ index 9f31654..c9e4753 100644 return E_NOTIMPL; } -@@ -3410,6 +3476,10 @@ static HRESULT WINAPI TextPara_GetKeepWithNext(ITextPara *iface, LONG *value) +@@ -3428,6 +3494,10 @@ static HRESULT WINAPI TextPara_GetKeepWithNext(ITextPara *iface, LONG *value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%p)\n", This, value); @@ -195,7 +195,7 @@ index 9f31654..c9e4753 100644 return E_NOTIMPL; } -@@ -3417,6 +3487,10 @@ static HRESULT WINAPI TextPara_SetKeepWithNext(ITextPara *iface, LONG value) +@@ -3435,6 +3505,10 @@ static HRESULT WINAPI TextPara_SetKeepWithNext(ITextPara *iface, LONG value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%d)\n", This, value); @@ -206,7 +206,7 @@ index 9f31654..c9e4753 100644 return E_NOTIMPL; } -@@ -3424,6 +3498,10 @@ static HRESULT WINAPI TextPara_GetLeftIndent(ITextPara *iface, FLOAT *value) +@@ -3442,6 +3516,10 @@ static HRESULT WINAPI TextPara_GetLeftIndent(ITextPara *iface, FLOAT *value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%p)\n", This, value); @@ -217,7 +217,7 @@ index 9f31654..c9e4753 100644 return E_NOTIMPL; } -@@ -3431,6 +3509,10 @@ static HRESULT WINAPI TextPara_GetLineSpacing(ITextPara *iface, FLOAT *value) +@@ -3449,6 +3527,10 @@ static HRESULT WINAPI TextPara_GetLineSpacing(ITextPara *iface, FLOAT *value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%p)\n", This, value); @@ -228,7 +228,7 @@ index 9f31654..c9e4753 100644 return E_NOTIMPL; } -@@ -3438,6 +3520,10 @@ static HRESULT WINAPI TextPara_GetLineSpacingRule(ITextPara *iface, LONG *value) +@@ -3456,6 +3538,10 @@ static HRESULT WINAPI TextPara_GetLineSpacingRule(ITextPara *iface, LONG *value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%p)\n", This, value); @@ -239,7 +239,7 @@ index 9f31654..c9e4753 100644 return E_NOTIMPL; } -@@ -3445,6 +3531,10 @@ static HRESULT WINAPI TextPara_GetListAlignment(ITextPara *iface, LONG *value) +@@ -3463,6 +3549,10 @@ static HRESULT WINAPI TextPara_GetListAlignment(ITextPara *iface, LONG *value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%p)\n", This, value); @@ -250,7 +250,7 @@ index 9f31654..c9e4753 100644 return E_NOTIMPL; } -@@ -3452,6 +3542,10 @@ static HRESULT WINAPI TextPara_SetListAlignment(ITextPara *iface, LONG value) +@@ -3470,6 +3560,10 @@ static HRESULT WINAPI TextPara_SetListAlignment(ITextPara *iface, LONG value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%d)\n", This, value); @@ -261,7 +261,7 @@ index 9f31654..c9e4753 100644 return E_NOTIMPL; } -@@ -3459,6 +3553,10 @@ static HRESULT WINAPI TextPara_GetListLevelIndex(ITextPara *iface, LONG *value) +@@ -3477,6 +3571,10 @@ static HRESULT WINAPI TextPara_GetListLevelIndex(ITextPara *iface, LONG *value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%p)\n", This, value); @@ -272,7 +272,7 @@ index 9f31654..c9e4753 100644 return E_NOTIMPL; } -@@ -3466,6 +3564,10 @@ static HRESULT WINAPI TextPara_SetListLevelIndex(ITextPara *iface, LONG value) +@@ -3484,6 +3582,10 @@ static HRESULT WINAPI TextPara_SetListLevelIndex(ITextPara *iface, LONG value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%d)\n", This, value); @@ -283,7 +283,7 @@ index 9f31654..c9e4753 100644 return E_NOTIMPL; } -@@ -3473,6 +3575,10 @@ static HRESULT WINAPI TextPara_GetListStart(ITextPara *iface, LONG *value) +@@ -3491,6 +3593,10 @@ static HRESULT WINAPI TextPara_GetListStart(ITextPara *iface, LONG *value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%p)\n", This, value); @@ -294,7 +294,7 @@ index 9f31654..c9e4753 100644 return E_NOTIMPL; } -@@ -3480,6 +3586,10 @@ static HRESULT WINAPI TextPara_SetListStart(ITextPara *iface, LONG value) +@@ -3498,6 +3604,10 @@ static HRESULT WINAPI TextPara_SetListStart(ITextPara *iface, LONG value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%d)\n", This, value); @@ -305,7 +305,7 @@ index 9f31654..c9e4753 100644 return E_NOTIMPL; } -@@ -3487,6 +3597,10 @@ static HRESULT WINAPI TextPara_GetListTab(ITextPara *iface, FLOAT *value) +@@ -3505,6 +3615,10 @@ static HRESULT WINAPI TextPara_GetListTab(ITextPara *iface, FLOAT *value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%p)\n", This, value); @@ -316,7 +316,7 @@ index 9f31654..c9e4753 100644 return E_NOTIMPL; } -@@ -3494,6 +3608,10 @@ static HRESULT WINAPI TextPara_SetListTab(ITextPara *iface, FLOAT value) +@@ -3512,6 +3626,10 @@ static HRESULT WINAPI TextPara_SetListTab(ITextPara *iface, FLOAT value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%.2f)\n", This, value); @@ -327,7 +327,7 @@ index 9f31654..c9e4753 100644 return E_NOTIMPL; } -@@ -3501,6 +3619,10 @@ static HRESULT WINAPI TextPara_GetListType(ITextPara *iface, LONG *value) +@@ -3519,6 +3637,10 @@ static HRESULT WINAPI TextPara_GetListType(ITextPara *iface, LONG *value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%p)\n", This, value); @@ -338,7 +338,7 @@ index 9f31654..c9e4753 100644 return E_NOTIMPL; } -@@ -3508,6 +3630,10 @@ static HRESULT WINAPI TextPara_SetListType(ITextPara *iface, LONG value) +@@ -3526,6 +3648,10 @@ static HRESULT WINAPI TextPara_SetListType(ITextPara *iface, LONG value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%d)\n", This, value); @@ -349,7 +349,7 @@ index 9f31654..c9e4753 100644 return E_NOTIMPL; } -@@ -3515,6 +3641,10 @@ static HRESULT WINAPI TextPara_GetNoLineNumber(ITextPara *iface, LONG *value) +@@ -3533,6 +3659,10 @@ static HRESULT WINAPI TextPara_GetNoLineNumber(ITextPara *iface, LONG *value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%p)\n", This, value); @@ -360,7 +360,7 @@ index 9f31654..c9e4753 100644 return E_NOTIMPL; } -@@ -3522,6 +3652,10 @@ static HRESULT WINAPI TextPara_SetNoLineNumber(ITextPara *iface, LONG value) +@@ -3540,6 +3670,10 @@ static HRESULT WINAPI TextPara_SetNoLineNumber(ITextPara *iface, LONG value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%d)\n", This, value); @@ -371,7 +371,7 @@ index 9f31654..c9e4753 100644 return E_NOTIMPL; } -@@ -3529,6 +3663,10 @@ static HRESULT WINAPI TextPara_GetPageBreakBefore(ITextPara *iface, LONG *value) +@@ -3547,6 +3681,10 @@ static HRESULT WINAPI TextPara_GetPageBreakBefore(ITextPara *iface, LONG *value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%p)\n", This, value); @@ -382,7 +382,7 @@ index 9f31654..c9e4753 100644 return E_NOTIMPL; } -@@ -3536,6 +3674,10 @@ static HRESULT WINAPI TextPara_SetPageBreakBefore(ITextPara *iface, LONG value) +@@ -3554,6 +3692,10 @@ static HRESULT WINAPI TextPara_SetPageBreakBefore(ITextPara *iface, LONG value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%d)\n", This, value); @@ -393,7 +393,7 @@ index 9f31654..c9e4753 100644 return E_NOTIMPL; } -@@ -3543,6 +3685,10 @@ static HRESULT WINAPI TextPara_GetRightIndent(ITextPara *iface, FLOAT *value) +@@ -3561,6 +3703,10 @@ static HRESULT WINAPI TextPara_GetRightIndent(ITextPara *iface, FLOAT *value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%p)\n", This, value); @@ -404,7 +404,7 @@ index 9f31654..c9e4753 100644 return E_NOTIMPL; } -@@ -3550,6 +3696,10 @@ static HRESULT WINAPI TextPara_SetRightIndent(ITextPara *iface, FLOAT value) +@@ -3568,6 +3714,10 @@ static HRESULT WINAPI TextPara_SetRightIndent(ITextPara *iface, FLOAT value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%.2f)\n", This, value); @@ -415,7 +415,7 @@ index 9f31654..c9e4753 100644 return E_NOTIMPL; } -@@ -3557,6 +3707,10 @@ static HRESULT WINAPI TextPara_SetIndents(ITextPara *iface, FLOAT StartIndent, F +@@ -3575,6 +3725,10 @@ static HRESULT WINAPI TextPara_SetIndents(ITextPara *iface, FLOAT StartIndent, F { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%.2f %.2f %.2f)\n", This, StartIndent, LeftIndent, RightIndent); @@ -426,7 +426,7 @@ index 9f31654..c9e4753 100644 return E_NOTIMPL; } -@@ -3564,6 +3718,10 @@ static HRESULT WINAPI TextPara_SetLineSpacing(ITextPara *iface, LONG LineSpacing +@@ -3582,6 +3736,10 @@ static HRESULT WINAPI TextPara_SetLineSpacing(ITextPara *iface, LONG LineSpacing { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%d %.2f)\n", This, LineSpacingRule, LineSpacing); @@ -437,7 +437,7 @@ index 9f31654..c9e4753 100644 return E_NOTIMPL; } -@@ -3571,6 +3729,10 @@ static HRESULT WINAPI TextPara_GetSpaceAfter(ITextPara *iface, FLOAT *value) +@@ -3589,6 +3747,10 @@ static HRESULT WINAPI TextPara_GetSpaceAfter(ITextPara *iface, FLOAT *value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%p)\n", This, value); @@ -448,7 +448,7 @@ index 9f31654..c9e4753 100644 return E_NOTIMPL; } -@@ -3578,6 +3740,10 @@ static HRESULT WINAPI TextPara_SetSpaceAfter(ITextPara *iface, FLOAT value) +@@ -3596,6 +3758,10 @@ static HRESULT WINAPI TextPara_SetSpaceAfter(ITextPara *iface, FLOAT value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%.2f)\n", This, value); @@ -459,7 +459,7 @@ index 9f31654..c9e4753 100644 return E_NOTIMPL; } -@@ -3585,6 +3751,10 @@ static HRESULT WINAPI TextPara_GetSpaceBefore(ITextPara *iface, FLOAT *value) +@@ -3603,6 +3769,10 @@ static HRESULT WINAPI TextPara_GetSpaceBefore(ITextPara *iface, FLOAT *value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%p)\n", This, value); @@ -470,7 +470,7 @@ index 9f31654..c9e4753 100644 return E_NOTIMPL; } -@@ -3592,6 +3762,10 @@ static HRESULT WINAPI TextPara_SetSpaceBefore(ITextPara *iface, FLOAT value) +@@ -3610,6 +3780,10 @@ static HRESULT WINAPI TextPara_SetSpaceBefore(ITextPara *iface, FLOAT value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%.2f)\n", This, value); @@ -481,7 +481,7 @@ index 9f31654..c9e4753 100644 return E_NOTIMPL; } -@@ -3599,6 +3773,10 @@ static HRESULT WINAPI TextPara_GetWidowControl(ITextPara *iface, LONG *value) +@@ -3617,6 +3791,10 @@ static HRESULT WINAPI TextPara_GetWidowControl(ITextPara *iface, LONG *value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%p)\n", This, value); @@ -492,7 +492,7 @@ index 9f31654..c9e4753 100644 return E_NOTIMPL; } -@@ -3606,6 +3784,10 @@ static HRESULT WINAPI TextPara_SetWidowControl(ITextPara *iface, LONG value) +@@ -3624,6 +3802,10 @@ static HRESULT WINAPI TextPara_SetWidowControl(ITextPara *iface, LONG value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%d)\n", This, value); @@ -503,7 +503,7 @@ index 9f31654..c9e4753 100644 return E_NOTIMPL; } -@@ -3613,6 +3795,10 @@ static HRESULT WINAPI TextPara_GetTabCount(ITextPara *iface, LONG *value) +@@ -3631,6 +3813,10 @@ static HRESULT WINAPI TextPara_GetTabCount(ITextPara *iface, LONG *value) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%p)\n", This, value); @@ -514,7 +514,7 @@ index 9f31654..c9e4753 100644 return E_NOTIMPL; } -@@ -3620,6 +3806,10 @@ static HRESULT WINAPI TextPara_AddTab(ITextPara *iface, FLOAT tbPos, LONG tbAlig +@@ -3638,6 +3824,10 @@ static HRESULT WINAPI TextPara_AddTab(ITextPara *iface, FLOAT tbPos, LONG tbAlig { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%.2f %d %d)\n", This, tbPos, tbAlign, tbLeader); @@ -525,7 +525,7 @@ index 9f31654..c9e4753 100644 return E_NOTIMPL; } -@@ -3627,6 +3817,10 @@ static HRESULT WINAPI TextPara_ClearAllTabs(ITextPara *iface) +@@ -3645,6 +3835,10 @@ static HRESULT WINAPI TextPara_ClearAllTabs(ITextPara *iface) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)\n", This); @@ -536,7 +536,7 @@ index 9f31654..c9e4753 100644 return E_NOTIMPL; } -@@ -3634,6 +3828,10 @@ static HRESULT WINAPI TextPara_DeleteTab(ITextPara *iface, FLOAT pos) +@@ -3652,6 +3846,10 @@ static HRESULT WINAPI TextPara_DeleteTab(ITextPara *iface, FLOAT pos) { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%.2f)\n", This, pos); @@ -547,7 +547,7 @@ index 9f31654..c9e4753 100644 return E_NOTIMPL; } -@@ -3641,6 +3839,10 @@ static HRESULT WINAPI TextPara_GetTab(ITextPara *iface, LONG iTab, FLOAT *ptbPos +@@ -3659,6 +3857,10 @@ static HRESULT WINAPI TextPara_GetTab(ITextPara *iface, LONG iTab, FLOAT *ptbPos { ITextParaImpl *This = impl_from_ITextPara(iface); FIXME("(%p)->(%d %p %p %p)\n", This, iTab, ptbPos, ptbAlign, ptbLeader); @@ -559,10 +559,10 @@ index 9f31654..c9e4753 100644 } diff --git a/dlls/riched20/tests/richole.c b/dlls/riched20/tests/richole.c -index 02576a8..06410e7 100644 +index 5f8e1cc..c148034 100644 --- a/dlls/riched20/tests/richole.c +++ b/dlls/riched20/tests/richole.c -@@ -3294,6 +3294,52 @@ static void test_ITextSelection_GetFont(void) +@@ -3473,6 +3473,52 @@ static void test_ITextSelection_GetFont(void) ITextFont_Release(txtFont); } @@ -615,7 +615,7 @@ index 02576a8..06410e7 100644 START_TEST(richole) { /* Must explicitly LoadLibrary(). The test has no references to functions in -@@ -3318,6 +3364,7 @@ START_TEST(richole) +@@ -3497,6 +3543,7 @@ START_TEST(richole) test_ITextRange_SetEnd(); test_ITextRange_Collapse(); test_ITextRange_GetFont(); diff --git a/patches/riched20-IText_Interface/0004-riched20-Fix-ME_RunOfsFromCharOfs-when-nCharOfs-strl.patch b/patches/riched20-IText_Interface/0004-riched20-Fix-ME_RunOfsFromCharOfs-when-nCharOfs-strl.patch index fed62220..d73f4d73 100644 --- a/patches/riched20-IText_Interface/0004-riched20-Fix-ME_RunOfsFromCharOfs-when-nCharOfs-strl.patch +++ b/patches/riched20-IText_Interface/0004-riched20-Fix-ME_RunOfsFromCharOfs-when-nCharOfs-strl.patch @@ -1,4 +1,4 @@ -From 2a85e756deac893ec3b83a03c1fb4e0b85be829f Mon Sep 17 00:00:00 2001 +From 9dee4d943b4dbbc64dbdaaf9052c094a6bb27ff3 Mon Sep 17 00:00:00 2001 From: Jactry Zeng Date: Wed, 13 Aug 2014 14:57:52 +0800 Subject: riched20: Fix ME_RunOfsFromCharOfs() when nCharOfs > strlen(). @@ -37,5 +37,5 @@ index 38d0270..ad08b82 100644 /****************************************************************************** -- -2.4.0 +2.4.2 diff --git a/patches/riched20-IText_Interface/0005-riched20-Implement-ITextRange-GetText.patch b/patches/riched20-IText_Interface/0005-riched20-Implement-ITextRange-GetText.patch index dfbcc11f..8fc3b045 100644 --- a/patches/riched20-IText_Interface/0005-riched20-Implement-ITextRange-GetText.patch +++ b/patches/riched20-IText_Interface/0005-riched20-Implement-ITextRange-GetText.patch @@ -1,4 +1,4 @@ -From 65420d15d3691b910578f3e2dab6d6c2fc25bbfe Mon Sep 17 00:00:00 2001 +From ce774a2b82262619fb882649ca02802e943ce404 Mon Sep 17 00:00:00 2001 From: Jactry Zeng Date: Wed, 13 Aug 2014 15:40:11 +0800 Subject: riched20: Implement ITextRange::GetText. @@ -8,10 +8,10 @@ Subject: riched20: Implement ITextRange::GetText. 1 file changed, 38 insertions(+) diff --git a/dlls/riched20/tests/richole.c b/dlls/riched20/tests/richole.c -index 06410e7..05c1f34 100644 +index c148034..051d9fe 100644 --- a/dlls/riched20/tests/richole.c +++ b/dlls/riched20/tests/richole.c -@@ -3340,6 +3340,43 @@ static void test_ITextRange_GetPara(void) +@@ -3519,6 +3519,43 @@ static void test_ITextRange_GetPara(void) ITextPara_Release(txtPara); } @@ -55,7 +55,7 @@ index 06410e7..05c1f34 100644 START_TEST(richole) { /* Must explicitly LoadLibrary(). The test has no references to functions in -@@ -3365,6 +3402,7 @@ START_TEST(richole) +@@ -3544,6 +3581,7 @@ START_TEST(richole) test_ITextRange_Collapse(); test_ITextRange_GetFont(); test_ITextRange_GetPara(); diff --git a/patches/riched20-IText_Interface/0006-riched20-Implement-ITextRange-SetRange.patch b/patches/riched20-IText_Interface/0006-riched20-Implement-ITextRange-SetRange.patch index c2d60805..c7b4723d 100644 --- a/patches/riched20-IText_Interface/0006-riched20-Implement-ITextRange-SetRange.patch +++ b/patches/riched20-IText_Interface/0006-riched20-Implement-ITextRange-SetRange.patch @@ -1,4 +1,4 @@ -From e97c89d122de411b7889944b20b4cefa20e1f848 Mon Sep 17 00:00:00 2001 +From 4cbf20d7de172a442808f0c9a78d360ea2e57e5b Mon Sep 17 00:00:00 2001 From: Jactry Zeng Date: Wed, 13 Aug 2014 17:17:14 +0800 Subject: riched20: Implement ITextRange::SetRange. @@ -9,10 +9,10 @@ Subject: riched20: Implement ITextRange::SetRange. 2 files changed, 60 insertions(+), 17 deletions(-) diff --git a/dlls/riched20/richole.c b/dlls/riched20/richole.c -index c9e4753..6762441 100644 +index c309292..8aea23e 100644 --- a/dlls/riched20/richole.c +++ b/dlls/riched20/richole.c -@@ -1974,14 +1974,36 @@ static HRESULT WINAPI ITextRange_fnSetIndex(ITextRange *me, LONG Unit, LONG Inde +@@ -1990,14 +1990,36 @@ static HRESULT WINAPI ITextRange_fnSetIndex(ITextRange *me, LONG Unit, LONG Inde return E_NOTIMPL; } @@ -51,7 +51,7 @@ index c9e4753..6762441 100644 } static HRESULT textrange_inrange(LONG start, LONG end, ITextRange *range, LONG *ret) -@@ -4180,26 +4202,12 @@ ITextDocument_fnRange(ITextDocument* me, LONG cp1, LONG cp2, +@@ -4198,26 +4220,12 @@ ITextDocument_fnRange(ITextDocument* me, LONG cp1, LONG cp2, ITextRange** ppRange) { IRichEditOleImpl *This = impl_from_ITextDocument(me); @@ -80,10 +80,10 @@ index c9e4753..6762441 100644 } diff --git a/dlls/riched20/tests/richole.c b/dlls/riched20/tests/richole.c -index 05c1f34..4c8a2e5 100644 +index 051d9fe..6e00b21 100644 --- a/dlls/riched20/tests/richole.c +++ b/dlls/riched20/tests/richole.c -@@ -3377,6 +3377,40 @@ static void test_ITextRange_GetText(void) +@@ -3556,6 +3556,40 @@ static void test_ITextRange_GetText(void) TEST_TXTRGE_GETTEXT(1, 1, NULL) } @@ -124,7 +124,7 @@ index 05c1f34..4c8a2e5 100644 START_TEST(richole) { /* Must explicitly LoadLibrary(). The test has no references to functions in -@@ -3403,6 +3437,7 @@ START_TEST(richole) +@@ -3582,6 +3616,7 @@ START_TEST(richole) test_ITextRange_GetFont(); test_ITextRange_GetPara(); test_ITextRange_GetText(); diff --git a/patches/riched20-IText_Interface/0007-riched20-Implement-ITextRange-IsEqual.patch b/patches/riched20-IText_Interface/0007-riched20-Implement-ITextRange-IsEqual.patch index 7ad6ccef..028ac2e4 100644 --- a/patches/riched20-IText_Interface/0007-riched20-Implement-ITextRange-IsEqual.patch +++ b/patches/riched20-IText_Interface/0007-riched20-Implement-ITextRange-IsEqual.patch @@ -1,4 +1,4 @@ -From 068997a807063442045442273323dc5d2e62835c Mon Sep 17 00:00:00 2001 +From 52cb6b771a61011c39c4c8f402709d8d119d43f5 Mon Sep 17 00:00:00 2001 From: Jactry Zeng Date: Fri, 15 Aug 2014 14:27:21 +0800 Subject: riched20: Implement ITextRange::IsEqual. @@ -8,10 +8,10 @@ Subject: riched20: Implement ITextRange::IsEqual. 1 file changed, 47 insertions(+) diff --git a/dlls/riched20/tests/richole.c b/dlls/riched20/tests/richole.c -index 4c8a2e5..2618138 100644 +index 6e00b21..ae087b7 100644 --- a/dlls/riched20/tests/richole.c +++ b/dlls/riched20/tests/richole.c -@@ -3411,6 +3411,52 @@ static void test_ITextRange_SetRange(void) +@@ -3590,6 +3590,52 @@ static void test_ITextRange_SetRange(void) release_interfaces(&w, &reOle, &txtDoc, NULL); } @@ -64,7 +64,7 @@ index 4c8a2e5..2618138 100644 START_TEST(richole) { /* Must explicitly LoadLibrary(). The test has no references to functions in -@@ -3438,6 +3484,7 @@ START_TEST(richole) +@@ -3617,6 +3663,7 @@ START_TEST(richole) test_ITextRange_GetPara(); test_ITextRange_GetText(); test_ITextRange_SetRange(); diff --git a/patches/riched20-IText_Interface/0008-riched20-Implement-ITextRange-GetStoryLength.patch b/patches/riched20-IText_Interface/0008-riched20-Implement-ITextRange-GetStoryLength.patch index 444e0796..7e2e589b 100644 --- a/patches/riched20-IText_Interface/0008-riched20-Implement-ITextRange-GetStoryLength.patch +++ b/patches/riched20-IText_Interface/0008-riched20-Implement-ITextRange-GetStoryLength.patch @@ -1,41 +1,17 @@ -From c0a3f18523c07ebb9bb26a6902ce07c69f283ca6 Mon Sep 17 00:00:00 2001 +From e53964c35b8005bf77f9088276604e7b47fdf475 Mon Sep 17 00:00:00 2001 From: Jactry Zeng Date: Mon, 18 Aug 2014 14:38:50 +0800 Subject: riched20: Implement ITextRange::GetStoryLength. --- - dlls/riched20/richole.c | 9 +++++++-- dlls/riched20/tests/richole.c | 32 ++++++++++++++++++++++++++++++++ - 2 files changed, 39 insertions(+), 2 deletions(-) + 1 file changed, 32 insertions(+) -diff --git a/dlls/riched20/richole.c b/dlls/riched20/richole.c -index 6762441..1817c09 100644 ---- a/dlls/riched20/richole.c -+++ b/dlls/riched20/richole.c -@@ -1896,11 +1896,16 @@ static HRESULT WINAPI ITextRange_fnSetPara(ITextRange *me, ITextPara *pPara) - static HRESULT WINAPI ITextRange_fnGetStoryLength(ITextRange *me, LONG *pcch) - { - ITextRangeImpl *This = impl_from_ITextRange(me); -+ -+ TRACE("(%p)->(%p)\n", This, pcch); -+ - if (!This->child.reole) - return CO_E_RELEASED; - -- FIXME("not implemented %p\n", This); -- return E_NOTIMPL; -+ if (!pcch) -+ return E_INVALIDARG; -+ *pcch = ME_GetTextLength(This->child.reole->editor) + 1; -+ return S_OK; - } - - static HRESULT WINAPI ITextRange_fnGetStoryType(ITextRange *me, LONG *value) diff --git a/dlls/riched20/tests/richole.c b/dlls/riched20/tests/richole.c -index 2618138..c9bdc28 100644 +index ae087b7..55d27d4 100644 --- a/dlls/riched20/tests/richole.c +++ b/dlls/riched20/tests/richole.c -@@ -3457,6 +3457,37 @@ static void test_ITextRange_IsEqual2(void) +@@ -3636,6 +3636,37 @@ static void test_ITextRange_IsEqual2(void) release_interfaces(&w, &reOle, &txtDoc, NULL); } @@ -73,7 +49,7 @@ index 2618138..c9bdc28 100644 START_TEST(richole) { /* Must explicitly LoadLibrary(). The test has no references to functions in -@@ -3485,6 +3516,7 @@ START_TEST(richole) +@@ -3664,6 +3695,7 @@ START_TEST(richole) test_ITextRange_GetText(); test_ITextRange_SetRange(); test_ITextRange_IsEqual2(); diff --git a/patches/riched20-IText_Interface/0009-riched20-Implement-ITextSelection-GetStoryLength.patch b/patches/riched20-IText_Interface/0009-riched20-Implement-ITextSelection-GetStoryLength.patch index b2c00b7d..13710b11 100644 --- a/patches/riched20-IText_Interface/0009-riched20-Implement-ITextSelection-GetStoryLength.patch +++ b/patches/riched20-IText_Interface/0009-riched20-Implement-ITextSelection-GetStoryLength.patch @@ -1,35 +1,17 @@ -From 2ca1d411b5123260dff81a0cc62b589f0ff99f8c Mon Sep 17 00:00:00 2001 +From 56bf18bcf782cea24efa378eb3ec58b171083e71 Mon Sep 17 00:00:00 2001 From: Jactry Zeng Date: Mon, 18 Aug 2014 14:47:14 +0800 Subject: riched20: Implement ITextSelection::GetStoryLength. --- - dlls/riched20/richole.c | 6 ++++-- dlls/riched20/tests/richole.c | 30 ++++++++++++++++++++++++++++++ - 2 files changed, 34 insertions(+), 2 deletions(-) + 1 file changed, 30 insertions(+) -diff --git a/dlls/riched20/richole.c b/dlls/riched20/richole.c -index 26a6da6..c1b350b 100644 ---- a/dlls/riched20/richole.c -+++ b/dlls/riched20/richole.c -@@ -4544,8 +4544,10 @@ static HRESULT WINAPI ITextSelection_fnGetStoryLength(ITextSelection *me, LONG * - if (!This->reOle) - return CO_E_RELEASED; - -- FIXME("not implemented\n"); -- return E_NOTIMPL; -+ if (!pcch) -+ return E_INVALIDARG; -+ *pcch = ME_GetTextLength(This->reOle->editor) + 1; -+ return S_OK; - } - - static HRESULT WINAPI ITextSelection_fnGetStoryType(ITextSelection *me, LONG *value) diff --git a/dlls/riched20/tests/richole.c b/dlls/riched20/tests/richole.c -index 72f324e..0cada69 100644 +index 55d27d4..854ec09 100644 --- a/dlls/riched20/tests/richole.c +++ b/dlls/riched20/tests/richole.c -@@ -3479,6 +3479,35 @@ static void test_ITextRange_GetStoryLength(void) +@@ -3667,6 +3667,35 @@ static void test_ITextRange_GetStoryLength(void) release_interfaces(&w, &reOle, &txtDoc, NULL); } @@ -65,7 +47,7 @@ index 72f324e..0cada69 100644 START_TEST(richole) { /* Must explicitly LoadLibrary(). The test has no references to functions in -@@ -3495,6 +3524,7 @@ START_TEST(richole) +@@ -3683,6 +3712,7 @@ START_TEST(richole) test_ITextSelection_SetEnd(); test_ITextSelection_Collapse(); test_ITextSelection_GetFont(); diff --git a/patches/riched20-IText_Interface/0010-riched20-Silence-repeated-FIXMEs-triggered-by-Adobe-.patch b/patches/riched20-IText_Interface/0010-riched20-Silence-repeated-FIXMEs-triggered-by-Adobe-.patch index 626786e4..0b9fc9cd 100644 --- a/patches/riched20-IText_Interface/0010-riched20-Silence-repeated-FIXMEs-triggered-by-Adobe-.patch +++ b/patches/riched20-IText_Interface/0010-riched20-Silence-repeated-FIXMEs-triggered-by-Adobe-.patch @@ -1,4 +1,4 @@ -From 558b5a06aba3d383eaf749b1a66fda1e30eb1bf1 Mon Sep 17 00:00:00 2001 +From 17ad773281bf85925a0070fd0ba4ce07804c497c Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Sat, 1 Nov 2014 22:51:34 +0100 Subject: riched20: Silence repeated FIXMEs triggered by Adobe Reader. @@ -9,10 +9,10 @@ Adobe Reader calls these functions very often while scrolling through a document 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/dlls/riched20/richole.c b/dlls/riched20/richole.c -index e7aedaf..a189a49 100644 +index 8aea23e..39cee96 100644 --- a/dlls/riched20/richole.c +++ b/dlls/riched20/richole.c -@@ -658,6 +658,14 @@ static HRESULT WINAPI IRichEditOleImpl_inner_fnQueryInterface(IUnknown *iface, R +@@ -927,6 +927,14 @@ static HRESULT WINAPI IRichEditOleImpl_inner_fnQueryInterface(IUnknown *iface, R IUnknown_AddRef((IUnknown *)*ppvObj); return S_OK; } @@ -27,7 +27,7 @@ index e7aedaf..a189a49 100644 FIXME("%p: unhandled interface %s\n", This, debugstr_guid(riid)); return E_NOINTERFACE; -@@ -3086,7 +3094,9 @@ static HRESULT WINAPI TextPara_SetStyle(ITextPara *iface, LONG value) +@@ -3438,7 +3446,9 @@ static HRESULT WINAPI TextPara_SetStyle(ITextPara *iface, LONG value) static HRESULT WINAPI TextPara_GetAlignment(ITextPara *iface, LONG *value) { ITextParaImpl *This = impl_from_ITextPara(iface); @@ -39,5 +39,5 @@ index e7aedaf..a189a49 100644 if (!para_get_reole(This)) return CO_E_RELEASED; -- -2.4.1 +2.4.2 diff --git a/patches/riched20-IText_Interface/0011-riched20-Implement-ITextSelection_fnGetDuplicate.patch b/patches/riched20-IText_Interface/0011-riched20-Implement-ITextSelection_fnGetDuplicate.patch deleted file mode 100644 index d8eef5f9..00000000 --- a/patches/riched20-IText_Interface/0011-riched20-Implement-ITextSelection_fnGetDuplicate.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 83ab3bf176f9ad2a08586e3173ed9c61307dcb59 Mon Sep 17 00:00:00 2001 -From: Sebastian Lackner -Date: Sat, 1 Nov 2014 23:07:09 +0100 -Subject: riched20: Implement ITextSelection_fnGetDuplicate. - -Fixes a crash with Adobe Reader when entering a page number. ---- - dlls/riched20/richole.c | 10 ++++++++-- - 1 file changed, 8 insertions(+), 2 deletions(-) - -diff --git a/dlls/riched20/richole.c b/dlls/riched20/richole.c -index b5c2b9b..83b9ac3 100644 ---- a/dlls/riched20/richole.c -+++ b/dlls/riched20/richole.c -@@ -3677,11 +3677,17 @@ static HRESULT WINAPI ITextSelection_fnSetChar(ITextSelection *me, LONG ch) - static HRESULT WINAPI ITextSelection_fnGetDuplicate(ITextSelection *me, ITextRange **ppRange) - { - ITextSelectionImpl *This = impl_from_ITextSelection(me); -+ int start, end; -+ - if (!This->reOle) - return CO_E_RELEASED; - -- FIXME("not implemented\n"); -- return E_NOTIMPL; -+ TRACE("%p %p\n", This, ppRange); -+ if (!ppRange) -+ return E_INVALIDARG; -+ -+ ME_GetSelectionOfs(This->reOle->editor, &start, &end); -+ return CreateITextRange(This->reOle, start, end, ppRange); - } - - static HRESULT WINAPI ITextSelection_fnGetFormattedText(ITextSelection *me, ITextRange **ppRange) --- -2.4.0 - diff --git a/patches/wined3d-CSMT_Helper/0001-wined3d-Merge-get_pitch-functions.patch b/patches/wined3d-CSMT_Helper/0001-wined3d-Merge-get_pitch-functions.patch index 600235b6..a3814c28 100644 --- a/patches/wined3d-CSMT_Helper/0001-wined3d-Merge-get_pitch-functions.patch +++ b/patches/wined3d-CSMT_Helper/0001-wined3d-Merge-get_pitch-functions.patch @@ -1,4 +1,4 @@ -From 9af42367f467e87e71c6a7772bafe74fa68883bf Mon Sep 17 00:00:00 2001 +From e34f6f432826634f80cefdc9311c5472eae80dad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20D=C3=B6singer?= Date: Thu, 19 Sep 2013 14:22:24 +0200 Subject: wined3d: Merge get_pitch functions. @@ -15,10 +15,10 @@ Subject: wined3d: Merge get_pitch functions. 8 files changed, 81 insertions(+), 81 deletions(-) diff --git a/dlls/ddraw/surface.c b/dlls/ddraw/surface.c -index 0d2d731..27acbed 100644 +index f716cfc..da64d97 100644 --- a/dlls/ddraw/surface.c +++ b/dlls/ddraw/surface.c -@@ -6209,6 +6209,10 @@ void ddraw_surface_init(struct ddraw_surface *surface, struct ddraw *ddraw, stru +@@ -6212,6 +6212,10 @@ void ddraw_surface_init(struct ddraw_surface *surface, struct ddraw *ddraw, stru DDSURFACEDESC2 *desc = &surface->surface_desc; struct wined3d_resource_desc wined3d_desc; unsigned int version = texture->version; @@ -29,7 +29,7 @@ index 0d2d731..27acbed 100644 surface->IDirectDrawSurface7_iface.lpVtbl = &ddraw_surface7_vtbl; surface->IDirectDrawSurface4_iface.lpVtbl = &ddraw_surface4_vtbl; -@@ -6239,7 +6243,7 @@ void ddraw_surface_init(struct ddraw_surface *surface, struct ddraw *ddraw, stru +@@ -6242,7 +6246,7 @@ void ddraw_surface_init(struct ddraw_surface *surface, struct ddraw *ddraw, stru } *desc = texture->surface_desc; @@ -38,7 +38,7 @@ index 0d2d731..27acbed 100644 desc->dwWidth = wined3d_desc.width; desc->dwHeight = wined3d_desc.height; surface->first_attached = surface; -@@ -6249,14 +6253,16 @@ void ddraw_surface_init(struct ddraw_surface *surface, struct ddraw *ddraw, stru +@@ -6252,14 +6256,16 @@ void ddraw_surface_init(struct ddraw_surface *surface, struct ddraw *ddraw, stru if (desc->dwFlags & DDSD_LPSURFACE) desc->u1.dwLinearSize = ~0u; else @@ -58,10 +58,10 @@ index 0d2d731..27acbed 100644 desc->dwFlags &= ~(DDSD_LPSURFACE | DDSD_LINEARSIZE); } diff --git a/dlls/wined3d/resource.c b/dlls/wined3d/resource.c -index 2bc1cc1..67d8216 100644 +index e9e586f..648882e 100644 --- a/dlls/wined3d/resource.c +++ b/dlls/wined3d/resource.c -@@ -344,3 +344,34 @@ void wined3d_resource_update_draw_binding(struct wined3d_resource *resource) +@@ -405,3 +405,34 @@ void wined3d_resource_update_draw_binding(struct wined3d_resource *resource) else resource->draw_binding = WINED3D_LOCATION_TEXTURE_RGB; } @@ -97,7 +97,7 @@ index 2bc1cc1..67d8216 100644 + TRACE("Returning row pitch %u, slice pitch %u.\n", *row_pitch, *slice_pitch); +} diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c -index 9aec9b0..b5f286a 100644 +index 1ea8e61..5460f79 100644 --- a/dlls/wined3d/surface.c +++ b/dlls/wined3d/surface.c @@ -364,6 +364,7 @@ static HRESULT surface_create_dib_section(struct wined3d_surface *surface) @@ -320,10 +320,10 @@ index 9aec9b0..b5f286a 100644 context_release(context); diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c -index c62dea4..31d282b 100644 +index 1e039e4..f4e77fb 100644 --- a/dlls/wined3d/texture.c +++ b/dlls/wined3d/texture.c -@@ -1254,7 +1254,7 @@ static void texture3d_sub_resource_upload_data(struct wined3d_resource *sub_reso +@@ -1233,7 +1233,7 @@ static void texture3d_sub_resource_upload_data(struct wined3d_resource *sub_reso struct wined3d_const_bo_address addr; unsigned int row_pitch, slice_pitch; @@ -333,7 +333,7 @@ index c62dea4..31d282b 100644 FIXME("Ignoring row/slice pitch (%u/%u).\n", data->row_pitch, data->slice_pitch); diff --git a/dlls/wined3d/volume.c b/dlls/wined3d/volume.c -index a231081..58780ba 100644 +index 424938a..b672d4a 100644 --- a/dlls/wined3d/volume.c +++ b/dlls/wined3d/volume.c @@ -40,30 +40,6 @@ BOOL volume_prepare_system_memory(struct wined3d_volume *volume) @@ -344,7 +344,7 @@ index a231081..58780ba 100644 -{ - const struct wined3d_format *format = volume->resource.format; - -- if (volume->resource.format_flags & WINED3DFMT_FLAG_BLOCKS) +- if (volume->container->resource.format_flags & WINED3DFMT_FLAG_BLOCKS) - { - /* Since compressed formats are block based, pitch means the amount of - * bytes to the next row of block rather than the next row of pixels. */ @@ -406,10 +406,10 @@ index bc1129f..fcabd53 100644 @ cdecl wined3d_surface_get_resource(ptr) @ cdecl wined3d_surface_getdc(ptr ptr) diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h -index aabc54e..a3a0a4e 100644 +index 0f181f3..9e6cb5e 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h -@@ -2122,6 +2122,7 @@ struct wined3d_resource +@@ -2136,6 +2136,7 @@ struct wined3d_resource UINT size; DWORD priority; void *heap_memory; @@ -417,7 +417,7 @@ index aabc54e..a3a0a4e 100644 struct list resource_list_entry; void *parent; -@@ -2286,7 +2287,6 @@ BOOL volume_prepare_system_memory(struct wined3d_volume *volume) DECLSPEC_HIDDEN +@@ -2300,7 +2301,6 @@ BOOL volume_prepare_system_memory(struct wined3d_volume *volume) DECLSPEC_HIDDEN HRESULT wined3d_volume_create(struct wined3d_texture *container, const struct wined3d_resource_desc *desc, unsigned int level, struct wined3d_volume **volume) DECLSPEC_HIDDEN; void wined3d_volume_destroy(struct wined3d_volume *volume) DECLSPEC_HIDDEN; @@ -425,7 +425,7 @@ index aabc54e..a3a0a4e 100644 void wined3d_volume_load(struct wined3d_volume *volume, struct wined3d_context *context, BOOL srgb_mode) DECLSPEC_HIDDEN; void wined3d_volume_invalidate_location(struct wined3d_volume *volume, DWORD location) DECLSPEC_HIDDEN; -@@ -2336,7 +2336,6 @@ struct wined3d_surface +@@ -2350,7 +2350,6 @@ struct wined3d_surface DWORD flags; @@ -434,7 +434,7 @@ index aabc54e..a3a0a4e 100644 UINT pow2Height; diff --git a/include/wine/wined3d.h b/include/wine/wined3d.h -index 3bb30f7..9caae2d 100644 +index a1803bb..fc91d02 100644 --- a/include/wine/wined3d.h +++ b/include/wine/wined3d.h @@ -2427,6 +2427,8 @@ static inline HRESULT wined3d_private_store_set_private_data(struct wined3d_priv @@ -455,5 +455,5 @@ index 3bb30f7..9caae2d 100644 struct wined3d_surface *render_target); struct wined3d_resource * __cdecl wined3d_surface_get_resource(struct wined3d_surface *surface); -- -2.3.5 +2.4.2 diff --git a/patches/wined3d-CSMT_Main/0007-wined3d-Pass-a-context-to-surface_load_location.patch b/patches/wined3d-CSMT_Main/0007-wined3d-Pass-a-context-to-surface_load_location.patch index a663fa20..36892573 100644 --- a/patches/wined3d-CSMT_Main/0007-wined3d-Pass-a-context-to-surface_load_location.patch +++ b/patches/wined3d-CSMT_Main/0007-wined3d-Pass-a-context-to-surface_load_location.patch @@ -1,4 +1,4 @@ -From fc87bc1d66c8ba3a0880d2feafa0462cb1058bcf Mon Sep 17 00:00:00 2001 +From 0384901fc9ef670f7e83e7dfcbdad35edff52746 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20D=C3=B6singer?= Date: Sun, 17 Nov 2013 20:19:24 +0100 Subject: wined3d: Pass a context to surface_load_location. @@ -14,10 +14,10 @@ Subject: wined3d: Pass a context to surface_load_location. 7 files changed, 107 insertions(+), 77 deletions(-) diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c -index 0334d1c..cb3a435 100644 +index a122845..12a172b 100644 --- a/dlls/wined3d/context.c +++ b/dlls/wined3d/context.c -@@ -2208,7 +2208,7 @@ static BOOL match_depth_stencil_format(const struct wined3d_format *existing, +@@ -2212,7 +2212,7 @@ static BOOL match_depth_stencil_format(const struct wined3d_format *existing, return TRUE; } @@ -26,7 +26,7 @@ index 0334d1c..cb3a435 100644 static void context_validate_onscreen_formats(struct wined3d_context *context, const struct wined3d_rendertarget_view *depth_stencil) { -@@ -2224,7 +2224,7 @@ static void context_validate_onscreen_formats(struct wined3d_context *context, +@@ -2228,7 +2228,7 @@ static void context_validate_onscreen_formats(struct wined3d_context *context, WARN("Depth stencil format is not supported by WGL, rendering the backbuffer in an FBO\n"); /* The currently active context is the necessary context to access the swapchain's onscreen buffers */ @@ -36,7 +36,7 @@ index 0334d1c..cb3a435 100644 swapchain_update_draw_bindings(swapchain); context_set_render_offscreen(context, TRUE); diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c -index 4954d00..657e099 100644 +index 56cf325..0521a94 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -300,6 +300,15 @@ void device_clear_render_targets(struct wined3d_device *device, UINT rt_count, c @@ -120,7 +120,7 @@ index c0654a6..913ada5 100644 { /* Note that this depends on the context_acquire() call above to set diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c -index 22726f2..2cc217e 100644 +index 320bd31..a0342a0 100644 --- a/dlls/wined3d/surface.c +++ b/dlls/wined3d/surface.c @@ -753,7 +753,16 @@ static void surface_unmap(struct wined3d_surface *surface) @@ -138,7 +138,7 @@ index 22726f2..2cc217e 100644 + if (context) + context_release(context); + } - else if (surface->resource.format_flags & (WINED3DFMT_FLAG_DEPTH | WINED3DFMT_FLAG_STENCIL)) + else if (surface->container->resource.format_flags & (WINED3DFMT_FLAG_DEPTH | WINED3DFMT_FLAG_STENCIL)) FIXME("Depth / stencil buffer locking is not implemented.\n"); } @@ -806,12 +815,6 @@ static void surface_depth_blt_fbo(const struct wined3d_device *device, @@ -179,7 +179,7 @@ index 22726f2..2cc217e 100644 if (src_location == WINED3D_LOCATION_DRAWABLE) required_rt = src_surface; else if (dst_location == WINED3D_LOCATION_DRAWABLE) required_rt = dst_surface; -@@ -1143,6 +1152,9 @@ static void surface_unload(struct wined3d_resource *resource) +@@ -1145,6 +1154,9 @@ static void surface_unload(struct wined3d_resource *resource) TRACE("surface %p.\n", surface); @@ -189,7 +189,7 @@ index 22726f2..2cc217e 100644 if (resource->pool == WINED3D_POOL_DEFAULT) { /* Default pool resources are supposed to be destroyed before Reset is called. -@@ -1168,13 +1180,10 @@ static void surface_unload(struct wined3d_resource *resource) +@@ -1170,13 +1182,10 @@ static void surface_unload(struct wined3d_resource *resource) else { surface_prepare_map_memory(surface); @@ -204,7 +204,7 @@ index 22726f2..2cc217e 100644 /* Destroy PBOs, but load them into real sysmem before */ if (surface->pbo) surface_remove_pbo(surface, gl_info); -@@ -1661,7 +1670,7 @@ HRESULT surface_upload_from_surface(struct wined3d_surface *dst_surface, const P +@@ -1663,7 +1672,7 @@ HRESULT surface_upload_from_surface(struct wined3d_surface *dst_surface, const P if (update_w == dst_w && update_h == dst_h) wined3d_texture_prepare_texture(dst_surface->container, context, FALSE); else @@ -213,7 +213,7 @@ index 22726f2..2cc217e 100644 wined3d_texture_bind_and_dirtify(dst_surface->container, context, FALSE); surface_get_memory(src_surface, &data, src_surface->locations); -@@ -1777,7 +1786,8 @@ GLenum surface_get_gl_buffer(const struct wined3d_surface *surface) +@@ -1779,7 +1788,8 @@ GLenum surface_get_gl_buffer(const struct wined3d_surface *surface) return GL_BACK; } @@ -223,7 +223,7 @@ index 22726f2..2cc217e 100644 { DWORD location = srgb ? WINED3D_LOCATION_TEXTURE_SRGB : WINED3D_LOCATION_TEXTURE_RGB; -@@ -1793,7 +1803,7 @@ void surface_load(struct wined3d_surface *surface, BOOL srgb) +@@ -1795,7 +1805,7 @@ void surface_load(struct wined3d_surface *surface, BOOL srgb) } TRACE("Reloading because surface is dirty.\n"); @@ -232,7 +232,7 @@ index 22726f2..2cc217e 100644 surface_evict_sysmem(surface); } -@@ -2720,10 +2730,16 @@ HRESULT CDECL wined3d_surface_map(struct wined3d_surface *surface, +@@ -2722,10 +2732,16 @@ HRESULT CDECL wined3d_surface_map(struct wined3d_surface *surface, } else { @@ -250,7 +250,7 @@ index 22726f2..2cc217e 100644 } if (!(flags & (WINED3D_MAP_NO_DIRTY_UPDATE | WINED3D_MAP_READONLY))) -@@ -2805,6 +2821,8 @@ HRESULT CDECL wined3d_surface_map(struct wined3d_surface *surface, +@@ -2807,6 +2823,8 @@ HRESULT CDECL wined3d_surface_map(struct wined3d_surface *surface, HRESULT CDECL wined3d_surface_getdc(struct wined3d_surface *surface, HDC *dc) { HRESULT hr; @@ -259,7 +259,7 @@ index 22726f2..2cc217e 100644 TRACE("surface %p, dc %p.\n", surface, dc); -@@ -2816,26 +2834,36 @@ HRESULT CDECL wined3d_surface_getdc(struct wined3d_surface *surface, HDC *dc) +@@ -2818,26 +2836,36 @@ HRESULT CDECL wined3d_surface_getdc(struct wined3d_surface *surface, HDC *dc) if (surface->resource.map_count) return WINED3DERR_INVALIDCALL; @@ -299,7 +299,7 @@ index 22726f2..2cc217e 100644 surface->flags |= SFLAG_DCINUSE; surface->resource.map_count++; -@@ -2873,8 +2901,16 @@ HRESULT CDECL wined3d_surface_releasedc(struct wined3d_surface *surface, HDC dc) +@@ -2875,8 +2903,16 @@ HRESULT CDECL wined3d_surface_releasedc(struct wined3d_surface *surface, HDC dc) * copied back to the DIB in the next getdc call. * * The same consideration applies to user memory surfaces. */ @@ -317,7 +317,7 @@ index 22726f2..2cc217e 100644 } return WINED3D_OK; -@@ -4115,7 +4151,7 @@ static void surface_load_sysmem(struct wined3d_surface *surface, +@@ -4117,7 +4153,7 @@ static void surface_load_sysmem(struct wined3d_surface *surface, } if (surface->locations & (WINED3D_LOCATION_RB_MULTISAMPLE | WINED3D_LOCATION_RB_RESOLVED)) @@ -326,7 +326,7 @@ index 22726f2..2cc217e 100644 /* Download the surface to system memory. */ if (surface->locations & (WINED3D_LOCATION_TEXTURE_RGB | WINED3D_LOCATION_TEXTURE_SRGB)) -@@ -4151,7 +4187,7 @@ static HRESULT surface_load_drawable(struct wined3d_surface *surface, +@@ -4153,7 +4189,7 @@ static HRESULT surface_load_drawable(struct wined3d_surface *surface, } surface_get_rect(surface, NULL, &r); @@ -335,7 +335,7 @@ index 22726f2..2cc217e 100644 surface_blt_to_drawable(surface->resource.device, context, WINED3D_TEXF_POINT, FALSE, surface, &r, surface, &r); -@@ -4224,7 +4260,7 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface, +@@ -4226,7 +4262,7 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface, /* Performance warning... */ FIXME("Downloading RGB surface %p to reload it as sRGB.\n", surface); surface_prepare_map_memory(surface); @@ -344,7 +344,7 @@ index 22726f2..2cc217e 100644 } } else -@@ -4235,7 +4271,7 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface, +@@ -4237,7 +4273,7 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface, /* Performance warning... */ FIXME("Downloading sRGB surface %p to reload it as RGB.\n", surface); surface_prepare_map_memory(surface); @@ -353,7 +353,7 @@ index 22726f2..2cc217e 100644 } } -@@ -4244,7 +4280,7 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface, +@@ -4246,7 +4282,7 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface, WARN("Trying to load a texture from sysmem, but no simple location is valid.\n"); /* Lets hope we get it from somewhere... */ surface_prepare_system_memory(surface); @@ -362,7 +362,7 @@ index 22726f2..2cc217e 100644 } wined3d_texture_prepare_texture(texture, context, srgb); -@@ -4270,7 +4306,7 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface, +@@ -4272,7 +4308,7 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface, surface->resource.map_binding = WINED3D_LOCATION_SYSMEM; surface_prepare_map_memory(surface); @@ -371,7 +371,7 @@ index 22726f2..2cc217e 100644 surface_remove_pbo(surface, gl_info); } -@@ -4338,11 +4374,10 @@ static void surface_multisample_resolve(struct wined3d_surface *surface, struct +@@ -4340,11 +4376,10 @@ static void surface_multisample_resolve(struct wined3d_surface *surface, struct surface, WINED3D_LOCATION_RB_MULTISAMPLE, &rect, surface, WINED3D_LOCATION_RB_RESOLVED, &rect); } @@ -385,7 +385,7 @@ index 22726f2..2cc217e 100644 TRACE("surface %p, location %s.\n", surface, wined3d_debug_location(location)); -@@ -4351,9 +4386,7 @@ HRESULT surface_load_location(struct wined3d_surface *surface, DWORD location) +@@ -4353,9 +4388,7 @@ HRESULT surface_load_location(struct wined3d_surface *surface, DWORD location) if (location == WINED3D_LOCATION_TEXTURE_RGB && surface->locations & (WINED3D_LOCATION_DRAWABLE | WINED3D_LOCATION_DISCARDED)) { @@ -395,7 +395,7 @@ index 22726f2..2cc217e 100644 return WINED3D_OK; } else if (location & surface->locations -@@ -4397,33 +4430,22 @@ HRESULT surface_load_location(struct wined3d_surface *surface, DWORD location) +@@ -4399,33 +4432,22 @@ HRESULT surface_load_location(struct wined3d_surface *surface, DWORD location) case WINED3D_LOCATION_USER_MEMORY: case WINED3D_LOCATION_SYSMEM: case WINED3D_LOCATION_BUFFER: @@ -432,7 +432,7 @@ index 22726f2..2cc217e 100644 return hr; break; -@@ -5540,7 +5562,11 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC +@@ -5542,7 +5564,11 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC if (SUCCEEDED(surface_upload_from_surface(dst_surface, &dst_point, src_surface, &src_rect))) { if (!wined3d_resource_is_offscreen(&dst_surface->container->resource)) @@ -485,10 +485,10 @@ index 146f5d6..4f4d4df 100644 src_dc = front->hDC; window = swapchain->win_handle; diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c -index 4425ecb..dbb0392 100644 +index f4e77fb..2f0d3d4 100644 --- a/dlls/wined3d/texture.c +++ b/dlls/wined3d/texture.c -@@ -766,16 +766,19 @@ static void wined3d_texture_upload_data(struct wined3d_texture *texture, const s +@@ -753,16 +753,19 @@ static void wined3d_texture_upload_data(struct wined3d_texture *texture, const s static void texture2d_sub_resource_load(struct wined3d_resource *sub_resource, struct wined3d_context *context, BOOL srgb) { @@ -511,10 +511,10 @@ index 4425ecb..dbb0392 100644 } diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h -index 1a7cade..e7ec65e 100644 +index 9e6cb5e..ccfebf0 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h -@@ -2385,11 +2385,12 @@ GLenum surface_get_gl_buffer(const struct wined3d_surface *surface) DECLSPEC_HID +@@ -2399,11 +2399,12 @@ GLenum surface_get_gl_buffer(const struct wined3d_surface *surface) DECLSPEC_HID void surface_get_drawable_size(const struct wined3d_surface *surface, const struct wined3d_context *context, unsigned int *width, unsigned int *height) DECLSPEC_HIDDEN; void surface_invalidate_location(struct wined3d_surface *surface, DWORD location) DECLSPEC_HIDDEN; @@ -530,5 +530,5 @@ index 1a7cade..e7ec65e 100644 void surface_prepare_rb(struct wined3d_surface *surface, const struct wined3d_gl_info *gl_info, BOOL multisample) DECLSPEC_HIDDEN; -- -2.3.5 +2.4.2 diff --git a/patches/wined3d-CSMT_Main/0011-wined3d-Move-surface-locations-into-the-resource.patch b/patches/wined3d-CSMT_Main/0011-wined3d-Move-surface-locations-into-the-resource.patch index 588b71f9..a96c339b 100644 --- a/patches/wined3d-CSMT_Main/0011-wined3d-Move-surface-locations-into-the-resource.patch +++ b/patches/wined3d-CSMT_Main/0011-wined3d-Move-surface-locations-into-the-resource.patch @@ -1,4 +1,4 @@ -From 77640d30bc5d0699ffc7bf76051c6f786feb56f3 Mon Sep 17 00:00:00 2001 +From 518ce36e50012eb7f2dea0e4daf34c73fae4456c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20D=C3=B6singer?= Date: Tue, 21 Jan 2014 12:22:30 +0100 Subject: wined3d: Move surface locations into the resource. @@ -13,10 +13,10 @@ Subject: wined3d: Move surface locations into the resource. 6 files changed, 56 insertions(+), 56 deletions(-) diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader.c -index 96d2f74..2d4aadc 100644 +index 0bd7c22..f218979 100644 --- a/dlls/wined3d/arb_program_shader.c +++ b/dlls/wined3d/arb_program_shader.c -@@ -7779,7 +7779,7 @@ static void arbfp_blit_surface(struct wined3d_device *device, DWORD filter, +@@ -7821,7 +7821,7 @@ static void arbfp_blit_surface(struct wined3d_device *device, DWORD filter, /* Now load the surface */ if (wined3d_settings.offscreen_rendering_mode != ORM_FBO @@ -26,7 +26,7 @@ index 96d2f74..2d4aadc 100644 && !wined3d_resource_is_offscreen(&src_surface->container->resource)) { diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c -index 657e099..9f4ab69 100644 +index 0521a94..b4bc3ac 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -236,7 +236,7 @@ static void prepare_ds_clear(struct wined3d_surface *ds, struct wined3d_context @@ -61,7 +61,7 @@ index 913ada5..567550e 100644 else SetRectEmpty(¤t_rect); diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c -index bb41de5..5fdda96 100644 +index 9abffb3..78f92d3 100644 --- a/dlls/wined3d/surface.c +++ b/dlls/wined3d/surface.c @@ -556,7 +556,7 @@ static void surface_prepare_system_memory(struct wined3d_surface *surface) @@ -91,7 +91,7 @@ index bb41de5..5fdda96 100644 { TRACE("Not dirtified, nothing to do.\n"); return; -@@ -1673,7 +1673,7 @@ HRESULT surface_upload_from_surface(struct wined3d_surface *dst_surface, const P +@@ -1675,7 +1675,7 @@ HRESULT surface_upload_from_surface(struct wined3d_surface *dst_surface, const P surface_load_location(dst_surface, context, WINED3D_LOCATION_TEXTURE_RGB); wined3d_texture_bind_and_dirtify(dst_surface->container, context, FALSE); @@ -100,7 +100,7 @@ index bb41de5..5fdda96 100644 wined3d_resource_get_pitch(&src_surface->resource, &src_row_pitch, &src_slice_pitch); wined3d_surface_upload_data(dst_surface, gl_info, src_format, src_rect, -@@ -1796,7 +1796,7 @@ void surface_load(struct wined3d_surface *surface, struct wined3d_context *conte +@@ -1798,7 +1798,7 @@ void surface_load(struct wined3d_surface *surface, struct wined3d_context *conte if (surface->resource.pool == WINED3D_POOL_SCRATCH) ERR("Not supported on scratch surfaces.\n"); @@ -109,7 +109,7 @@ index bb41de5..5fdda96 100644 { TRACE("surface is already in texture\n"); return; -@@ -2107,7 +2107,7 @@ HRESULT wined3d_surface_update_desc(struct wined3d_surface *surface, +@@ -2109,7 +2109,7 @@ HRESULT wined3d_surface_update_desc(struct wined3d_surface *surface, create_dib = TRUE; } @@ -118,7 +118,7 @@ index bb41de5..5fdda96 100644 wined3d_resource_free_sysmem(&surface->resource); width = texture_resource->width; -@@ -3173,9 +3173,9 @@ void flip_surface(struct wined3d_surface *front, struct wined3d_surface *back) +@@ -3175,9 +3175,9 @@ void flip_surface(struct wined3d_surface *front, struct wined3d_surface *back) back->flags = front->flags; front->flags = tmp_flags; @@ -131,7 +131,7 @@ index bb41de5..5fdda96 100644 } } -@@ -3354,7 +3354,7 @@ static void fb_copy_to_texture_hwstretch(struct wined3d_surface *dst_surface, st +@@ -3356,7 +3356,7 @@ static void fb_copy_to_texture_hwstretch(struct wined3d_surface *dst_surface, st checkGLcall("glEnable(texture_target)"); /* For now invalidate the texture copy of the back buffer. Drawable and sysmem copy are untouched */ @@ -140,7 +140,7 @@ index bb41de5..5fdda96 100644 } /* Make sure that the top pixel is always above the bottom pixel, and keep a separate upside down flag -@@ -3892,13 +3892,14 @@ void surface_modify_ds_location(struct wined3d_surface *surface, +@@ -3894,13 +3894,14 @@ void surface_modify_ds_location(struct wined3d_surface *surface, { TRACE("surface %p, new location %#x, w %u, h %u.\n", surface, location, w, h); @@ -158,7 +158,7 @@ index bb41de5..5fdda96 100644 } /* Context activation is done by the caller. */ -@@ -3913,7 +3914,7 @@ void surface_load_ds_location(struct wined3d_surface *surface, struct wined3d_co +@@ -3915,7 +3916,7 @@ void surface_load_ds_location(struct wined3d_surface *surface, struct wined3d_co /* TODO: Make this work for modes other than FBO */ if (wined3d_settings.offscreen_rendering_mode != ORM_FBO) return; @@ -167,7 +167,7 @@ index bb41de5..5fdda96 100644 { w = surface->ds_current_size.cx; h = surface->ds_current_size.cy; -@@ -3939,7 +3940,7 @@ void surface_load_ds_location(struct wined3d_surface *surface, struct wined3d_co +@@ -3941,7 +3942,7 @@ void surface_load_ds_location(struct wined3d_surface *surface, struct wined3d_co return; } @@ -176,7 +176,7 @@ index bb41de5..5fdda96 100644 { TRACE("Surface was discarded, no need copy data.\n"); switch (location) -@@ -3956,17 +3957,17 @@ void surface_load_ds_location(struct wined3d_surface *surface, struct wined3d_co +@@ -3958,17 +3959,17 @@ void surface_load_ds_location(struct wined3d_surface *surface, struct wined3d_co default: FIXME("Unhandled location %#x\n", location); } @@ -198,7 +198,7 @@ index bb41de5..5fdda96 100644 surface->ds_current_size.cx = surface->resource.width; surface->ds_current_size.cy = surface->resource.height; return; -@@ -4055,7 +4056,7 @@ void surface_load_ds_location(struct wined3d_surface *surface, struct wined3d_co +@@ -4057,7 +4058,7 @@ void surface_load_ds_location(struct wined3d_surface *surface, struct wined3d_co ERR("Invalid location (%#x) specified.\n", location); } @@ -207,7 +207,7 @@ index bb41de5..5fdda96 100644 surface->ds_current_size.cx = surface->resource.width; surface->ds_current_size.cy = surface->resource.height; } -@@ -4064,7 +4065,7 @@ void surface_validate_location(struct wined3d_surface *surface, DWORD location) +@@ -4066,7 +4067,7 @@ void surface_validate_location(struct wined3d_surface *surface, DWORD location) { TRACE("surface %p, location %s.\n", surface, wined3d_debug_location(location)); @@ -216,7 +216,7 @@ index bb41de5..5fdda96 100644 } void surface_invalidate_location(struct wined3d_surface *surface, DWORD location) -@@ -4073,9 +4074,9 @@ void surface_invalidate_location(struct wined3d_surface *surface, DWORD location +@@ -4075,9 +4076,9 @@ void surface_invalidate_location(struct wined3d_surface *surface, DWORD location if (location & (WINED3D_LOCATION_TEXTURE_RGB | WINED3D_LOCATION_TEXTURE_SRGB)) wined3d_texture_set_dirty(surface->container); @@ -228,7 +228,7 @@ index bb41de5..5fdda96 100644 ERR("Surface %p does not have any up to date location.\n", surface); } -@@ -4111,7 +4112,7 @@ static void surface_copy_simple_location(struct wined3d_surface *surface, DWORD +@@ -4113,7 +4114,7 @@ static void surface_copy_simple_location(struct wined3d_surface *surface, DWORD UINT size = surface->resource.size; surface_get_memory(surface, &dst, location); @@ -237,7 +237,7 @@ index bb41de5..5fdda96 100644 if (dst.buffer_object) { -@@ -4144,33 +4145,33 @@ static void surface_load_sysmem(struct wined3d_surface *surface, +@@ -4146,33 +4147,33 @@ static void surface_load_sysmem(struct wined3d_surface *surface, { const struct wined3d_gl_info *gl_info = context->gl_info; @@ -277,7 +277,7 @@ index bb41de5..5fdda96 100644 } /* Context activation is done by the caller. */ -@@ -4210,14 +4211,14 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface, +@@ -4212,14 +4213,14 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface, if (wined3d_settings.offscreen_rendering_mode != ORM_FBO && wined3d_resource_is_offscreen(&texture->resource) @@ -291,16 +291,16 @@ index bb41de5..5fdda96 100644 - if (surface->locations & (WINED3D_LOCATION_TEXTURE_SRGB | WINED3D_LOCATION_TEXTURE_RGB) + if (surface->resource.locations & (WINED3D_LOCATION_TEXTURE_SRGB | WINED3D_LOCATION_TEXTURE_RGB) - && (surface->resource.format_flags & WINED3DFMT_FLAG_FBO_ATTACHABLE_SRGB) + && (surface->container->resource.format_flags & WINED3DFMT_FLAG_FBO_ATTACHABLE_SRGB) && fbo_blit_supported(gl_info, WINED3D_BLIT_OP_COLOR_BLIT, NULL, surface->resource.usage, surface->resource.pool, surface->resource.format, -@@ -4233,13 +4234,13 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface, +@@ -4235,13 +4236,13 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface, return WINED3D_OK; } - if (surface->locations & (WINED3D_LOCATION_RB_MULTISAMPLE | WINED3D_LOCATION_RB_RESOLVED) + if (surface->resource.locations & (WINED3D_LOCATION_RB_MULTISAMPLE | WINED3D_LOCATION_RB_RESOLVED) - && (!srgb || (surface->resource.format_flags & WINED3DFMT_FLAG_FBO_ATTACHABLE_SRGB)) + && (!srgb || (surface->container->resource.format_flags & WINED3DFMT_FLAG_FBO_ATTACHABLE_SRGB)) && fbo_blit_supported(gl_info, WINED3D_BLIT_OP_COLOR_BLIT, NULL, surface->resource.usage, surface->resource.pool, surface->resource.format, NULL, surface->resource.usage, surface->resource.pool, surface->resource.format)) @@ -310,7 +310,7 @@ index bb41de5..5fdda96 100644 WINED3D_LOCATION_RB_RESOLVED : WINED3D_LOCATION_RB_MULTISAMPLE; DWORD dst_location = srgb ? WINED3D_LOCATION_TEXTURE_SRGB : WINED3D_LOCATION_TEXTURE_RGB; RECT rect = {0, 0, surface->resource.width, surface->resource.height}; -@@ -4254,7 +4255,7 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface, +@@ -4256,7 +4257,7 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface, if (srgb) { @@ -319,7 +319,7 @@ index bb41de5..5fdda96 100644 == WINED3D_LOCATION_TEXTURE_RGB) { /* Performance warning... */ -@@ -4265,7 +4266,7 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface, +@@ -4267,7 +4268,7 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface, } else { @@ -328,7 +328,7 @@ index bb41de5..5fdda96 100644 == WINED3D_LOCATION_TEXTURE_SRGB) { /* Performance warning... */ -@@ -4275,7 +4276,7 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface, +@@ -4277,7 +4278,7 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface, } } @@ -337,7 +337,7 @@ index bb41de5..5fdda96 100644 { WARN("Trying to load a texture from sysmem, but no simple location is valid.\n"); /* Lets hope we get it from somewhere... */ -@@ -4310,7 +4311,7 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface, +@@ -4312,7 +4313,7 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface, surface_remove_pbo(surface, gl_info); } @@ -346,7 +346,7 @@ index bb41de5..5fdda96 100644 if (format.convert) { /* This code is entered for texture formats which need a fixup. */ -@@ -4366,7 +4367,7 @@ static void surface_multisample_resolve(struct wined3d_surface *surface, struct +@@ -4368,7 +4369,7 @@ static void surface_multisample_resolve(struct wined3d_surface *surface, struct { RECT rect = {0, 0, surface->resource.width, surface->resource.height}; @@ -355,7 +355,7 @@ index bb41de5..5fdda96 100644 ERR("Trying to resolve multisampled surface %p, but location WINED3D_LOCATION_RB_MULTISAMPLE not current.\n", surface); -@@ -4384,12 +4385,12 @@ void surface_load_location(struct wined3d_surface *surface, struct wined3d_conte +@@ -4386,12 +4387,12 @@ void surface_load_location(struct wined3d_surface *surface, struct wined3d_conte if (surface->resource.usage & WINED3DUSAGE_DEPTHSTENCIL) { if (location == WINED3D_LOCATION_TEXTURE_RGB @@ -370,7 +370,7 @@ index bb41de5..5fdda96 100644 && surface->container->resource.draw_binding != WINED3D_LOCATION_DRAWABLE) { /* Already up to date, nothing to do. */ -@@ -4398,12 +4399,12 @@ void surface_load_location(struct wined3d_surface *surface, struct wined3d_conte +@@ -4400,12 +4401,12 @@ void surface_load_location(struct wined3d_surface *surface, struct wined3d_conte else { FIXME("Unimplemented copy from %s to %s for depth/stencil buffers.\n", @@ -385,7 +385,7 @@ index bb41de5..5fdda96 100644 { TRACE("Location already up to date.\n"); return; -@@ -4417,7 +4418,7 @@ void surface_load_location(struct wined3d_surface *surface, struct wined3d_conte +@@ -4419,7 +4420,7 @@ void surface_load_location(struct wined3d_surface *surface, struct wined3d_conte required_access, surface->resource.access_flags); } @@ -394,7 +394,7 @@ index bb41de5..5fdda96 100644 { ERR("Surface %p does not have any up to date location.\n", surface); surface->flags |= SFLAG_LOST; -@@ -4456,7 +4457,7 @@ void surface_load_location(struct wined3d_surface *surface, struct wined3d_conte +@@ -4458,7 +4459,7 @@ void surface_load_location(struct wined3d_surface *surface, struct wined3d_conte surface_validate_location(surface, location); @@ -403,7 +403,7 @@ index bb41de5..5fdda96 100644 surface_evict_sysmem(surface); return; -@@ -5506,8 +5507,8 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC +@@ -5508,8 +5509,8 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC /* In principle this would apply to depth blits as well, but we don't * implement those in the CPU blitter at the moment. */ @@ -414,7 +414,7 @@ index bb41de5..5fdda96 100644 { if (scale) TRACE("Not doing sysmem blit because of scaling.\n"); -@@ -5547,8 +5548,8 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC +@@ -5549,8 +5550,8 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC color_key = &src_surface->container->async.src_blt_color_key; blit_op = WINED3D_BLIT_OP_COLOR_BLIT_CKEY; } @@ -441,10 +441,10 @@ index 4f4d4df..e702d61 100644 /* Both memory copies of the surfaces are ok, flip them around too instead of dirtifying * Doesn't work with render_to_fbo because we're not flipping diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h -index 46d5e65..f74eddf 100644 +index 2828e47..bc6f994 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h -@@ -2334,7 +2334,6 @@ struct wined3d_surface +@@ -2348,7 +2348,6 @@ struct wined3d_surface const struct wined3d_surface_ops *surface_ops; struct wined3d_texture *container; void *user_memory; @@ -453,5 +453,5 @@ index 46d5e65..f74eddf 100644 DWORD flags; -- -2.3.5 +2.4.2 diff --git a/patches/wined3d-CSMT_Main/0019-wined3d-Introduce-helper-functions-for-mapping-volum.patch b/patches/wined3d-CSMT_Main/0019-wined3d-Introduce-helper-functions-for-mapping-volum.patch index 37ffb9e3..ec542db2 100644 --- a/patches/wined3d-CSMT_Main/0019-wined3d-Introduce-helper-functions-for-mapping-volum.patch +++ b/patches/wined3d-CSMT_Main/0019-wined3d-Introduce-helper-functions-for-mapping-volum.patch @@ -1,4 +1,4 @@ -From cebc544748ed5c4f41f39ff600b5768d7aa86505 Mon Sep 17 00:00:00 2001 +From e714feefbc666c34518c908acbc630e9a9f0b48e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20D=C3=B6singer?= Date: Wed, 18 Sep 2013 22:30:57 +0200 Subject: wined3d: Introduce helper functions for mapping volumes. @@ -8,7 +8,7 @@ Subject: wined3d: Introduce helper functions for mapping volumes. 1 file changed, 96 insertions(+), 61 deletions(-) diff --git a/dlls/wined3d/volume.c b/dlls/wined3d/volume.c -index a1fce20..5a4e939 100644 +index f82347d..17502ee 100644 --- a/dlls/wined3d/volume.c +++ b/dlls/wined3d/volume.c @@ -480,12 +480,67 @@ static BOOL wined3d_volume_check_box_dimensions(const struct wined3d_volume *vol @@ -79,7 +79,7 @@ index a1fce20..5a4e939 100644 - const struct wined3d_gl_info *gl_info; BYTE *base_memory; const struct wined3d_format *format = volume->resource.format; - const unsigned int fmt_flags = volume->resource.format_flags; + const unsigned int fmt_flags = volume->container->resource.format_flags; @@ -518,58 +573,22 @@ HRESULT CDECL wined3d_volume_map(struct wined3d_volume *volume, flags = wined3d_resource_sanitize_map_flags(&volume->resource, flags); @@ -209,5 +209,5 @@ index a1fce20..5a4e939 100644 volume->resource.map_count--; -- -2.3.5 +2.4.2 diff --git a/patches/wined3d-CSMT_Main/0022-wined3d-Use-resource-buffer-mapping-facilities-in-su.patch b/patches/wined3d-CSMT_Main/0022-wined3d-Use-resource-buffer-mapping-facilities-in-su.patch index 68524ccc..9b56ac24 100644 --- a/patches/wined3d-CSMT_Main/0022-wined3d-Use-resource-buffer-mapping-facilities-in-su.patch +++ b/patches/wined3d-CSMT_Main/0022-wined3d-Use-resource-buffer-mapping-facilities-in-su.patch @@ -1,4 +1,4 @@ -From 92eadfba3a70866690a3993fc67252ab29736524 Mon Sep 17 00:00:00 2001 +From 68ee5f83114581754be6462ea029dfeea654206e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20D=C3=B6singer?= Date: Tue, 21 Jan 2014 13:30:59 +0100 Subject: wined3d: Use resource buffer mapping facilities in surfaces. @@ -9,10 +9,10 @@ Subject: wined3d: Use resource buffer mapping facilities in surfaces. 2 files changed, 23 insertions(+), 63 deletions(-) diff --git a/dlls/wined3d/resource.c b/dlls/wined3d/resource.c -index 4c90dee..df6af90 100644 +index 01bde00..41b222f 100644 --- a/dlls/wined3d/resource.c +++ b/dlls/wined3d/resource.c -@@ -473,6 +473,12 @@ BYTE *wined3d_resource_get_map_ptr(const struct wined3d_resource *resource, +@@ -535,6 +535,12 @@ BYTE *wined3d_resource_get_map_ptr(const struct wined3d_resource *resource, case WINED3D_LOCATION_SYSMEM: return resource->heap_memory; @@ -25,7 +25,7 @@ index 4c90dee..df6af90 100644 default: ERR("Unexpected map binding %s.\n", wined3d_debug_location(resource->map_binding)); return NULL; -@@ -495,6 +501,8 @@ void wined3d_resource_release_map_ptr(const struct wined3d_resource *resource, +@@ -557,6 +563,8 @@ void wined3d_resource_release_map_ptr(const struct wined3d_resource *resource, return; case WINED3D_LOCATION_SYSMEM: @@ -35,7 +35,7 @@ index 4c90dee..df6af90 100644 default: diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c -index c12b404..77d7890 100644 +index e85a68b..ee49f29 100644 --- a/dlls/wined3d/surface.c +++ b/dlls/wined3d/surface.c @@ -716,36 +716,10 @@ static HRESULT surface_private_setup(struct wined3d_surface *surface) @@ -75,7 +75,7 @@ index c12b404..77d7890 100644 if (surface->resource.locations & (WINED3D_LOCATION_DRAWABLE | WINED3D_LOCATION_TEXTURE_RGB)) { TRACE("Not dirtified, nothing to do.\n"); -@@ -2659,6 +2633,8 @@ struct wined3d_surface * CDECL wined3d_surface_from_resource(struct wined3d_reso +@@ -2661,6 +2635,8 @@ struct wined3d_surface * CDECL wined3d_surface_from_resource(struct wined3d_reso HRESULT CDECL wined3d_surface_unmap(struct wined3d_surface *surface) { @@ -84,7 +84,7 @@ index c12b404..77d7890 100644 TRACE("surface %p.\n", surface); if (!surface->resource.map_count) -@@ -2668,6 +2644,12 @@ HRESULT CDECL wined3d_surface_unmap(struct wined3d_surface *surface) +@@ -2670,6 +2646,12 @@ HRESULT CDECL wined3d_surface_unmap(struct wined3d_surface *surface) } --surface->resource.map_count; @@ -97,9 +97,9 @@ index c12b404..77d7890 100644 surface->surface_ops->surface_unmap(surface); return WINED3D_OK; -@@ -2679,8 +2661,7 @@ HRESULT CDECL wined3d_surface_map(struct wined3d_surface *surface, +@@ -2681,8 +2663,7 @@ HRESULT CDECL wined3d_surface_map(struct wined3d_surface *surface, const struct wined3d_format *format = surface->resource.format; - unsigned int fmt_flags = surface->resource.format_flags; + unsigned int fmt_flags = surface->container->resource.format_flags; struct wined3d_device *device = surface->resource.device; - struct wined3d_context *context; - const struct wined3d_gl_info *gl_info; @@ -107,7 +107,7 @@ index c12b404..77d7890 100644 BYTE *base_memory; TRACE("surface %p, map_desc %p, rect %s, flags %#x.\n", -@@ -2722,6 +2703,9 @@ HRESULT CDECL wined3d_surface_map(struct wined3d_surface *surface, +@@ -2724,6 +2705,9 @@ HRESULT CDECL wined3d_surface_map(struct wined3d_surface *surface, } } @@ -117,7 +117,7 @@ index c12b404..77d7890 100644 surface_prepare_map_memory(surface); if (flags & WINED3D_MAP_DISCARD) { -@@ -2731,51 +2715,19 @@ HRESULT CDECL wined3d_surface_map(struct wined3d_surface *surface, +@@ -2733,51 +2717,19 @@ HRESULT CDECL wined3d_surface_map(struct wined3d_surface *surface, } else { @@ -173,5 +173,5 @@ index c12b404..77d7890 100644 if (fmt_flags & WINED3DFMT_FLAG_BROKEN_PITCH) map_desc->row_pitch = surface->resource.width * format->byte_count; -- -2.3.5 +2.4.2 diff --git a/patches/wined3d-CSMT_Main/0031-wined3d-Introduce-a-function-to-retrieve-resource-me.patch b/patches/wined3d-CSMT_Main/0031-wined3d-Introduce-a-function-to-retrieve-resource-me.patch index 5438b1e3..10c86d51 100644 --- a/patches/wined3d-CSMT_Main/0031-wined3d-Introduce-a-function-to-retrieve-resource-me.patch +++ b/patches/wined3d-CSMT_Main/0031-wined3d-Introduce-a-function-to-retrieve-resource-me.patch @@ -1,4 +1,4 @@ -From dddaa27583d0479c985c09b2e37f63314fd2d7a3 Mon Sep 17 00:00:00 2001 +From 240ba2fd70e0e8ed91785aca4e4bce8044d9f129 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20D=C3=B6singer?= Date: Mon, 16 Sep 2013 22:44:33 +0200 Subject: wined3d: Introduce a function to retrieve resource memory. @@ -10,10 +10,10 @@ Subject: wined3d: Introduce a function to retrieve resource memory. 3 files changed, 38 insertions(+), 39 deletions(-) diff --git a/dlls/wined3d/resource.c b/dlls/wined3d/resource.c -index 4454922..0ef2155 100644 +index 3308c82..7c915bd 100644 --- a/dlls/wined3d/resource.c +++ b/dlls/wined3d/resource.c -@@ -435,6 +435,36 @@ DWORD wined3d_resource_access_from_location(DWORD location) +@@ -497,6 +497,36 @@ DWORD wined3d_resource_access_from_location(DWORD location) } } @@ -51,7 +51,7 @@ index 4454922..0ef2155 100644 void wined3d_resource_load_location(struct wined3d_resource *resource, struct wined3d_context *context, DWORD location) diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c -index 4f12b02..66a7bd7 100644 +index 7e2e6c4..3e9a8ef 100644 --- a/dlls/wined3d/surface.c +++ b/dlls/wined3d/surface.c @@ -479,39 +479,6 @@ static HRESULT surface_create_dib_section(struct wined3d_surface *surface) @@ -94,16 +94,16 @@ index 4f12b02..66a7bd7 100644 static void surface_prepare_buffer(struct wined3d_surface *surface) { struct wined3d_context *context; -@@ -1272,7 +1239,7 @@ static void surface_download_data(struct wined3d_surface *surface, const struct +@@ -1274,7 +1241,7 @@ static void surface_download_data(struct wined3d_surface *surface, const struct return; } - surface_get_memory(surface, &data, dst_location); + wined3d_resource_get_memory(&surface->resource, dst_location, &data); - if (surface->resource.format_flags & WINED3DFMT_FLAG_COMPRESSED) + if (surface->container->resource.format_flags & WINED3DFMT_FLAG_COMPRESSED) { -@@ -1641,7 +1608,7 @@ HRESULT surface_upload_from_surface(struct wined3d_surface *dst_surface, const P +@@ -1643,7 +1610,7 @@ HRESULT surface_upload_from_surface(struct wined3d_surface *dst_surface, const P wined3d_resource_load_location(&dst_surface->resource, context, WINED3D_LOCATION_TEXTURE_RGB); wined3d_texture_bind_and_dirtify(dst_surface->container, context, FALSE); @@ -112,7 +112,7 @@ index 4f12b02..66a7bd7 100644 wined3d_resource_get_pitch(&src_surface->resource, &src_row_pitch, &src_slice_pitch); wined3d_surface_upload_data(dst_surface, gl_info, src_format, src_rect, -@@ -2876,7 +2843,7 @@ static void read_from_framebuffer(struct wined3d_surface *surface, +@@ -2878,7 +2845,7 @@ static void read_from_framebuffer(struct wined3d_surface *surface, struct wined3d_bo_address data; UINT row_pitch, slice_pitch; @@ -121,7 +121,7 @@ index 4f12b02..66a7bd7 100644 /* Context_release does not restore the original context in case of * nested context_acquire calls. Only read_from_framebuffer and -@@ -4015,8 +3982,8 @@ static void surface_copy_simple_location(struct wined3d_surface *surface, DWORD +@@ -4017,8 +3984,8 @@ static void surface_copy_simple_location(struct wined3d_surface *surface, DWORD struct wined3d_bo_address dst, src; UINT size = surface->resource.size; @@ -132,7 +132,7 @@ index 4f12b02..66a7bd7 100644 if (dst.buffer_object) { -@@ -4228,7 +4195,7 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface, +@@ -4230,7 +4197,7 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface, surface_remove_pbo(surface, gl_info); } @@ -142,10 +142,10 @@ index 4f12b02..66a7bd7 100644 { /* This code is entered for texture formats which need a fixup. */ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h -index 12b1efd..c38451e 100644 +index f3e8f2a..f8733ad 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h -@@ -2158,6 +2158,8 @@ BOOL wined3d_resource_allocate_sysmem(struct wined3d_resource *resource) DECLSPE +@@ -2172,6 +2172,8 @@ BOOL wined3d_resource_allocate_sysmem(struct wined3d_resource *resource) DECLSPE void wined3d_resource_free_sysmem(struct wined3d_resource *resource) DECLSPEC_HIDDEN; BYTE *wined3d_resource_get_map_ptr(const struct wined3d_resource *resource, const struct wined3d_context *context, DWORD flags) DECLSPEC_HIDDEN; @@ -155,5 +155,5 @@ index 12b1efd..c38451e 100644 void wined3d_resource_invalidate_location(struct wined3d_resource *resource, DWORD location) DECLSPEC_HIDDEN; BOOL wined3d_resource_is_offscreen(struct wined3d_resource *resource) DECLSPEC_HIDDEN; -- -2.3.5 +2.4.2 diff --git a/patches/wined3d-CSMT_Main/0032-wined3d-Make-surface_ops-unmap-specific-for-front-bu.patch b/patches/wined3d-CSMT_Main/0032-wined3d-Make-surface_ops-unmap-specific-for-front-bu.patch index 1cd68c6d..340d21b2 100644 --- a/patches/wined3d-CSMT_Main/0032-wined3d-Make-surface_ops-unmap-specific-for-front-bu.patch +++ b/patches/wined3d-CSMT_Main/0032-wined3d-Make-surface_ops-unmap-specific-for-front-bu.patch @@ -1,4 +1,4 @@ -From 1c3c1a3c7117915d4aa9bc8a4c533cde76133080 Mon Sep 17 00:00:00 2001 +From 10058dd5be622aefa90a05d8e793573da1140bf7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20D=C3=B6singer?= Date: Thu, 19 Sep 2013 13:36:00 +0200 Subject: wined3d: Make surface_ops->unmap specific for front buffers. @@ -9,7 +9,7 @@ Subject: wined3d: Make surface_ops->unmap specific for front buffers. 2 files changed, 17 insertions(+), 30 deletions(-) diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c -index 66a7bd7..178a949 100644 +index 3e9a8ef..175f05e 100644 --- a/dlls/wined3d/surface.c +++ b/dlls/wined3d/surface.c @@ -681,31 +681,22 @@ static HRESULT surface_private_setup(struct wined3d_surface *surface) @@ -43,7 +43,7 @@ index 66a7bd7..178a949 100644 - if (context) - context_release(context); - } -- else if (surface->resource.format_flags & (WINED3DFMT_FLAG_DEPTH | WINED3DFMT_FLAG_STENCIL)) +- else if (surface->container->resource.format_flags & (WINED3DFMT_FLAG_DEPTH | WINED3DFMT_FLAG_STENCIL)) - FIXME("Depth / stencil buffer locking is not implemented.\n"); + if (device->d3d_initialized) + context = context_acquire(surface->resource.device, NULL); @@ -53,7 +53,7 @@ index 66a7bd7..178a949 100644 } static BOOL surface_is_full_rect(const struct wined3d_surface *surface, const RECT *r) -@@ -1162,7 +1153,7 @@ static void wined3d_surface_location_invalidated(struct wined3d_resource *resour +@@ -1164,7 +1155,7 @@ static void wined3d_surface_location_invalidated(struct wined3d_resource *resour static const struct wined3d_surface_ops surface_ops = { surface_private_setup, @@ -62,7 +62,7 @@ index 66a7bd7..178a949 100644 }; /***************************************************************************** -@@ -1206,21 +1197,15 @@ static HRESULT gdi_surface_private_setup(struct wined3d_surface *surface) +@@ -1208,21 +1199,15 @@ static HRESULT gdi_surface_private_setup(struct wined3d_surface *surface) return WINED3D_OK; } @@ -87,7 +87,7 @@ index 66a7bd7..178a949 100644 }; /* This call just downloads data, the caller is responsible for binding the -@@ -2610,7 +2595,9 @@ HRESULT CDECL wined3d_surface_unmap(struct wined3d_surface *surface) +@@ -2612,7 +2597,9 @@ HRESULT CDECL wined3d_surface_unmap(struct wined3d_surface *surface) if (context) context_release(context); @@ -99,10 +99,10 @@ index 66a7bd7..178a949 100644 return WINED3D_OK; } diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h -index c38451e..96cdac5 100644 +index f8733ad..b0986cd 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h -@@ -2336,7 +2336,7 @@ struct fbo_entry +@@ -2350,7 +2350,7 @@ struct fbo_entry struct wined3d_surface_ops { HRESULT (*surface_private_setup)(struct wined3d_surface *surface); @@ -112,5 +112,5 @@ index c38451e..96cdac5 100644 struct wined3d_surface -- -2.3.5 +2.4.2 diff --git a/patches/wined3d-CSMT_Main/0038-wined3d-Move-most-of-volume_map-to-resource.c.patch b/patches/wined3d-CSMT_Main/0038-wined3d-Move-most-of-volume_map-to-resource.c.patch index 834e5a2e..5c88fb83 100644 --- a/patches/wined3d-CSMT_Main/0038-wined3d-Move-most-of-volume_map-to-resource.c.patch +++ b/patches/wined3d-CSMT_Main/0038-wined3d-Move-most-of-volume_map-to-resource.c.patch @@ -1,4 +1,4 @@ -From db0594c57b82e50612dab5008f8947aa6a15fd18 Mon Sep 17 00:00:00 2001 +From 2ae05213ea4af0cb5725b2b88b51bd7ef2f893c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20D=C3=B6singer?= Date: Thu, 19 Sep 2013 17:51:38 +0200 Subject: wined3d: Move most of volume_map to resource.c @@ -13,10 +13,10 @@ boundary check behaviours. 3 files changed, 124 insertions(+), 95 deletions(-) diff --git a/dlls/wined3d/resource.c b/dlls/wined3d/resource.c -index 8903353..4ca8189 100644 +index 11136de..ba18baa 100644 --- a/dlls/wined3d/resource.c +++ b/dlls/wined3d/resource.c -@@ -694,3 +694,118 @@ BOOL wined3d_resource_check_block_align(const struct wined3d_resource *resource, +@@ -756,3 +756,118 @@ BOOL wined3d_resource_check_block_align(const struct wined3d_resource *resource, return TRUE; } @@ -136,7 +136,7 @@ index 8903353..4ca8189 100644 + return WINED3D_OK; +} diff --git a/dlls/wined3d/volume.c b/dlls/wined3d/volume.c -index 4d7b349..3a85103 100644 +index e70fcf4..dd49d01 100644 --- a/dlls/wined3d/volume.c +++ b/dlls/wined3d/volume.c @@ -404,26 +404,16 @@ static BOOL wined3d_volume_check_box_dimensions(const struct wined3d_volume *vol @@ -148,7 +148,7 @@ index 4d7b349..3a85103 100644 - BYTE *base_memory; + HRESULT hr; const struct wined3d_format *format = volume->resource.format; - const unsigned int fmt_flags = volume->resource.format_flags; + const unsigned int fmt_flags = volume->container->resource.format_flags; - TRACE("volume %p, map_desc %p, box %p, flags %#x.\n", - volume, map_desc, box, flags); @@ -272,10 +272,10 @@ index 4d7b349..3a85103 100644 static ULONG volume_resource_incref(struct wined3d_resource *resource) diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h -index f51a7bf..de55416 100644 +index 8c511c1..9d33eb6 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h -@@ -2166,12 +2166,15 @@ void wined3d_resource_invalidate_location(struct wined3d_resource *resource, DWO +@@ -2182,12 +2182,15 @@ void wined3d_resource_invalidate_location(struct wined3d_resource *resource, DWO BOOL wined3d_resource_is_offscreen(struct wined3d_resource *resource) DECLSPEC_HIDDEN; void wined3d_resource_load_location(struct wined3d_resource *resource, struct wined3d_context *context, DWORD location) DECLSPEC_HIDDEN; @@ -292,5 +292,5 @@ index f51a7bf..de55416 100644 void wined3d_resource_validate_location(struct wined3d_resource *resource, DWORD location) DECLSPEC_HIDDEN; -- -2.3.5 +2.4.2 diff --git a/patches/wined3d-CSMT_Main/0039-wined3d-Use-resource_map-for-surface_map.patch b/patches/wined3d-CSMT_Main/0039-wined3d-Use-resource_map-for-surface_map.patch index fef54941..6e75d90f 100644 --- a/patches/wined3d-CSMT_Main/0039-wined3d-Use-resource_map-for-surface_map.patch +++ b/patches/wined3d-CSMT_Main/0039-wined3d-Use-resource_map-for-surface_map.patch @@ -1,4 +1,4 @@ -From a63cedcd66546c8005162c860211ce39e7e4cbcd Mon Sep 17 00:00:00 2001 +From 72f318318de11be998fbbf707dadeb204d51c899 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20D=C3=B6singer?= Date: Thu, 19 Sep 2013 18:00:23 +0200 Subject: wined3d: Use resource_map for surface_map. @@ -10,10 +10,10 @@ Subject: wined3d: Use resource_map for surface_map. 3 files changed, 22 insertions(+), 89 deletions(-) diff --git a/dlls/wined3d/resource.c b/dlls/wined3d/resource.c -index b497955..12a26d8 100644 +index ba18baa..e5644ce 100644 --- a/dlls/wined3d/resource.c +++ b/dlls/wined3d/resource.c -@@ -795,7 +795,7 @@ HRESULT wined3d_resource_unmap(struct wined3d_resource *resource) +@@ -858,7 +858,7 @@ HRESULT wined3d_resource_unmap(struct wined3d_resource *resource) if (!resource->map_count) { WARN("Trying to unlock an unlocked resource %p.\n", resource); @@ -23,10 +23,10 @@ index b497955..12a26d8 100644 if (device->d3d_initialized) diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c -index 334335f..cf9c938 100644 +index f117013..a331e37 100644 --- a/dlls/wined3d/surface.c +++ b/dlls/wined3d/surface.c -@@ -2474,47 +2474,26 @@ struct wined3d_surface * CDECL wined3d_surface_from_resource(struct wined3d_reso +@@ -2476,47 +2476,26 @@ struct wined3d_surface * CDECL wined3d_surface_from_resource(struct wined3d_reso HRESULT CDECL wined3d_surface_unmap(struct wined3d_surface *surface) { @@ -64,7 +64,7 @@ index 334335f..cf9c938 100644 { + struct wined3d_box box; const struct wined3d_format *format = surface->resource.format; - unsigned int fmt_flags = surface->resource.format_flags; + unsigned int fmt_flags = surface->container->resource.format_flags; - struct wined3d_device *device = surface->resource.device; - struct wined3d_context *context = NULL; - BYTE *base_memory; @@ -80,7 +80,7 @@ index 334335f..cf9c938 100644 if ((fmt_flags & WINED3DFMT_FLAG_BLOCKS) && rect && !surface_check_block_align(surface, rect)) -@@ -2526,11 +2505,6 @@ HRESULT CDECL wined3d_surface_map(struct wined3d_surface *surface, +@@ -2528,11 +2507,6 @@ HRESULT CDECL wined3d_surface_map(struct wined3d_surface *surface, return WINED3DERR_INVALIDCALL; } @@ -92,7 +92,7 @@ index 334335f..cf9c938 100644 /* Performance optimization: Count how often a surface is mapped, if it is * mapped regularly do not throw away the system memory copy. This avoids * the need to download the surface from OpenGL all the time. The surface -@@ -2546,72 +2520,26 @@ HRESULT CDECL wined3d_surface_map(struct wined3d_surface *surface, +@@ -2548,72 +2522,26 @@ HRESULT CDECL wined3d_surface_map(struct wined3d_surface *surface, } } @@ -175,7 +175,7 @@ index 334335f..cf9c938 100644 HRESULT CDECL wined3d_surface_getdc(struct wined3d_surface *surface, HDC *dc) diff --git a/dlls/wined3d/volume.c b/dlls/wined3d/volume.c -index 3a85103..a656736 100644 +index dd49d01..01ee33c 100644 --- a/dlls/wined3d/volume.c +++ b/dlls/wined3d/volume.c @@ -441,7 +441,12 @@ struct wined3d_volume * CDECL wined3d_volume_from_resource(struct wined3d_resour @@ -193,5 +193,5 @@ index 3a85103..a656736 100644 static ULONG volume_resource_incref(struct wined3d_resource *resource) -- -2.3.5 +2.4.2 diff --git a/patches/wined3d-CSMT_Main/0042-wined3d-Don-t-call-the-public-map-function-in-surfac.patch b/patches/wined3d-CSMT_Main/0042-wined3d-Don-t-call-the-public-map-function-in-surfac.patch index 534baa26..8f1fb49b 100644 --- a/patches/wined3d-CSMT_Main/0042-wined3d-Don-t-call-the-public-map-function-in-surfac.patch +++ b/patches/wined3d-CSMT_Main/0042-wined3d-Don-t-call-the-public-map-function-in-surfac.patch @@ -1,4 +1,4 @@ -From 341f5f1a37a6da02cd3ed172d9e3c3d2653220b5 Mon Sep 17 00:00:00 2001 +From 9d0010d5add477e39747ac3e458d16b5b1fa101f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20D=C3=B6singer?= Date: Tue, 24 Sep 2013 00:31:39 +0200 Subject: wined3d: Don't call the public map function in surface_cpu_blt. @@ -8,7 +8,7 @@ Subject: wined3d: Don't call the public map function in surface_cpu_blt. 1 file changed, 72 insertions(+), 35 deletions(-) diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c -index 08009da..b562f7a 100644 +index ff83f29..df8aea6 100644 --- a/dlls/wined3d/surface.c +++ b/dlls/wined3d/surface.c @@ -4428,21 +4428,36 @@ static HRESULT surface_cpu_blt(struct wined3d_surface *dst_surface, const RECT * @@ -50,9 +50,9 @@ index 08009da..b562f7a 100644 + src_row_pitch = dst_row_pitch; src_format = dst_surface->resource.format; dst_format = src_format; - dst_fmt_flags = dst_surface->resource.format_flags; + dst_fmt_flags = dst_surface->container->resource.format_flags; @@ -4454,6 +4469,12 @@ static HRESULT surface_cpu_blt(struct wined3d_surface *dst_surface, const RECT * - dst_fmt_flags = dst_surface->resource.format_flags; + dst_fmt_flags = dst_surface->container->resource.format_flags; if (src_surface) { + if (!wined3d_resource_prepare_map_memory(&src_surface->resource, context)) @@ -73,7 +73,7 @@ index 08009da..b562f7a 100644 + wined3d_resource_get_pitch(&src_surface->resource, &src_row_pitch, &src_slice_pitch); + src_data = wined3d_resource_get_map_ptr(&src_surface->resource, context, 0); src_format = src_surface->resource.format; - src_fmt_flags = src_surface->resource.format_flags; + src_fmt_flags = src_surface->container->resource.format_flags; } @@ -4474,7 +4497,8 @@ static HRESULT surface_cpu_blt(struct wined3d_surface *dst_surface, const RECT * src_fmt_flags = dst_fmt_flags; @@ -273,5 +273,5 @@ index 08009da..b562f7a 100644 return hr; } -- -2.3.5 +2.4.2 diff --git a/patches/wined3d-CSMT_Main/0072-wined3d-Send-blits-through-the-command-stream.patch b/patches/wined3d-CSMT_Main/0072-wined3d-Send-blits-through-the-command-stream.patch index 95f126f2..83e74914 100644 --- a/patches/wined3d-CSMT_Main/0072-wined3d-Send-blits-through-the-command-stream.patch +++ b/patches/wined3d-CSMT_Main/0072-wined3d-Send-blits-through-the-command-stream.patch @@ -1,4 +1,4 @@ -From 8080f13758b622f549724df5d6f9932e8bf2531a Mon Sep 17 00:00:00 2001 +From fd7f91b6778e7afc1ee6334ccf7d5f9224030945 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20D=C3=B6singer?= Date: Mon, 29 Apr 2013 18:49:53 +0200 Subject: wined3d: Send blits through the command stream. @@ -12,7 +12,7 @@ between surface_blt and surface_blt_ugly isn't particularly nice. 3 files changed, 226 insertions(+), 139 deletions(-) diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c -index 8087812..9531b2f 100644 +index 77bb485..b5b5ece 100644 --- a/dlls/wined3d/cs.c +++ b/dlls/wined3d/cs.c @@ -74,6 +74,7 @@ enum wined3d_cs_op @@ -108,7 +108,7 @@ index 8087812..9531b2f 100644 { struct wined3d_cs_block *block; diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c -index a4a659b..32fc27c 100644 +index 8464ff1..59a92bf 100644 --- a/dlls/wined3d/surface.c +++ b/dlls/wined3d/surface.c @@ -5000,14 +5000,13 @@ const struct blit_shader cpu_blit = { @@ -250,8 +250,8 @@ index a4a659b..32fc27c 100644 + || src_rect->bottom - src_rect->top != dst_rect->bottom - dst_rect->top); convert = src_surface && src_surface->resource.format->id != dst_surface->resource.format->id; - dst_ds_flags = dst_surface->resource.format_flags & (WINED3DFMT_FLAG_DEPTH | WINED3DFMT_FLAG_STENCIL); -@@ -5184,22 +5078,16 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC + dst_ds_flags = dst_surface->container->resource.format_flags +@@ -5186,22 +5080,16 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC TRACE("Depth fill.\n"); if (!surface_convert_depth_to_float(dst_surface, fx->u5.dwFillDepth, &depth)) @@ -279,7 +279,7 @@ index a4a659b..32fc27c 100644 } } else -@@ -5230,8 +5118,8 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC +@@ -5232,8 +5120,8 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC palette, fx->u5.dwFillColor, &color)) goto fallback; @@ -290,7 +290,7 @@ index a4a659b..32fc27c 100644 } else { -@@ -5259,9 +5147,9 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC +@@ -5261,9 +5149,9 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC TRACE("Not doing upload because of format conversion.\n"); else { @@ -302,7 +302,7 @@ index a4a659b..32fc27c 100644 { if (!wined3d_resource_is_offscreen(&dst_surface->container->resource)) { -@@ -5270,7 +5158,7 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC +@@ -5272,7 +5160,7 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC dst_surface->container->resource.draw_binding); context_release(context); } @@ -311,7 +311,7 @@ index a4a659b..32fc27c 100644 } } } -@@ -5294,50 +5182,191 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC +@@ -5296,50 +5184,191 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC wined3d_swapchain_present(dst_swapchain, NULL, NULL, dst_swapchain->win_handle, NULL, 0); dst_swapchain->desc.swap_effect = swap_effect; @@ -517,10 +517,10 @@ index a4a659b..32fc27c 100644 static const struct wined3d_resource_ops surface_resource_ops = diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h -index 908b004..9292862 100644 +index 85307b7..90c217a 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h -@@ -2444,6 +2444,9 @@ void wined3d_surface_destroy(struct wined3d_surface *surface) DECLSPEC_HIDDEN; +@@ -2460,6 +2460,9 @@ void wined3d_surface_destroy(struct wined3d_surface *surface) DECLSPEC_HIDDEN; void wined3d_surface_upload_data(struct wined3d_surface *surface, const struct wined3d_gl_info *gl_info, const struct wined3d_format *format, const RECT *src_rect, UINT src_pitch, const POINT *dst_point, BOOL srgb, const struct wined3d_const_bo_address *data) DECLSPEC_HIDDEN; @@ -530,7 +530,7 @@ index 908b004..9292862 100644 void draw_textured_quad(const struct wined3d_surface *src_surface, struct wined3d_context *context, const RECT *src_rect, const RECT *dst_rect, enum wined3d_texture_filter_type filter) DECLSPEC_HIDDEN; -@@ -2593,6 +2596,7 @@ struct wined3d_cs +@@ -2609,6 +2612,7 @@ struct wined3d_cs struct wined3d_device *device; struct wined3d_state state; HANDLE thread; @@ -538,7 +538,7 @@ index 908b004..9292862 100644 DWORD tls_idx; struct wined3d_surface *onscreen_depth_stencil; -@@ -2671,6 +2675,10 @@ void wined3d_cs_emit_set_primitive_type(struct wined3d_cs *cs, +@@ -2687,6 +2691,10 @@ void wined3d_cs_emit_set_primitive_type(struct wined3d_cs *cs, GLenum primitive_type) DECLSPEC_HIDDEN; void wined3d_cs_emit_set_light(struct wined3d_cs *cs, const struct wined3d_light_info *light) DECLSPEC_HIDDEN; void wined3d_cs_emit_set_light_enable(struct wined3d_cs *cs, UINT idx, BOOL enable) DECLSPEC_HIDDEN; @@ -550,5 +550,5 @@ index 908b004..9292862 100644 /* Direct3D terminology with little modifications. We do not have an issued state * because only the driver knows about it, but we have a created state because d3d -- -2.3.5 +2.4.2 diff --git a/patches/wined3d-CSMT_Main/0140-wined3d-Clean-up-texture-resources-through-the-cs.patch b/patches/wined3d-CSMT_Main/0140-wined3d-Clean-up-texture-resources-through-the-cs.patch index 59baba45..67f344ac 100644 --- a/patches/wined3d-CSMT_Main/0140-wined3d-Clean-up-texture-resources-through-the-cs.patch +++ b/patches/wined3d-CSMT_Main/0140-wined3d-Clean-up-texture-resources-through-the-cs.patch @@ -1,4 +1,4 @@ -From c2fe136d2b070ad027b0805a24ed3664f02150c8 Mon Sep 17 00:00:00 2001 +From 4ce0b7d84cd9b320205d4b1626f3486b73e95c03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20D=C3=B6singer?= Date: Sun, 6 Oct 2013 16:20:32 +0200 Subject: wined3d: Clean up texture resources through the cs. @@ -10,7 +10,7 @@ Subject: wined3d: Clean up texture resources through the cs. 3 files changed, 60 insertions(+), 8 deletions(-) diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c -index 6010791..bea93f9 100644 +index 997c7d8..f7ede92 100644 --- a/dlls/wined3d/cs.c +++ b/dlls/wined3d/cs.c @@ -87,6 +87,7 @@ enum wined3d_cs_op @@ -70,10 +70,10 @@ index 6010791..bea93f9 100644 static inline void *_wined3d_cs_mt_require_space(struct wined3d_cs *cs, size_t size, BOOL prio) diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c -index cded1c0..d0da497 100644 +index c94dc5b..63e0668 100644 --- a/dlls/wined3d/texture.c +++ b/dlls/wined3d/texture.c -@@ -123,17 +123,26 @@ static void wined3d_texture_unload_gl_texture(struct wined3d_texture *texture) +@@ -114,17 +114,26 @@ static void wined3d_texture_unload_gl_texture(struct wined3d_texture *texture) resource_unload(&texture->resource); } @@ -101,7 +101,7 @@ index cded1c0..d0da497 100644 } for (i = 0; i < sub_count; ++i) -@@ -144,11 +153,8 @@ static void wined3d_texture_cleanup(struct wined3d_texture *texture) +@@ -135,11 +144,8 @@ static void wined3d_texture_cleanup(struct wined3d_texture *texture) texture->texture_ops->texture_sub_resource_cleanup(sub_resource); } @@ -114,7 +114,7 @@ index cded1c0..d0da497 100644 } void wined3d_texture_set_swapchain(struct wined3d_texture *texture, struct wined3d_swapchain *swapchain) -@@ -428,9 +434,10 @@ ULONG CDECL wined3d_texture_decref(struct wined3d_texture *texture) +@@ -419,9 +425,10 @@ ULONG CDECL wined3d_texture_decref(struct wined3d_texture *texture) if (!refcount) { @@ -127,7 +127,7 @@ index cded1c0..d0da497 100644 } return refcount; -@@ -1012,6 +1019,7 @@ static HRESULT cubetexture_init(struct wined3d_texture *texture, const struct wi +@@ -1003,6 +1010,7 @@ static HRESULT cubetexture_init(struct wined3d_texture *texture, const struct wi if (WINED3DFMT_UNKNOWN >= desc->format) { WARN("(%p) : Texture cannot be created with a format of WINED3DFMT_UNKNOWN.\n", texture); @@ -135,7 +135,7 @@ index cded1c0..d0da497 100644 return WINED3DERR_INVALIDCALL; } -@@ -1021,12 +1029,14 @@ static HRESULT cubetexture_init(struct wined3d_texture *texture, const struct wi +@@ -1012,12 +1020,14 @@ static HRESULT cubetexture_init(struct wined3d_texture *texture, const struct wi if (!gl_info->supported[SGIS_GENERATE_MIPMAP]) { WARN("No mipmap generation support, returning D3DERR_INVALIDCALL.\n"); @@ -150,7 +150,7 @@ index cded1c0..d0da497 100644 return WINED3DERR_INVALIDCALL; } } -@@ -1047,6 +1057,7 @@ static HRESULT cubetexture_init(struct wined3d_texture *texture, const struct wi +@@ -1038,6 +1048,7 @@ static HRESULT cubetexture_init(struct wined3d_texture *texture, const struct wi else { WARN("Attempted to create a NPOT cube texture (edge length %u) without GL support.\n", desc->width); @@ -158,23 +158,23 @@ index cded1c0..d0da497 100644 return WINED3DERR_INVALIDCALL; } } -@@ -1056,6 +1067,7 @@ static HRESULT cubetexture_init(struct wined3d_texture *texture, const struct wi - surface_flags, WINED3D_GL_RES_TYPE_TEX_CUBE, device, parent, parent_ops, &texture_resource_ops))) +@@ -1047,6 +1058,7 @@ static HRESULT cubetexture_init(struct wined3d_texture *texture, const struct wi + surface_flags, device, parent, parent_ops, &texture_resource_ops))) { WARN("Failed to initialize texture, returning %#x\n", hr); + HeapFree(GetProcessHeap(), 0, texture); return hr; } -@@ -1121,6 +1133,7 @@ static HRESULT texture_init(struct wined3d_texture *texture, const struct wined3 +@@ -1109,6 +1121,7 @@ static HRESULT texture_init(struct wined3d_texture *texture, const struct wined3 if (WINED3DFMT_UNKNOWN >= desc->format) { WARN("(%p) : Texture cannot be created with a format of WINED3DFMT_UNKNOWN.\n", texture); + HeapFree(GetProcessHeap(), 0, texture); return WINED3DERR_INVALIDCALL; } - format = wined3d_get_format(gl_info, desc->format); -@@ -1152,6 +1165,7 @@ static HRESULT texture_init(struct wined3d_texture *texture, const struct wined3 + +@@ -1139,6 +1152,7 @@ static HRESULT texture_init(struct wined3d_texture *texture, const struct wined3 else { WARN("Attempted to create a mipmapped NPOT texture without unconditional NPOT support.\n"); @@ -182,7 +182,7 @@ index cded1c0..d0da497 100644 return WINED3DERR_INVALIDCALL; } } -@@ -1164,12 +1178,14 @@ static HRESULT texture_init(struct wined3d_texture *texture, const struct wined3 +@@ -1151,12 +1165,14 @@ static HRESULT texture_init(struct wined3d_texture *texture, const struct wined3 if (!gl_info->supported[SGIS_GENERATE_MIPMAP]) { WARN("No mipmap generation support, returning WINED3DERR_INVALIDCALL.\n"); @@ -197,15 +197,15 @@ index cded1c0..d0da497 100644 return WINED3DERR_INVALIDCALL; } } -@@ -1195,6 +1211,7 @@ static HRESULT texture_init(struct wined3d_texture *texture, const struct wined3 - surface_flags, WINED3D_GL_RES_TYPE_TEX_2D, device, parent, parent_ops, &texture_resource_ops))) +@@ -1165,6 +1181,7 @@ static HRESULT texture_init(struct wined3d_texture *texture, const struct wined3 + surface_flags, device, parent, parent_ops, &texture_resource_ops))) { WARN("Failed to initialize texture, returning %#x.\n", hr); + HeapFree(GetProcessHeap(), 0, texture); return hr; } -@@ -1367,12 +1384,14 @@ static HRESULT volumetexture_init(struct wined3d_texture *texture, const struct +@@ -1337,12 +1354,14 @@ static HRESULT volumetexture_init(struct wined3d_texture *texture, const struct if (WINED3DFMT_UNKNOWN >= desc->format) { WARN("(%p) : Texture cannot be created with a format of WINED3DFMT_UNKNOWN.\n", texture); @@ -220,7 +220,7 @@ index cded1c0..d0da497 100644 return WINED3DERR_INVALIDCALL; } -@@ -1382,12 +1401,14 @@ static HRESULT volumetexture_init(struct wined3d_texture *texture, const struct +@@ -1352,12 +1371,14 @@ static HRESULT volumetexture_init(struct wined3d_texture *texture, const struct if (!gl_info->supported[SGIS_GENERATE_MIPMAP]) { WARN("No mipmap generation support, returning D3DERR_INVALIDCALL.\n"); @@ -235,7 +235,7 @@ index cded1c0..d0da497 100644 return WINED3DERR_INVALIDCALL; } } -@@ -1415,6 +1436,7 @@ static HRESULT volumetexture_init(struct wined3d_texture *texture, const struct +@@ -1385,6 +1406,7 @@ static HRESULT volumetexture_init(struct wined3d_texture *texture, const struct { WARN("Attempted to create a NPOT volume texture (%u, %u, %u) without GL support.\n", desc->width, desc->height, desc->depth); @@ -243,15 +243,15 @@ index cded1c0..d0da497 100644 return WINED3DERR_INVALIDCALL; } } -@@ -1424,6 +1446,7 @@ static HRESULT volumetexture_init(struct wined3d_texture *texture, const struct - 0, WINED3D_GL_RES_TYPE_TEX_3D, device, parent, parent_ops, &texture_resource_ops))) +@@ -1394,6 +1416,7 @@ static HRESULT volumetexture_init(struct wined3d_texture *texture, const struct + 0, device, parent, parent_ops, &texture_resource_ops))) { WARN("Failed to initialize texture, returning %#x.\n", hr); + HeapFree(GetProcessHeap(), 0, texture); return hr; } -@@ -1500,7 +1523,6 @@ HRESULT CDECL wined3d_texture_create(struct wined3d_device *device, const struct +@@ -1470,7 +1493,6 @@ HRESULT CDECL wined3d_texture_create(struct wined3d_device *device, const struct if (FAILED(hr)) { WARN("Failed to initialize texture, returning %#x.\n", hr); @@ -260,10 +260,10 @@ index cded1c0..d0da497 100644 } diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h -index de97d8b..f9a459a 100644 +index b40d7d3..a0e9871 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h -@@ -2332,6 +2332,7 @@ static inline struct gl_texture *wined3d_texture_get_gl_texture(struct wined3d_t +@@ -2343,6 +2343,7 @@ static inline struct gl_texture *wined3d_texture_get_gl_texture(struct wined3d_t void wined3d_texture_apply_sampler_desc(struct wined3d_texture *texture, const struct wined3d_sampler_desc *sampler_desc, const struct wined3d_gl_info *gl_info) DECLSPEC_HIDDEN; @@ -271,7 +271,7 @@ index de97d8b..f9a459a 100644 void wined3d_texture_bind(struct wined3d_texture *texture, struct wined3d_context *context, BOOL srgb) DECLSPEC_HIDDEN; void wined3d_texture_bind_and_dirtify(struct wined3d_texture *texture, -@@ -2761,6 +2762,7 @@ void wined3d_cs_emit_resource_cleanup(struct wined3d_cs *cs, +@@ -2772,6 +2773,7 @@ void wined3d_cs_emit_resource_cleanup(struct wined3d_cs *cs, void wined3d_cs_emit_buffer_cleanup(struct wined3d_cs *cs, struct wined3d_buffer *buffer) DECLSPEC_HIDDEN; void wined3d_cs_emit_volume_cleanup(struct wined3d_cs *cs, struct wined3d_volume *volume) DECLSPEC_HIDDEN; void wined3d_cs_emit_surface_cleanup(struct wined3d_cs *cs, struct wined3d_surface *surface) DECLSPEC_HIDDEN; @@ -280,5 +280,5 @@ index de97d8b..f9a459a 100644 /* Direct3D terminology with little modifications. We do not have an issued state * because only the driver knows about it, but we have a created state because d3d -- -2.3.5 +2.4.2 diff --git a/patches/wined3d-CSMT_Main/9999-IfDefined.patch b/patches/wined3d-CSMT_Main/9999-IfDefined.patch index 5f79043e..8a57f4da 100644 --- a/patches/wined3d-CSMT_Main/9999-IfDefined.patch +++ b/patches/wined3d-CSMT_Main/9999-IfDefined.patch @@ -860,7 +860,7 @@ diff --git a/dlls/wined3d/volume.c b/dlls/wined3d/volume.c +#if defined(STAGING_CSMT) HRESULT hr; const struct wined3d_format *format = volume->resource.format; - const unsigned int fmt_flags = volume->resource.format_flags; + const unsigned int fmt_flags = volume->container->resource.format_flags; @@ -439,6 +684,148 @@ return hr; @@ -871,7 +871,7 @@ diff --git a/dlls/wined3d/volume.c b/dlls/wined3d/volume.c + const struct wined3d_gl_info *gl_info; + BYTE *base_memory; + const struct wined3d_format *format = volume->resource.format; -+ const unsigned int fmt_flags = volume->resource.format_flags; ++ const unsigned int fmt_flags = volume->container->resource.format_flags; + + TRACE("volume %p, map_desc %p, box %p, flags %#x.\n", + volume, map_desc, box, flags); @@ -1099,7 +1099,7 @@ diff --git a/dlls/wined3d/volume.c b/dlls/wined3d/volume.c diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c --- a/dlls/wined3d/utils.c +++ b/dlls/wined3d/utils.c -@@ -3427,7 +3427,11 @@ +@@ -3470,7 +3470,11 @@ float y_offset = context->render_offscreen ? (center_offset - (2.0f * y) - h) / h : (center_offset - (2.0f * y) - h) / -h; @@ -1111,7 +1111,7 @@ diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c state->render_states[WINED3D_RS_ZENABLE] : WINED3D_ZB_FALSE; float z_scale = zenable ? 2.0f : 0.0f; float z_offset = zenable ? -1.0f : 0.0f; -@@ -3550,6 +3554,7 @@ +@@ -3593,6 +3597,7 @@ /* case WINED3D_TTFF_COUNT1: Won't ever get here. */ case WINED3D_TTFF_COUNT2: mat._13 = mat._23 = mat._33 = mat._43 = 0.0f; @@ -1119,7 +1119,7 @@ diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c /* OpenGL divides the first 3 vertex coord by the 4th by default, * which is essentially the same as D3DTTFF_PROJECTED. Make sure that * the 4th coord evaluates to 1.0 to eliminate that. -@@ -3562,6 +3567,20 @@ +@@ -3605,6 +3610,20 @@ * A more serious problem occurs if the app passes 4 coordinates in, and the * 4th is != 1.0(opengl default). This would have to be fixed in draw_strided_slow * or a replacement shader. */ @@ -1140,7 +1140,7 @@ diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c default: mat._14 = mat._24 = mat._34 = 0.0f; mat._44 = 1.0f; } -@@ -4017,7 +4036,11 @@ +@@ -4060,7 +4079,11 @@ unsigned int i; DWORD ttff; DWORD cop, aop, carg0, carg1, carg2, aarg0, aarg1, aarg2; @@ -1199,7 +1199,7 @@ diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader /* Load DirectX 9 float constants for pixel shader */ priv->highest_dirty_ps_const = shader_arb_load_constantsF(pshader, gl_info, GL_FRAGMENT_PROGRAM_ARB, -@@ -4694,7 +4698,11 @@ +@@ -4702,7 +4706,11 @@ } else { @@ -1211,7 +1211,7 @@ diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader shader_arb_ps_local_constants(compiled, context, state, rt_height); } -@@ -7813,7 +7821,11 @@ +@@ -7821,7 +7829,11 @@ /* Now load the surface */ if (wined3d_settings.offscreen_rendering_mode != ORM_FBO @@ -1223,7 +1223,7 @@ diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader == WINED3D_LOCATION_DRAWABLE && !wined3d_resource_is_offscreen(&src_surface->container->resource)) { -@@ -7843,6 +7855,7 @@ +@@ -7851,6 +7863,7 @@ /* Leave the opengl state valid for blitting */ arbfp_blit_unset(context->gl_info); @@ -1231,7 +1231,7 @@ diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader if (wined3d_settings.cs_multithreaded) context->gl_info->gl_ops.gl.p_glFinish(); else if (wined3d_settings.strict_draw_ordering -@@ -7854,6 +7867,17 @@ +@@ -7862,6 +7875,17 @@ wined3d_resource_validate_location(&dst_surface->resource, dst_surface->container->resource.draw_binding); wined3d_resource_invalidate_location(&dst_surface->resource, ~dst_surface->container->resource.draw_binding); @@ -1758,7 +1758,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h }; extern struct wined3d_settings wined3d_settings DECLSPEC_HIDDEN; -@@ -1010,9 +1040,14 @@ +@@ -1011,9 +1041,14 @@ WORD use_map; /* MAX_ATTRIBS, 16 */ }; @@ -1773,7 +1773,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h DWORD get_flexible_vertex_size(DWORD d3dvtVertexType) DECLSPEC_HIDDEN; #define eps 1e-8f -@@ -1100,8 +1135,10 @@ +@@ -1101,8 +1136,10 @@ struct list entry; GLuint id; struct wined3d_context *context; @@ -1784,7 +1784,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h }; union wined3d_gl_query_object -@@ -1137,6 +1174,7 @@ +@@ -1138,6 +1175,7 @@ struct list entry; GLuint id; struct wined3d_context *context; @@ -1792,7 +1792,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h UINT64 timestamp; }; -@@ -1172,6 +1210,12 @@ +@@ -1173,6 +1211,12 @@ for (i = 0; i < min(dst->rt_size, src->rt_size); i++) dst->render_targets[i] = src->render_targets[i]; } @@ -1805,7 +1805,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h struct wined3d_context { -@@ -1187,7 +1231,9 @@ +@@ -1188,7 +1232,9 @@ DWORD dirtyArray[STATE_HIGHEST + 1]; /* Won't get bigger than that, a state is never marked dirty 2 times */ DWORD numDirtyEntries; DWORD isStateDirty[STATE_HIGHEST / (sizeof(DWORD) * CHAR_BIT) + 1]; /* Bitmap to find out quickly if a state is dirty */ @@ -1815,7 +1815,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h struct wined3d_swapchain *swapchain; struct wined3d_surface *current_rt; -@@ -1287,8 +1333,17 @@ +@@ -1288,8 +1334,17 @@ GLfloat fog_coord_value; GLfloat color[4], fogstart, fogend, fogcolor[4]; GLuint dummy_arbfp_prog; @@ -1833,7 +1833,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h }; typedef void (*APPLYSTATEFUNC)(struct wined3d_context *ctx, const struct wined3d_state *state, DWORD state_id); -@@ -1422,8 +1477,12 @@ +@@ -1423,8 +1478,12 @@ void context_apply_blit_state(struct wined3d_context *context, const struct wined3d_device *device) DECLSPEC_HIDDEN; BOOL context_apply_clear_state(struct wined3d_context *context, const struct wined3d_device *device, UINT rt_count, const struct wined3d_fb_state *fb) DECLSPEC_HIDDEN; @@ -1846,7 +1846,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void context_apply_fbo_state_blit(struct wined3d_context *context, GLenum target, struct wined3d_surface *render_target, struct wined3d_surface *depth_stencil, DWORD location) DECLSPEC_HIDDEN; void context_active_texture(struct wined3d_context *context, const struct wined3d_gl_info *gl_info, -@@ -1975,7 +2034,11 @@ +@@ -1976,7 +2035,11 @@ struct wined3d_state { DWORD flags; @@ -1858,7 +1858,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h struct wined3d_vertex_declaration *vertex_declaration; struct wined3d_stream_output stream_output[MAX_STREAM_OUT]; -@@ -2020,6 +2083,7 @@ +@@ -2021,6 +2084,7 @@ DWORD render_states[WINEHIGHEST_RENDER_STATE + 1]; }; @@ -1866,7 +1866,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h struct wined3d_gl_bo { GLuint name; -@@ -2028,6 +2092,7 @@ +@@ -2029,6 +2093,7 @@ UINT size; }; @@ -1874,7 +1874,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h #define WINED3D_UNMAPPED_STAGE ~0U /* Multithreaded flag. Removed from the public header to signal that -@@ -2083,11 +2148,23 @@ +@@ -2084,11 +2149,23 @@ struct wined3d_rendertarget_view *back_buffer_view; struct wined3d_swapchain **swapchains; UINT swapchain_count; @@ -1898,7 +1898,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h /* For rendering to a texture using glCopyTexImage */ GLuint depth_blt_texture; -@@ -2098,6 +2175,9 @@ +@@ -2099,6 +2176,9 @@ UINT xScreenSpace; UINT yScreenSpace; UINT cursorWidth, cursorHeight; @@ -1908,7 +1908,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h HCURSOR hardwareCursor; /* The Wine logo texture */ -@@ -2129,6 +2209,7 @@ +@@ -2130,6 +2210,7 @@ UINT message, WPARAM wparam, LPARAM lparam, WNDPROC proc) DECLSPEC_HIDDEN; void device_resource_add(struct wined3d_device *device, struct wined3d_resource *resource) DECLSPEC_HIDDEN; void device_resource_released(struct wined3d_device *device, struct wined3d_resource *resource) DECLSPEC_HIDDEN; @@ -1916,7 +1916,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void device_invalidate_state(const struct wined3d_device *device, DWORD state) DECLSPEC_HIDDEN; void device_invalidate_shader_constants(const struct wined3d_device *device, DWORD mask) DECLSPEC_HIDDEN; void device_exec_update_texture(struct wined3d_context *context, struct wined3d_texture *src_texture, -@@ -2140,6 +2221,11 @@ +@@ -2141,6 +2222,11 @@ void device_create_dummy_textures(struct wined3d_device *device, struct wined3d_context *context) DECLSPEC_HIDDEN; void device_delete_opengl_contexts_cs(struct wined3d_device *device, struct wined3d_swapchain *swapchain) DECLSPEC_HIDDEN; @@ -1928,7 +1928,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h static inline BOOL isStateDirty(const struct wined3d_context *context, DWORD state) { -@@ -2156,9 +2242,11 @@ +@@ -2157,9 +2243,11 @@ ULONG (*resource_incref)(struct wined3d_resource *resource); ULONG (*resource_decref)(struct wined3d_resource *resource); void (*resource_unload)(struct wined3d_resource *resource); @@ -1940,7 +1940,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h }; struct wined3d_resource -@@ -2183,6 +2271,7 @@ +@@ -2184,6 +2272,7 @@ UINT depth; UINT size; DWORD priority; @@ -1948,7 +1948,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void *heap_memory, *map_heap_memory, *user_memory, *bitmap_data; UINT custom_row_pitch, custom_slice_pitch; struct wined3d_gl_bo *buffer, *map_buffer; -@@ -2190,6 +2279,11 @@ +@@ -2191,6 +2280,11 @@ DWORD locations; LONG access_fence; BOOL unmap_dirtify; @@ -1960,7 +1960,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void *parent; const struct wined3d_parent_ops *parent_ops; -@@ -2214,6 +2308,7 @@ +@@ -2215,6 +2309,7 @@ void *parent, const struct wined3d_parent_ops *parent_ops, const struct wined3d_resource_ops *resource_ops) DECLSPEC_HIDDEN; void resource_unload(struct wined3d_resource *resource) DECLSPEC_HIDDEN; @@ -1968,7 +1968,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h DWORD wined3d_resource_access_from_location(DWORD location) DECLSPEC_HIDDEN; BOOL wined3d_resource_allocate_sysmem(struct wined3d_resource *resource) DECLSPEC_HIDDEN; void wined3d_resource_changed(struct wined3d_resource *resource, -@@ -2260,6 +2355,15 @@ +@@ -2261,6 +2356,15 @@ { while(InterlockedCompareExchange(&resource->access_fence, 0, 0)); } @@ -1984,7 +1984,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h /* Tests show that the start address of resources is 32 byte aligned */ #define RESOURCE_ALIGNMENT 16 -@@ -2344,7 +2448,9 @@ +@@ -2345,7 +2449,9 @@ void wined3d_texture_apply_sampler_desc(struct wined3d_texture *texture, const struct wined3d_sampler_desc *sampler_desc, const struct wined3d_gl_info *gl_info) DECLSPEC_HIDDEN; @@ -1994,7 +1994,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void wined3d_texture_bind(struct wined3d_texture *texture, struct wined3d_context *context, BOOL srgb) DECLSPEC_HIDDEN; void wined3d_texture_bind_and_dirtify(struct wined3d_texture *texture, -@@ -2378,9 +2484,16 @@ +@@ -2379,9 +2485,16 @@ struct wined3d_resource resource; struct wined3d_texture *container; @@ -2011,7 +2011,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h }; static inline struct wined3d_volume *volume_from_resource(struct wined3d_resource *resource) -@@ -2388,6 +2501,7 @@ +@@ -2389,6 +2502,7 @@ return CONTAINING_RECORD(resource, struct wined3d_volume, resource); } @@ -2019,7 +2019,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h HRESULT wined3d_volume_create(struct wined3d_texture *container, const struct wined3d_resource_desc *desc, unsigned int level, struct wined3d_volume **volume) DECLSPEC_HIDDEN; void wined3d_volume_destroy(struct wined3d_volume *volume) DECLSPEC_HIDDEN; -@@ -2400,6 +2514,23 @@ +@@ -2401,6 +2515,23 @@ struct wined3d_surface_dib { HBITMAP DIBsection; @@ -2043,7 +2043,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h UINT bitmap_size; }; -@@ -2425,7 +2556,11 @@ +@@ -2426,7 +2557,11 @@ struct wined3d_surface_ops { HRESULT (*surface_private_setup)(struct wined3d_surface *surface); @@ -2055,7 +2055,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h }; struct wined3d_surface -@@ -2433,12 +2568,25 @@ +@@ -2434,12 +2569,25 @@ struct wined3d_resource resource; const struct wined3d_surface_ops *surface_ops; struct wined3d_texture *container; @@ -2081,7 +2081,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h GLuint rb_multisample; GLuint rb_resolved; GLenum texture_target; -@@ -2482,10 +2630,19 @@ +@@ -2483,10 +2631,19 @@ GLenum surface_get_gl_buffer(const struct wined3d_surface *surface) DECLSPEC_HIDDEN; void surface_get_drawable_size(const struct wined3d_surface *surface, const struct wined3d_context *context, unsigned int *width, unsigned int *height) DECLSPEC_HIDDEN; @@ -2101,7 +2101,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void surface_modify_ds_location(struct wined3d_surface *surface, DWORD location, UINT w, UINT h) DECLSPEC_HIDDEN; void surface_prepare_rb(struct wined3d_surface *surface, const struct wined3d_gl_info *gl_info, BOOL multisample) DECLSPEC_HIDDEN; -@@ -2497,6 +2654,7 @@ +@@ -2498,6 +2655,7 @@ const struct wined3d_gl_info *gl_info, void *mem, unsigned int pitch) DECLSPEC_HIDDEN; HRESULT surface_upload_from_surface(struct wined3d_surface *dst_surface, const POINT *dst_point, struct wined3d_surface *src_surface, const RECT *src_rect) DECLSPEC_HIDDEN; @@ -2109,7 +2109,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h HRESULT wined3d_surface_create(struct wined3d_texture *container, const struct wined3d_resource_desc *desc, GLenum target, unsigned int level, unsigned int layer, DWORD flags, struct wined3d_surface **surface) DECLSPEC_HIDDEN; -@@ -2515,6 +2673,21 @@ +@@ -2516,6 +2674,21 @@ void draw_textured_quad(const struct wined3d_surface *src_surface, struct wined3d_context *context, const RECT *src_rect, const RECT *dst_rect, enum wined3d_texture_filter_type filter) DECLSPEC_HIDDEN; void surface_flip(struct wined3d_surface *front, struct wined3d_surface *back) DECLSPEC_HIDDEN; @@ -2131,7 +2131,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h /* Surface flags: */ #define SFLAG_DIBSECTION 0x00000001 /* Has a DIB section attached for GetDC. */ -@@ -2562,8 +2735,10 @@ +@@ -2563,8 +2736,10 @@ BOOL half_float_conv_needed; }; @@ -2142,7 +2142,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h struct wined3d_saved_states { DWORD transform[(HIGHEST_TRANSFORMSTATE >> 5) + 1]; -@@ -2631,6 +2806,7 @@ +@@ -2632,6 +2807,7 @@ void stateblock_init_contained_states(struct wined3d_stateblock *stateblock) DECLSPEC_HIDDEN; void state_cleanup(struct wined3d_state *state) DECLSPEC_HIDDEN; @@ -2150,7 +2150,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h HRESULT state_init(struct wined3d_state *state, const struct wined3d_gl_info *gl_info, const struct wined3d_d3d_info *d3d_info, DWORD flags) DECLSPEC_HIDDEN; void state_unbind_resources(struct wined3d_state *state) DECLSPEC_HIDDEN; -@@ -2681,6 +2857,32 @@ +@@ -2682,6 +2858,32 @@ void wined3d_cs_destroy(struct wined3d_cs *cs) DECLSPEC_HIDDEN; void wined3d_cs_switch_onscreen_ds(struct wined3d_cs *cs, struct wined3d_context *context, struct wined3d_surface *depth_stencil) DECLSPEC_HIDDEN; @@ -2183,7 +2183,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void wined3d_cs_emit_clear(struct wined3d_cs *cs, DWORD rect_count, const RECT *rects, DWORD flags, const struct wined3d_color *color, float depth, DWORD stencil) DECLSPEC_HIDDEN; -@@ -2730,6 +2932,7 @@ +@@ -2731,6 +2933,7 @@ void wined3d_cs_emit_set_vertex_declaration(struct wined3d_cs *cs, struct wined3d_vertex_declaration *declaration) DECLSPEC_HIDDEN; void wined3d_cs_emit_set_viewport(struct wined3d_cs *cs, const struct wined3d_viewport *viewport) DECLSPEC_HIDDEN; @@ -2191,7 +2191,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void wined3d_cs_emit_set_consts_f(struct wined3d_cs *cs, UINT start_register, const float *constants, UINT vector4f_count, enum wined3d_shader_type type) DECLSPEC_HIDDEN; void wined3d_cs_emit_set_consts_b(struct wined3d_cs *cs, UINT start_register, -@@ -2789,6 +2992,7 @@ +@@ -2790,6 +2993,7 @@ struct wined3d_swapchain *swapchain) DECLSPEC_HIDDEN; void wined3d_cs_emit_getdc(struct wined3d_cs *cs, struct wined3d_surface *surface) DECLSPEC_HIDDEN; void wined3d_cs_emit_releasedc(struct wined3d_cs *cs, struct wined3d_surface *surface) DECLSPEC_HIDDEN; @@ -2199,7 +2199,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h /* Direct3D terminology with little modifications. We do not have an issued state * because only the driver knows about it, but we have a created state because d3d -@@ -2803,8 +3007,12 @@ +@@ -2804,8 +3008,12 @@ struct wined3d_query_ops { HRESULT (*query_get_data)(struct wined3d_query *query, void *data, DWORD data_size, DWORD flags); @@ -2212,7 +2212,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h }; struct wined3d_query -@@ -2818,12 +3026,16 @@ +@@ -2819,12 +3027,16 @@ enum wined3d_query_type type; DWORD data_size; void *extendedData; @@ -2229,7 +2229,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h /* TODO: Add tests and support for FLOAT16_4 POSITIONT, D3DCOLOR position, other * fixed function semantics as D3DCOLOR or FLOAT16 */ -@@ -2850,7 +3062,9 @@ +@@ -2851,7 +3063,9 @@ GLenum buffer_object_usage; GLenum buffer_type_hint; DWORD flags; @@ -2239,7 +2239,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void *map_ptr; struct wined3d_map_range *maps; -@@ -2875,11 +3089,15 @@ +@@ -2876,11 +3090,15 @@ BYTE *buffer_get_sysmem(struct wined3d_buffer *This, struct wined3d_context *context) DECLSPEC_HIDDEN; void buffer_internal_preload(struct wined3d_buffer *buffer, struct wined3d_context *context, const struct wined3d_state *state) DECLSPEC_HIDDEN; @@ -2255,7 +2255,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h struct wined3d_rendertarget_view { -@@ -2918,8 +3136,10 @@ +@@ -2919,8 +3137,10 @@ return surface_from_resource(resource); } @@ -2266,7 +2266,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h struct wined3d_shader_resource_view { LONG refcount; -@@ -2932,8 +3152,12 @@ +@@ -2933,8 +3153,12 @@ struct wined3d_swapchain_ops { void (*swapchain_present)(struct wined3d_swapchain *swapchain, const RECT *src_rect, @@ -2279,7 +2279,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h }; struct wined3d_swapchain -@@ -2973,8 +3197,10 @@ +@@ -2974,8 +3198,10 @@ HDC swapchain_get_backup_dc(struct wined3d_swapchain *swapchain) DECLSPEC_HIDDEN; void swapchain_update_draw_bindings(struct wined3d_swapchain *swapchain) DECLSPEC_HIDDEN; void swapchain_update_render_to_fbo(struct wined3d_swapchain *swapchain) DECLSPEC_HIDDEN; @@ -2290,7 +2290,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h /***************************************************************************** * Utility function prototypes -@@ -3178,7 +3404,9 @@ +@@ -3179,7 +3405,9 @@ void shader_generate_main(const struct wined3d_shader *shader, struct wined3d_string_buffer *buffer, const struct wined3d_shader_reg_maps *reg_maps, const DWORD *byte_code, void *backend_ctx) DECLSPEC_HIDDEN; BOOL shader_match_semantic(const char *semantic_name, enum wined3d_decl_usage usage) DECLSPEC_HIDDEN; @@ -5895,7 +5895,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c --- a/dlls/wined3d/texture.c +++ b/dlls/wined3d/texture.c -@@ -77,8 +77,10 @@ +@@ -68,8 +68,10 @@ { ERR("Failed to allocate sub-resource array.\n"); resource_cleanup(&texture->resource); @@ -5906,7 +5906,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c return E_OUTOFMEMORY; } -@@ -123,6 +125,7 @@ +@@ -114,6 +116,7 @@ resource_unload(&texture->resource); } @@ -5914,7 +5914,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c void wined3d_texture_cleanup_cs(struct wined3d_texture *texture) { wined3d_texture_unload_gl_texture(texture); -@@ -135,6 +138,12 @@ +@@ -126,6 +129,12 @@ UINT sub_count = texture->level_count * texture->layer_count; UINT i; struct wined3d_device *device = texture->resource.device; @@ -5927,7 +5927,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c TRACE("texture %p.\n", texture); -@@ -146,8 +155,14 @@ +@@ -137,8 +146,14 @@ texture->texture_ops->texture_sub_resource_cleanup(sub_resource); } @@ -5942,7 +5942,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c } void wined3d_texture_set_swapchain(struct wined3d_texture *texture, struct wined3d_swapchain *swapchain) -@@ -427,10 +442,16 @@ +@@ -418,10 +433,16 @@ if (!refcount) { @@ -5959,7 +5959,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c } return refcount; -@@ -502,8 +523,15 @@ +@@ -493,8 +514,15 @@ void CDECL wined3d_texture_preload(struct wined3d_texture *texture) { @@ -5975,7 +5975,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c } void * CDECL wined3d_texture_get_parent(const struct wined3d_texture *texture) -@@ -532,6 +560,7 @@ +@@ -523,6 +551,7 @@ if (texture->lod != lod) { @@ -5983,7 +5983,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c if (wined3d_settings.cs_multithreaded) { struct wined3d_device *device = texture->resource.device; -@@ -539,6 +568,7 @@ +@@ -530,6 +559,7 @@ device->cs->ops->finish(device->cs); } @@ -5991,7 +5991,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c texture->lod = lod; texture->texture_rgb.base_level = ~0u; -@@ -608,6 +638,7 @@ +@@ -599,6 +629,7 @@ return WINED3DERR_INVALIDCALL; } @@ -5999,7 +5999,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c /* if (wined3d_settings.cs_multithreaded) { -@@ -616,6 +647,7 @@ +@@ -607,6 +638,7 @@ } */ @@ -6007,7 +6007,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c wined3d_cs_emit_set_color_key(device->cs, texture, flags, color_key); return WINED3D_OK; -@@ -671,10 +703,14 @@ +@@ -662,10 +694,14 @@ } if (device->d3d_initialized) @@ -6022,7 +6022,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c texture->resource.format = format; texture->resource.multisample_type = multisample_type; -@@ -788,6 +824,7 @@ +@@ -779,6 +815,7 @@ static void texture2d_sub_resource_load(struct wined3d_resource *sub_resource, struct wined3d_context *context, BOOL srgb) { @@ -6030,7 +6030,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c surface_load(surface_from_resource(sub_resource), context, srgb); } -@@ -802,6 +839,19 @@ +@@ -793,6 +830,19 @@ wined3d_resource_load_location(&surface->resource, context, surface->resource.map_binding); context_release(context); wined3d_resource_invalidate_location(&surface->resource, ~surface->resource.map_binding); @@ -6050,7 +6050,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c } static void texture2d_sub_resource_cleanup(struct wined3d_resource *sub_resource) -@@ -813,12 +863,25 @@ +@@ -804,12 +854,25 @@ static void texture2d_sub_resource_invalidate_location(struct wined3d_resource *sub_resource, DWORD location) { @@ -6076,7 +6076,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c } static void texture2d_sub_resource_upload_data(struct wined3d_resource *sub_resource, -@@ -897,6 +960,7 @@ +@@ -888,6 +951,7 @@ if (gl_info->supported[APPLE_CLIENT_STORAGE]) { @@ -6084,7 +6084,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c if (surface->flags & (SFLAG_NONPOW2) || texture->flags & WINED3D_TEXTURE_CONVERTED) { -@@ -905,12 +969,26 @@ +@@ -896,12 +960,26 @@ * WINED3D_TEXTURE_CONVERTED: The conversion destination memory is freed after loading the surface * heap_memory == NULL: Not defined in the extension. Seems to disable client storage effectively */ @@ -6111,7 +6111,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c surface->flags |= SFLAG_CLIENT; mem = surface->resource.heap_memory; -@@ -980,6 +1058,7 @@ +@@ -971,6 +1049,7 @@ wined3d_texture_unload_gl_texture(texture); } @@ -6119,7 +6119,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c static void wined3d_texture_load_location_invalidated(struct wined3d_resource *resource, DWORD location) { ERR("Should not be called on textures.\n"); -@@ -999,6 +1078,13 @@ +@@ -990,6 +1069,13 @@ wined3d_texture_unload, wined3d_texture_load_location_invalidated, wined3d_texture_load_location, @@ -6133,7 +6133,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c }; static HRESULT cubetexture_init(struct wined3d_texture *texture, const struct wined3d_resource_desc *desc, -@@ -1015,7 +1101,9 @@ +@@ -1006,7 +1092,9 @@ if (WINED3DFMT_UNKNOWN >= desc->format) { WARN("(%p) : Texture cannot be created with a format of WINED3DFMT_UNKNOWN.\n", texture); @@ -6143,7 +6143,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c return WINED3DERR_INVALIDCALL; } -@@ -1025,6 +1113,7 @@ +@@ -1016,6 +1104,7 @@ if (!gl_info->supported[SGIS_GENERATE_MIPMAP]) { WARN("No mipmap generation support, returning D3DERR_INVALIDCALL.\n"); @@ -6151,7 +6151,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c HeapFree(GetProcessHeap(), 0, texture); return WINED3DERR_INVALIDCALL; } -@@ -1033,6 +1122,14 @@ +@@ -1024,6 +1113,14 @@ { WARN("WINED3DUSAGE_AUTOGENMIPMAP is set, and level count != 1, returning D3DERR_INVALIDCALL.\n"); HeapFree(GetProcessHeap(), 0, texture); @@ -6166,7 +6166,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c return WINED3DERR_INVALIDCALL; } } -@@ -1053,7 +1150,9 @@ +@@ -1044,7 +1141,9 @@ else { WARN("Attempted to create a NPOT cube texture (edge length %u) without GL support.\n", desc->width); @@ -6176,8 +6176,8 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c return WINED3DERR_INVALIDCALL; } } -@@ -1063,7 +1162,9 @@ - surface_flags, WINED3D_GL_RES_TYPE_TEX_CUBE, device, parent, parent_ops, &texture_resource_ops))) +@@ -1054,7 +1153,9 @@ + surface_flags, device, parent, parent_ops, &texture_resource_ops))) { WARN("Failed to initialize texture, returning %#x\n", hr); +#if defined(STAGING_CSMT) @@ -6186,7 +6186,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c return hr; } -@@ -1129,7 +1230,9 @@ +@@ -1117,7 +1218,9 @@ if (WINED3DFMT_UNKNOWN >= desc->format) { WARN("(%p) : Texture cannot be created with a format of WINED3DFMT_UNKNOWN.\n", texture); @@ -6195,8 +6195,8 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c +#endif /* STAGING_CSMT */ return WINED3DERR_INVALIDCALL; } - format = wined3d_get_format(gl_info, desc->format); -@@ -1161,7 +1264,9 @@ + +@@ -1148,7 +1251,9 @@ else { WARN("Attempted to create a mipmapped NPOT texture without unconditional NPOT support.\n"); @@ -6206,7 +6206,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c return WINED3DERR_INVALIDCALL; } } -@@ -1174,6 +1279,7 @@ +@@ -1161,6 +1266,7 @@ if (!gl_info->supported[SGIS_GENERATE_MIPMAP]) { WARN("No mipmap generation support, returning WINED3DERR_INVALIDCALL.\n"); @@ -6214,7 +6214,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c HeapFree(GetProcessHeap(), 0, texture); return WINED3DERR_INVALIDCALL; } -@@ -1182,6 +1288,14 @@ +@@ -1169,6 +1275,14 @@ { WARN("WINED3DUSAGE_AUTOGENMIPMAP is set, and level count != 1, returning WINED3DERR_INVALIDCALL.\n"); HeapFree(GetProcessHeap(), 0, texture); @@ -6229,8 +6229,8 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c return WINED3DERR_INVALIDCALL; } } -@@ -1207,7 +1321,9 @@ - surface_flags, WINED3D_GL_RES_TYPE_TEX_2D, device, parent, parent_ops, &texture_resource_ops))) +@@ -1177,7 +1291,9 @@ + surface_flags, device, parent, parent_ops, &texture_resource_ops))) { WARN("Failed to initialize texture, returning %#x.\n", hr); +#if defined(STAGING_CSMT) @@ -6239,7 +6239,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c return hr; } -@@ -1293,12 +1409,25 @@ +@@ -1263,12 +1379,25 @@ static void texture3d_sub_resource_invalidate_location(struct wined3d_resource *sub_resource, DWORD location) { @@ -6265,7 +6265,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c } static void texture3d_sub_resource_upload_data(struct wined3d_resource *sub_resource, -@@ -1333,7 +1462,11 @@ +@@ -1303,7 +1432,11 @@ void *mem = NULL; if (gl_info->supported[APPLE_CLIENT_STORAGE] && !format->convert @@ -6277,7 +6277,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c { TRACE("Enabling GL_UNPACK_CLIENT_STORAGE_APPLE for volume %p\n", volume); gl_info->gl_ops.gl.p_glPixelStorei(GL_UNPACK_CLIENT_STORAGE_APPLE, GL_TRUE); -@@ -1380,6 +1513,7 @@ +@@ -1350,6 +1483,7 @@ if (WINED3DFMT_UNKNOWN >= desc->format) { WARN("(%p) : Texture cannot be created with a format of WINED3DFMT_UNKNOWN.\n", texture); @@ -6285,7 +6285,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c HeapFree(GetProcessHeap(), 0, texture); return WINED3DERR_INVALIDCALL; } -@@ -1388,6 +1522,14 @@ +@@ -1358,6 +1492,14 @@ { WARN("(%p) : Texture cannot be created - no volume texture support.\n", texture); HeapFree(GetProcessHeap(), 0, texture); @@ -6300,7 +6300,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c return WINED3DERR_INVALIDCALL; } -@@ -1397,6 +1539,7 @@ +@@ -1367,6 +1509,7 @@ if (!gl_info->supported[SGIS_GENERATE_MIPMAP]) { WARN("No mipmap generation support, returning D3DERR_INVALIDCALL.\n"); @@ -6308,7 +6308,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c HeapFree(GetProcessHeap(), 0, texture); return WINED3DERR_INVALIDCALL; } -@@ -1405,6 +1548,14 @@ +@@ -1375,6 +1518,14 @@ { WARN("WINED3DUSAGE_AUTOGENMIPMAP is set, and level count != 1, returning D3DERR_INVALIDCALL.\n"); HeapFree(GetProcessHeap(), 0, texture); @@ -6323,7 +6323,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c return WINED3DERR_INVALIDCALL; } } -@@ -1432,7 +1583,9 @@ +@@ -1402,7 +1553,9 @@ { WARN("Attempted to create a NPOT volume texture (%u, %u, %u) without GL support.\n", desc->width, desc->height, desc->depth); @@ -6333,8 +6333,8 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c return WINED3DERR_INVALIDCALL; } } -@@ -1442,7 +1595,9 @@ - 0, WINED3D_GL_RES_TYPE_TEX_3D, device, parent, parent_ops, &texture_resource_ops))) +@@ -1412,7 +1565,9 @@ + 0, device, parent, parent_ops, &texture_resource_ops))) { WARN("Failed to initialize texture, returning %#x.\n", hr); +#if defined(STAGING_CSMT) @@ -6343,7 +6343,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c return hr; } -@@ -1519,6 +1674,9 @@ +@@ -1489,6 +1644,9 @@ if (FAILED(hr)) { WARN("Failed to initialize texture, returning %#x.\n", hr); @@ -6686,7 +6686,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c + + if (surface->container->swapchain && surface->container->swapchain->front_buffer == surface->container) + surface_load_location(surface, surface->container->resource.draw_binding); -+ else if (surface->resource.format_flags & (WINED3DFMT_FLAG_DEPTH | WINED3DFMT_FLAG_STENCIL)) ++ else if (surface->container->resource.format_flags & (WINED3DFMT_FLAG_DEPTH | WINED3DFMT_FLAG_STENCIL)) + FIXME("Depth / stencil buffer locking is not implemented.\n"); +#endif /* STAGING_CSMT */ } @@ -6934,7 +6934,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c + surface_get_memory(surface, &data, dst_location); +#endif /* STAGING_CSMT */ - if (surface->resource.format_flags & WINED3DFMT_FLAG_COMPRESSED) + if (surface->container->resource.format_flags & WINED3DFMT_FLAG_COMPRESSED) { @@ -1376,6 +1724,7 @@ } @@ -7216,7 +7216,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c @@ -2517,6 +2990,40 @@ struct wined3d_box box; const struct wined3d_format *format = surface->resource.format; - unsigned int fmt_flags = surface->resource.format_flags; + unsigned int fmt_flags = surface->container->resource.format_flags; +#else /* STAGING_CSMT */ + TRACE("surface %p.\n", surface); + @@ -7236,7 +7236,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c + struct wined3d_map_desc *map_desc, const RECT *rect, DWORD flags) +{ + const struct wined3d_format *format = surface->resource.format; -+ unsigned int fmt_flags = surface->resource.format_flags; ++ unsigned int fmt_flags = surface->container->resource.format_flags; + struct wined3d_device *device = surface->resource.device; + struct wined3d_context *context; + const struct wined3d_gl_info *gl_info; @@ -8023,7 +8023,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c + } + + if (surface->locations & (WINED3D_LOCATION_TEXTURE_SRGB | WINED3D_LOCATION_TEXTURE_RGB) -+ && (surface->resource.format_flags & WINED3DFMT_FLAG_FBO_ATTACHABLE_SRGB) ++ && (surface->container->resource.format_flags & WINED3DFMT_FLAG_FBO_ATTACHABLE_SRGB) + && fbo_blit_supported(gl_info, WINED3D_BLIT_OP_COLOR_BLIT, + NULL, surface->resource.usage, surface->resource.pool, surface->resource.format, + NULL, surface->resource.usage, surface->resource.pool, surface->resource.format)) @@ -8039,7 +8039,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c + } + + if (surface->locations & (WINED3D_LOCATION_RB_MULTISAMPLE | WINED3D_LOCATION_RB_RESOLVED) -+ && (!srgb || (surface->resource.format_flags & WINED3DFMT_FLAG_FBO_ATTACHABLE_SRGB)) ++ && (!srgb || (surface->container->resource.format_flags & WINED3DFMT_FLAG_FBO_ATTACHABLE_SRGB)) + && fbo_blit_supported(gl_info, WINED3D_BLIT_OP_COLOR_BLIT, + NULL, surface->resource.usage, surface->resource.pool, surface->resource.format, + NULL, surface->resource.usage, surface->resource.pool, surface->resource.format)) @@ -8430,9 +8430,9 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c +#endif /* STAGING_CSMT */ src_format = dst_surface->resource.format; dst_format = src_format; - dst_fmt_flags = dst_surface->resource.format_flags; + dst_fmt_flags = dst_surface->container->resource.format_flags; @@ -4448,12 +5703,14 @@ - dst_fmt_flags = dst_surface->resource.format_flags; + dst_fmt_flags = dst_surface->container->resource.format_flags; if (src_surface) { +#if defined(STAGING_CSMT) @@ -8458,7 +8458,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c + wined3d_surface_map(src_surface, &src_map, NULL, WINED3D_MAP_READONLY); +#endif /* STAGING_CSMT */ src_format = src_surface->resource.format; - src_fmt_flags = src_surface->resource.format_flags; + src_fmt_flags = src_surface->container->resource.format_flags; } @@ -4476,8 +5737,12 @@ src_fmt_flags = dst_fmt_flags; @@ -8874,8 +8874,8 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c +#endif /* STAGING_CSMT */ convert = src_surface && src_surface->resource.format->id != dst_surface->resource.format->id; - dst_ds_flags = dst_surface->resource.format_flags & (WINED3DFMT_FLAG_DEPTH | WINED3DFMT_FLAG_STENCIL); -@@ -5037,6 +6529,7 @@ + dst_ds_flags = dst_surface->container->resource.format_flags +@@ -5039,6 +6531,7 @@ TRACE("Depth fill.\n"); if (!surface_convert_depth_to_float(dst_surface, fx->u5.dwFillDepth, &depth)) @@ -8883,7 +8883,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c return; if (SUCCEEDED(wined3d_surface_depth_fill(dst_surface, dst_rect, depth))) -@@ -5047,6 +6540,24 @@ +@@ -5049,6 +6542,24 @@ if (SUCCEEDED(wined3d_surface_depth_blt(src_surface, src_surface->container->resource.draw_binding, src_rect, dst_surface, dst_surface->container->resource.draw_binding, dst_rect))) return; @@ -8908,7 +8908,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c } } else -@@ -5055,8 +6566,13 @@ +@@ -5057,8 +6568,13 @@ /* In principle this would apply to depth blits as well, but we don't * implement those in the CPU blitter at the moment. */ @@ -8922,7 +8922,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c { if (scale) TRACE("Not doing sysmem blit because of scaling.\n"); -@@ -5077,8 +6593,13 @@ +@@ -5079,8 +6595,13 @@ palette, fx->u5.dwFillColor, &color)) goto fallback; @@ -8936,7 +8936,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c } else { -@@ -5096,8 +6617,13 @@ +@@ -5098,8 +6619,13 @@ color_key = &src_surface->container->async.src_blt_color_key; blit_op = WINED3D_BLIT_OP_COLOR_BLIT_CKEY; } @@ -8950,7 +8950,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c { /* Upload */ if (scale) -@@ -5106,6 +6632,7 @@ +@@ -5108,6 +6634,7 @@ TRACE("Not doing upload because of format conversion.\n"); else { @@ -8958,7 +8958,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c POINT dst_point = {dst_rect->left, dst_rect->top}; if (SUCCEEDED(surface_upload_from_surface(dst_surface, &dst_point, src_surface, src_rect))) -@@ -5118,6 +6645,15 @@ +@@ -5120,6 +6647,15 @@ context_release(context); } return; @@ -8974,7 +8974,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c } } } -@@ -5141,6 +6677,7 @@ +@@ -5143,6 +6679,7 @@ wined3d_swapchain_present(dst_swapchain, NULL, NULL, dst_swapchain->win_handle, NULL, 0); dst_swapchain->desc.swap_effect = swap_effect; @@ -8982,7 +8982,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c return; } -@@ -5336,6 +6873,49 @@ +@@ -5338,6 +6875,49 @@ wined3d_surface_location_invalidated, wined3d_surface_load_location, }; @@ -9032,7 +9032,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c static HRESULT surface_init(struct wined3d_surface *surface, struct wined3d_texture *container, const struct wined3d_resource_desc *desc, GLenum target, unsigned int level, unsigned int layer, DWORD flags) -@@ -5403,7 +6983,11 @@ +@@ -5405,7 +6985,11 @@ } surface->container = container; @@ -9044,7 +9044,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c list_init(&surface->renderbuffers); list_init(&surface->overlays); -@@ -5435,9 +7019,14 @@ +@@ -5437,9 +7021,14 @@ if (surface->resource.map_binding == WINED3D_LOCATION_DIB) { wined3d_resource_free_sysmem(&surface->resource); @@ -9059,7 +9059,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c } return hr; -@@ -5464,7 +7053,11 @@ +@@ -5466,7 +7055,11 @@ if (FAILED(hr = surface_init(object, container, desc, target, level, layer, flags))) { WARN("Failed to initialize surface, returning %#x.\n", hr); @@ -9607,7 +9607,7 @@ diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c --- a/dlls/wined3d/directx.c +++ b/dlls/wined3d/directx.c -@@ -5325,9 +5325,15 @@ +@@ -5327,9 +5327,15 @@ DebugBreak(); } @@ -9626,7 +9626,7 @@ diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c diff --git a/dlls/wined3d/resource.c b/dlls/wined3d/resource.c --- a/dlls/wined3d/resource.c +++ b/dlls/wined3d/resource.c -@@ -132,7 +132,9 @@ +@@ -193,7 +193,9 @@ ERR("Failed to allocate system memory.\n"); return E_OUTOFMEMORY; } @@ -9636,7 +9636,7 @@ diff --git a/dlls/wined3d/resource.c b/dlls/wined3d/resource.c } else { -@@ -156,6 +158,7 @@ +@@ -217,6 +219,7 @@ return WINED3D_OK; } @@ -9644,7 +9644,7 @@ diff --git a/dlls/wined3d/resource.c b/dlls/wined3d/resource.c void wined3d_resource_free_bo(struct wined3d_resource *resource) { struct wined3d_context *context = context_acquire(resource->device, NULL); -@@ -181,6 +184,7 @@ +@@ -242,6 +245,7 @@ resource->map_heap_memory = NULL; } @@ -9652,7 +9652,7 @@ diff --git a/dlls/wined3d/resource.c b/dlls/wined3d/resource.c void resource_cleanup(struct wined3d_resource *resource) { const struct wined3d *d3d = resource->device->wined3d; -@@ -193,7 +197,11 @@ +@@ -254,7 +258,11 @@ adapter_adjust_memory(resource->device->adapter, (INT64)0 - resource->size); } @@ -9664,7 +9664,7 @@ diff --git a/dlls/wined3d/resource.c b/dlls/wined3d/resource.c device_resource_released(resource->device, resource); } -@@ -203,9 +211,11 @@ +@@ -264,9 +272,11 @@ if (resource->map_count) ERR("Resource %p is being unloaded while mapped.\n", resource); @@ -9676,7 +9676,7 @@ diff --git a/dlls/wined3d/resource.c b/dlls/wined3d/resource.c context_resource_unloaded(resource->device, resource, resource->type); } -@@ -268,7 +278,11 @@ +@@ -329,7 +339,11 @@ p = (void **)(((ULONG_PTR)mem + align) & ~(RESOURCE_ALIGNMENT - 1)) - 1; *p = mem; @@ -9688,7 +9688,7 @@ diff --git a/dlls/wined3d/resource.c b/dlls/wined3d/resource.c return TRUE; } -@@ -334,7 +348,11 @@ +@@ -395,7 +409,11 @@ return ret; } @@ -9700,7 +9700,7 @@ diff --git a/dlls/wined3d/resource.c b/dlls/wined3d/resource.c { if (d3d_flags & WINED3D_MAP_READONLY) return GL_READ_ONLY_ARB; -@@ -404,6 +422,7 @@ +@@ -465,6 +483,7 @@ TRACE("Returning row pitch %u, slice pitch %u.\n", *row_pitch, *slice_pitch); } @@ -9708,7 +9708,7 @@ diff --git a/dlls/wined3d/resource.c b/dlls/wined3d/resource.c void wined3d_resource_validate_location(struct wined3d_resource *resource, DWORD location) { -@@ -951,3 +970,4 @@ +@@ -1012,3 +1031,4 @@ wined3d_resource_invalidate_location(resource, ~resource->map_binding); } diff --git a/patches/winedbg-SystemInfo/0001-winedbg-Also-output-system-information-to-the-termin.patch b/patches/winedbg-SystemInfo/0001-winedbg-Also-output-system-information-to-the-termin.patch deleted file mode 100644 index f60582da..00000000 --- a/patches/winedbg-SystemInfo/0001-winedbg-Also-output-system-information-to-the-termin.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 2fde182ba17d4ff0672f94038cb59ad1d4839867 Mon Sep 17 00:00:00 2001 -From: Sebastian Lackner -Date: Sat, 30 May 2015 01:25:47 +0200 -Subject: winedbg: Also output system information to the terminal, not only to - dialog. - ---- - programs/winedbg/tgt_active.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/programs/winedbg/tgt_active.c b/programs/winedbg/tgt_active.c -index 8cfce32..989e433 100644 ---- a/programs/winedbg/tgt_active.c -+++ b/programs/winedbg/tgt_active.c -@@ -836,10 +836,10 @@ enum dbg_start dbg_active_auto(int argc, char* argv[]) - - dbg_interactiveP = TRUE; - parser_handle(input); -+ output_system_info(); - - if (output != INVALID_HANDLE_VALUE) - { -- output_system_info(); - SetEvent( event ); - WaitForSingleObject( thread, INFINITE ); - CloseHandle( output ); --- -2.4.2 - diff --git a/patches/winedbg-SystemInfo/definition b/patches/winedbg-SystemInfo/definition deleted file mode 100644 index 008115b2..00000000 --- a/patches/winedbg-SystemInfo/definition +++ /dev/null @@ -1 +0,0 @@ -Fixes: Also output winedbg system information to the terminal, not only to dialog