-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Tue Jun 25 05:55:37 2024 patchbase; rebase and misc clean up/improvement
- Loading branch information
Showing
138 changed files
with
371 additions
and
390 deletions.
There are no files selected for viewing
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
21 changes: 9 additions & 12 deletions
21
...window-surface-even-when-there-is-c.patch → ...window-surface-even-when-there-is-c.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,25 +1,22 @@ | ||
From 94e0cba5d1b6e1377ff677af9c434f671b5fa777 Mon Sep 17 00:00:00 2001 | ||
From: =?UTF-8?q?R=C3=A9mi=20Bernon?= <[email protected]> | ||
Date: Fri, 3 May 2024 10:50:10 +0200 | ||
Subject: [PATCH 07/10] winex11: Create a window surface even when there is | ||
From: | ||
Date: Tue, 25 Jun 2024 04:28:02 +0000 | ||
Subject: [PATCH (REBASE) 07/10] winex11: Create a window surface even when there is | ||
client window. | ||
|
||
--- | ||
dlls/winex11.drv/window.c | 1 - | ||
dlls/winex11.drv/bitblt.c | 1 - | ||
1 file changed, 1 deletion(-) | ||
|
||
diff --git a/dlls/winex11.drv/window.c b/dlls/winex11.drv/window.c | ||
index c173375694d..3a93ed89afe 100644 | ||
--- a/dlls/winex11.drv/window.c | ||
+++ b/dlls/winex11.drv/window.c | ||
@@ -2653,7 +2653,6 @@ BOOL BOOL X11DRV_CreateWindowSurface( HWND hwnd, UINT swp_flags, const RECT | ||
diff --git a/dlls/winex11.drv/bitblt.c b/dlls/winex11.drv/bitblt.c | ||
index 0db8087441a..d1219862f74 100644 | ||
--- a/dlls/winex11.drv/bitblt.c | ||
+++ b/dlls/winex11.drv/bitblt.c | ||
@@ -2263,7 +2263,6 @@ BOOL X11DRV_CreateWindowSurface( HWND hwnd, UINT swp_flags, const RECT *visible_ | ||
|
||
if (data->embedded) goto done; /* draw directly to the window */ | ||
if (data->whole_window == root_window) goto done; /* draw directly to the window */ | ||
- if (data->client_window) goto done; /* draw directly to the window */ | ||
if (!client_side_graphics && !layered) goto done; /* draw directly to the window */ | ||
|
||
if (!get_surface_rect( visible_rect, &surface_rect )) goto done; | ||
-- | ||
2.45.1 | ||
|
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
147 changes: 147 additions & 0 deletions
147
0003-pending-mrs-and-backports/0009-ps0452-win32u-Send-WM_NCPAINT-as-notify-message.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,147 @@ | ||
From 9965f3b13b8412a6132e828042a92bf8ce821e3f Mon Sep 17 00:00:00 2001 | ||
From: Paul Gofman <[email protected]> | ||
Date: Wed, 13 Jul 2022 20:18:38 -0500 | ||
Subject: [PATCH] win32u: Send WM_NCPAINT as notify message in send_ncpaint(). | ||
|
||
--- | ||
dlls/user32/tests/win.c | 59 ++++++++++++++++++++++++++++++++++++ | ||
dlls/win32u/dce.c | 2 +- | ||
dlls/win32u/message.c | 2 +- | ||
dlls/win32u/win32u_private.h | 1 + | ||
4 files changed, 62 insertions(+), 2 deletions(-) | ||
|
||
diff --git a/dlls/user32/tests/win.c b/dlls/user32/tests/win.c | ||
index 4c2af09d0c6..9ad10090902 100644 | ||
--- a/dlls/user32/tests/win.c | ||
+++ b/dlls/user32/tests/win.c | ||
@@ -6126,11 +6126,16 @@ static void test_AdjustWindowRect(void) | ||
|
||
/* Global variables to trigger exit from loop */ | ||
static int redrawComplete, WMPAINT_count; | ||
+static HANDLE redraw_call_complete_event; | ||
|
||
static LRESULT WINAPI redraw_window_procA(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) | ||
{ | ||
switch (msg) | ||
{ | ||
+ case WM_NCPAINT: | ||
+ if (redraw_call_complete_event) | ||
+ WaitForSingleObject(redraw_call_complete_event, INFINITE); | ||
+ break; | ||
case WM_PAINT: | ||
WMPAINT_count++; | ||
if (WMPAINT_count > 10 && redrawComplete == 0) { | ||
@@ -6144,11 +6149,50 @@ static LRESULT WINAPI redraw_window_procA(HWND hwnd, UINT msg, WPARAM wparam, LP | ||
return DefWindowProcA(hwnd, msg, wparam, lparam); | ||
} | ||
|
||
+struct rdw_window_thread_param | ||
+{ | ||
+ HANDLE ready_event; | ||
+ HANDLE done_event; | ||
+ HWND hwnd; | ||
+}; | ||
+ | ||
+static DWORD WINAPI rdw_window_thread(void *param) | ||
+{ | ||
+ struct rdw_window_thread_param *p = param; | ||
+ DWORD ret; | ||
+ MSG msg; | ||
+ | ||
+ p->hwnd = CreateWindowA("RedrawWindowClass", "Main Window", WS_OVERLAPPEDWINDOW, | ||
+ CW_USEDEFAULT, 0, 100, 100, NULL, NULL, 0, NULL); | ||
+ ShowWindow(p->hwnd, SW_MINIMIZE); | ||
+ redrawComplete = FALSE; | ||
+ while (PeekMessageA(&msg, 0, 0, 0, PM_REMOVE)) | ||
+ DispatchMessageA(&msg); | ||
+ | ||
+ redraw_call_complete_event = p->done_event; | ||
+ SetEvent(p->ready_event); | ||
+ while ((ret = MsgWaitForMultipleObjects(1, &p->done_event, FALSE, INFINITE, QS_SENDMESSAGE)) != WAIT_OBJECT_0) | ||
+ { | ||
+ while (PeekMessageA(&msg, 0, 0, 0, PM_REMOVE)) | ||
+ { | ||
+ ok(msg.message != WM_NCPAINT, "got WM_NCPAINT.\n"); | ||
+ DispatchMessageA(&msg); | ||
+ } | ||
+ } | ||
+ redraw_call_complete_event = NULL; | ||
+ WaitForSingleObject(redraw_call_complete_event, INFINITE); | ||
+ | ||
+ DestroyWindow(p->hwnd); | ||
+ return 0; | ||
+} | ||
+ | ||
/* Ensure we exit from RedrawNow regardless of invalidated area */ | ||
static void test_redrawnow(void) | ||
{ | ||
+ struct rdw_window_thread_param p; | ||
WNDCLASSA cls; | ||
HWND hwndMain; | ||
+ HANDLE thread; | ||
BOOL ret; | ||
|
||
cls.style = CS_DBLCLKS; | ||
@@ -6178,6 +6222,21 @@ static void test_redrawnow(void) | ||
|
||
/* clean up */ | ||
DestroyWindow( hwndMain); | ||
+ | ||
+ /* When on the other thread, WM_NCPAINT is delivered through window proc but RedrawWindow does | ||
+ * not wait for that. */ | ||
+ p.ready_event = CreateEventW(NULL, FALSE, FALSE, NULL); | ||
+ p.done_event = CreateEventW(NULL, TRUE, FALSE, NULL); | ||
+ WMPAINT_count = 0; | ||
+ thread = CreateThread(NULL, 0, rdw_window_thread, &p, 0, NULL); | ||
+ WaitForSingleObject(p.ready_event, INFINITE); | ||
+ | ||
+ ret = RedrawWindow(p.hwnd, NULL, NULL, RDW_INVALIDATE | RDW_ERASE | RDW_ALLCHILDREN | RDW_ERASENOW | RDW_FRAME); | ||
+ ok(ret, "ret %d.\n", ret); | ||
+ | ||
+ SetEvent(p.done_event); | ||
+ WaitForSingleObject(thread, INFINITE); | ||
+ CloseHandle(thread); | ||
} | ||
|
||
struct parentdc_stat { | ||
diff --git a/dlls/win32u/dce.c b/dlls/win32u/dce.c | ||
index 9041b5bbaaf..a3f48d623b0 100644 | ||
--- a/dlls/win32u/dce.c | ||
+++ b/dlls/win32u/dce.c | ||
@@ -1197,7 +1197,7 @@ static HRGN send_ncpaint( HWND hwnd, HWND *child, UINT *flags ) | ||
if (style & WS_VSCROLL) | ||
set_standard_scroll_painted( hwnd, SB_VERT, FALSE ); | ||
|
||
- send_message( hwnd, WM_NCPAINT, (WPARAM)whole_rgn, 0 ); | ||
+ send_notify_message( hwnd, WM_NCPAINT, (WPARAM)whole_rgn, 0, FALSE ); | ||
} | ||
if (whole_rgn > (HRGN)1) NtGdiDeleteObjectApp( whole_rgn ); | ||
} | ||
#diff --git a/dlls/win32u/message.c b/dlls/win32u/message.c | ||
#index 0045c8a54c0..5ee4d9a85fc 100644 | ||
#--- a/dlls/win32u/message.c | ||
#+++ b/dlls/win32u/message.c | ||
#@@ -2806,7 +2806,7 @@ LRESULT send_message( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam ) | ||
# } | ||
# | ||
# /* see SendNotifyMessageW */ | ||
#-static BOOL send_notify_message( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam, BOOL ansi ) | ||
#+BOOL send_notify_message( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam, BOOL ansi ) | ||
# { | ||
# struct send_message_info info; | ||
# | ||
#diff --git a/dlls/win32u/win32u_private.h b/dlls/win32u/win32u_private.h | ||
#index a0b3e8c2e9e..ac164811142 100644 | ||
#--- a/dlls/win32u/win32u_private.h | ||
#+++ b/dlls/win32u/win32u_private.h | ||
#@@ -447,6 +447,7 @@ extern LRESULT send_internal_message_timeout( DWORD dest_pid, DWORD dest_tid, UI | ||
# extern LRESULT send_message( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam ) DECLSPEC_HIDDEN; | ||
# extern LRESULT send_message_timeout( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam, | ||
# UINT flags, UINT timeout, PDWORD_PTR res_ptr, BOOL ansi ); | ||
#+extern BOOL send_notify_message( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam, BOOL ansi ) DECLSPEC_HIDDEN; | ||
# | ||
# /* rawinput.c */ | ||
# extern BOOL process_rawinput_message( MSG *msg, UINT hw_id, const struct hardware_msg_data *msg_data ) DECLSPEC_HIDDEN; | ||
#-- | ||
#GitLab | ||
# |
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
14 changes: 11 additions & 3 deletions
14
...0001-opengl-child-xcomposite-toggle.patch → ...ow-disabling-child-window-rendering.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,14 @@ | ||
# see: https://github.com/ValveSoftware/wine/commit/afcbb6a2a29de850d58b8b01435db7509d389c64 | ||
# https://github.com/ValveSoftware/wine/commit/a8514f9606ee3fdc3d912c988f651edc5d7d0d55 | ||
# for other examples of this idea | ||
From d330b2b142aedf06cc54bfa3fe5f750d2ed31bbf Mon Sep 17 00:00:00 2001 | ||
From: whrvt <[email protected]> | ||
Date: Tue, 25 Jun 2024 05:30:22 +0000 | ||
Subject: [PATCH] winex11: Allow disabling child window rendering through XComposite. | ||
|
||
Improves performance in osu! by ~2x, so disable it by default. Breaks map editor context menus. | ||
|
||
See: https://github.com/ValveSoftware/wine/commit/afcbb6a2a29de850d58b8b01435db7509d389c64 | ||
https://github.com/ValveSoftware/wine/commit/a8514f9606ee3fdc3d912c988f651edc5d7d0d55 | ||
for other examples of this idea. | ||
|
||
diff --git a/dlls/winex11.drv/opengl.c b/dlls/winex11.drv/opengl.c | ||
index 11111111111..11111111111 100644 | ||
--- a/dlls/winex11.drv/opengl.c | ||
|
123 changes: 0 additions & 123 deletions
123
...norevert/0000-revert-lazy/0001-mmdevapi-Set-the-default-period-to-a-minimum-of-10-m.patch
This file was deleted.
Oops, something went wrong.
43 changes: 0 additions & 43 deletions
43
0012-audio-norevert/0000-revert-lazy/0002-winepulse-Don-t-set-a-floor-for-the-period-s.patch
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.