seoz pushed a commit to branch master.

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

commit 881f4e9c7512d1949dce532ad88e03002c606ec3
Author: Daniel Juyung Seo <[email protected]>
Date:   Sun Jan 12 16:37:30 2014 +0900

    ecore_evas_x: Refactor/flourish gl_dync_draw_done member from Ecore_Evas
    structure.
    
    - moved gl_sync_draw_done for a better structure packing.
    - changed gl_sync_draw_done type from int to char which is enough.
    - added more description to gl_sync_draw_done
---
 src/lib/ecore_evas/ecore_evas_private.h         | 13 ++++++++++++-
 src/modules/ecore_evas/engines/x/ecore_evas_x.c |  4 ----
 2 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/src/lib/ecore_evas/ecore_evas_private.h 
b/src/lib/ecore_evas/ecore_evas_private.h
index 9cd258a..6613970 100644
--- a/src/lib/ecore_evas/ecore_evas_private.h
+++ b/src/lib/ecore_evas/ecore_evas_private.h
@@ -253,13 +253,24 @@ struct _Ecore_Evas
    double async_render_start;
 #endif
 
+   /* A flag to show if sync_draw_done is sent by gl or by ecore_evas.
+      Some GL drivers do buffer copy in a separate thread.  We need to check
+      whether GL driver sends SYNC_DRAW_DONE message after buffer copy.
+      This is required to synchronize rendering and sync_draw_done message
+      sending.
+
+      -1 : uninitialized
+      0 : sync_draw_done is sent by ecore_evas
+      1 : sync_draw_done is sent by gl
+    */
+   char          gl_sync_draw_done;
+
    unsigned char ignore_events : 1;
    unsigned char manual_render : 1;
    unsigned char registered : 1;
    unsigned char no_comp_sync  : 1;
    unsigned char semi_sync  : 1;
    unsigned char deleted : 1;
-   int           gl_sync_draw_done;
    unsigned char profile_supported : 1;
    unsigned char in_async_render : 1;
    unsigned char can_async_render : 1;
diff --git a/src/modules/ecore_evas/engines/x/ecore_evas_x.c 
b/src/modules/ecore_evas/engines/x/ecore_evas_x.c
index cfef993..3795788 100644
--- a/src/modules/ecore_evas/engines/x/ecore_evas_x.c
+++ b/src/modules/ecore_evas/engines/x/ecore_evas_x.c
@@ -1433,10 +1433,6 @@ _ecore_evas_x_event_window_show(void *data EINA_UNUSED, 
int type EINA_UNUSED, vo
    if (!ee) return ECORE_CALLBACK_PASS_ON; /* pass on event */
    if (e->win != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
 
-   /* some GL drivers are doing buffer copy in a separate thread.
-    * we need to check whether GL driver sends SYNC_DRAW_DONE msg afger copying
-    * that are required in order to exactly render.
-    */
    if (ee->gl_sync_draw_done < 0)
      {
         if (getenv("ECORE_EVAS_GL_SYNC_DRAW_DONE"))

-- 


Reply via email to