derekf pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=dce3fcda866439750eaa9c82f05c2bfb059d14dc
commit dce3fcda866439750eaa9c82f05c2bfb059d14dc Author: Derek Foreman <[email protected]> Date: Thu Jan 25 16:09:19 2018 -0600 ecore_wl2: Add buffer_age_set and use it in surface code --- src/lib/ecore_wl2/Ecore_Wl2.h | 1 + src/lib/ecore_wl2/ecore_wl2_buffer.c | 7 +++++++ src/lib/ecore_wl2/ecore_wl2_surface.c | 6 +++--- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/lib/ecore_wl2/Ecore_Wl2.h b/src/lib/ecore_wl2/Ecore_Wl2.h index ebb8783ff7..423bcff478 100644 --- a/src/lib/ecore_wl2/Ecore_Wl2.h +++ b/src/lib/ecore_wl2/Ecore_Wl2.h @@ -2010,6 +2010,7 @@ EAPI void ecore_wl2_buffer_destroy(Ecore_Wl2_Buffer *b); EAPI Eina_Bool ecore_wl2_buffer_busy_get(Ecore_Wl2_Buffer *buffer); EAPI void ecore_wl2_buffer_busy_set(Ecore_Wl2_Buffer *buffer); EAPI int ecore_wl2_buffer_age_get(Ecore_Wl2_Buffer *buffer); +EAPI void ecore_wl2_buffer_age_set(Ecore_Wl2_Buffer *buffer, int age); EAPI Ecore_Wl2_Surface *ecore_wl2_surface_create(Ecore_Wl2_Window *win, Eina_Bool alpha); EAPI void ecore_wl2_surface_destroy(Ecore_Wl2_Surface *surface); diff --git a/src/lib/ecore_wl2/ecore_wl2_buffer.c b/src/lib/ecore_wl2/ecore_wl2_buffer.c index f9a633f629..1a5769c821 100644 --- a/src/lib/ecore_wl2/ecore_wl2_buffer.c +++ b/src/lib/ecore_wl2/ecore_wl2_buffer.c @@ -696,6 +696,13 @@ ecore_wl2_buffer_age_get(Ecore_Wl2_Buffer *buffer) return buffer->age; } +EAPI void ecore_wl2_buffer_age_set(Ecore_Wl2_Buffer *buffer, int age) +{ + EINA_SAFETY_ON_NULL_RETURN(buffer); + + buffer->age = age; +} + static Ecore_Wl2_Buffer * _ecore_wl2_buffer_partial_create(int w, int h, Eina_Bool alpha) { diff --git a/src/lib/ecore_wl2/ecore_wl2_surface.c b/src/lib/ecore_wl2/ecore_wl2_surface.c index 08a62076b5..acfcf896c3 100644 --- a/src/lib/ecore_wl2/ecore_wl2_surface.c +++ b/src/lib/ecore_wl2/ecore_wl2_surface.c @@ -106,7 +106,7 @@ _evas_dmabuf_surface_wait(Ecore_Wl2_Surface *s) best = ecore_wl2_buffer_create(ewd, s->w, s->h, s->alpha); /* Start at -1 so it's age is incremented to 0 for first draw */ - best->age = -1; + ecore_wl2_buffer_age_set(best, -1); s->buffers = eina_list_append(s->buffers, best); } return best; @@ -128,7 +128,7 @@ _evas_dmabuf_surface_assign(Ecore_Wl2_Surface *s) */ WRN("No free DMAbuf buffers, dropping a frame"); EINA_LIST_FOREACH(s->buffers, l, b) - b->age = 0; + ecore_wl2_buffer_age_set(b, 0); return 0; } EINA_LIST_FOREACH(s->buffers, l, b) @@ -149,7 +149,7 @@ _evas_dmabuf_surface_post(Ecore_Wl2_Surface *s, Eina_Rectangle *rects, unsigned s->current = NULL; ecore_wl2_buffer_busy_set(b); - b->age = 0; + ecore_wl2_buffer_age_set(b, 0); ecore_wl2_window_buffer_attach(s->wl2_win, b->wl_buffer, 0, 0, EINA_FALSE); ecore_wl2_window_damage(s->wl2_win, rects, count); --
