[mutter/wayland] window-actor: Mark all Wayland clients as argb32



commit 95e2d26d03bd2a6c8381d772ad3bb61af73d582a
Author: Jasper St. Pierre <jstpierre mecheye net>
Date:   Wed Aug 28 18:07:46 2013 -0400

    window-actor: Mark all Wayland clients as argb32
    
    https://bugzilla.gnome.org/show_bug.cgi?id=707019

 src/compositor/meta-window-actor.c |   17 +++++++++++++----
 1 files changed, 13 insertions(+), 4 deletions(-)
---
diff --git a/src/compositor/meta-window-actor.c b/src/compositor/meta-window-actor.c
index 4999602..c599ac5 100644
--- a/src/compositor/meta-window-actor.c
+++ b/src/compositor/meta-window-actor.c
@@ -357,16 +357,25 @@ meta_window_actor_constructed (GObject *object)
   Window                  xwindow  = priv->xwindow;
   MetaWindow             *window   = priv->window;
   Display                *xdisplay = meta_display_get_xdisplay (display);
-  XRenderPictFormat      *format;
 
   if (!meta_is_wayland_compositor ())
     priv->damage = XDamageCreate (xdisplay, xwindow,
                                   XDamageReportBoundingBox);
 
-  format = XRenderFindVisualFormat (xdisplay, window->xvisual);
+  if (window->client_type == META_WINDOW_CLIENT_TYPE_X11)
+    {
+      XRenderPictFormat      *format;
 
-  if (format && format->type == PictTypeDirect && format->direct.alphaMask)
-    priv->argb32 = TRUE;
+      format = XRenderFindVisualFormat (xdisplay, window->xvisual);
+
+      if (format && format->type == PictTypeDirect && format->direct.alphaMask)
+        priv->argb32 = TRUE;
+    }
+  else
+    {
+      /* XXX: parse shm formats to determine argb32 */
+      priv->argb32 = TRUE;
+    }
 
   if (!priv->actor)
     {


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]