diff --git a/src/bin/Makefile.am b/src/bin/Makefile.am index 022bb30..78383d5 100644 --- a/src/bin/Makefile.am +++ b/src/bin/Makefile.am @@ -113,7 +113,8 @@ poly_blend.c \ proxy_image.c \ proxy_text_fixed.c \ proxy_text_random.c \ -line_blend.c +line_blend.c \ +image_blend_many_smooth_same_scaled.c # \ # image_mask.c \ # image_mask_2.c \ diff --git a/src/bin/image_blend_many_smooth_same_scaled.c b/src/bin/image_blend_many_smooth_same_scaled.c new file mode 100644 index 0000000..2f56d8a --- /dev/null +++ b/src/bin/image_blend_many_smooth_same_scaled.c @@ -0,0 +1,109 @@ +#undef FNAME +#undef NAME +#undef ICON + +/* metadata */ +#define FNAME image_blend_many_smooth_down_scaled_start +#define NAME "Image Blend Many Smooth Down Scaled" +#define ICON "blend.png" + +#ifndef PROTO +# ifndef UI +# include "main.h" + +#define MANYNUM 8192 + +/* standard var */ +static int done = 0; +/* private data */ +static Evas_Object *o_images[MANYNUM]; + +/* setup */ +static void _setup(void) +{ + int i, w, h, n; + Evas_Object *o; + for (i = 0; i < MANYNUM; i++) + { + o = eo_add(EVAS_OBJ_IMAGE_CLASS, evas); + o_images[i] = o; + n = rnd() % 100; + w = 3 + ((n * (60 - 3)) / 100); + h = 4 + ((n * (80 - 4)) / 100); + if (o) + eo_do(o, + evas_obj_image_file_set(build_path("logo.png"), NULL), + evas_obj_image_smooth_scale_set(1), + evas_obj_size_set(w, h), + evas_obj_image_fill_set(0, 0, w, h), + evas_obj_visibility_set(EINA_TRUE)); + } + done = 0; +} + +/* cleanup */ +static void _cleanup(void) +{ + int i; + for (i = 0; i < MANYNUM; i++) eo_del(o_images[i]); +} + +/* loop - do things */ +static void _loop(double t, int f) +{ + int i; + Evas_Coord x, y, w, h; + for (i = 0; i < MANYNUM; i++) + { + eo_do(o_images[i], evas_obj_size_get(&w, &h)); + x = (win_w / 2) - (w / 2); + x += sin((double)(f + (i * 13)) / (36.7 * SLOW)) * (win_w / 2); + y = (win_h / 2) - (h / 2); + y += cos((double)(f + (i * 28)) / (43.8 * SLOW)) * (win_h / 2); + if (o_images[i]) + eo_do(o_images[i], evas_obj_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 diff --git a/src/bin/tests.h b/src/bin/tests.h index d9a35ac..d29c9a7 100644 --- a/src/bin/tests.h +++ b/src/bin/tests.h @@ -90,6 +90,7 @@ #include "proxy_text_fixed.c" #include "proxy_text_random.c" #include "line_blend.c" +#include "image_blend_many_smooth_same_scaled.c" #if 0 // test disabled - evas having code disabled #include "image_mask.c" #include "image_mask_2.c" diff --git a/src/bin/ui.c b/src/bin/ui.c index 55c48cd..783d7e2 100644 --- a/src/bin/ui.c +++ b/src/bin/ui.c @@ -163,6 +163,9 @@ static double weights[] = 10.000, 5.000, // test 91 + 1.000, // test 92 (line) + 10.000, // test 93 Image Blend Many Smooth Down Scaled + 20.000, // MASK 20.000, // MASK 2 20.000, // MASK 3