derekf pushed a commit to branch master.

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

commit e97a8cefe8a7f575c427d9bcadbd245e31c09465
Author: Derek Foreman <[email protected]>
Date:   Thu Jan 25 16:08:20 2018 -0600

    ecore_wl2: Add buffer_age_get API and use it in surface code
---
 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 | 8 +++++---
 3 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/src/lib/ecore_wl2/Ecore_Wl2.h b/src/lib/ecore_wl2/Ecore_Wl2.h
index c67711181e..ebb8783ff7 100644
--- a/src/lib/ecore_wl2/Ecore_Wl2.h
+++ b/src/lib/ecore_wl2/Ecore_Wl2.h
@@ -2009,6 +2009,7 @@ 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 int ecore_wl2_buffer_age_get(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 dfd63a8a1a..f9a633f629 100644
--- a/src/lib/ecore_wl2/ecore_wl2_buffer.c
+++ b/src/lib/ecore_wl2/ecore_wl2_buffer.c
@@ -688,6 +688,14 @@ ecore_wl2_buffer_busy_set(Ecore_Wl2_Buffer *buffer)
    buffer->busy = EINA_TRUE;
 }
 
+EAPI int
+ecore_wl2_buffer_age_get(Ecore_Wl2_Buffer *buffer)
+{
+   EINA_SAFETY_ON_NULL_RETURN_VAL(buffer, 0);
+
+   return buffer->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 257f12c2fa..08a62076b5 100644
--- a/src/lib/ecore_wl2/ecore_wl2_surface.c
+++ b/src/lib/ecore_wl2/ecore_wl2_surface.c
@@ -84,14 +84,16 @@ _evas_dmabuf_surface_wait(Ecore_Wl2_Surface *s)
    Ecore_Wl2_Buffer *b, *best = NULL;
    Eina_List *l;
    int best_age = -1;
+   int age;
 
    EINA_LIST_FOREACH(s->buffers, l, b)
      {
         if (ecore_wl2_buffer_busy_get(b)) continue;
-        if (b->age > best_age)
+        age = ecore_wl2_buffer_age_get(b);
+        if (age > best_age)
           {
              best = b;
-             best_age = b->age;
+             best_age = age;
           }
      }
 
@@ -132,7 +134,7 @@ _evas_dmabuf_surface_assign(Ecore_Wl2_Surface *s)
    EINA_LIST_FOREACH(s->buffers, l, b)
      b->age++;
 
-   return s->current->age;
+   return ecore_wl2_buffer_age_get(s->current);
 }
 
 static void

-- 


Reply via email to