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