ecore_wl2: Add buffer_age_set and use it in surface code
authorDerek Foreman <derekf@osg.samsung.com>
Thu, 25 Jan 2018 22:09:19 +0000 (16:09 -0600)
committerJiyoun Park <jy0703.park@samsung.com>
Tue, 3 Apr 2018 13:06:00 +0000 (22:06 +0900)
src/lib/ecore_wl2/Ecore_Wl2.h
src/lib/ecore_wl2/ecore_wl2_buffer.c
src/lib/ecore_wl2/ecore_wl2_surface.c

index c136daa..c8404a5 100644 (file)
@@ -2304,6 +2304,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);
index f9a633f..1a5769c 100644 (file)
@@ -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)
 {
index 662693c..28e8010 100644 (file)
@@ -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);