derekf pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=15173c34361904e67c8011748ccb86fd28db03fe
commit 15173c34361904e67c8011748ccb86fd28db03fe Author: Derek Foreman <der...@osg.samsung.com> Date: Mon Nov 13 12:09:58 2017 -0600 wayland_shm: Store alpha in buffer Currently the buffer code looks up the alpha stats from the surface code. This won't be possible when we move the buffer code into a library, so prepare for it now. --- src/modules/evas/engines/wayland_shm/evas_dmabuf.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/modules/evas/engines/wayland_shm/evas_dmabuf.c b/src/modules/evas/engines/wayland_shm/evas_dmabuf.c index c8a1220e73..d3dbda5643 100644 --- a/src/modules/evas/engines/wayland_shm/evas_dmabuf.c +++ b/src/modules/evas/engines/wayland_shm/evas_dmabuf.c @@ -66,6 +66,7 @@ struct _Ecore_Wl2_Buffer Eina_Bool busy : 1; Eina_Bool used : 1; Eina_Bool orphaned : 1; + Eina_Bool alpha : 1; }; struct _Dmabuf_Surface @@ -81,7 +82,7 @@ struct _Dmabuf_Surface static void _internal_evas_dmabuf_surface_destroy(Dmabuf_Surface *surface); static void _evas_dmabuf_surface_destroy(Surface *s); -static Ecore_Wl2_Buffer *ecore_wl2_buffer_create(Dmabuf_Surface *s, int w, int h); +static Ecore_Wl2_Buffer *ecore_wl2_buffer_create(Dmabuf_Surface *s, int w, int h, Eina_Bool alpha); static void ecore_wl2_buffer_destroy(Ecore_Wl2_Buffer *b); static drm_intel_bufmgr *(*sym_drm_intel_bufmgr_gem_init)(int fd, int batch_size) = NULL; @@ -572,7 +573,7 @@ _evas_dmabuf_surface_reconfigure(Surface *s, int w, int h, uint32_t flags EINA_U ecore_wl2_buffer_destroy(b); } - buf = ecore_wl2_buffer_create(surface, w, h); + buf = ecore_wl2_buffer_create(surface, w, h, surface->alpha); if (!buf) return; surface->buffer[i] = buf; } @@ -697,7 +698,7 @@ _evas_dmabuf_wl_buffer_from_dmabuf(Ecore_Wl2_Display *ewd, Ecore_Wl2_Buffer *db) } static Ecore_Wl2_Buffer * -ecore_wl2_buffer_create(Dmabuf_Surface *s, int w, int h) +ecore_wl2_buffer_create(Dmabuf_Surface *s, int w, int h, Eina_Bool alpha) { Ecore_Wl2_Buffer *out; @@ -706,6 +707,7 @@ ecore_wl2_buffer_create(Dmabuf_Surface *s, int w, int h) out->fd = -1; out->surface = s; + out->alpha = alpha; out->bh = _buffer_manager_alloc("name", w, h, &out->stride, &out->fd); if (!out->bh) { @@ -773,7 +775,7 @@ _evas_dmabuf_surface_create(Surface *s, int w, int h, int num_buff) { for (i = 0; i < num_buff; i++) { - surf->buffer[i] = ecore_wl2_buffer_create(surf, w, h); + surf->buffer[i] = ecore_wl2_buffer_create(surf, w, h, surf->alpha); if (!surf->buffer[i]) { DBG("Could not create buffers"); --