From 4e6dd92826dc4200953f507645eeb00b065774ed Mon Sep 17 00:00:00 2001 From: Cedric BAIL Date: Thu, 13 Jun 2019 15:15:50 -0700 Subject: [PATCH] add new test for 9patch files. --- data/9patch_test.9.png | Bin 0 -> 9821 bytes data/meson.build | 1 + src/bin/image_blend_solid_9patch.c | 104 +++++++++++++++++++++++++++++ src/bin/meson.build | 1 + src/bin/tests.h | 1 + 5 files changed, 107 insertions(+) create mode 100644 data/9patch_test.9.png create mode 100644 src/bin/image_blend_solid_9patch.c diff --git a/data/9patch_test.9.png b/data/9patch_test.9.png new file mode 100644 index 0000000000000000000000000000000000000000..7e579d24980976566680e000de2f53a08b393df8 GIT binary patch literal 9821 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 b7c76!5AKvyBgWT_U;sr~HJLgov*7;&$^TkP literal 0 HcmV?d00001 diff --git a/data/meson.build b/data/meson.build index c4daa22..8c0f66d 100644 --- a/data/meson.build +++ b/data/meson.build @@ -18,6 +18,7 @@ files = [ 'Kochi.ttf', 'bar.png', 'frame.png', 'stretch.png', + '9patch_test.9.png', 'pan.png', 'tp.png', 'tp.yuv', diff --git a/src/bin/image_blend_solid_9patch.c b/src/bin/image_blend_solid_9patch.c new file mode 100644 index 0000000..81c9de4 --- /dev/null +++ b/src/bin/image_blend_solid_9patch.c @@ -0,0 +1,104 @@ +#undef FNAME +#undef NAME +#undef ICON + +/* metadata */ +#define FNAME image_blend_solid_9patch_start +#define NAME "Image Blend Solid 9patch" +#define ICON "blend.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 = efl_add(EFL_CANVAS_IMAGE_CLASS, evas); + o_images[i] = o; + efl_file_simple_load(o, build_path("9patch_test.9.png"), NULL); + efl_gfx_entity_visible_set(o, EINA_TRUE); + } + done = 0; +} + +/* cleanup */ +static void _cleanup(void) +{ + int i; + for (i = 0; i < OBNUM; i++) efl_del(o_images[i]); +} + +/* loop - do things */ +static void _loop(double t, int f) +{ + int i; + Evas_Coord x, y, w, h, w0, h0; + static int done = 0; + 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))) * w0 * 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); + efl_gfx_entity_position_set(o_images[i], EINA_POSITION2D(x, y)); + efl_gfx_entity_size_set(o_images[i], EINA_SIZE2D(w, h)); + efl_gfx_fill_set(o_images[i], EINA_RECT(0, 0, w, h)); + } + FPS_STD(NAME); +} + +/* prepend special key handlers if interactive (before STD) */ +static void _key(const 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/meson.build b/src/bin/meson.build index 658e558..b68f600 100644 --- a/src/bin/meson.build +++ b/src/bin/meson.build @@ -39,6 +39,7 @@ expedite_sources = [ 'main.c', 'image_blend_solid_middle_border.c', 'image_blend_solid_border.c', 'image_blend_solid_stretch.c', + 'image_blend_solid_9patch.c', 'image_blend_border_recolor.c', 'image_map_rotate.c', 'image_map_solid_rotate.c', diff --git a/src/bin/tests.h b/src/bin/tests.h index 655ac84..a3fdb1c 100644 --- a/src/bin/tests.h +++ b/src/bin/tests.h @@ -32,6 +32,7 @@ #include "image_blend_solid_middle_border.c" #include "image_blend_solid_border.c" #include "image_blend_solid_stretch.c" +#include "image_blend_solid_9patch.c" #include "image_blend_border_recolor.c" #include "image_map_rotate.c" #include "image_map_solid_rotate.c"