st/egl wayland: Set color_format according to wl_visual
authorBenjamin Franzke <benjaminfranzke@googlemail.com>
Wed, 9 Feb 2011 19:40:37 +0000 (20:40 +0100)
committerKristian Høgsberg <krh@bitplanet.net>
Fri, 11 Feb 2011 04:07:01 +0000 (23:07 -0500)
src/gallium/state_trackers/egl/wayland/native_wayland.c

index c526c59..f1461b5 100644 (file)
@@ -84,7 +84,7 @@ wayland_display_get_configs (struct native_display *ndpy, int *num_configs)
          (1 << NATIVE_ATTACHMENT_FRONT_LEFT) |
          (1 << NATIVE_ATTACHMENT_BACK_LEFT);
 
-      format = PIPE_FORMAT_B8G8R8X8_UNORM;
+      format = PIPE_FORMAT_B8G8R8A8_UNORM;
 
       nconf->color_format = format;
       nconf->window_bit = TRUE;
@@ -378,14 +378,15 @@ wayland_create_pixmap_surface(struct native_display *ndpy,
       return NULL;
 
    surface->display = display;
-   if (config)
-      surface->color_format = config->base.color_format;
-   else
-      surface->color_format = PIPE_FORMAT_B8G8R8X8_UNORM;
 
    surface->type = WL_PIXMAP_SURFACE;
    surface->pix = egl_pixmap;
 
+   if (surface->pix->visual == wl_display_get_rgb_visual(display->dpy->display))
+      surface->color_format = PIPE_FORMAT_B8G8R8X8_UNORM;
+   else
+      surface->color_format = PIPE_FORMAT_B8G8R8A8_UNORM;
+
    surface->attachment_mask = (1 << NATIVE_ATTACHMENT_FRONT_LEFT);
    
    surface->rsurf = resource_surface_create(display->base.screen,