cedric pushed a commit to branch master.

http://git.enlightenment.org/tools/expedite.git/commit/?id=fe8e23cbc6ed8daab6d47ffd9cadfbcf444a0006

commit fe8e23cbc6ed8daab6d47ffd9cadfbcf444a0006
Author: Cedric BAIL <[email protected]>
Date:   Tue Jun 13 14:33:56 2017 -0700

    make it possible to follow output tick.
---
 src/bin/main.c | 24 ++++++++++++++++++++++--
 src/bin/main.h |  1 +
 src/bin/ui.c   |  7 +++++--
 3 files changed, 28 insertions(+), 4 deletions(-)

diff --git a/src/bin/main.c b/src/bin/main.c
index cc812c8..4e26070 100644
--- a/src/bin/main.c
+++ b/src/bin/main.c
@@ -1135,6 +1135,7 @@ static const Ecore_Getopt optdesc = {
     ECORE_GETOPT_STORE_TRUE('m', "compat", "Output compatible with 
expedite-cmp"),
     ECORE_GETOPT_STORE_TRUE('y', "async", "Enable async output"),
     ECORE_GETOPT_STORE_TRUE('a', "all", "Run all tests"),
+    ECORE_GETOPT_STORE_FALSE('i', "tick", "Follow output animator tick"),
     ECORE_GETOPT_LICENSE('L', "license"),
     ECORE_GETOPT_COPYRIGHT('C', "copyright"),
     ECORE_GETOPT_VERSION('V', "version"),
@@ -1171,6 +1172,8 @@ static const Expedite_Resolution resolutions[] = {
   { NULL, 0, 0 }
 };
 
+Eina_Bool tick = EINA_TRUE;
+
 static void
 _cb_delete(Ecore_Evas *ee EINA_UNUSED)
 {
@@ -1180,6 +1183,22 @@ _cb_delete(Ecore_Evas *ee EINA_UNUSED)
 static Eina_Bool
 _cb_anim(void *data EINA_UNUSED)
 {
+   static double last = 0;
+   static double avg = 0;
+   static unsigned long long count = 0;
+   double current;
+
+   current = ecore_loop_time_get();
+   if (count++)
+     {
+        avg += current - last;
+        if (abs(current - last - (avg / (count - 1))) > 0.05)
+          fprintf(stderr, "delta: %f vs %f (%f)\n",
+                  current - last,
+                  avg / (count - 1));
+     }
+   last = current;
+
    ui_loop(NULL);
    return EINA_TRUE;
 }
@@ -1230,6 +1249,7 @@ main(int argc, char **argv)
      ECORE_GETOPT_VALUE_BOOL(cmp_report),
      ECORE_GETOPT_VALUE_BOOL(async),
      ECORE_GETOPT_VALUE_BOOL(all_tests),
+     ECORE_GETOPT_VALUE_BOOL(tick),
      ECORE_GETOPT_VALUE_BOOL(quit_option),
      ECORE_GETOPT_VALUE_BOOL(quit_option),
      ECORE_GETOPT_VALUE_BOOL(quit_option),
@@ -1351,7 +1371,7 @@ main(int argc, char **argv)
 
    choosen_engine = ecore_evas_engine_name_get(ee);
    ecore_evas_callback_delete_request_set(ee, _cb_delete);
-   ecore_evas_callback_post_render_set(ee, _cb_post_render);
+   if (tick) ecore_evas_callback_post_render_set(ee, _cb_post_render);
 
    evas = ecore_evas_get(ee);
 
@@ -1390,7 +1410,7 @@ main(int argc, char **argv)
    if (all_tests) ui_all();
 
    anim = ecore_animator_add(_cb_anim, ee);
-   ecore_animator_custom_tick();
+   if (tick) ecore_animator_custom_tick();
    ecore_main_loop_begin();
    ecore_animator_del(anim);
 
diff --git a/src/bin/main.h b/src/bin/main.h
index cba52c7..cd481b1 100644
--- a/src/bin/main.h
+++ b/src/bin/main.h
@@ -52,6 +52,7 @@ extern const char *choosen_engine;
 extern Eina_Bool fullscreen;
 extern Eina_Bool cmp_report;
 extern char *output;
+extern Eina_Bool tick;
 
 typedef struct _Expedite_Resolution Expedite_Resolution;
 typedef struct _Expedite_Engine Expedite_Engine;
diff --git a/src/bin/ui.c b/src/bin/ui.c
index 40e4124..78e3db1 100644
--- a/src/bin/ui.c
+++ b/src/bin/ui.c
@@ -664,8 +664,11 @@ ui_func_set(void (*kfunc) (const char *key), void (*lfunc) 
(double t, int f))
    f_loop = f_start = 0;
    ui_fps(0.0);
 
-   ecore_animator_source_set(ECORE_ANIMATOR_SOURCE_CUSTOM);
-   ecore_animator_custom_tick();
+   if (tick)
+     {
+        ecore_animator_source_set(ECORE_ANIMATOR_SOURCE_CUSTOM);
+        ecore_animator_custom_tick();
+     }
 }
 
 void

-- 


Reply via email to