xserver: Branch 'xwayland-1.12'
Kristian Høgsberg
krh at kemper.freedesktop.org
Thu May 2 10:26:53 PDT 2013
hw/xfree86/xwayland/xwayland-drm.c | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
New commits:
commit 43eacf4a50d3aa700f4e49a8b8b36da5e7e7f256
Author: Kristian Høgsberg <krh at bitplanet.net>
Date: Thu May 2 13:26:32 2013 -0400
xwayland: Pick wl_drm pixel formats based on the window visual
This reverts c13becb2b and uses the right pixel format for the window
contents. The weston X wm can instead reparent the client window into
an ARGB frame window and draw ARGB decorations there. This way xwayland
will pick the ARGB pixel format for the window that lets weston render
transparent decorations and use an opaque area for the client window.
diff --git a/hw/xfree86/xwayland/xwayland-drm.c b/hw/xfree86/xwayland/xwayland-drm.c
index 8d595b0..7be1351 100644
--- a/hw/xfree86/xwayland/xwayland-drm.c
+++ b/hw/xfree86/xwayland/xwayland-drm.c
@@ -210,6 +210,7 @@ xwl_create_window_buffer_drm(struct xwl_window *xwl_window,
VisualID visual;
WindowPtr window = xwl_window->window;
ScreenPtr screen = window->drawable.pScreen;
+ uint32_t format;
int i;
visual = wVisual(window);
@@ -217,13 +218,21 @@ xwl_create_window_buffer_drm(struct xwl_window *xwl_window,
if (screen->visuals[i].vid == visual)
break;
+ if (screen->visuals[i].nplanes == 32) {
+ format = WL_DRM_FORMAT_ARGB8888;
+ ErrorF("picking WL_DRM_FORMAT_ARGB8888\n");
+ } else {
+ format = WL_DRM_FORMAT_XRGB8888;
+ ErrorF("picking WL_DRM_FORMAT_XRGB8888\n");
+ }
+
xwl_window->buffer =
wl_drm_create_buffer(xwl_window->xwl_screen->drm,
name,
pixmap->drawable.width,
pixmap->drawable.height,
pixmap->devKind,
- WL_DRM_FORMAT_ARGB8888);
+ format);
return xwl_window->buffer ? Success : BadDrawable;
}
More information about the xorg-commit
mailing list