ecore_wl2: Add API for setting buffer busy status and use it
authorDerek Foreman <derekf@osg.samsung.com>
Thu, 25 Jan 2018 21:59:34 +0000 (15:59 -0600)
committerJiyoun Park <jy0703.park@samsung.com>
Tue, 3 Apr 2018 13:06:00 +0000 (22:06 +0900)
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
src/lib/ecore_wl2/ecore_wl2_buffer.c
src/lib/ecore_wl2/ecore_wl2_surface.c

index 67f22c9..fe00814 100644 (file)
@@ -2302,6 +2302,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);
index 55b665d..dfd63a8 100644 (file)
@@ -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)
 {
index 111ac79..ee04b47 100644 (file)
@@ -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);