forked from enlightenment/efl
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:
parent
3e89295c73
commit
881f4e9c75
|
@ -253,13 +253,24 @@ struct _Ecore_Evas
|
||||||
double async_render_start;
|
double async_render_start;
|
||||||
#endif
|
#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 ignore_events : 1;
|
||||||
unsigned char manual_render : 1;
|
unsigned char manual_render : 1;
|
||||||
unsigned char registered : 1;
|
unsigned char registered : 1;
|
||||||
unsigned char no_comp_sync : 1;
|
unsigned char no_comp_sync : 1;
|
||||||
unsigned char semi_sync : 1;
|
unsigned char semi_sync : 1;
|
||||||
unsigned char deleted : 1;
|
unsigned char deleted : 1;
|
||||||
int gl_sync_draw_done;
|
|
||||||
unsigned char profile_supported : 1;
|
unsigned char profile_supported : 1;
|
||||||
unsigned char in_async_render : 1;
|
unsigned char in_async_render : 1;
|
||||||
unsigned char can_async_render : 1;
|
unsigned char can_async_render : 1;
|
||||||
|
|
|
@ -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 (!ee) return ECORE_CALLBACK_PASS_ON; /* pass on event */
|
||||||
if (e->win != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
|
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 (ee->gl_sync_draw_done < 0)
|
||||||
{
|
{
|
||||||
if (getenv("ECORE_EVAS_GL_SYNC_DRAW_DONE"))
|
if (getenv("ECORE_EVAS_GL_SYNC_DRAW_DONE"))
|
||||||
|
|
Loading…
Reference in New Issue