diff --git a/debian/changelog b/debian/changelog index 756aaa59..32b7ac8e 100644 --- a/debian/changelog +++ b/debian/changelog @@ -28,6 +28,7 @@ wine-staging (1.7.39) UNRELEASED; urgency=low * Removed patches to fix wrong return values of RtlFindActivationContextSectionString for NULL data (accepted upstream). * Removed patch for server-PeekMessage tests (accepted upstream). * Removed patch to only zero the buffer up 32767 bytes in GetTempPathW (accepted upstream). + * Removed first patch of series ws2_32_WriteWatches (accepted upstream). -- Sebastian Lackner Mon, 09 Mar 2015 16:52:35 +0100 wine-staging (1.7.38) unstable; urgency=low diff --git a/patches/ntdll-WRITECOPY/0004-ntdll-Properly-handle-PAGE_WRITECOPY-protection.-try.patch b/patches/ntdll-WRITECOPY/0004-ntdll-Properly-handle-PAGE_WRITECOPY-protection.-try.patch index ad2ca2d1..c6fecd60 100644 --- a/patches/ntdll-WRITECOPY/0004-ntdll-Properly-handle-PAGE_WRITECOPY-protection.-try.patch +++ b/patches/ntdll-WRITECOPY/0004-ntdll-Properly-handle-PAGE_WRITECOPY-protection.-try.patch @@ -1,4 +1,4 @@ -From 9e5ef34f4cbfb381528750caabd4ba6a3da439f6 Mon Sep 17 00:00:00 2001 +From fe342bf68517ea538ccde914094c744e3dfc5192 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Sat, 4 Oct 2014 02:56:08 +0200 Subject: ntdll: Properly handle PAGE_WRITECOPY protection. (try 5) @@ -39,10 +39,10 @@ index 75e91d5..3520546 100644 UnmapViewOfFile(base); diff --git a/dlls/ntdll/virtual.c b/dlls/ntdll/virtual.c -index 17792e1..36d8836 100644 +index 675e723..1744e35 100644 --- a/dlls/ntdll/virtual.c +++ b/dlls/ntdll/virtual.c -@@ -179,8 +179,13 @@ static int VIRTUAL_GetUnixProt( BYTE vprot ) +@@ -178,8 +178,13 @@ static int VIRTUAL_GetUnixProt( BYTE vprot ) { if (vprot & VPROT_READ) prot |= PROT_READ; if (vprot & VPROT_WRITE) prot |= PROT_WRITE | PROT_READ; @@ -57,7 +57,7 @@ index 17792e1..36d8836 100644 if (vprot & VPROT_WRITEWATCH) prot &= ~PROT_WRITE; } if (!prot) prot = PROT_NONE; -@@ -1532,13 +1537,18 @@ NTSTATUS virtual_handle_fault( LPCVOID addr, DWORD err ) +@@ -1531,13 +1536,18 @@ NTSTATUS virtual_handle_fault( LPCVOID addr, DWORD err, BOOL on_signal_stack ) { void *page = ROUND_ADDR( addr, page_mask ); BYTE *vprot = &view->prot[((const char *)page - (const char *)view->base) >> page_shift]; @@ -78,8 +78,8 @@ index 17792e1..36d8836 100644 /* ignore fault if page is writable now */ if (VIRTUAL_GetUnixProt( *vprot ) & PROT_WRITE) ret = STATUS_SUCCESS; } -@@ -1748,14 +1758,16 @@ SIZE_T CDECL wine_uninterrupted_write_memory( void *addr, const void *buffer, SI - * handle guard pages here. */ +@@ -1746,14 +1756,16 @@ SIZE_T CDECL wine_uninterrupted_write_memory( void *addr, const void *buffer, SI + * exception. Similar to virtual_handle_fault. */ if (!(VIRTUAL_GetUnixProt( *p ) & PROT_WRITE)) { - if (!(view->protect & VPROT_WRITEWATCH)) @@ -100,5 +100,5 @@ index 17792e1..36d8836 100644 if (!(VIRTUAL_GetUnixProt( *p ) & PROT_WRITE)) break; -- -2.2.1 +2.3.2 diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index 2a910366..070bbb7b 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -1191,11 +1191,9 @@ fi # | include/winternl.h # | if test "$enable_ws2_32_WriteWatches" -eq 1; then - patch_apply ws2_32-WriteWatches/0001-ntdll-Handle-write-watches-in-virtual_uninterrupted_.patch - patch_apply ws2_32-WriteWatches/0002-ntdll-Expose-wine_uninterrupted_-read-write-_memory-.patch - patch_apply ws2_32-WriteWatches/0003-ws2_32-Avoid-race-conditions-of-async-WSARecv-operat.patch + patch_apply ws2_32-WriteWatches/0001-ntdll-Expose-wine_uninterrupted_-read-write-_memory-.patch + patch_apply ws2_32-WriteWatches/0002-ws2_32-Avoid-race-conditions-of-async-WSARecv-operat.patch ( - echo '+ { "Sebastian Lackner", "ntdll: Handle write watches in virtual_uninterrupted_write_memory.", 1 },'; echo '+ { "Sebastian Lackner", "ntdll: Expose wine_uninterrupted_[read|write]_memory as exports.", 1 },'; echo '+ { "Sebastian Lackner", "ws2_32: Avoid race-conditions of async WSARecv() operations with write watches.", 2 },'; ) >> "$patchlist" 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 da6c930d..589b84ef 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 bd0fc951470cce05795929f159a541c7ca84c318 Mon Sep 17 00:00:00 2001 +From 6f4e0b9da2720ac9b3e37b419e5599cb0f0fb99d 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}. @@ -9,10 +9,10 @@ Subject: riched20: Implement IText{Selection, Range}::Set{Start, End}. 2 files changed, 179 insertions(+), 8 deletions(-) diff --git a/dlls/riched20/richole.c b/dlls/riched20/richole.c -index c62998a..b16dd3f 100644 +index 3818cfa..89a51ac 100644 --- a/dlls/riched20/richole.c +++ b/dlls/riched20/richole.c -@@ -741,14 +741,27 @@ static HRESULT WINAPI ITextRange_fnGetStart(ITextRange *me, LONG *pcpFirst) +@@ -871,14 +871,27 @@ static HRESULT WINAPI ITextRange_fnGetStart(ITextRange *me, LONG *pcpFirst) return S_OK; } @@ -42,7 +42,7 @@ index c62998a..b16dd3f 100644 } static HRESULT WINAPI ITextRange_fnGetEnd(ITextRange *me, LONG *pcpLim) -@@ -764,14 +777,27 @@ static HRESULT WINAPI ITextRange_fnGetEnd(ITextRange *me, LONG *pcpLim) +@@ -894,14 +907,27 @@ static HRESULT WINAPI ITextRange_fnGetEnd(ITextRange *me, LONG *pcpLim) return S_OK; } @@ -72,7 +72,7 @@ index c62998a..b16dd3f 100644 } static HRESULT WINAPI ITextRange_fnGetFont(ITextRange *me, ITextFont **pFont) -@@ -1751,11 +1777,16 @@ static HRESULT WINAPI ITextSelection_fnGetStart(ITextSelection *me, LONG *pcpFir +@@ -1881,11 +1907,16 @@ static HRESULT WINAPI ITextSelection_fnGetStart(ITextSelection *me, LONG *pcpFir static HRESULT WINAPI ITextSelection_fnSetStart(ITextSelection *me, LONG cpFirst) { ITextSelectionImpl *This = impl_from_ITextSelection(me); @@ -91,7 +91,7 @@ index c62998a..b16dd3f 100644 } static HRESULT WINAPI ITextSelection_fnGetEnd(ITextSelection *me, LONG *pcpLim) -@@ -1775,11 +1806,16 @@ static HRESULT WINAPI ITextSelection_fnGetEnd(ITextSelection *me, LONG *pcpLim) +@@ -1905,11 +1936,16 @@ static HRESULT WINAPI ITextSelection_fnGetEnd(ITextSelection *me, LONG *pcpLim) static HRESULT WINAPI ITextSelection_fnSetEnd(ITextSelection *me, LONG cpLim) { ITextSelectionImpl *This = impl_from_ITextSelection(me); @@ -111,10 +111,10 @@ index c62998a..b16dd3f 100644 static HRESULT WINAPI ITextSelection_fnGetFont(ITextSelection *me, ITextFont **pFont) diff --git a/dlls/riched20/tests/richole.c b/dlls/riched20/tests/richole.c -index a89ee55..a0d0d17 100644 +index b4fbaa1..5550e30 100644 --- a/dlls/riched20/tests/richole.c +++ b/dlls/riched20/tests/richole.c -@@ -1028,6 +1028,137 @@ static void test_IOleWindow_GetWindow(void) +@@ -1081,6 +1081,137 @@ static void test_IOleInPlaceSite_GetWindow(void) release_interfaces(&w, &reOle, &txtDoc, NULL); } @@ -252,7 +252,7 @@ index a89ee55..a0d0d17 100644 START_TEST(richole) { /* Must explicitly LoadLibrary(). The test has no references to functions in -@@ -1040,12 +1171,16 @@ START_TEST(richole) +@@ -1093,12 +1224,16 @@ START_TEST(richole) test_ITextSelection_GetText(); test_ITextSelection_GetChar(); test_ITextSelection_GetStart_GetEnd(); @@ -268,7 +268,7 @@ index a89ee55..a0d0d17 100644 + test_ITextRange_SetEnd(); test_IOleClientSite_QueryInterface(); test_IOleWindow_GetWindow(); - } + test_IOleInPlaceSite_GetWindow(); -- 2.3.2 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 d5d99541..36597246 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 b79278e3883ff38659fd4aaf6f9d9036f6d48956 Mon Sep 17 00:00:00 2001 +From 602f1e247562b48297664865dbd676cb329f5257 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, 893 insertions(+), 4 deletions(-) diff --git a/dlls/riched20/richole.c b/dlls/riched20/richole.c -index b16dd3f..5612ff9 100644 +index 89a51ac..eaf1c4d 100644 --- a/dlls/riched20/richole.c +++ b/dlls/riched20/richole.c -@@ -46,10 +46,12 @@ DEFINE_GUID(IID_ITextHost2, 0x13e670f5,0x1a5a,0x11cf,0xab,0xeb,0x00,0xaa,0x00,0x +@@ -45,10 +45,12 @@ DEFINE_GUID(IID_ITextHost2, 0x13e670f5,0x1a5a,0x11cf,0xab,0xeb,0x00,0xaa,0x00,0x DEFINE_GUID(IID_ITextDocument, 0x8cc497c0, 0xa1df, 0x11ce, 0x80, 0x98, 0x00, 0xaa, 0x00, 0x47, 0xbe, 0x5d); DEFINE_GUID(IID_ITextRange, 0x8cc497c2, 0xa1df, 0x11ce, 0x80, 0x98, 0x00, 0xaa, 0x00, 0x47, 0xbe, 0x5d); DEFINE_GUID(IID_ITextSelection, 0x8cc497c1, 0xa1df, 0x11ce, 0x80, 0x98, 0x00, 0xaa, 0x00, 0x47, 0xbe, 0x5d); @@ -26,7 +26,7 @@ index b16dd3f..5612ff9 100644 typedef struct IRichEditOleImpl { IUnknown IUnknown_inner; -@@ -62,8 +64,19 @@ typedef struct IRichEditOleImpl { +@@ -61,8 +63,19 @@ typedef struct IRichEditOleImpl { ITextSelectionImpl *txtSel; IOleClientSiteImpl *clientSite; struct list rangelist; @@ -63,7 +63,7 @@ index b16dd3f..5612ff9 100644 heap_free(This); } return ref; -@@ -548,6 +564,744 @@ static const IRichEditOleVtbl revt = { +@@ -678,6 +694,744 @@ static const IRichEditOleVtbl revt = { IRichEditOle_fnImportDataObject }; @@ -808,7 +808,7 @@ index b16dd3f..5612ff9 100644 /* ITextRange interface */ static inline ITextRangeImpl *impl_from_ITextRange(ITextRange *iface) { -@@ -800,14 +1554,42 @@ static HRESULT WINAPI ITextRange_fnSetEnd(ITextRange *me, LONG cpLim) +@@ -930,14 +1684,42 @@ static HRESULT WINAPI ITextRange_fnSetEnd(ITextRange *me, LONG cpLim) return range_SetEnd(This->reOle->editor, cpLim, &This->start, &This->end); } @@ -853,7 +853,7 @@ index b16dd3f..5612ff9 100644 } static HRESULT WINAPI ITextRange_fnSetFont(ITextRange *me, ITextFont *pFont) -@@ -1821,11 +2603,24 @@ static HRESULT WINAPI ITextSelection_fnSetEnd(ITextSelection *me, LONG cpLim) +@@ -1951,11 +2733,24 @@ static HRESULT WINAPI ITextSelection_fnSetEnd(ITextSelection *me, LONG cpLim) static HRESULT WINAPI ITextSelection_fnGetFont(ITextSelection *me, ITextFont **pFont) { ITextSelectionImpl *This = impl_from_ITextSelection(me); @@ -880,7 +880,7 @@ index b16dd3f..5612ff9 100644 } static HRESULT WINAPI ITextSelection_fnSetFont(ITextSelection *me, ITextFont *pFont) -@@ -2459,6 +3254,7 @@ LRESULT CreateIRichEditOle(IUnknown *outer_unk, ME_TextEditor *editor, LPVOID *p +@@ -2589,6 +3384,7 @@ LRESULT CreateIRichEditOle(IUnknown *outer_unk, ME_TextEditor *editor, LPVOID *p } TRACE("Created %p\n",reo); list_init(&reo->rangelist); @@ -889,10 +889,10 @@ index b16dd3f..5612ff9 100644 reo->outer_unk = outer_unk; else diff --git a/dlls/riched20/tests/richole.c b/dlls/riched20/tests/richole.c -index a0d0d17..8673aa9 100644 +index 5550e30..a2d1a11 100644 --- a/dlls/riched20/tests/richole.c +++ b/dlls/riched20/tests/richole.c -@@ -1159,6 +1159,97 @@ static void test_ITextSelection_SetEnd(void) +@@ -1212,6 +1212,97 @@ static void test_ITextSelection_SetEnd(void) release_interfaces(&w, &reOle, &txtDoc, &txtSel); } @@ -990,7 +990,7 @@ index a0d0d17..8673aa9 100644 START_TEST(richole) { /* Must explicitly LoadLibrary(). The test has no references to functions in -@@ -1174,6 +1265,7 @@ START_TEST(richole) +@@ -1227,6 +1318,7 @@ START_TEST(richole) test_ITextSelection_SetStart(); test_ITextSelection_SetEnd(); test_ITextSelection_Collapse(); @@ -998,14 +998,14 @@ index a0d0d17..8673aa9 100644 test_ITextDocument_Range(); test_ITextRange_GetChar(); test_ITextRange_GetStart_GetEnd(); -@@ -1181,6 +1273,7 @@ START_TEST(richole) +@@ -1234,6 +1326,7 @@ START_TEST(richole) test_ITextRange_Collapse(); test_ITextRange_SetStart(); test_ITextRange_SetEnd(); + test_ITextRange_GetFont(); test_IOleClientSite_QueryInterface(); test_IOleWindow_GetWindow(); - } + test_IOleInPlaceSite_GetWindow(); -- 2.3.2 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 2769460b..35da01c4 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 a9fa015b0c2d9bcc66980fab03bc5417623f2718 Mon Sep 17 00:00:00 2001 +From 094eeb4fd0d44d2af4440aed623ceaf30a5bf959 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, 729 insertions(+), 2 deletions(-) diff --git a/dlls/riched20/richole.c b/dlls/riched20/richole.c -index 5612ff9..b5069e4 100644 +index eaf1c4d..d815142 100644 --- a/dlls/riched20/richole.c +++ b/dlls/riched20/richole.c -@@ -47,11 +47,13 @@ DEFINE_GUID(IID_ITextDocument, 0x8cc497c0, 0xa1df, 0x11ce, 0x80, 0x98, 0x00, 0xa +@@ -46,11 +46,13 @@ DEFINE_GUID(IID_ITextDocument, 0x8cc497c0, 0xa1df, 0x11ce, 0x80, 0x98, 0x00, 0xa DEFINE_GUID(IID_ITextRange, 0x8cc497c2, 0xa1df, 0x11ce, 0x80, 0x98, 0x00, 0xaa, 0x00, 0x47, 0xbe, 0x5d); DEFINE_GUID(IID_ITextSelection, 0x8cc497c1, 0xa1df, 0x11ce, 0x80, 0x98, 0x00, 0xaa, 0x00, 0x47, 0xbe, 0x5d); DEFINE_GUID(IID_ITextFont, 0x8cc497c3, 0xa1df, 0x11ce, 0x80, 0x98, 0x00, 0xaa, 0x00, 0x47, 0xbe, 0x5d); @@ -27,7 +27,7 @@ index 5612ff9..b5069e4 100644 typedef struct IRichEditOleImpl { IUnknown IUnknown_inner; -@@ -65,8 +67,19 @@ typedef struct IRichEditOleImpl { +@@ -64,8 +66,19 @@ typedef struct IRichEditOleImpl { IOleClientSiteImpl *clientSite; struct list rangelist; struct list fontlist; @@ -64,7 +64,7 @@ index 5612ff9..b5069e4 100644 heap_free(This); } return ref; -@@ -564,6 +580,641 @@ static const IRichEditOleVtbl revt = { +@@ -694,6 +710,641 @@ static const IRichEditOleVtbl revt = { IRichEditOle_fnImportDataObject }; @@ -706,7 +706,7 @@ index 5612ff9..b5069e4 100644 /* ITextFont interface */ static inline ITextFontImpl *impl_from_ITextFont(ITextFont *iface) { -@@ -1602,14 +2253,42 @@ static HRESULT WINAPI ITextRange_fnSetFont(ITextRange *me, ITextFont *pFont) +@@ -1732,14 +2383,42 @@ static HRESULT WINAPI ITextRange_fnSetFont(ITextRange *me, ITextFont *pFont) return E_NOTIMPL; } @@ -751,7 +751,7 @@ index 5612ff9..b5069e4 100644 } static HRESULT WINAPI ITextRange_fnSetPara(ITextRange *me, ITextPara *pPara) -@@ -3255,6 +3934,7 @@ LRESULT CreateIRichEditOle(IUnknown *outer_unk, ME_TextEditor *editor, LPVOID *p +@@ -3385,6 +4064,7 @@ LRESULT CreateIRichEditOle(IUnknown *outer_unk, ME_TextEditor *editor, LPVOID *p TRACE("Created %p\n",reo); list_init(&reo->rangelist); list_init(&reo->fontlist); @@ -760,10 +760,10 @@ index 5612ff9..b5069e4 100644 reo->outer_unk = outer_unk; else diff --git a/dlls/riched20/tests/richole.c b/dlls/riched20/tests/richole.c -index 8673aa9..afe8af9 100644 +index a2d1a11..89b3839 100644 --- a/dlls/riched20/tests/richole.c +++ b/dlls/riched20/tests/richole.c -@@ -1250,6 +1250,52 @@ static void test_ITextSelection_GetFont(void) +@@ -1303,6 +1303,52 @@ static void test_ITextSelection_GetFont(void) ITextFont_Release(txtFont); } @@ -816,14 +816,14 @@ index 8673aa9..afe8af9 100644 START_TEST(richole) { /* Must explicitly LoadLibrary(). The test has no references to functions in -@@ -1274,6 +1320,7 @@ START_TEST(richole) +@@ -1327,6 +1373,7 @@ START_TEST(richole) test_ITextRange_SetStart(); test_ITextRange_SetEnd(); test_ITextRange_GetFont(); + test_ITextRange_GetPara(); test_IOleClientSite_QueryInterface(); test_IOleWindow_GetWindow(); - } + test_IOleInPlaceSite_GetWindow(); -- 2.3.2 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 ae3a3b2c..d560a4ba 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 481415ab4d8f622ef27182aecc0f4a0635cfb44d Mon Sep 17 00:00:00 2001 +From 49d6ee6879df42615d3b8c97bd320382fb580585 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(). 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 6334b668..fc49de2d 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 1a1ce59d29cd53547810110ba1e201b070ea23bc Mon Sep 17 00:00:00 2001 +From d0ddbc33e67637ac5ea3d73720d1260d37899bf8 Mon Sep 17 00:00:00 2001 From: Jactry Zeng Date: Wed, 13 Aug 2014 15:40:11 +0800 Subject: riched20: Implement ITextRange::GetText. @@ -9,10 +9,10 @@ Subject: riched20: Implement ITextRange::GetText. 2 files changed, 67 insertions(+), 21 deletions(-) diff --git a/dlls/riched20/richole.c b/dlls/riched20/richole.c -index b5069e4..e0a1d6e 100644 +index d815142..12146ff 100644 --- a/dlls/riched20/richole.c +++ b/dlls/riched20/richole.c -@@ -2043,14 +2043,40 @@ static HRESULT WINAPI ITextRange_fnInvoke(ITextRange *me, DISPID dispIdMember, R +@@ -2173,14 +2173,40 @@ static HRESULT WINAPI ITextRange_fnInvoke(ITextRange *me, DISPID dispIdMember, R return E_NOTIMPL; } @@ -55,7 +55,7 @@ index b5069e4..e0a1d6e 100644 } static HRESULT WINAPI ITextRange_fnSetText(ITextRange *me, BSTR bstr) -@@ -3127,8 +3153,6 @@ static HRESULT WINAPI ITextSelection_fnGetText(ITextSelection *me, BSTR *pbstr) +@@ -3257,8 +3283,6 @@ static HRESULT WINAPI ITextSelection_fnGetText(ITextSelection *me, BSTR *pbstr) { ITextSelectionImpl *This = impl_from_ITextSelection(me); ME_Cursor *start = NULL, *end = NULL; @@ -64,7 +64,7 @@ index b5069e4..e0a1d6e 100644 if (!This->reOle) return CO_E_RELEASED; -@@ -3137,23 +3161,7 @@ static HRESULT WINAPI ITextSelection_fnGetText(ITextSelection *me, BSTR *pbstr) +@@ -3267,23 +3291,7 @@ static HRESULT WINAPI ITextSelection_fnGetText(ITextSelection *me, BSTR *pbstr) return E_INVALIDARG; ME_GetSelection(This->reOle->editor, &start, &end); @@ -90,10 +90,10 @@ index b5069e4..e0a1d6e 100644 static HRESULT WINAPI ITextSelection_fnSetText(ITextSelection *me, BSTR bstr) diff --git a/dlls/riched20/tests/richole.c b/dlls/riched20/tests/richole.c -index afe8af9..192ff90 100644 +index 89b3839..33b777b 100644 --- a/dlls/riched20/tests/richole.c +++ b/dlls/riched20/tests/richole.c -@@ -1296,6 +1296,43 @@ static void test_ITextRange_GetPara(void) +@@ -1349,6 +1349,43 @@ static void test_ITextRange_GetPara(void) ITextPara_Release(txtPara); } @@ -137,14 +137,14 @@ index afe8af9..192ff90 100644 START_TEST(richole) { /* Must explicitly LoadLibrary(). The test has no references to functions in -@@ -1321,6 +1358,7 @@ START_TEST(richole) +@@ -1374,6 +1411,7 @@ START_TEST(richole) test_ITextRange_SetEnd(); test_ITextRange_GetFont(); test_ITextRange_GetPara(); + test_ITextRange_GetText(); test_IOleClientSite_QueryInterface(); test_IOleWindow_GetWindow(); - } + test_IOleInPlaceSite_GetWindow(); -- 2.3.2 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 720d43b9..c738d020 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 1376e708ee270ff14de14cf761ee1965e6842c5e Mon Sep 17 00:00:00 2001 +From d0269eafaac5cf25dfa223e1d9a9edd2572b3755 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 e0a1d6e..fb6c5b0 100644 +index 12146ff..cfe0138 100644 --- a/dlls/riched20/richole.c +++ b/dlls/riched20/richole.c -@@ -2399,14 +2399,36 @@ static HRESULT WINAPI ITextRange_fnSetIndex(ITextRange *me, LONG Unit, LONG Inde +@@ -2529,14 +2529,36 @@ static HRESULT WINAPI ITextRange_fnSetIndex(ITextRange *me, LONG Unit, LONG Inde return E_NOTIMPL; } @@ -51,7 +51,7 @@ index e0a1d6e..fb6c5b0 100644 } static HRESULT WINAPI ITextRange_fnInRange(ITextRange *me, ITextRange *pRange, LONG *pb) -@@ -3001,26 +3023,12 @@ ITextDocument_fnRange(ITextDocument* me, LONG cp1, LONG cp2, +@@ -3131,26 +3153,12 @@ ITextDocument_fnRange(ITextDocument* me, LONG cp1, LONG cp2, ITextRange** ppRange) { IRichEditOleImpl *This = impl_from_ITextDocument(me); @@ -80,10 +80,10 @@ index e0a1d6e..fb6c5b0 100644 } diff --git a/dlls/riched20/tests/richole.c b/dlls/riched20/tests/richole.c -index 192ff90..312fad7 100644 +index 33b777b..a943393 100644 --- a/dlls/riched20/tests/richole.c +++ b/dlls/riched20/tests/richole.c -@@ -1333,6 +1333,40 @@ static void test_ITextRange_GetText(void) +@@ -1386,6 +1386,40 @@ static void test_ITextRange_GetText(void) TEST_TXTRGE_GETTEXT(1, 1, NULL) } @@ -124,14 +124,14 @@ index 192ff90..312fad7 100644 START_TEST(richole) { /* Must explicitly LoadLibrary(). The test has no references to functions in -@@ -1359,6 +1393,7 @@ START_TEST(richole) +@@ -1412,6 +1446,7 @@ START_TEST(richole) test_ITextRange_GetFont(); test_ITextRange_GetPara(); test_ITextRange_GetText(); + test_ITextRange_SetRange(); test_IOleClientSite_QueryInterface(); test_IOleWindow_GetWindow(); - } + test_IOleInPlaceSite_GetWindow(); -- 2.3.2 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 35de668d..260e792a 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 96742bfcb5ac8a1f95fee81246ef31c56c6613e5 Mon Sep 17 00:00:00 2001 +From dd58c449f3fd930e7067f4910d82fc4a118cb585 Mon Sep 17 00:00:00 2001 From: Jactry Zeng Date: Fri, 15 Aug 2014 14:27:21 +0800 Subject: riched20: Implement ITextRange::IsEqual. @@ -9,10 +9,10 @@ Subject: riched20: Implement ITextRange::IsEqual. 2 files changed, 64 insertions(+), 2 deletions(-) diff --git a/dlls/riched20/richole.c b/dlls/riched20/richole.c -index fb6c5b0..ce1a2dd 100644 +index cfe0138..73e1916 100644 --- a/dlls/riched20/richole.c +++ b/dlls/riched20/richole.c -@@ -2451,14 +2451,29 @@ static HRESULT WINAPI ITextRange_fnInStory(ITextRange *me, ITextRange *pRange, L +@@ -2581,14 +2581,29 @@ static HRESULT WINAPI ITextRange_fnInStory(ITextRange *me, ITextRange *pRange, L return E_NOTIMPL; } @@ -45,10 +45,10 @@ index fb6c5b0..ce1a2dd 100644 static HRESULT WINAPI ITextRange_fnSelect(ITextRange *me) diff --git a/dlls/riched20/tests/richole.c b/dlls/riched20/tests/richole.c -index 312fad7..d114fe2 100644 +index a943393..6b1bada 100644 --- a/dlls/riched20/tests/richole.c +++ b/dlls/riched20/tests/richole.c -@@ -1367,6 +1367,52 @@ static void test_ITextRange_SetRange(void) +@@ -1420,6 +1420,52 @@ static void test_ITextRange_SetRange(void) release_interfaces(&w, &reOle, &txtDoc, NULL); } @@ -101,14 +101,14 @@ index 312fad7..d114fe2 100644 START_TEST(richole) { /* Must explicitly LoadLibrary(). The test has no references to functions in -@@ -1394,6 +1440,7 @@ START_TEST(richole) +@@ -1447,6 +1493,7 @@ START_TEST(richole) test_ITextRange_GetPara(); test_ITextRange_GetText(); test_ITextRange_SetRange(); + test_ITextRange_IsEqual(); test_IOleClientSite_QueryInterface(); test_IOleWindow_GetWindow(); - } + test_IOleInPlaceSite_GetWindow(); -- 2.3.2 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 e49c5c6b..db2d5ccb 100644 --- a/patches/riched20-IText_Interface/0008-riched20-Implement-ITextRange-GetStoryLength.patch +++ b/patches/riched20-IText_Interface/0008-riched20-Implement-ITextRange-GetStoryLength.patch @@ -1,4 +1,4 @@ -From 96767fde7d9558498176d82d2b509b0b458c7762 Mon Sep 17 00:00:00 2001 +From 5606c81aa12ad51c3028d7e48a419e5000a0053a Mon Sep 17 00:00:00 2001 From: Jactry Zeng Date: Mon, 18 Aug 2014 14:38:50 +0800 Subject: riched20: Implement ITextRange::GetStoryLength. @@ -9,10 +9,10 @@ Subject: riched20: Implement ITextRange::GetStoryLength. 2 files changed, 36 insertions(+), 2 deletions(-) diff --git a/dlls/riched20/richole.c b/dlls/riched20/richole.c -index ce1a2dd..6def896 100644 +index 73e1916..525c7c1 100644 --- a/dlls/riched20/richole.c +++ b/dlls/riched20/richole.c -@@ -2333,8 +2333,10 @@ static HRESULT WINAPI ITextRange_fnGetStoryLength(ITextRange *me, LONG *pcch) +@@ -2463,8 +2463,10 @@ static HRESULT WINAPI ITextRange_fnGetStoryLength(ITextRange *me, LONG *pcch) if (!This->reOle) return CO_E_RELEASED; @@ -26,10 +26,10 @@ index ce1a2dd..6def896 100644 static HRESULT WINAPI ITextRange_fnGetStoryType(ITextRange *me, LONG *pValue) diff --git a/dlls/riched20/tests/richole.c b/dlls/riched20/tests/richole.c -index d114fe2..4e662da 100644 +index 6b1bada..4e1a5a6 100644 --- a/dlls/riched20/tests/richole.c +++ b/dlls/riched20/tests/richole.c -@@ -1413,6 +1413,37 @@ static void test_ITextRange_IsEqual(void) +@@ -1466,6 +1466,37 @@ static void test_ITextRange_IsEqual(void) release_interfaces(&w, &reOle, &txtDoc, NULL); } @@ -67,14 +67,14 @@ index d114fe2..4e662da 100644 START_TEST(richole) { /* Must explicitly LoadLibrary(). The test has no references to functions in -@@ -1441,6 +1472,7 @@ START_TEST(richole) +@@ -1494,6 +1525,7 @@ START_TEST(richole) test_ITextRange_GetText(); test_ITextRange_SetRange(); test_ITextRange_IsEqual(); + test_ITextRange_GetStoryLength(); test_IOleClientSite_QueryInterface(); test_IOleWindow_GetWindow(); - } + test_IOleInPlaceSite_GetWindow(); -- 2.3.2 diff --git a/patches/shell32-Progress_Dialog/0002-shell32-Pass-FILE_INFORMATION-into-SHNotify-function.patch b/patches/shell32-Progress_Dialog/0002-shell32-Pass-FILE_INFORMATION-into-SHNotify-function.patch index 3a178aff..01b7c4a5 100644 --- a/patches/shell32-Progress_Dialog/0002-shell32-Pass-FILE_INFORMATION-into-SHNotify-function.patch +++ b/patches/shell32-Progress_Dialog/0002-shell32-Pass-FILE_INFORMATION-into-SHNotify-function.patch @@ -1,15 +1,15 @@ -From 8442c70f08cd95cf592ec4232489ea93c5d0a038 Mon Sep 17 00:00:00 2001 +From 950a0c1fd7d57bf0724135e3ffd7848182df59ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Thu, 26 Feb 2015 23:21:26 +0100 Subject: shell32: Pass FILE_INFORMATION into SHNotify* functions. Preparation of the progressbar work. Based on a patch by Huw Campbell. --- - dlls/shell32/shlfileop.c | 222 +++++++++++++++++++++++------------------------ - 1 file changed, 111 insertions(+), 111 deletions(-) + dlls/shell32/shlfileop.c | 201 +++++++++++++++++++++++------------------------ + 1 file changed, 98 insertions(+), 103 deletions(-) diff --git a/dlls/shell32/shlfileop.c b/dlls/shell32/shlfileop.c -index ee40e39..ed8ff38 100644 +index 08a0515..665e74c 100644 --- a/dlls/shell32/shlfileop.c +++ b/dlls/shell32/shlfileop.c @@ -59,16 +59,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(shell); @@ -380,37 +380,7 @@ index ee40e39..ed8ff38 100644 if (ret) return ret; -@@ -1389,10 +1386,10 @@ static DWORD delete_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom) - return ERROR_SUCCESS; - } - --static void move_dir_to_dir(LPSHFILEOPSTRUCTW lpFileOp, const FILE_ENTRY *feFrom, LPCWSTR szDestPath) -+static void move_dir_to_dir(FILE_OPERATION *op, const FILE_ENTRY *feFrom, LPCWSTR szDestPath) - { - WCHAR szFrom[MAX_PATH], szTo[MAX_PATH]; -- SHFILEOPSTRUCTW fileOp; -+ FILE_LIST flFromNew, flToNew; - - static const WCHAR wildCardFiles[] = {'*','.','*',0}; - -@@ -1407,28 +1404,33 @@ static void move_dir_to_dir(LPSHFILEOPSTRUCTW lpFileOp, const FILE_ENTRY *feFrom - lstrcpyW(szTo, szDestPath); - szTo[lstrlenW(szDestPath) + 1] = '\0'; - -- fileOp = *lpFileOp; -- fileOp.pFrom = szFrom; -- fileOp.pTo = szTo; -+ ZeroMemory(&flFromNew, sizeof(FILE_LIST)); -+ ZeroMemory(&flToNew, sizeof(FILE_LIST)); -+ -+ parse_file_list(&flFromNew, szFrom); -+ parse_file_list(&flToNew, szTo); - -- SHFileOperationW(&fileOp); -+ move_files(op, FALSE, &flFromNew, &flToNew); -+ -+ destroy_file_list(&flFromNew); -+ destroy_file_list(&flToNew); +@@ -1390,16 +1387,16 @@ static DWORD delete_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom) } /* moves a file or directory to another directory */ @@ -420,14 +390,8 @@ index ee40e39..ed8ff38 100644 WCHAR szDestPath[MAX_PATH]; PathCombineW(szDestPath, feTo->szFullPath, feFrom->szFilename); - - if (IsAttribFile(feFrom->attributes)) -- SHNotifyMoveFileW(feFrom->szFullPath, szDestPath); -- else if (!(lpFileOp->fFlags & FOF_FILESONLY && feFrom->bFromWildcard)) -- move_dir_to_dir(lpFileOp, feFrom, szDestPath); -+ SHNotifyMoveFileW(op, feFrom->szFullPath, szDestPath); -+ else if (!(op->req->fFlags & FOF_FILESONLY && feFrom->bFromWildcard)) -+ move_dir_to_dir(op, feFrom, szDestPath); +- SHNotifyMoveFileW(feFrom->szFullPath, szDestPath); ++ SHNotifyMoveFileW(op, feFrom->szFullPath, szDestPath); } /* the FO_MOVE operation */ @@ -436,7 +400,7 @@ index ee40e39..ed8ff38 100644 { DWORD i; INT mismatched = 0; -@@ -1441,14 +1443,12 @@ static DWORD move_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom, con +@@ -1412,14 +1409,12 @@ static DWORD move_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom, con if (!flTo->dwNumFiles) return ERROR_FILE_NOT_FOUND; @@ -453,7 +417,7 @@ index ee40e39..ed8ff38 100644 flFrom->dwNumFiles > flTo->dwNumFiles) { return ERROR_CANCELLED; -@@ -1457,7 +1457,7 @@ static DWORD move_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom, con +@@ -1428,7 +1423,7 @@ static DWORD move_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom, con if (!PathFileExistsW(flTo->feFiles[0].szDirectory)) return ERROR_CANCELLED; @@ -462,7 +426,7 @@ index ee40e39..ed8ff38 100644 mismatched = flFrom->dwNumFiles - flTo->dwNumFiles; fileDest = &flTo->feFiles[0]; -@@ -1468,7 +1468,7 @@ static DWORD move_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom, con +@@ -1439,7 +1434,7 @@ static DWORD move_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom, con if (!PathFileExistsW(fileDest->szDirectory)) return ERROR_CANCELLED; @@ -471,7 +435,7 @@ index ee40e39..ed8ff38 100644 { if (i >= flTo->dwNumFiles) break; -@@ -1482,9 +1482,9 @@ static DWORD move_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom, con +@@ -1453,9 +1448,9 @@ static DWORD move_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom, con } if (fileDest->bExists && IsAttribDir(fileDest->attributes)) @@ -483,7 +447,7 @@ index ee40e39..ed8ff38 100644 } if (mismatched > 0) -@@ -1499,7 +1499,7 @@ static DWORD move_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom, con +@@ -1470,7 +1465,7 @@ static DWORD move_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom, con } /* the FO_RENAME files */ @@ -492,7 +456,7 @@ index ee40e39..ed8ff38 100644 { const FILE_ENTRY *feFrom; const FILE_ENTRY *feTo; -@@ -1521,7 +1521,7 @@ static DWORD rename_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom, c +@@ -1492,7 +1487,7 @@ static DWORD rename_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom, c if (feTo->bExists) return ERROR_ALREADY_EXISTS; @@ -501,7 +465,7 @@ index ee40e39..ed8ff38 100644 } /* alert the user if an unsupported flag is used */ -@@ -1568,16 +1568,16 @@ int WINAPI SHFileOperationW(LPSHFILEOPSTRUCTW lpFileOp) +@@ -1539,16 +1534,16 @@ int WINAPI SHFileOperationW(LPSHFILEOPSTRUCTW lpFileOp) switch (lpFileOp->wFunc) { case FO_COPY: @@ -523,5 +487,5 @@ index ee40e39..ed8ff38 100644 default: ret = ERROR_INVALID_PARAMETER; -- -2.3.0 +2.3.2 diff --git a/patches/wined3d-CSMT_Main/9999-IfDefined.patch b/patches/wined3d-CSMT_Main/9999-IfDefined.patch index e286e2b8..f8f08268 100644 --- a/patches/wined3d-CSMT_Main/9999-IfDefined.patch +++ b/patches/wined3d-CSMT_Main/9999-IfDefined.patch @@ -406,7 +406,7 @@ diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c float scale; union -@@ -4091,7 +4122,11 @@ +@@ -4084,7 +4115,11 @@ double y_offset = context->render_offscreen ? ((63.0 / 64.0) - (2.0 * y) - h) / h : ((63.0 / 64.0) - (2.0 * y) - h) / -h; @@ -418,7 +418,7 @@ diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c state->render_states[WINED3D_RS_ZENABLE] : WINED3D_ZB_FALSE; double z_scale = zenable ? 2.0f : 0.0f; double z_offset = zenable ? -1.0f : 0.0f; -@@ -4415,9 +4450,15 @@ +@@ -4408,9 +4443,15 @@ } } } else { @@ -434,7 +434,7 @@ diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c WARN("unsupported blending in openGl\n"); } } -@@ -4769,7 +4810,11 @@ +@@ -4762,7 +4803,11 @@ static void viewport_miscpart(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) { @@ -446,7 +446,7 @@ diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c const struct wined3d_gl_info *gl_info = context->gl_info; struct wined3d_viewport vp = state->viewport; -@@ -4947,7 +4992,11 @@ +@@ -4940,7 +4985,11 @@ } else { @@ -458,7 +458,7 @@ diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c UINT height; UINT width; -@@ -5011,7 +5060,11 @@ +@@ -5004,7 +5053,11 @@ void state_srgbwrite(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) { @@ -1104,7 +1104,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 -@@ -3206,6 +3206,7 @@ +@@ -3227,6 +3227,7 @@ /* case WINED3D_TTFF_COUNT1: Won't ever get here. */ case WINED3D_TTFF_COUNT2: mat[2] = mat[6] = mat[10] = mat[14] = 0; @@ -1112,7 +1112,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. -@@ -3218,6 +3219,20 @@ +@@ -3239,6 +3240,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. */ @@ -1133,7 +1133,7 @@ diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c default: mat[3] = mat[7] = mat[11] = 0; mat[15] = 1; } -@@ -3484,7 +3499,11 @@ +@@ -3505,7 +3520,11 @@ unsigned int i; DWORD ttff; DWORD cop, aop, carg0, carg1, carg2, aarg0, aarg1, aarg2; @@ -1608,7 +1608,7 @@ diff --git a/dlls/wined3d/stateblock.c b/dlls/wined3d/stateblock.c } if (stateblock->changed.indices) -@@ -1339,6 +1350,7 @@ +@@ -1334,6 +1345,7 @@ state->sampler_states[i][WINED3D_SAMP_ELEMENT_INDEX] = 0; /* TODO: Vertex offset in the presampled displacement map. */ state->sampler_states[i][WINED3D_SAMP_DMAP_OFFSET] = 0; @@ -1616,7 +1616,7 @@ diff --git a/dlls/wined3d/stateblock.c b/dlls/wined3d/stateblock.c state->textures[i] = NULL; } -@@ -1356,6 +1368,19 @@ +@@ -1351,6 +1363,19 @@ unsigned int i; state->flags = flags; @@ -1636,7 +1636,7 @@ diff --git a/dlls/wined3d/stateblock.c b/dlls/wined3d/stateblock.c for (i = 0; i < LIGHTMAP_SIZE; i++) { -@@ -1373,6 +1398,7 @@ +@@ -1368,6 +1393,7 @@ return E_OUTOFMEMORY; } @@ -1644,7 +1644,7 @@ diff --git a/dlls/wined3d/stateblock.c b/dlls/wined3d/stateblock.c if (!(state->fb.render_targets = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*state->fb.render_targets) * gl_info->limits.buffers))) { -@@ -1382,6 +1408,7 @@ +@@ -1377,6 +1403,7 @@ } state->fb.rt_size = gl_info->limits.buffers; @@ -1652,7 +1652,7 @@ diff --git a/dlls/wined3d/stateblock.c b/dlls/wined3d/stateblock.c if (flags & WINED3D_STATE_INIT_DEFAULT) state_init_default(state, gl_info); -@@ -1392,6 +1419,7 @@ +@@ -1387,6 +1414,7 @@ struct wined3d_device *device, enum wined3d_stateblock_type type) { HRESULT hr; @@ -1660,7 +1660,7 @@ diff --git a/dlls/wined3d/stateblock.c b/dlls/wined3d/stateblock.c const struct wined3d_gl_info *gl_info = &device->adapter->gl_info; const struct wined3d_d3d_info *d3d_info = &device->adapter->d3d_info; -@@ -1399,6 +1427,14 @@ +@@ -1394,6 +1422,14 @@ stateblock->device = device; if (FAILED(hr = state_init(&stateblock->state, gl_info, d3d_info, 0))) @@ -1751,7 +1751,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h }; extern struct wined3d_settings wined3d_settings DECLSPEC_HIDDEN; -@@ -995,9 +1025,14 @@ +@@ -996,9 +1026,14 @@ WORD use_map; /* MAX_ATTRIBS, 16 */ }; @@ -1766,7 +1766,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 -@@ -1082,8 +1117,10 @@ +@@ -1083,8 +1118,10 @@ struct list entry; GLuint id; struct wined3d_context *context; @@ -1777,7 +1777,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h }; union wined3d_gl_query_object -@@ -1119,6 +1156,7 @@ +@@ -1120,6 +1157,7 @@ struct list entry; GLuint id; struct wined3d_context *context; @@ -1785,7 +1785,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h UINT64 timestamp; }; -@@ -1154,6 +1192,12 @@ +@@ -1155,6 +1193,12 @@ for (i = 0; i < min(dst->rt_size, src->rt_size); i++) dst->render_targets[i] = src->render_targets[i]; } @@ -1798,7 +1798,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h struct wined3d_context { -@@ -1169,7 +1213,9 @@ +@@ -1170,7 +1214,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 */ @@ -1808,7 +1808,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h struct wined3d_swapchain *swapchain; struct wined3d_surface *current_rt; -@@ -1268,8 +1314,17 @@ +@@ -1269,8 +1315,17 @@ GLfloat fog_coord_value; GLfloat color[4], fogstart, fogend, fogcolor[4]; GLuint dummy_arbfp_prog; @@ -1826,7 +1826,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); -@@ -1397,8 +1452,12 @@ +@@ -1398,8 +1453,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; @@ -1839,7 +1839,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, -@@ -1947,7 +2006,11 @@ +@@ -1948,7 +2007,11 @@ struct wined3d_state { DWORD flags; @@ -1851,7 +1851,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]; -@@ -1992,6 +2055,7 @@ +@@ -1993,6 +2056,7 @@ DWORD render_states[WINEHIGHEST_RENDER_STATE + 1]; }; @@ -1859,7 +1859,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h struct wined3d_gl_bo { GLuint name; -@@ -2000,6 +2064,7 @@ +@@ -2001,6 +2065,7 @@ UINT size; }; @@ -1867,7 +1867,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 -@@ -2055,11 +2120,23 @@ +@@ -2056,11 +2121,23 @@ struct wined3d_rendertarget_view *back_buffer_view; struct wined3d_swapchain **swapchains; UINT swapchain_count; @@ -1891,7 +1891,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; -@@ -2070,6 +2147,9 @@ +@@ -2071,6 +2148,9 @@ UINT xScreenSpace; UINT yScreenSpace; UINT cursorWidth, cursorHeight; @@ -1901,7 +1901,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h HCURSOR hardwareCursor; /* The Wine logo texture */ -@@ -2101,6 +2181,7 @@ +@@ -2102,6 +2182,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; @@ -1909,7 +1909,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, -@@ -2112,6 +2193,11 @@ +@@ -2113,6 +2194,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; @@ -1921,7 +1921,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) { -@@ -2135,9 +2221,11 @@ +@@ -2136,9 +2222,11 @@ ULONG (*resource_incref)(struct wined3d_resource *resource); ULONG (*resource_decref)(struct wined3d_resource *resource); void (*resource_unload)(struct wined3d_resource *resource); @@ -1933,7 +1933,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h }; struct wined3d_resource -@@ -2160,6 +2248,7 @@ +@@ -2161,6 +2249,7 @@ UINT depth; UINT size; DWORD priority; @@ -1941,7 +1941,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; -@@ -2167,6 +2256,11 @@ +@@ -2168,6 +2257,11 @@ DWORD locations; LONG access_fence; BOOL unmap_dirtify; @@ -1953,7 +1953,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void *parent; const struct wined3d_parent_ops *parent_ops; -@@ -2191,6 +2285,7 @@ +@@ -2192,6 +2286,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; @@ -1961,7 +1961,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, -@@ -2237,6 +2332,15 @@ +@@ -2238,6 +2333,15 @@ { while(InterlockedCompareExchange(&resource->access_fence, 0, 0)); } @@ -1977,7 +1977,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 -@@ -2314,7 +2418,9 @@ +@@ -2315,7 +2419,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; @@ -1987,7 +1987,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, -@@ -2348,9 +2454,16 @@ +@@ -2349,9 +2455,16 @@ struct wined3d_resource resource; struct wined3d_texture *container; @@ -2004,7 +2004,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) -@@ -2358,6 +2471,7 @@ +@@ -2359,6 +2472,7 @@ return CONTAINING_RECORD(resource, struct wined3d_volume, resource); } @@ -2012,7 +2012,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; -@@ -2370,6 +2484,23 @@ +@@ -2371,6 +2485,23 @@ struct wined3d_surface_dib { HBITMAP DIBsection; @@ -2036,7 +2036,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h UINT bitmap_size; }; -@@ -2395,7 +2526,11 @@ +@@ -2396,7 +2527,11 @@ struct wined3d_surface_ops { HRESULT (*surface_private_setup)(struct wined3d_surface *surface); @@ -2048,7 +2048,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h }; struct wined3d_surface -@@ -2403,12 +2538,25 @@ +@@ -2404,12 +2539,25 @@ struct wined3d_resource resource; const struct wined3d_surface_ops *surface_ops; struct wined3d_texture *container; @@ -2074,7 +2074,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h GLuint rb_multisample; GLuint rb_resolved; GLenum texture_target; -@@ -2452,10 +2600,19 @@ +@@ -2453,10 +2601,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; @@ -2094,7 +2094,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; -@@ -2467,6 +2624,7 @@ +@@ -2468,6 +2625,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; @@ -2102,7 +2102,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; -@@ -2485,6 +2643,21 @@ +@@ -2486,6 +2644,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; @@ -2124,7 +2124,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. */ -@@ -2530,8 +2703,10 @@ +@@ -2531,8 +2704,10 @@ BOOL half_float_conv_needed; }; @@ -2135,7 +2135,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]; -@@ -2599,6 +2774,7 @@ +@@ -2600,6 +2775,7 @@ void stateblock_init_contained_states(struct wined3d_stateblock *stateblock) DECLSPEC_HIDDEN; void state_cleanup(struct wined3d_state *state) DECLSPEC_HIDDEN; @@ -2143,7 +2143,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; -@@ -2649,6 +2825,32 @@ +@@ -2650,6 +2826,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; @@ -2176,7 +2176,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; -@@ -2696,6 +2898,7 @@ +@@ -2697,6 +2899,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; @@ -2184,7 +2184,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, -@@ -2755,6 +2958,7 @@ +@@ -2756,6 +2959,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; @@ -2192,7 +2192,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 -@@ -2769,8 +2973,12 @@ +@@ -2770,8 +2974,12 @@ struct wined3d_query_ops { HRESULT (*query_get_data)(struct wined3d_query *query, void *data, DWORD data_size, DWORD flags); @@ -2205,7 +2205,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h }; struct wined3d_query -@@ -2784,12 +2992,16 @@ +@@ -2785,12 +2993,16 @@ enum wined3d_query_type type; DWORD data_size; void *extendedData; @@ -2222,7 +2222,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 */ -@@ -2816,7 +3028,9 @@ +@@ -2817,7 +3029,9 @@ GLenum buffer_object_usage; GLenum buffer_type_hint; DWORD flags; @@ -2232,7 +2232,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void *map_ptr; struct wined3d_map_range *maps; -@@ -2841,11 +3055,15 @@ +@@ -2842,11 +3056,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; @@ -2248,7 +2248,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h struct wined3d_rendertarget_view { -@@ -2883,8 +3101,10 @@ +@@ -2884,8 +3102,10 @@ return surface_from_resource(resource); } @@ -2259,7 +2259,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h struct wined3d_shader_resource_view { LONG refcount; -@@ -2897,8 +3117,12 @@ +@@ -2898,8 +3118,12 @@ struct wined3d_swapchain_ops { void (*swapchain_present)(struct wined3d_swapchain *swapchain, const RECT *src_rect, @@ -2272,7 +2272,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h }; struct wined3d_swapchain -@@ -2938,8 +3162,10 @@ +@@ -2939,8 +3163,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; @@ -2283,7 +2283,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h /***************************************************************************** * Utility function prototypes -@@ -3158,7 +3384,9 @@ +@@ -3157,7 +3383,9 @@ void shader_generate_main(const struct wined3d_shader *shader, struct wined3d_shader_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; @@ -4508,7 +4508,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c --- a/dlls/wined3d/glsl_shader.c +++ b/dlls/wined3d/glsl_shader.c -@@ -950,8 +950,15 @@ +@@ -961,8 +961,15 @@ const struct wined3d_shader_reg_maps *reg_maps, const struct shader_glsl_ctx_priv *ctx_priv) { const struct wined3d_shader_version *version = ®_maps->shader_version; @@ -4524,7 +4524,7 @@ diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c unsigned int i, extra_constants_needed = 0; const struct wined3d_shader_lconst *lconst; const char *prefix; -@@ -1189,7 +1196,11 @@ +@@ -1200,7 +1207,11 @@ { UINT in_count = min(vec4_varyings(version->major, gl_info), shader->limits->packed_input); @@ -4536,7 +4536,7 @@ diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c shader_addline(buffer, "varying vec4 %s_link[%u];\n", prefix, in_count); shader_addline(buffer, "vec4 %s_in[%u];\n", prefix, in_count); } -@@ -1230,6 +1241,7 @@ +@@ -1241,6 +1252,7 @@ } else { @@ -4544,7 +4544,7 @@ diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c /* This happens because we do not have proper tracking of the * constant registers that are actually used, only the max * limit of the shader version. -@@ -1238,6 +1250,23 @@ +@@ -1249,6 +1261,23 @@ * it and just create the uniform. */ FIXME("Cannot find a free uniform for vpos correction params\n"); diff --git a/patches/ws2_32-WriteWatches/0002-ntdll-Expose-wine_uninterrupted_-read-write-_memory-.patch b/patches/ws2_32-WriteWatches/0001-ntdll-Expose-wine_uninterrupted_-read-write-_memory-.patch similarity index 100% rename from patches/ws2_32-WriteWatches/0002-ntdll-Expose-wine_uninterrupted_-read-write-_memory-.patch rename to patches/ws2_32-WriteWatches/0001-ntdll-Expose-wine_uninterrupted_-read-write-_memory-.patch diff --git a/patches/ws2_32-WriteWatches/0001-ntdll-Handle-write-watches-in-virtual_uninterrupted_.patch b/patches/ws2_32-WriteWatches/0001-ntdll-Handle-write-watches-in-virtual_uninterrupted_.patch deleted file mode 100644 index f5850adf..00000000 --- a/patches/ws2_32-WriteWatches/0001-ntdll-Handle-write-watches-in-virtual_uninterrupted_.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 67e51503f973289b85c526eb05d76d78f7bd337e Mon Sep 17 00:00:00 2001 -From: Sebastian Lackner -Date: Sat, 3 Jan 2015 19:11:40 +0100 -Subject: ntdll: Handle write watches in virtual_uninterrupted_write_memory. - ---- - dlls/ntdll/virtual.c | 30 +++++++++++++++++++++++++----- - 1 file changed, 25 insertions(+), 5 deletions(-) - -diff --git a/dlls/ntdll/virtual.c b/dlls/ntdll/virtual.c -index 4c4c05d..8823164 100644 ---- a/dlls/ntdll/virtual.c -+++ b/dlls/ntdll/virtual.c -@@ -1730,12 +1730,32 @@ SIZE_T virtual_uninterrupted_write_memory( void *addr, const void *buffer, SIZE_ - { - if (!(view->protect & VPROT_SYSTEM)) - { -- void *page = ROUND_ADDR( addr, page_mask ); -- BYTE *p = view->prot + (((const char *)page - (const char *)view->base) >> page_shift); -- -- while (bytes_written < size && (VIRTUAL_GetUnixProt( *p++ ) & PROT_WRITE)) -+ while (bytes_written < size) - { -- SIZE_T block_size = min( size, page_size - ((UINT_PTR)addr & page_mask) ); -+ void *page = ROUND_ADDR( addr, page_mask ); -+ BYTE *p = view->prot + (((const char *)page - (const char *)view->base) >> page_shift); -+ SIZE_T block_size; -+ -+ /* If the page is not writeable then check for write watches -+ * before giving up. This can be done without raising a real -+ * exception. Similar to virtual_handle_fault, but we can't -+ * handle guard pages here. */ -+ if (!(VIRTUAL_GetUnixProt( *p ) & PROT_WRITE)) -+ { -+ if (!(view->protect & VPROT_WRITEWATCH)) -+ break; -+ -+ if (*p & VPROT_WRITEWATCH) -+ { -+ *p &= ~VPROT_WRITEWATCH; -+ VIRTUAL_SetProt( view, page, page_size, *p ); -+ } -+ /* ignore fault if page is writable now */ -+ if (!(VIRTUAL_GetUnixProt( *p ) & PROT_WRITE)) -+ break; -+ } -+ -+ block_size = min( size, page_size - ((UINT_PTR)addr & page_mask) ); - memcpy( addr, buffer, block_size ); - - addr = (void *)((char *)addr + block_size); --- -2.2.1 - diff --git a/patches/ws2_32-WriteWatches/0003-ws2_32-Avoid-race-conditions-of-async-WSARecv-operat.patch b/patches/ws2_32-WriteWatches/0002-ws2_32-Avoid-race-conditions-of-async-WSARecv-operat.patch similarity index 100% rename from patches/ws2_32-WriteWatches/0003-ws2_32-Avoid-race-conditions-of-async-WSARecv-operat.patch rename to patches/ws2_32-WriteWatches/0002-ws2_32-Avoid-race-conditions-of-async-WSARecv-operat.patch