derekf pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=ebcce5aefaef99e843e8324caf863b31f3b653d9

commit ebcce5aefaef99e843e8324caf863b31f3b653d9
Author: Derek Foreman <[email protected]>
Date:   Thu Jan 25 15:59:34 2018 -0600

    ecore_wl2: Add API for setting buffer busy status and use it
    
    Since surfaces will be managed by plug-ins, we need to make sure they
    don't rely on internal structures.
---
 src/lib/ecore_wl2/Ecore_Wl2.h         | 1 +
 src/lib/ecore_wl2/ecore_wl2_buffer.c  | 8 ++++++++
 src/lib/ecore_wl2/ecore_wl2_surface.c | 2 +-
 3 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/lib/ecore_wl2/Ecore_Wl2.h b/src/lib/ecore_wl2/Ecore_Wl2.h
index 1e8faa6cd3..c67711181e 100644
--- a/src/lib/ecore_wl2/Ecore_Wl2.h
+++ b/src/lib/ecore_wl2/Ecore_Wl2.h
@@ -2008,6 +2008,7 @@ EAPI void ecore_wl2_buffer_discard(Ecore_Wl2_Buffer *buf);
 EAPI void ecore_wl2_buffer_unlock(Ecore_Wl2_Buffer *b);
 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 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 55b665d4ae..dfd63a8a1a 100644
--- a/src/lib/ecore_wl2/ecore_wl2_buffer.c
+++ b/src/lib/ecore_wl2/ecore_wl2_buffer.c
@@ -680,6 +680,14 @@ ecore_wl2_buffer_busy_get(Ecore_Wl2_Buffer *buffer)
    return (buffer->locked) || (buffer->busy);
 }
 
+EAPI void
+ecore_wl2_buffer_busy_set(Ecore_Wl2_Buffer *buffer)
+{
+   EINA_SAFETY_ON_NULL_RETURN(buffer);
+
+   buffer->busy = EINA_TRUE;
+}
+
 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 ff561c2edf..257f12c2fa 100644
--- a/src/lib/ecore_wl2/ecore_wl2_surface.c
+++ b/src/lib/ecore_wl2/ecore_wl2_surface.c
@@ -146,7 +146,7 @@ _evas_dmabuf_surface_post(Ecore_Wl2_Surface *s, 
Eina_Rectangle *rects, unsigned
    ecore_wl2_buffer_unlock(b);
 
    s->current = NULL;
-   b->busy = EINA_TRUE;
+   ecore_wl2_buffer_busy_set(b);
    b->age = 0;
 
    ecore_wl2_window_buffer_attach(s->wl2_win, b->wl_buffer, 0, 0, EINA_FALSE);

-- 


Reply via email to