yakov pushed a commit to branch master.

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

commit 3ce8b3f1451700f9a2da60c2e717c644220e2449
Author: Yakov Goldberg <yako...@samsung.com>
Date:   Tue Jun 30 11:30:36 2015 +0300

    vector: add a basic circle test
    
    Separate test for circle was added because results are quite
    different for shapes/backends
    
    For Cairo backend: rect == 0.72, circle = 0.32 -> 125% slower
    For Freetype backend: rect == 2.81, circle = 2.26 -> 24% slower
---
 src/bin/Makefile.am       |   1 +
 src/bin/tests.h           |   1 +
 src/bin/vg_basic_circle.c | 116 ++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 118 insertions(+)

diff --git a/src/bin/Makefile.am b/src/bin/Makefile.am
index 25a7847..d37babc 100644
--- a/src/bin/Makefile.am
+++ b/src/bin/Makefile.am
@@ -126,6 +126,7 @@ image_mask_11.c \
 image_mask_12.c \
 image_mask_13.c \
 vg_basic_rect.c \
+vg_basic_circle.c \
 vg_basic_gradient.c \
 vg_scaled.c
 # \
diff --git a/src/bin/tests.h b/src/bin/tests.h
index c7894bc..0724ee3 100644
--- a/src/bin/tests.h
+++ b/src/bin/tests.h
@@ -107,6 +107,7 @@
 #include "image_mask_12.c"
 #include "image_mask_13.c"
 #include "vg_basic_rect.c"
+#include "vg_basic_circle.c"
 #include "vg_basic_gradient.c"
 #include "vg_scaled.c"
 #if 0 // test disabled - evas having code disabled
diff --git a/src/bin/vg_basic_circle.c b/src/bin/vg_basic_circle.c
new file mode 100644
index 0000000..ea8bd25
--- /dev/null
+++ b/src/bin/vg_basic_circle.c
@@ -0,0 +1,116 @@
+#undef FNAME
+#undef NAME
+#undef ICON
+
+/* metadata */
+#define FNAME vg_basic_circle_start
+#define NAME "VG Basic Circle"
+#define ICON "vector.png"
+
+#ifndef PROTO
+# ifndef UI
+#  include "main.h"
+
+/* standard var */
+static int done = 0;
+
+/* private data */
+static Eo *o_shapes[OBNUM];
+
+/* setup
+ * Creating Evas Objects, each holds a vector shape.
+ * Then start moving these Evas Objects. */
+static void _setup(void)
+{
+   unsigned int i;
+
+   for (i = 0; i < OBNUM; i++)
+     {
+        Efl_VG *root, *circle;
+        Eo *vector;
+        double r = 35, stroke_w = 3;
+
+        vector = eo_add(EVAS_VG_CLASS, evas);
+        o_shapes[i] = vector;
+        eo_do(vector,
+              efl_gfx_size_set(r * 2 + stroke_w * 2, r * 2 + stroke_w * 2),
+              efl_gfx_position_set(0, 0),
+              efl_gfx_visible_set(EINA_TRUE));
+
+        eo_do(vector, root = evas_obj_vg_root_node_get());
+
+        circle = eo_add(EFL_VG_SHAPE_CLASS, root);
+        eo_do(circle,
+              efl_gfx_shape_append_circle(r + stroke_w, r + stroke_w, r),
+              efl_gfx_shape_stroke_width_set(stroke_w),
+              efl_gfx_shape_stroke_color_set(128, 0, 128, 128),
+              efl_gfx_shape_stroke_join_set(EFL_GFX_JOIN_ROUND));
+     }
+   done = 0;
+}
+
+/* cleanup */
+static void _cleanup(void)
+{
+   unsigned int i;
+
+   for (i = 0; i < OBNUM; i++) eo_del(o_shapes[i]);
+}
+
+/* loop - do things */
+static void _loop(double t, int f)
+{
+   int i;
+   Evas_Coord x, y, w = 200, h = 200;
+   for (i = 0; i < OBNUM; i++)
+     {
+        x = (win_w / 2) - (w / 2);
+        x += sin((double)(f + (i * 13)) / (36.7 * SLOW)) * (w / 2);
+        y = (win_h / 2) - (h / 2);
+        y += cos((double)(f + (i * 28)) / (43.8 * SLOW)) * (w / 2);
+        eo_do(o_shapes[i], efl_gfx_position_set(x, y));
+     }
+   FPS_STD(NAME);
+}
+
+/* prepend special key handlers if interactive (before STD) */
+static void _key(char *key)
+{
+   KEY_STD;
+}
+
+
+
+
+
+
+
+
+
+
+
+
+/* template stuff - ignore */
+# endif
+#endif
+
+#ifdef UI
+_ui_menu_item_add(ICON, NAME, FNAME);
+#endif
+
+#ifdef PROTO
+void FNAME(void);
+#endif
+
+#ifndef PROTO
+# ifndef UI
+void FNAME(void)
+{
+   ui_func_set(_key, _loop);
+   _setup();
+}
+# endif
+#endif
+#undef FNAME
+#undef NAME
+#undef ICON

-- 


Reply via email to