1From 438f21fcc62898d19d0619b420eb3a0578031e55 Mon Sep 17 00:00:00 2001 2From: Jeffy Chen <jeffy.chen@rock-chips.com> 3Date: Mon, 25 Jul 2022 10:46:43 +0800 4Subject: [PATCH 11/11] pixmap: Fix alpha error for drm formats 5 6Tested with chromium-ozone-wayland. 7 8Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com> 9--- 10 src/bin/e_pixmap.c | 9 ++++++++- 11 1 file changed, 8 insertions(+), 1 deletion(-) 12 13diff --git a/src/bin/e_pixmap.c b/src/bin/e_pixmap.c 14index 3d9177f4a..f8c2a01ed 100644 15--- a/src/bin/e_pixmap.c 16+++ b/src/bin/e_pixmap.c 17@@ -609,8 +609,8 @@ e_pixmap_refresh(E_Pixmap *cp) 18 19 switch (format) 20 { 21- case DRM_FORMAT_ARGB8888: 22 case WL_SHM_FORMAT_ARGB8888: 23+ case WL_SHM_FORMAT_ABGR8888: 24 case EGL_TEXTURE_RGBA: 25 cp->image_argb = EINA_TRUE; 26 break; 27@@ -619,6 +619,13 @@ e_pixmap_refresh(E_Pixmap *cp) 28 break; 29 } 30 31+ /* HACK: Check DRM fourcc for alpha channel */ 32+ if (buffer->dmabuf_buffer) 33+ { 34+ if ((format >> 24) == 'A' || ((format >> 16) & 0xFF) == 'A') 35+ cp->image_argb = EINA_TRUE; 36+ } 37+ 38 success = ((cp->w > 0) && (cp->h > 0)); 39 } 40 #endif 41-- 422.20.1 43 44