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