diff --git a/legacy/ecore/src/lib/ecore_x/Ecore_X.h b/legacy/ecore/src/lib/ecore_x/Ecore_X.h index b3a0164cc8..458d0ed584 100644 --- a/legacy/ecore/src/lib/ecore_x/Ecore_X.h +++ b/legacy/ecore/src/lib/ecore_x/Ecore_X.h @@ -1636,6 +1636,7 @@ EAPI int ecore_x_xregion_rect_contain(Ecore_X_XRegion *region, Ecor /* ecore_x_sync.c */ EAPI Ecore_X_Sync_Alarm ecore_x_sync_alarm_new(Ecore_X_Sync_Counter counter); EAPI int ecore_x_sync_alarm_free(Ecore_X_Sync_Alarm alarm); +EAPI int ecore_x_sync_counter_query(Ecore_X_Sync_Counter counter, unsigned int *val); /* ecore_x_randr.c */ typedef struct _Ecore_X_Screen_Size Ecore_X_Screen_Size; diff --git a/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_sync.c b/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_sync.c index e66fb15ed8..a9d1e652fa 100644 --- a/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_sync.c +++ b/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_sync.c @@ -52,3 +52,17 @@ ecore_x_sync_alarm_free(Ecore_X_Sync_Alarm alarm) { return XSyncDestroyAlarm(_ecore_x_disp, alarm); } + +EAPI int +ecore_x_sync_counter_query(Ecore_X_Sync_Counter counter, unsigned int *val) +{ + XSyncValue value; + + if (XSyncQueryCounter(_ecore_x_disp, counter, &value)) + { + *val = (unsigned int) XSyncValueLow32(value); + return 1; + } + + return 0; +}