diff options
author | Chris Michael <cp.michael@samsung.com> | 2017-11-20 08:25:25 -0500 |
---|---|---|
committer | Chris Michael <cp.michael@samsung.com> | 2018-01-31 11:18:02 -0500 |
commit | c181df8d0fc5ddff16ef71153ea744f2806a9a2b (patch) | |
tree | 7030de349e65e77642170788923e7a422fb1f25d | |
parent | 9302406f139f419e9dca5bd21ec93b6a62bae2f0 (diff) | |
download | efl-c181df8d0fc5ddff16ef71153ea744f2806a9a2b.tar.gz |
ecore-evas-drm: Make calls to ecore_animator_tick take output rectangle
Signed-off-by: Chris Michael <cp.michael@samsung.com>
-rw-r--r-- | src/modules/ecore_evas/engines/drm/ecore_evas_drm.c | 19 |
1 files changed, 15 insertions, 4 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 32d016f03a..c2e5911154 100644 --- a/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c +++ b/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c @@ -733,11 +733,15 @@ _cb_pageflip(int fd EINA_UNUSED, unsigned int frame EINA_UNUSED, unsigned int se if (edata->ticking) { double t; + int x, y, w, h; t = (double)sec + ((double)usec / 1000000); if (!edata->once) t = ecore_time_get(); - ecore_evas_animator_tick(ee, NULL, t - edata->offset); + ecore_drm2_output_info_get(output, &x, &y, &w, &h, NULL); + + ecore_evas_animator_tick(ee, &(Eina_Rectangle){x, y, w, h}, + t - edata->offset); } else if (ret) ecore_drm2_fb_flip(NULL, output); @@ -767,13 +771,20 @@ _drm_evas_changed(Ecore_Evas *ee, Eina_Bool changed) static void _tick_job(void *data) { + Ecore_Drm2_Output *output; Ecore_Evas_Engine_Drm_Data *edata; Ecore_Evas *ee; + int x, y, w, h; - ee = data; + output = data; + ee = ecore_drm2_output_user_data_get(output); edata = ee->engine.data; + + ecore_drm2_output_info_get(output, &x, &y, &w, &h, NULL); + edata->tick_job = NULL; - ecore_evas_animator_tick(ee, NULL, edata->tick_job_timestamp); + ecore_evas_animator_tick(ee, &(Eina_Rectangle){x, y, w, h}, + edata->tick_job_timestamp); } static void @@ -836,7 +847,7 @@ _drm_animator_register(Ecore_Evas *ee) { edata->tick_job_timestamp = (double)sec + ((double)usec / 1000000); - edata->tick_job = ecore_job_add(_tick_job, ee); + edata->tick_job = ecore_job_add(_tick_job, output); break; } } |