[mutter] wayland/shm: Add support for ABGR8888 and XBGR8888 formats
- From: Marge Bot <marge-bot src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] wayland/shm: Add support for ABGR8888 and XBGR8888 formats
- Date: Wed, 30 Mar 2022 15:26:25 +0000 (UTC)
commit 47375897a5be9694590622b145485324ed0b0554
Author: Jonas Ã…dahl <jadahl gmail com>
Date: Tue Mar 29 19:03:08 2022 +0200
wayland/shm: Add support for ABGR8888 and XBGR8888 formats
This avoids shuffling bits for clients drawing in these formats.
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2200
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2352>
src/wayland/meta-wayland-buffer.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
---
diff --git a/src/wayland/meta-wayland-buffer.c b/src/wayland/meta-wayland-buffer.c
index 8b354e7aa6..e6d4df9794 100644
--- a/src/wayland/meta-wayland-buffer.c
+++ b/src/wayland/meta-wayland-buffer.c
@@ -207,6 +207,12 @@ shm_format_to_cogl_pixel_format (enum wl_shm_format shm_format,
format = COGL_PIXEL_FORMAT_ARGB_8888;
components = COGL_TEXTURE_COMPONENTS_RGB;
break;
+ case WL_SHM_FORMAT_XBGR8888:
+ components = COGL_TEXTURE_COMPONENTS_RGB;
+ G_GNUC_FALLTHROUGH;
+ case WL_SHM_FORMAT_ABGR8888:
+ format = COGL_PIXEL_FORMAT_ABGR_8888_PRE;
+ break;
#elif G_BYTE_ORDER == G_LITTLE_ENDIAN
case WL_SHM_FORMAT_RGB565:
format = COGL_PIXEL_FORMAT_RGB_565;
@@ -219,6 +225,12 @@ shm_format_to_cogl_pixel_format (enum wl_shm_format shm_format,
format = COGL_PIXEL_FORMAT_BGRA_8888;
components = COGL_TEXTURE_COMPONENTS_RGB;
break;
+ case WL_SHM_FORMAT_XBGR8888:
+ components = COGL_TEXTURE_COMPONENTS_RGB;
+ G_GNUC_FALLTHROUGH;
+ case WL_SHM_FORMAT_ABGR8888:
+ format = COGL_PIXEL_FORMAT_RGBA_8888_PRE;
+ break;
case WL_SHM_FORMAT_XRGB2101010:
components = COGL_TEXTURE_COMPONENTS_RGB;
G_GNUC_FALLTHROUGH;
@@ -813,6 +825,8 @@ meta_wayland_init_shm (MetaWaylandCompositor *compositor)
clutter_backend_get_cogl_context (clutter_backend);
static const enum wl_shm_format shm_formats[] = {
+ WL_SHM_FORMAT_ABGR8888,
+ WL_SHM_FORMAT_XBGR8888,
#if G_BYTE_ORDER == G_LITTLE_ENDIAN
WL_SHM_FORMAT_RGB565,
WL_SHM_FORMAT_ARGB2101010,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]