mirror of
https://github.com/brl/mutter.git
synced 2025-02-17 05:44:08 +00:00
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>
This commit is contained in:
parent
eb4307c350
commit
47375897a5
@ -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,
|
||||
|
Loading…
x
Reference in New Issue
Block a user