Module: wine Branch: master Commit: 31c7a7157d991d3d60ff8985fa1061c9eb97142a URL: https://source.winehq.org/git/wine.git/?a=commit;h=31c7a7157d991d3d60ff8985f...
Author: Alexandre Julliard julliard@winehq.org Date: Fri Jan 26 13:39:22 2018 +0100
winex11: Default to an ARGB visual when depth is set to 32.
Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/winex11.drv/x11drv_main.c | 36 ++++++++++++++++++++---------------- 1 file changed, 20 insertions(+), 16 deletions(-)
diff --git a/dlls/winex11.drv/x11drv_main.c b/dlls/winex11.drv/x11drv_main.c index a2ec18b..e67a3c0 100644 --- a/dlls/winex11.drv/x11drv_main.c +++ b/dlls/winex11.drv/x11drv_main.c @@ -484,11 +484,29 @@ static void init_visuals( Display *display, int screen ) int count; XVisualInfo *info;
+ argb_visual.screen = screen; + argb_visual.class = TrueColor; + argb_visual.depth = 32; + argb_visual.red_mask = 0xff0000; + argb_visual.green_mask = 0x00ff00; + argb_visual.blue_mask = 0x0000ff; + + if ((info = XGetVisualInfo( display, VisualScreenMask | VisualDepthMask | VisualClassMask | + VisualRedMaskMask | VisualGreenMaskMask | VisualBlueMaskMask, + &argb_visual, &count ))) + { + argb_visual = *info; + XFree( info ); + } + default_visual.screen = screen; if (default_visual.depth) /* depth specified */ { - info = XGetVisualInfo( display, VisualScreenMask | VisualDepthMask, &default_visual, &count ); - if (info) + if (default_visual.depth == 32 && argb_visual.visual) + { + default_visual = argb_visual; + } + else if ((info = XGetVisualInfo( display, VisualScreenMask | VisualDepthMask, &default_visual, &count ))) { default_visual = *info; XFree( info ); @@ -510,20 +528,6 @@ static void init_visuals( Display *display, int screen ) } default_colormap = XCreateColormap( display, root_window, default_visual.visual, AllocNone );
- argb_visual.screen = screen; - argb_visual.class = TrueColor; - argb_visual.depth = 32; - argb_visual.red_mask = 0xff0000; - argb_visual.green_mask = 0x00ff00; - argb_visual.blue_mask = 0x0000ff; - - if ((info = XGetVisualInfo( display, VisualScreenMask | VisualDepthMask | VisualClassMask | - VisualRedMaskMask | VisualGreenMaskMask | VisualBlueMaskMask, - &argb_visual, &count ))) - { - argb_visual = *info; - XFree( info ); - } TRACE( "default visual %lx class %u argb %lx\n", default_visual.visualid, default_visual.class, argb_visual.visualid ); }