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
This commit is contained in:
Daniel Juyung Seo 2014-01-12 16:37:30 +09:00
parent 3e89295c73
commit 881f4e9c75
2 changed files with 12 additions and 5 deletions

View File

@ -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;

View File

@ -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"))