summaryrefslogtreecommitdiff
path: root/src/lib/ecore_wl2
diff options
context:
space:
mode:
authorDerek Foreman <derekf@osg.samsung.com>2018-02-20 14:17:32 -0600
committerDerek Foreman <derekf@osg.samsung.com>2018-04-20 13:00:27 -0500
commit8b5b9989af6216dc02fa3926dbfb072205c20f1c (patch)
tree7018bfb169006a4bfa1a8999780a82faa4837ea4 /src/lib/ecore_wl2
parenta10feaed0ce9e8a1b96d0c6bd486f6ae88d96a5d (diff)
ecore_wl2_dmabuf: Properly reconfigure on surface alpha change
When alpha changes we need to blow away all our buffers in reconfigure, even if they're still the right dimensions. Otherwise we can end up rendering to an XRGB buffer when we wanted to use ARGB and we won't have proper transparency.
Diffstat (limited to 'src/lib/ecore_wl2')
-rw-r--r--src/lib/ecore_wl2/ecore_wl2_surface_module_dmabuf.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/lib/ecore_wl2/ecore_wl2_surface_module_dmabuf.c b/src/lib/ecore_wl2/ecore_wl2_surface_module_dmabuf.c
index 34a1edde48..f8630367f2 100644
--- a/src/lib/ecore_wl2/ecore_wl2_surface_module_dmabuf.c
+++ b/src/lib/ecore_wl2/ecore_wl2_surface_module_dmabuf.c
@@ -52,16 +52,18 @@ _evas_dmabuf_surface_reconfigure(Ecore_Wl2_Surface *s EINA_UNUSED, void *priv_da
52 Ecore_Wl2_Dmabuf_Private *p; 52 Ecore_Wl2_Dmabuf_Private *p;
53 Ecore_Wl2_Buffer *b; 53 Ecore_Wl2_Buffer *b;
54 Eina_List *l, *tmp; 54 Eina_List *l, *tmp;
55// Eina_Bool alpha_change;
55 56
56 p = priv_data; 57 p = priv_data;
57 58
58 if ((!w) || (!h)) return; 59 if ((!w) || (!h)) return;
60// alpha_change = ecore_wl2_surface_alpha_get(s) != alpha;
59 EINA_LIST_FOREACH_SAFE(p->buffers, l, tmp, b) 61 EINA_LIST_FOREACH_SAFE(p->buffers, l, tmp, b)
60 { 62 {
61/* This would be nice, but requires a partial create to follow, 63/* This would be nice, but requires a partial create to follow,
62 and that partial create is buffer type specific. 64 and that partial create is buffer type specific.
63 65
64 if (ecore_wl2_buffer_fit(b, w, h)) 66 if (!alpha_change && ecore_wl2_buffer_fit(b, w, h))
65 continue; 67 continue;
66*/ 68*/
67 ecore_wl2_buffer_destroy(b); 69 ecore_wl2_buffer_destroy(b);