[PATCH v3 0/1] MR3573: winex11.drv: Mark drawable as dirty when setting pixel format.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55341 -- v3: winex11.drv: Mark drawable as dirty when setting pixel format. https://gitlab.winehq.org/wine/wine/-/merge_requests/3573
From: Anton Baskanov <baskanov(a)gmail.com> Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55341 --- dlls/winex11.drv/opengl.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/dlls/winex11.drv/opengl.c b/dlls/winex11.drv/opengl.c index c23df82c7b9..c9000648848 100644 --- a/dlls/winex11.drv/opengl.c +++ b/dlls/winex11.drv/opengl.c @@ -1393,17 +1393,27 @@ static struct gl_drawable *create_gl_drawable( HWND hwnd, const struct wgl_pixel */ static BOOL set_win_format( HWND hwnd, const struct wgl_pixel_format *format, BOOL internal ) { - struct gl_drawable *gl; + struct gl_drawable *old, *gl; if (!format->visual) return FALSE; - if (!(gl = create_gl_drawable( hwnd, format, FALSE, internal ))) return FALSE; + old = get_gl_drawable( hwnd, 0 ); + + if (!(gl = create_gl_drawable( hwnd, format, FALSE, internal ))) + { + release_gl_drawable( old ); + return FALSE; + } TRACE( "created GL drawable %lx for win %p %s\n", gl->drawable, hwnd, debugstr_fbconfig( format->fbconfig )); + if (old) + mark_drawable_dirty( old, gl ); + XFlush( gdi_display ); release_gl_drawable( gl ); + release_gl_drawable( old ); win32u_set_window_pixel_format( hwnd, pixel_format_index( format ), internal ); return TRUE; -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/3573
participants (2)
-
Anton Baskanov -
Anton Baskanov (@baskanov)