diff --git a/src/bin/Makefile.am b/src/bin/Makefile.am index dbacaa3..2fb3854 100644 --- a/src/bin/Makefile.am +++ b/src/bin/Makefile.am @@ -32,6 +32,7 @@ image_quality_scale.c \ image_data_argb.c \ image_data_argb_alpha.c \ image_data_ycbcr601pl.c \ +image_data_ycbcr601pl_wide_stride.c \ image_crossfade.c \ text_basic.c \ text_styles.c \ @@ -42,6 +43,19 @@ textblock_intl.c \ rect_blend.c \ rect_solid.c \ rect_blend_few.c \ -rect_solid_few.c +rect_solid_few.c \ +image_blend_occlude1_few.c \ +image_blend_occlude2_few.c \ +image_blend_occlude3_few.c \ +image_blend_occlude1.c \ +image_blend_occlude2.c \ +image_blend_occlude3.c \ +image_blend_occlude1_many.c \ +image_blend_occlude2_many.c \ +image_blend_occlude3_many.c \ +image_blend_occlude1_very_many.c \ +image_blend_occlude2_very_many.c \ +image_blend_occlude3_very_many.c + expedite_LDFLAGS = @EVAS_LIBS@ @x_libs@ @ddraw_libs@ -lm diff --git a/src/bin/image_blend_occlude1.c b/src/bin/image_blend_occlude1.c new file mode 100644 index 0000000..c9de292 --- /dev/null +++ b/src/bin/image_blend_occlude1.c @@ -0,0 +1,115 @@ +#undef FNAME +#undef NAME +#undef ICON + +/* metadata */ +#define FNAME image_blend_occlude1_start +#define NAME "Image Blend Occlude 1" +#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; + srnd(); + for (i = 0; i < OBNUM; i++) + { + o = evas_object_image_add(evas); + o_images[i] = o; + if (i < (OBNUM / 2)) + evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/logo.png", NULL); + else + { + Evas_Coord x, y; + + evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/image.png", NULL); + x = (win_w / 4) + (((rnd() & 0xff) * ((win_w / 2) - 120)) >> 8); + y = (win_h / 4) + (((rnd() & 0xff) * ((win_h / 2) - 120)) >> 8); + evas_object_move(o, x, y); + } + evas_object_image_fill_set(o, 0, 0, 120, 160); + evas_object_resize(o, 120, 160); + 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; + for (i = 0; i < OBNUM; i++) + { + if (i < (OBNUM / 2)) + { + w = 120; + h = 160; + 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)) * (h / 2); + evas_object_move(o_images[i], 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/image_blend_occlude1_few.c b/src/bin/image_blend_occlude1_few.c new file mode 100644 index 0000000..45aac01 --- /dev/null +++ b/src/bin/image_blend_occlude1_few.c @@ -0,0 +1,118 @@ +#undef FNAME +#undef NAME +#undef ICON + +/* metadata */ +#define FNAME image_blend_occlude1_few_start +#define NAME "Image Blend Occlude 1 Few" +#define ICON "flower.png" + +#ifndef PROTO +# ifndef UI +# include "main.h" + +#undef OBNUM +#define OBNUM 32 + +/* standard var */ +static int done = 0; +/* private data */ +static Evas_Object *o_images[OBNUM]; + +/* setup */ +static void _setup(void) +{ + int i; + Evas_Object *o; + srnd(); + for (i = 0; i < OBNUM; i++) + { + o = evas_object_image_add(evas); + o_images[i] = o; + if (i < (OBNUM / 2)) + evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/logo.png", NULL); + else + { + Evas_Coord x, y; + + evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/image.png", NULL); + x = (win_w / 4) + (((rnd() & 0xff) * ((win_w / 2) - 120)) >> 8); + y = (win_h / 4) + (((rnd() & 0xff) * ((win_h / 2) - 120)) >> 8); + evas_object_move(o, x, y); + } + evas_object_image_fill_set(o, 0, 0, 120, 160); + evas_object_resize(o, 120, 160); + 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; + for (i = 0; i < OBNUM; i++) + { + if (i < (OBNUM / 2)) + { + w = 120; + h = 160; + 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)) * (h / 2); + evas_object_move(o_images[i], 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/image_blend_occlude1_many.c b/src/bin/image_blend_occlude1_many.c new file mode 100644 index 0000000..97da09d --- /dev/null +++ b/src/bin/image_blend_occlude1_many.c @@ -0,0 +1,118 @@ +#undef FNAME +#undef NAME +#undef ICON + +/* metadata */ +#define FNAME image_blend_occlude1_many_start +#define NAME "Image Blend Occlude 1 Many" +#define ICON "flower.png" + +#ifndef PROTO +# ifndef UI +# include "main.h" + +#undef OBNUM +#define OBNUM 320 + +/* standard var */ +static int done = 0; +/* private data */ +static Evas_Object *o_images[OBNUM]; + +/* setup */ +static void _setup(void) +{ + int i; + Evas_Object *o; + srnd(); + for (i = 0; i < OBNUM; i++) + { + o = evas_object_image_add(evas); + o_images[i] = o; + if (i < (OBNUM / 2)) + evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/logo.png", NULL); + else + { + Evas_Coord x, y; + + evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/image.png", NULL); + x = (win_w / 4) + (((rnd() & 0xff) * ((win_w / 2) - 120)) >> 8); + y = (win_h / 4) + (((rnd() & 0xff) * ((win_h / 2) - 120)) >> 8); + evas_object_move(o, x, y); + } + evas_object_image_fill_set(o, 0, 0, 120, 160); + evas_object_resize(o, 120, 160); + 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; + for (i = 0; i < OBNUM; i++) + { + if (i < (OBNUM / 2)) + { + w = 120; + h = 160; + 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)) * (h / 2); + evas_object_move(o_images[i], 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/image_blend_occlude1_very_many.c b/src/bin/image_blend_occlude1_very_many.c new file mode 100644 index 0000000..f1f99c8 --- /dev/null +++ b/src/bin/image_blend_occlude1_very_many.c @@ -0,0 +1,118 @@ +#undef FNAME +#undef NAME +#undef ICON + +/* metadata */ +#define FNAME image_blend_occlude1_very_many_start +#define NAME "Image Blend Occlude 1 Very Many" +#define ICON "flower.png" + +#ifndef PROTO +# ifndef UI +# include "main.h" + +#undef OBNUM +#define OBNUM 1600 + +/* standard var */ +static int done = 0; +/* private data */ +static Evas_Object *o_images[OBNUM]; + +/* setup */ +static void _setup(void) +{ + int i; + Evas_Object *o; + srnd(); + for (i = 0; i < OBNUM; i++) + { + o = evas_object_image_add(evas); + o_images[i] = o; + if (i < (OBNUM / 2)) + evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/logo.png", NULL); + else + { + Evas_Coord x, y; + + evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/image.png", NULL); + x = (win_w / 4) + (((rnd() & 0xff) * ((win_w / 2) - 120)) >> 8); + y = (win_h / 4) + (((rnd() & 0xff) * ((win_h / 2) - 120)) >> 8); + evas_object_move(o, x, y); + } + evas_object_image_fill_set(o, 0, 0, 120, 160); + evas_object_resize(o, 120, 160); + 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; + for (i = 0; i < OBNUM; i++) + { + if (i < (OBNUM / 2)) + { + w = 120; + h = 160; + 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)) * (h / 2); + evas_object_move(o_images[i], 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/image_blend_occlude2.c b/src/bin/image_blend_occlude2.c new file mode 100644 index 0000000..60e1e67 --- /dev/null +++ b/src/bin/image_blend_occlude2.c @@ -0,0 +1,115 @@ +#undef FNAME +#undef NAME +#undef ICON + +/* metadata */ +#define FNAME image_blend_occlude2_start +#define NAME "Image Blend Occlude 2" +#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; + srnd(); + for (i = 0; i < OBNUM; i++) + { + o = evas_object_image_add(evas); + o_images[i] = o; + if (i & 0x1) + evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/logo.png", NULL); + else + { + Evas_Coord x, y; + + evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/image.png", NULL); + x = (win_w / 4) + (((rnd() & 0xff) * ((win_w / 2) - 120)) >> 8); + y = (win_h / 4) + (((rnd() & 0xff) * ((win_h / 2) - 120)) >> 8); + evas_object_move(o, x, y); + } + evas_object_image_fill_set(o, 0, 0, 120, 160); + evas_object_resize(o, 120, 160); + 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; + for (i = 0; i < OBNUM; i++) + { + if (i & 0x1) + { + w = 120; + h = 160; + 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)) * (h / 2); + evas_object_move(o_images[i], 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/image_blend_occlude2_few.c b/src/bin/image_blend_occlude2_few.c new file mode 100644 index 0000000..d019f56 --- /dev/null +++ b/src/bin/image_blend_occlude2_few.c @@ -0,0 +1,118 @@ +#undef FNAME +#undef NAME +#undef ICON + +/* metadata */ +#define FNAME image_blend_occlude2_few_start +#define NAME "Image Blend Occlude 2 Few" +#define ICON "flower.png" + +#ifndef PROTO +# ifndef UI +# include "main.h" + +#undef OBNUM +#define OBNUM 32 + +/* standard var */ +static int done = 0; +/* private data */ +static Evas_Object *o_images[OBNUM]; + +/* setup */ +static void _setup(void) +{ + int i; + Evas_Object *o; + srnd(); + for (i = 0; i < OBNUM; i++) + { + o = evas_object_image_add(evas); + o_images[i] = o; + if (i & 0x1) + evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/logo.png", NULL); + else + { + Evas_Coord x, y; + + evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/image.png", NULL); + x = (win_w / 4) + (((rnd() & 0xff) * ((win_w / 2) - 120)) >> 8); + y = (win_h / 4) + (((rnd() & 0xff) * ((win_h / 2) - 120)) >> 8); + evas_object_move(o, x, y); + } + evas_object_image_fill_set(o, 0, 0, 120, 160); + evas_object_resize(o, 120, 160); + 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; + for (i = 0; i < OBNUM; i++) + { + if (i & 0x1) + { + w = 120; + h = 160; + 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)) * (h / 2); + evas_object_move(o_images[i], 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/image_blend_occlude2_many.c b/src/bin/image_blend_occlude2_many.c new file mode 100644 index 0000000..f8856c8 --- /dev/null +++ b/src/bin/image_blend_occlude2_many.c @@ -0,0 +1,118 @@ +#undef FNAME +#undef NAME +#undef ICON + +/* metadata */ +#define FNAME image_blend_occlude2_many_start +#define NAME "Image Blend Occlude 2 Many" +#define ICON "flower.png" + +#ifndef PROTO +# ifndef UI +# include "main.h" + +#undef OBNUM +#define OBNUM 320 + +/* standard var */ +static int done = 0; +/* private data */ +static Evas_Object *o_images[OBNUM]; + +/* setup */ +static void _setup(void) +{ + int i; + Evas_Object *o; + srnd(); + for (i = 0; i < OBNUM; i++) + { + o = evas_object_image_add(evas); + o_images[i] = o; + if (i & 0x1) + evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/logo.png", NULL); + else + { + Evas_Coord x, y; + + evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/image.png", NULL); + x = (win_w / 4) + (((rnd() & 0xff) * ((win_w / 2) - 120)) >> 8); + y = (win_h / 4) + (((rnd() & 0xff) * ((win_h / 2) - 120)) >> 8); + evas_object_move(o, x, y); + } + evas_object_image_fill_set(o, 0, 0, 120, 160); + evas_object_resize(o, 120, 160); + 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; + for (i = 0; i < OBNUM; i++) + { + if (i & 0x1) + { + w = 120; + h = 160; + 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)) * (h / 2); + evas_object_move(o_images[i], 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/image_blend_occlude2_very_many.c b/src/bin/image_blend_occlude2_very_many.c new file mode 100644 index 0000000..099dc43 --- /dev/null +++ b/src/bin/image_blend_occlude2_very_many.c @@ -0,0 +1,118 @@ +#undef FNAME +#undef NAME +#undef ICON + +/* metadata */ +#define FNAME image_blend_occlude2_very_many_start +#define NAME "Image Blend Occlude 2 Very Many" +#define ICON "flower.png" + +#ifndef PROTO +# ifndef UI +# include "main.h" + +#undef OBNUM +#define OBNUM 1600 + +/* standard var */ +static int done = 0; +/* private data */ +static Evas_Object *o_images[OBNUM]; + +/* setup */ +static void _setup(void) +{ + int i; + Evas_Object *o; + srnd(); + for (i = 0; i < OBNUM; i++) + { + o = evas_object_image_add(evas); + o_images[i] = o; + if (i & 0x1) + evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/logo.png", NULL); + else + { + Evas_Coord x, y; + + evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/image.png", NULL); + x = (win_w / 4) + (((rnd() & 0xff) * ((win_w / 2) - 120)) >> 8); + y = (win_h / 4) + (((rnd() & 0xff) * ((win_h / 2) - 120)) >> 8); + evas_object_move(o, x, y); + } + evas_object_image_fill_set(o, 0, 0, 120, 160); + evas_object_resize(o, 120, 160); + 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; + for (i = 0; i < OBNUM; i++) + { + if (i & 0x1) + { + w = 120; + h = 160; + 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)) * (h / 2); + evas_object_move(o_images[i], 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/image_blend_occlude3.c b/src/bin/image_blend_occlude3.c new file mode 100644 index 0000000..b113f86 --- /dev/null +++ b/src/bin/image_blend_occlude3.c @@ -0,0 +1,115 @@ +#undef FNAME +#undef NAME +#undef ICON + +/* metadata */ +#define FNAME image_blend_occlude3_start +#define NAME "Image Blend Occlude 3" +#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; + srnd(); + for (i = 0; i < OBNUM; i++) + { + o = evas_object_image_add(evas); + o_images[i] = o; + if (i > (OBNUM / 2)) + evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/logo.png", NULL); + else + { + Evas_Coord x, y; + + evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/image.png", NULL); + x = (win_w / 4) + (((rnd() & 0xff) * ((win_w / 2) - 120)) >> 8); + y = (win_h / 4) + (((rnd() & 0xff) * ((win_h / 2) - 120)) >> 8); + evas_object_move(o, x, y); + } + evas_object_image_fill_set(o, 0, 0, 120, 160); + evas_object_resize(o, 120, 160); + 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; + for (i = 0; i < OBNUM; i++) + { + if (i > (OBNUM / 2)) + { + w = 120; + h = 160; + 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)) * (h / 2); + evas_object_move(o_images[i], 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/image_blend_occlude3_few.c b/src/bin/image_blend_occlude3_few.c new file mode 100644 index 0000000..7bdcb7b --- /dev/null +++ b/src/bin/image_blend_occlude3_few.c @@ -0,0 +1,118 @@ +#undef FNAME +#undef NAME +#undef ICON + +/* metadata */ +#define FNAME image_blend_occlude3_few_start +#define NAME "Image Blend Occlude 3 Few" +#define ICON "flower.png" + +#ifndef PROTO +# ifndef UI +# include "main.h" + +#undef OBNUM +#define OBNUM 32 + +/* standard var */ +static int done = 0; +/* private data */ +static Evas_Object *o_images[OBNUM]; + +/* setup */ +static void _setup(void) +{ + int i; + Evas_Object *o; + srnd(); + for (i = 0; i < OBNUM; i++) + { + o = evas_object_image_add(evas); + o_images[i] = o; + if (i > (OBNUM / 2)) + evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/logo.png", NULL); + else + { + Evas_Coord x, y; + + evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/image.png", NULL); + x = (win_w / 4) + (((rnd() & 0xff) * ((win_w / 2) - 120)) >> 8); + y = (win_h / 4) + (((rnd() & 0xff) * ((win_h / 2) - 120)) >> 8); + evas_object_move(o, x, y); + } + evas_object_image_fill_set(o, 0, 0, 120, 160); + evas_object_resize(o, 120, 160); + 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; + for (i = 0; i < OBNUM; i++) + { + if (i > (OBNUM / 2)) + { + w = 120; + h = 160; + 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)) * (h / 2); + evas_object_move(o_images[i], 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/image_blend_occlude3_many.c b/src/bin/image_blend_occlude3_many.c new file mode 100644 index 0000000..ca6fa88 --- /dev/null +++ b/src/bin/image_blend_occlude3_many.c @@ -0,0 +1,118 @@ +#undef FNAME +#undef NAME +#undef ICON + +/* metadata */ +#define FNAME image_blend_occlude3_many_start +#define NAME "Image Blend Occlude 3 Many" +#define ICON "flower.png" + +#ifndef PROTO +# ifndef UI +# include "main.h" + +#undef OBNUM +#define OBNUM 320 + +/* standard var */ +static int done = 0; +/* private data */ +static Evas_Object *o_images[OBNUM]; + +/* setup */ +static void _setup(void) +{ + int i; + Evas_Object *o; + srnd(); + for (i = 0; i < OBNUM; i++) + { + o = evas_object_image_add(evas); + o_images[i] = o; + if (i > (OBNUM / 2)) + evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/logo.png", NULL); + else + { + Evas_Coord x, y; + + evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/image.png", NULL); + x = (win_w / 4) + (((rnd() & 0xff) * ((win_w / 2) - 120)) >> 8); + y = (win_h / 4) + (((rnd() & 0xff) * ((win_h / 2) - 120)) >> 8); + evas_object_move(o, x, y); + } + evas_object_image_fill_set(o, 0, 0, 120, 160); + evas_object_resize(o, 120, 160); + 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; + for (i = 0; i < OBNUM; i++) + { + if (i > (OBNUM / 2)) + { + w = 120; + h = 160; + 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)) * (h / 2); + evas_object_move(o_images[i], 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/image_blend_occlude3_very_many.c b/src/bin/image_blend_occlude3_very_many.c new file mode 100644 index 0000000..7efe09a --- /dev/null +++ b/src/bin/image_blend_occlude3_very_many.c @@ -0,0 +1,118 @@ +#undef FNAME +#undef NAME +#undef ICON + +/* metadata */ +#define FNAME image_blend_occlude3_very_many_start +#define NAME "Image Blend Occlude 3 Very Many" +#define ICON "flower.png" + +#ifndef PROTO +# ifndef UI +# include "main.h" + +#undef OBNUM +#define OBNUM 1600 + +/* standard var */ +static int done = 0; +/* private data */ +static Evas_Object *o_images[OBNUM]; + +/* setup */ +static void _setup(void) +{ + int i; + Evas_Object *o; + srnd(); + for (i = 0; i < OBNUM; i++) + { + o = evas_object_image_add(evas); + o_images[i] = o; + if (i > (OBNUM / 2)) + evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/logo.png", NULL); + else + { + Evas_Coord x, y; + + evas_object_image_file_set(o, PACKAGE_DATA_DIR"/data/image.png", NULL); + x = (win_w / 4) + (((rnd() & 0xff) * ((win_w / 2) - 120)) >> 8); + y = (win_h / 4) + (((rnd() & 0xff) * ((win_h / 2) - 120)) >> 8); + evas_object_move(o, x, y); + } + evas_object_image_fill_set(o, 0, 0, 120, 160); + evas_object_resize(o, 120, 160); + 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; + for (i = 0; i < OBNUM; i++) + { + if (i > (OBNUM / 2)) + { + w = 120; + h = 160; + 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)) * (h / 2); + evas_object_move(o_images[i], 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/image_data_ycbcr601pl_wide_stride.c b/src/bin/image_data_ycbcr601pl_wide_stride.c new file mode 100644 index 0000000..b2e6d87 --- /dev/null +++ b/src/bin/image_data_ycbcr601pl_wide_stride.c @@ -0,0 +1,175 @@ +#undef FNAME +#undef NAME +#undef ICON + +/* metadata */ +#define FNAME image_data_ycbcr601pl_wide_stride_start +#define NAME "Image Data YCbCr 601 Pointer List Wide Stride" +#define ICON "mushroom.png" + +#ifndef PROTO +# ifndef UI +# include "main.h" + +/* standard var */ +static int done = 0; + +/* private data */ +static Evas_Object *o_images[1]; +static unsigned char *yp = NULL, *up = NULL, *vp = NULL; + +/* setup */ +static void _setup(void) +{ + int i, y; + FILE *f; + unsigned char **data, **lp; + Evas_Object *o; + for (i = 0; i < 1; i++) + { + o = evas_object_image_add(evas); + o_images[i] = o; + evas_object_image_colorspace_set(o, EVAS_COLORSPACE_YCBCR422P601_PL); + evas_object_image_size_set(o, 320, 480); + evas_object_image_alpha_set(o, 0); + evas_object_image_fill_set(o, 0, 0, 640, 480); + evas_object_resize(o, 640, 480); + evas_object_show(o); + yp = malloc(640 * 480); + up = malloc(320 * 240); + vp = malloc(320 * 240); + f = fopen(PACKAGE_DATA_DIR"/data/tp.yuv", "rb"); + if (f) + { + fread(yp, 640 * 480, 1, f); + fread(up, 320 * 240, 1, f); + fread(vp, 320 * 240, 1, f); + fclose(f); + } + data = evas_object_image_data_get(o_images[i], 1); + if (data) + { + lp = data; + for (y = 0; y < 480; y++) + { + *lp = yp + (y * 640); + lp++; + } + for (y = 0; y < 240; y++) + { + *lp = up + (y * 320); + lp++; + } + for (y = 0; y < 240; y++) + { + *lp = vp + (y * 320); + lp++; + } + evas_object_image_data_set(o_images[i], data); + evas_object_image_data_update_add(o_images[i], 0, 0, 320, 480); + } + } + done = 0; +} + +/* cleanup */ +static void _cleanup(void) +{ + int i; + for (i = 0; i < 1; i++) evas_object_del(o_images[i]); + free(yp); + free(up); + free(vp); +} + +/* loop - do things */ +static void _loop(double t, int f) +{ + int i; + Evas_Coord x, y, w, h; + for (i = 0; i < 1; i++) + { + unsigned char **data, **lp; + + w = 640; + h = 480; + x = (win_w / 2) - (w / 2); + y = (win_h / 2) - (h / 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); + + w = 320 - 16 + f; + if (w < 1) w = 1; + else if (w > 640) w = 640; + + w &= ~0x1; + + evas_object_image_size_set(o_images[i], w, 480); + data = evas_object_image_data_get(o_images[i], 1); + if (data) + { + lp = data; + for (y = 0; y < 480; y++) + { + *lp = yp + (y * 640); + lp++; + } + for (y = 0; y < 240; y++) + { + *lp = up + (y * 320); + lp++; + } + for (y = 0; y < 240; y++) + { + *lp = vp + (y * 320); + lp++; + } + evas_object_image_data_set(o_images[i], data); + evas_object_image_data_update_add(o_images[i], 0, 0, w, 480); + } + } + 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 c1a9c59..a6edb87 100644 --- a/src/bin/tests.h +++ b/src/bin/tests.h @@ -11,6 +11,7 @@ #include "image_data_argb.c" #include "image_data_argb_alpha.c" #include "image_data_ycbcr601pl.c" +#include "image_data_ycbcr601pl_wide_stride.c" #include "image_crossfade.c" #include "text_basic.c" #include "text_styles.c" @@ -22,3 +23,15 @@ #include "rect_solid.c" #include "rect_blend_few.c" #include "rect_solid_few.c" +#include "image_blend_occlude1_few.c" +#include "image_blend_occlude2_few.c" +#include "image_blend_occlude3_few.c" +#include "image_blend_occlude1.c" +#include "image_blend_occlude2.c" +#include "image_blend_occlude3.c" +#include "image_blend_occlude1_many.c" +#include "image_blend_occlude2_many.c" +#include "image_blend_occlude3_many.c" +#include "image_blend_occlude1_very_many.c" +#include "image_blend_occlude2_very_many.c" +#include "image_blend_occlude3_very_many.c"