+ecore (1.0.0.001+svn.56239slp2+build04) unstable; urgency=low
+
+ * [ecore_evas_x.c] apply ECORE_EVAS_GL_SYNC_DRAW_DONE env.
+ + check whether GL driver sends SYNC_DRAW_DONE msg after buffer copy.
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.56239slp2+build04
+
+ -- Gwanglim Lee <gl77.lee@samsung.com> Sat, 05 Feb 2011 17:29:55 +0900
+
ecore (1.0.0.001+svn.56239slp2+build03) unstable; urgency=low
* ee->no_comp_sync = 0
unsigned char ignore_events : 1;
unsigned char manual_render : 1;
- unsigned char registered : 1;
+ unsigned char registered : 1;
unsigned char no_comp_sync : 1;
+ int gl_sync_draw_done; // added by gl77.lee
};
#ifdef BUILD_ECORE_EVAS_X11
ee = ecore_event_window_match(e->win);
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. - added by gl77.lee
+ */
+ if (ee->gl_sync_draw_done < 0)
+ {
+ if (getenv("ECORE_EVAS_GL_SYNC_DRAW_DONE"))
+ ee->gl_sync_draw_done = atoi(getenv("ECORE_EVAS_GL_SYNC_DRAW_DONE"));
+ else
+ ee->gl_sync_draw_done = 0;
+ }
if (first_map_bug < 0)
{
if (getenv("ECORE_EVAS_GL_FIRST_MAP_BUG"))
if (ee->no_comp_sync) return;
if (!_ecore_evas_app_comp_sync) return;
+ if (ee->gl_sync_draw_done) return; // added by gl77.lee
if (ee->engine.x.sync_counter)
{
if (ee->engine.x.sync_began)
ECORE_MAGIC_SET(ee, ECORE_MAGIC_EVAS);
+ ee->gl_sync_draw_done = -1; // added by gl77.lee
+
_ecore_evas_x_init();
ee->engine.func = (Ecore_Evas_Engine_Func *)&_ecore_x_engine_func;