cedric pushed a commit to branch master.

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

commit 8e8a0795150dbc65e084d9f4cd28a099144b0e83
Author: Cedric BAIL <ced...@osg.samsung.com>
Date:   Mon May 18 15:44:41 2015 +0200

    snapshot: add a test with blur.
---
 src/bin/Makefile.am                   |   3 +-
 src/bin/snapshot_widgets_file_icons.c | 211 ++++++++++++++++++++++++++++++++++
 src/bin/tests.h                       |   1 +
 3 files changed, 214 insertions(+), 1 deletion(-)

diff --git a/src/bin/Makefile.am b/src/bin/Makefile.am
index d37babc..754b8ab 100644
--- a/src/bin/Makefile.am
+++ b/src/bin/Makefile.am
@@ -128,7 +128,8 @@ image_mask_13.c \
 vg_basic_rect.c \
 vg_basic_circle.c \
 vg_basic_gradient.c \
-vg_scaled.c
+vg_scaled.c \
+snapshot_widgets_file_icons.c
 # \
 # image_mask_14.c \
 # image_mask_15.c
diff --git a/src/bin/snapshot_widgets_file_icons.c 
b/src/bin/snapshot_widgets_file_icons.c
new file mode 100644
index 0000000..c78b9d4
--- /dev/null
+++ b/src/bin/snapshot_widgets_file_icons.c
@@ -0,0 +1,211 @@
+#define EFL_GFX_FILTER_BETA
+
+#undef FNAME
+#undef NAME
+#undef ICON
+
+/* metadata */
+#define FNAME snapshot_widgets_file_icons_start
+#define NAME "Snapshot Widgets File Icons"
+#define ICON "widgets.png"
+
+#ifndef PROTO
+# ifndef UI
+#  include "main.h"
+
+/* standard var */
+static int done = 0;
+/* private data */
+#define NUM 512
+#define ICON_SIZE 64
+static Evas_Object *o_images[NUM];
+static Evas_Object *o_texts[NUM];
+static Evas_Object *o_snap;
+
+static const char *icons[] =
+{
+   "bug.png",
+   "bulb.png",
+   "camera.png",
+   "colorbox.png",
+
+   "e.png",
+   "error.png",
+   "flower.png",
+   "house.png",
+
+   "mushroom.png",
+   "pulse.png",
+   "typewriter.png",
+   "warning.png",
+
+   "watch.png"
+};
+
+/* setup */
+static void _setup(void)
+{
+   Evas_Object *o;
+   Evas_Coord x, y;
+   int i;
+
+   x = y = 0;
+   for (i = 0; i < NUM; i++)
+     {
+        Evas_Coord tw, th, cent;
+
+        o = eo_add(EVAS_IMAGE_CLASS, evas);
+        o_images[i] = o;
+        eo_do(o,
+              efl_file_set(build_path(icons[i % 13]), NULL),
+              efl_gfx_fill_set(0, 0, ICON_SIZE, ICON_SIZE),
+              efl_gfx_size_set(ICON_SIZE, ICON_SIZE),
+              efl_gfx_position_set(x + 8, y),
+              efl_gfx_visible_set(EINA_TRUE));
+
+        o = eo_add(EVAS_TEXT_CLASS, evas);
+        o_texts[i] = o;
+        eo_do(o,
+              efl_text_properties_font_set("Vera-Bold", 10),
+              efl_text_set(icons[i % 13]),
+              evas_obj_text_style_set(EVAS_TEXT_STYLE_FAR_SOFT_SHADOW),
+              efl_gfx_color_set(255, 255, 255, 255),
+              evas_obj_text_shadow_color_set(0, 0, 0, 24),
+              efl_gfx_visible_set(EINA_TRUE),
+              efl_gfx_size_get(&tw, &th));
+        cent = ICON_SIZE + 16 - tw / 2;
+        eo_do(o, efl_gfx_position_set(x + cent, y + ICON_SIZE + 4));
+        x += ICON_SIZE + 16;
+        if (x > win_w)
+          {
+             x = 0;
+             y += ICON_SIZE + 16;
+          }
+     }
+
+   const char *filter =
+      "a = buffer { 'rgba' }"
+      "blend {}"
+      "blur { 5, dst = a }"
+      "blend { src = a, color = '#ff08' }"
+     ;
+
+   o = eo_add(EVAS_IMAGE_CLASS, evas);
+   o_snap = o;
+   eo_do(o,
+         efl_gfx_visible_set(EINA_TRUE),
+         efl_gfx_position_set(50, 50),
+         efl_gfx_size_set(200, 200),
+         efl_gfx_fill_set(0, 0, 200, 200),
+         evas_obj_image_snapshot_set(EINA_TRUE),
+         efl_gfx_filter_program_set(filter, "test"));
+
+   done = 0;
+}
+
+/* cleanup */
+static void _cleanup(void)
+{
+   int i;
+   for (i = 0; i < NUM; i++)
+     {
+        eo_del(o_images[i]);
+        eo_del(o_texts[i]);
+     }
+   eo_del(o_snap);
+}
+
+/* loop - do things */
+static int dx = 2;
+static int dy = 2;
+
+static void _loop(double t, int f)
+{
+   int i;
+   Evas_Coord x, y, tw, th, cent;
+   x = 0;
+   y = 0 - f;
+   for (i = 0; i < NUM; i++)
+     {
+        eo_do(o_images[i], efl_gfx_position_set(x + 8, y));
+        eo_do(o_texts[i], efl_gfx_size_get(&tw, &th));
+        cent = (ICON_SIZE + 16 - tw) / 2;
+        eo_do(o_texts[i], efl_gfx_position_set(x + cent, y + ICON_SIZE + 4));
+        x += ICON_SIZE + 16;
+        if (x > win_w)
+          {
+             x = 0;
+             y += ICON_SIZE + 16;
+          }
+     }
+
+   if (1)
+     {
+        evas_object_geometry_get(o_snap, &x, &y, NULL, NULL);
+        if (dx > 0)
+          {
+             if (x + dx >= win_w) dx = -dx;
+          }
+        else
+          {
+             if (x + dx <= 0) dx = -dx;
+          }
+        x = x + dx;
+
+        if (dy > 0)
+          {
+             if (y + dy >= win_h) dy = -dy;
+          }
+        else
+          {
+             if (y + dy <= 0) dy = -dy;
+          }
+        x = x + dx;
+
+        evas_object_move(o_snap, 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
diff --git a/src/bin/tests.h b/src/bin/tests.h
index 0724ee3..b03d0f0 100644
--- a/src/bin/tests.h
+++ b/src/bin/tests.h
@@ -110,6 +110,7 @@
 #include "vg_basic_circle.c"
 #include "vg_basic_gradient.c"
 #include "vg_scaled.c"
+#include "snapshot_widgets_file_icons.c"
 #if 0 // test disabled - evas having code disabled
 #include "image_mask_14.c"
 #include "image_mask_15.c"

-- 


Reply via email to