forked from enlightenment/efl
fix sync to send done messges but not wait for sync counter with gl
engine. SVN revision: 56563
This commit is contained in:
parent
d28f378acd
commit
75b46faa61
|
@ -10,3 +10,8 @@
|
||||||
|
|
||||||
* make https not fail (that's curl's responsibility, really).
|
* make https not fail (that's curl's responsibility, really).
|
||||||
|
|
||||||
|
2011-01-31 Carsten Haitzler (The Rasterman)
|
||||||
|
|
||||||
|
* Fix: ecore-evas CAN send "render done" messages even if not
|
||||||
|
waiting for sync counter when using gl engine. new semi-sync
|
||||||
|
mode to account for that.
|
||||||
|
|
|
@ -351,6 +351,7 @@ struct _Ecore_Evas
|
||||||
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;
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef BUILD_ECORE_EVAS_X11
|
#ifdef BUILD_ECORE_EVAS_X11
|
||||||
|
|
|
@ -2983,8 +2983,9 @@ _ecore_evas_x_flush_pre(void *data, Evas *e __UNUSED__, void *event_info __UNUSE
|
||||||
ee->engine.x.sync_val++;
|
ee->engine.x.sync_val++;
|
||||||
if (!ee->engine.x.sync_cancel)
|
if (!ee->engine.x.sync_cancel)
|
||||||
{
|
{
|
||||||
ecore_x_sync_counter_val_wait(ee->engine.x.sync_counter,
|
if (!ee->semi_sync)
|
||||||
ee->engine.x.sync_val);
|
ecore_x_sync_counter_val_wait(ee->engine.x.sync_counter,
|
||||||
|
ee->engine.x.sync_val);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3436,7 +3437,8 @@ ecore_evas_gl_x11_options_new(const char *disp_name, Ecore_X_Window parent,
|
||||||
ee->engine.func = (Ecore_Evas_Engine_Func *)&_ecore_x_engine_func;
|
ee->engine.func = (Ecore_Evas_Engine_Func *)&_ecore_x_engine_func;
|
||||||
|
|
||||||
ee->driver = "opengl_x11";
|
ee->driver = "opengl_x11";
|
||||||
ee->no_comp_sync = 1; // gl engine doesnt need to sync - its whole swaps
|
ee->semi_sync = 1; // gl engine doesnt need to sync - its whole swaps
|
||||||
|
// ee->no_comp_sync = 1; // gl engine doesnt need to sync - its whole swaps
|
||||||
if (disp_name) ee->name = strdup(disp_name);
|
if (disp_name) ee->name = strdup(disp_name);
|
||||||
|
|
||||||
if (w < 1) w = 1;
|
if (w < 1) w = 1;
|
||||||
|
|
Loading…
Reference in New Issue