diff --git a/src/bin/Makefile.am b/src/bin/Makefile.am index 956d794..bde63dc 100644 --- a/src/bin/Makefile.am +++ b/src/bin/Makefile.am @@ -26,6 +26,10 @@ image_blend_nearest_scaled.c \ image_blend_nearest_solid_scaled.c \ image_blend_smooth_scaled.c \ image_blend_smooth_solid_scaled.c \ +image_blend_nearest_same_scaled.c \ +image_blend_nearest_solid_same_scaled.c \ +image_blend_smooth_same_scaled.c \ +image_blend_smooth_solid_same_scaled.c \ image_blend_border.c \ image_blend_solid_border.c \ image_blend_border_recolor.c \ diff --git a/src/bin/image_blend_nearest_same_scaled.c b/src/bin/image_blend_nearest_same_scaled.c new file mode 100644 index 0000000..c680ed5 --- /dev/null +++ b/src/bin/image_blend_nearest_same_scaled.c @@ -0,0 +1,104 @@ +#undef FNAME +#undef NAME +#undef ICON + +/* metadata */ +#define FNAME image_blend_nearest_same_scaled_start +#define NAME "Image Blend Nearest Same Scaled" +#define ICON "flower.png" + +#ifndef PROTO +# ifndef UI +# include "main.h" + +/* standard var */ +static int done = 0; +/* private data */ +static Evas_Object *o_images[OBNUM]; + +/* setup */ +static void _setup(void) +{ + int i; + Evas_Object *o; + for (i = 0; i < OBNUM; i++) + { + o = evas_object_image_add(evas); + o_images[i] = o; + evas_object_image_file_set(o, build_path("logo.png"), NULL); + evas_object_image_smooth_scale_set(o, 0); + evas_object_show(o); + } + done = 0; +} + +/* cleanup */ +static void _cleanup(void) +{ + int i; + for (i = 0; i < OBNUM; i++) evas_object_del(o_images[i]); +} + +/* loop - do things */ +static void _loop(double t, int f) +{ + int i; + Evas_Coord x, y, w, h, w0, h0; + for (i = 0; i < OBNUM; i++) + { + w0 = 80; + h0 = 80; + w = 40 + ((i % 3) * (w0 / 2)); + h = 40 + ((i % 3) * (h0 / 2)); + x = (win_w / 2) - (w / 2); + x += sin((double)(f + (i * 13)) / (36.7 * SLOW)) * (w0 / 2); + y = (win_h / 2) - (h / 2); + y += cos((double)(f + (i * 28)) / (43.8 * SLOW)) * (h0 / 2); + evas_object_move(o_images[i], x, y); + evas_object_resize(o_images[i], w, h); + evas_object_image_fill_set(o_images[i], 0, 0, w, h); + } + 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/image_blend_nearest_solid_same_scaled.c b/src/bin/image_blend_nearest_solid_same_scaled.c new file mode 100644 index 0000000..060a995 --- /dev/null +++ b/src/bin/image_blend_nearest_solid_same_scaled.c @@ -0,0 +1,104 @@ +#undef FNAME +#undef NAME +#undef ICON + +/* metadata */ +#define FNAME image_blend_nearest_solid_same_scaled_start +#define NAME "Image Blend Nearest Solid Same Scaled" +#define ICON "flower.png" + +#ifndef PROTO +# ifndef UI +# include "main.h" + +/* standard var */ +static int done = 0; +/* private data */ +static Evas_Object *o_images[OBNUM]; + +/* setup */ +static void _setup(void) +{ + int i; + Evas_Object *o; + for (i = 0; i < OBNUM; i++) + { + o = evas_object_image_add(evas); + o_images[i] = o; + evas_object_image_file_set(o, build_path("image.png"), NULL); + evas_object_image_smooth_scale_set(o, 0); + evas_object_show(o); + } + done = 0; +} + +/* cleanup */ +static void _cleanup(void) +{ + int i; + for (i = 0; i < OBNUM; i++) evas_object_del(o_images[i]); +} + +/* loop - do things */ +static void _loop(double t, int f) +{ + int i; + Evas_Coord x, y, w, h, w0, h0; + for (i = 0; i < OBNUM; i++) + { + w0 = 80; + h0 = 80; + w = 5 + ((1.0 + cos((double)(f + (i * 10)) / (7.4 * SLOW) )) * w0 * 2); + h = 5 + ((1.0 + sin((double)(f + (i * 19)) / (12.6 * SLOW) )) * h0 * 2); + x = (win_w / 2) - (w / 2); + x += sin((double)(f + (i * 13)) / (36.7 * SLOW)) * (w0 / 2); + y = (win_h / 2) - (h / 2); + y += cos((double)(f + (i * 28)) / (43.8 * SLOW)) * (h0 / 2); + evas_object_move(o_images[i], x, y); + evas_object_resize(o_images[i], w, h); + evas_object_image_fill_set(o_images[i], 0, 0, w, h); + } + 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/image_blend_smooth_same_scaled.c b/src/bin/image_blend_smooth_same_scaled.c new file mode 100644 index 0000000..5d2bdd3 --- /dev/null +++ b/src/bin/image_blend_smooth_same_scaled.c @@ -0,0 +1,104 @@ +#undef FNAME +#undef NAME +#undef ICON + +/* metadata */ +#define FNAME image_blend_smooth_same_scaled_start +#define NAME "Image Blend Smooth Same Scaled" +#define ICON "flower.png" + +#ifndef PROTO +# ifndef UI +# include "main.h" + +/* standard var */ +static int done = 0; +/* private data */ +static Evas_Object *o_images[OBNUM]; + +/* setup */ +static void _setup(void) +{ + int i; + Evas_Object *o; + for (i = 0; i < OBNUM; i++) + { + o = evas_object_image_add(evas); + o_images[i] = o; + evas_object_image_file_set(o, build_path("logo.png"), NULL); + evas_object_image_smooth_scale_set(o, 1); + evas_object_show(o); + } + done = 0; +} + +/* cleanup */ +static void _cleanup(void) +{ + int i; + for (i = 0; i < OBNUM; i++) evas_object_del(o_images[i]); +} + +/* loop - do things */ +static void _loop(double t, int f) +{ + int i; + Evas_Coord x, y, w, h, w0, h0; + for (i = 0; i < OBNUM; i++) + { + w0 = 80; + h0 = 80; + w = 40 + ((i % 3) * (w0 / 2)); + h = 40 + ((i % 3) * (h0 / 2)); + x = (win_w / 2) - (w / 2); + x += sin((double)(f + (i * 13)) / (36.7 * SLOW)) * (w0 / 2); + y = (win_h / 2) - (h / 2); + y += cos((double)(f + (i * 28)) / (43.8 * SLOW)) * (h0 / 2); + evas_object_move(o_images[i], x, y); + evas_object_resize(o_images[i], w, h); + evas_object_image_fill_set(o_images[i], 0, 0, w, h); + } + 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/image_blend_smooth_solid_same_scaled.c b/src/bin/image_blend_smooth_solid_same_scaled.c new file mode 100644 index 0000000..8ab7ce5 --- /dev/null +++ b/src/bin/image_blend_smooth_solid_same_scaled.c @@ -0,0 +1,104 @@ +#undef FNAME +#undef NAME +#undef ICON + +/* metadata */ +#define FNAME image_blend_smooth_solid_same_scaled_start +#define NAME "Image Blend Smooth Solid Same Scaled" +#define ICON "flower.png" + +#ifndef PROTO +# ifndef UI +# include "main.h" + +/* standard var */ +static int done = 0; +/* private data */ +static Evas_Object *o_images[OBNUM]; + +/* setup */ +static void _setup(void) +{ + int i; + Evas_Object *o; + for (i = 0; i < OBNUM; i++) + { + o = evas_object_image_add(evas); + o_images[i] = o; + evas_object_image_file_set(o, build_path("image.png"), NULL); + evas_object_image_smooth_scale_set(o, 1); + evas_object_show(o); + } + done = 0; +} + +/* cleanup */ +static void _cleanup(void) +{ + int i; + for (i = 0; i < OBNUM; i++) evas_object_del(o_images[i]); +} + +/* loop - do things */ +static void _loop(double t, int f) +{ + int i; + Evas_Coord x, y, w, h, w0, h0; + for (i = 0; i < OBNUM; i++) + { + w0 = 80; + h0 = 80; + w = 40 + ((i % 3) * (w0 / 2)); + h = 40 + ((i % 3) * (h0 / 2)); + x = (win_w / 2) - (w / 2); + x += sin((double)(f + (i * 13)) / (36.7 * SLOW)) * (w0 / 2); + y = (win_h / 2) - (h / 2); + y += cos((double)(f + (i * 28)) / (43.8 * SLOW)) * (h0 / 2); + evas_object_move(o_images[i], x, y); + evas_object_resize(o_images[i], w, h); + evas_object_image_fill_set(o_images[i], 0, 0, w, h); + } + 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/main.h b/src/bin/main.h index 2e2eb1b..b05869a 100644 --- a/src/bin/main.h +++ b/src/bin/main.h @@ -68,6 +68,7 @@ #include "about.h" #define OBNUM 128 +#define LOOPS 512 extern Evas *evas; extern int win_w, win_h; @@ -87,7 +88,7 @@ int engine_abort(void); } #define FPS_STD(x) \ - if ((f >= 32) && (!done)) \ + if ((f >= LOOPS) && (!done)) \ { \ double fps; \ fps = (double)f / t; \ diff --git a/src/bin/tests.h b/src/bin/tests.h index bb0999d..7d627a1 100644 --- a/src/bin/tests.h +++ b/src/bin/tests.h @@ -4,6 +4,10 @@ #include "image_blend_nearest_solid_scaled.c" #include "image_blend_smooth_scaled.c" #include "image_blend_smooth_solid_scaled.c" +#include "image_blend_nearest_same_scaled.c" +#include "image_blend_nearest_solid_same_scaled.c" +#include "image_blend_smooth_same_scaled.c" +#include "image_blend_smooth_solid_same_scaled.c" #include "image_blend_border.c" #include "image_blend_solid_border.c" #include "image_blend_border_recolor.c"