summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDerek Foreman <derekf@osg.samsung.com>2016-11-14 14:12:58 -0600
committerDerek Foreman <derekf@osg.samsung.com>2016-11-14 14:12:58 -0600
commitbf7814aca01e9589062eedcd0d7807b4f3f90ce2 (patch)
tree7bddfa5d2b4afbd00add94dda948300afd2df759
parent2480b4bb22aa9c8141e605561549dd7f848dc1ce (diff)
downloadefl-bf7814aca01e9589062eedcd0d7807b4f3f90ce2.tar.gz
ecore_evas_drm: Use timestamp from pageflip event for animator time
Should be more accurate this way.
-rw-r--r--src/modules/ecore_evas/engines/drm/ecore_evas_drm.c6
1 files changed, 4 insertions, 2 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 79c1c58623..2d8e7897fb 100644
--- a/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c
+++ b/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c
@@ -612,7 +612,7 @@ _cb_drm_event(void *data, Ecore_Fd_Handler *hdlr EINA_UNUSED)
}
static void
-_cb_pageflip(int fd EINA_UNUSED, unsigned int frame EINA_UNUSED, unsigned int sec EINA_UNUSED, unsigned int usec EINA_UNUSED, void *data)
+_cb_pageflip(int fd EINA_UNUSED, unsigned int frame EINA_UNUSED, unsigned int sec, unsigned int usec, void *data)
{
Ecore_Evas *ee;
Ecore_Evas_Engine_Drm_Data *edata;
@@ -627,7 +627,9 @@ _cb_pageflip(int fd EINA_UNUSED, unsigned int frame EINA_UNUSED, unsigned int se
if (edata->ticking)
{
- ecore_evas_animator_tick(ee, NULL, ecore_loop_time_get());
+ double t = (double)sec + ((double)usec / 1000000);
+
+ ecore_evas_animator_tick(ee, NULL, t);
ecore_drm2_fb_flip(NULL, edata->output);
}
else if (ret) ecore_drm2_fb_flip(NULL, edata->output);