diff options
author | Derek Foreman <derekf@osg.samsung.com> | 2018-02-20 14:17:32 -0600 |
---|---|---|
committer | Derek Foreman <derekf@osg.samsung.com> | 2018-04-20 13:00:27 -0500 |
commit | 8b5b9989af6216dc02fa3926dbfb072205c20f1c (patch) | |
tree | 7018bfb169006a4bfa1a8999780a82faa4837ea4 /src/lib/ecore_wl2/ecore_wl2_surface_module_dmabuf.c | |
parent | a10feaed0ce9e8a1b96d0c6bd486f6ae88d96a5d (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 '')
-rw-r--r-- | src/lib/ecore_wl2/ecore_wl2_surface_module_dmabuf.c | 4 |
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); |