From 31c7a7157d991d3d60ff8985fa1061c9eb97142a Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Fri, 26 Jan 2018 13:39:22 +0100 Subject: [PATCH] winex11: Default to an ARGB visual when depth is set to 32. Signed-off-by: Alexandre Julliard --- 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 a2ec18be53c..e67a3c05a97 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 ); }