summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDerek Foreman <derekf@osg.samsung.com>2017-07-12 16:30:07 -0500
committerDerek Foreman <derekf@osg.samsung.com>2017-07-13 11:31:11 -0500
commitb5f7f3c274fd841e6c6e967e456100cb57b75a32 (patch)
tree78f14c26a697c5b1239b3ccfaaef74d5f8b0d4d6
parenta9196ebc3a4705a9d97360d36d95364f4337ecd5 (diff)
downloadefl-b5f7f3c274fd841e6c6e967e456100cb57b75a32.tar.gz
ecore_evas_drm: Provide a last_tick_get callback
Allow the drm engine to provide a tick timestamp for the previous vblank interval. ref T5462
-rw-r--r--src/modules/ecore_evas/engines/drm/ecore_evas_drm.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c b/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c
index 96d0c27656..dd46ce00d0 100644
--- a/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c
+++ b/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c
@@ -673,6 +673,19 @@ _drm_animator_unregister(Ecore_Evas *ee)
edata->ticking = EINA_FALSE;
}
+static double
+_drm_last_tick_get(Ecore_Evas *ee)
+{
+ Ecore_Evas_Engine_Drm_Data *edata;
+ long sec, usec;
+
+ edata = ee->engine.data;
+ if (!ecore_drm2_output_blanktime_get(edata->output, &sec, &usec))
+ return -1.0;
+
+ return sec + usec / 1000000.0;
+}
+
static Ecore_Evas_Engine_Func _ecore_evas_drm_engine_func =
{
_drm_free,
@@ -760,7 +773,7 @@ static Ecore_Evas_Engine_Func _ecore_evas_drm_engine_func =
NULL, //fn_callback_device_mouse_out_set
NULL, //fn_pointer_device_xy_get
NULL, //fn_prepare
- NULL, //fn_last_tick_get
+ _drm_last_tick_get,
};
static Ecore_Evas *