forked from enlightenment/efl
add new version of efl sync proto between comp and client.
SVN revision: 58220
This commit is contained in:
parent
71372d9c65
commit
4155a7df00
|
@ -3016,6 +3016,21 @@ _ecore_evas_x_flush_post(void *data, Evas *e __UNUSED__, void *event_info __UNUS
|
|||
{
|
||||
Ecore_Evas *ee = data;
|
||||
|
||||
if ((!ee->no_comp_sync) &&
|
||||
(_ecore_evas_app_comp_sync))
|
||||
{
|
||||
if (ee->engine.x.sync_counter)
|
||||
{
|
||||
if (ee->engine.x.sync_began)
|
||||
{
|
||||
if (!ee->engine.x.sync_cancel)
|
||||
{
|
||||
ecore_x_e_comp_sync_draw_size_done_send
|
||||
(ee->engine.x.win_root, ee->prop.window, ee->w, ee->h);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (ee->engine.x.netwm_sync_set)
|
||||
{
|
||||
ecore_x_sync_counter_2_set(ee->engine.x.netwm_sync_counter,
|
||||
|
@ -3023,19 +3038,6 @@ _ecore_evas_x_flush_post(void *data, Evas *e __UNUSED__, void *event_info __UNUS
|
|||
ee->engine.x.netwm_sync_val_lo);
|
||||
ee->engine.x.netwm_sync_set = 0;
|
||||
}
|
||||
if (ee->no_comp_sync) return;
|
||||
if (!_ecore_evas_app_comp_sync) return;
|
||||
if (ee->engine.x.sync_counter)
|
||||
{
|
||||
if (ee->engine.x.sync_began)
|
||||
{
|
||||
if (!ee->engine.x.sync_cancel)
|
||||
{
|
||||
ecore_x_e_comp_sync_draw_done_send(ee->engine.x.win_root,
|
||||
ee->prop.window);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
|
@ -2219,6 +2219,11 @@ EAPI Ecore_X_Sync_Counter ecore_x_e_comp_sync_counter_get(
|
|||
EAPI void ecore_x_e_comp_sync_draw_done_send(
|
||||
Ecore_X_Window root,
|
||||
Ecore_X_Window win);
|
||||
EAPI void ecore_x_e_comp_sync_draw_size_done_send(
|
||||
Ecore_X_Window root,
|
||||
Ecore_X_Window win,
|
||||
int w,
|
||||
int h);
|
||||
EAPI void ecore_x_e_comp_sync_supported_set(
|
||||
Ecore_X_Window root,
|
||||
Eina_Bool enabled);
|
||||
|
|
|
@ -800,7 +800,7 @@ ecore_x_e_comp_sync_draw_done_send(Ecore_X_Window root, Ecore_X_Window win)
|
|||
xev.xclient.message_type = ECORE_X_ATOM_E_COMP_SYNC_DRAW_DONE;
|
||||
xev.xclient.format = 32;
|
||||
xev.xclient.data.l[0] = win;
|
||||
xev.xclient.data.l[1] = 0; // later
|
||||
xev.xclient.data.l[1] = 0; // version
|
||||
xev.xclient.data.l[2] = 0; // later
|
||||
xev.xclient.data.l[3] = 0; // later
|
||||
xev.xclient.data.l[4] = 0; // later
|
||||
|
@ -810,6 +810,31 @@ ecore_x_e_comp_sync_draw_done_send(Ecore_X_Window root, Ecore_X_Window win)
|
|||
&xev);
|
||||
} /* ecore_x_e_comp_sync_draw_done_send */
|
||||
|
||||
EAPI void
|
||||
ecore_x_e_comp_sync_draw_size_done_send(Ecore_X_Window root, Ecore_X_Window win, int w, int h)
|
||||
{
|
||||
XEvent xev;
|
||||
|
||||
LOGFN(__FILE__, __LINE__, __FUNCTION__);
|
||||
if (!root)
|
||||
root = DefaultRootWindow(_ecore_x_disp);
|
||||
|
||||
xev.xclient.type = ClientMessage;
|
||||
xev.xclient.display = _ecore_x_disp;
|
||||
xev.xclient.window = win;
|
||||
xev.xclient.message_type = ECORE_X_ATOM_E_COMP_SYNC_DRAW_DONE;
|
||||
xev.xclient.format = 32;
|
||||
xev.xclient.data.l[0] = win;
|
||||
xev.xclient.data.l[1] = 1; // version
|
||||
xev.xclient.data.l[2] = w; // win width at draw time
|
||||
xev.xclient.data.l[3] = h; // win height at draw time
|
||||
xev.xclient.data.l[4] = 0; // later
|
||||
|
||||
XSendEvent(_ecore_x_disp, root, False,
|
||||
SubstructureRedirectMask | SubstructureNotifyMask,
|
||||
&xev);
|
||||
} /* ecore_x_e_comp_sync_draw_done_send */
|
||||
|
||||
EAPI void
|
||||
ecore_x_e_comp_sync_supported_set(Ecore_X_Window root, Eina_Bool enabled)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue