forked from enlightenment/efl
evas: add a test for loading Android 9patch file.
Example data come from https://github.com/vindolin/ninepatch/tree/master/ninepatch/data under MIT license. Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com> Reviewed-by: Hermet Park <hermetpark@gmail.com> Differential Revision: https://phab.enlightenment.org/D9105
This commit is contained in:
parent
5847886a3f
commit
b799ba1a10
|
@ -1029,6 +1029,94 @@ EFL_START_TEST(evas_object_image_jp2k_loader_data)
|
||||||
EFL_END_TEST
|
EFL_END_TEST
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
EFL_START_TEST(evas_object_image_9patch)
|
||||||
|
{
|
||||||
|
Evas *e = _setup_evas();
|
||||||
|
Evas *sub_e;
|
||||||
|
Ecore_Evas *ee, *sub_ee;
|
||||||
|
Evas_Object *obj, *cmp, *ref;
|
||||||
|
Eina_Strbuf *str;
|
||||||
|
|
||||||
|
const char *files[] = {
|
||||||
|
"9patch_test.9.png"
|
||||||
|
};
|
||||||
|
unsigned int i;
|
||||||
|
|
||||||
|
ee = ecore_evas_ecore_evas_get(e);
|
||||||
|
|
||||||
|
cmp = ecore_evas_object_image_new(ee);
|
||||||
|
evas_object_image_filled_set(cmp, EINA_TRUE);
|
||||||
|
evas_object_image_size_set(cmp, 1024, 1024);
|
||||||
|
evas_object_resize(cmp, 1024, 1024);
|
||||||
|
evas_object_show(cmp);
|
||||||
|
|
||||||
|
sub_ee = ecore_evas_object_ecore_evas_get(cmp);
|
||||||
|
sub_e = ecore_evas_object_evas_get(cmp);
|
||||||
|
|
||||||
|
ecore_evas_alpha_set(sub_ee, EINA_TRUE);
|
||||||
|
|
||||||
|
obj = evas_object_rectangle_add(sub_e);
|
||||||
|
evas_object_color_set(obj, 0, 0, 0, 0);
|
||||||
|
evas_object_move(obj, 0, 0);
|
||||||
|
evas_object_resize(obj, 1024, 1024);
|
||||||
|
evas_object_show(obj);
|
||||||
|
|
||||||
|
obj = evas_object_image_filled_add(sub_e);
|
||||||
|
evas_object_image_alpha_set(obj, 1);
|
||||||
|
evas_object_move(obj, 0, 0);
|
||||||
|
evas_object_resize(obj, 1024, 1024);
|
||||||
|
ecore_evas_resize(sub_ee, 1024, 1024);
|
||||||
|
evas_object_show(obj);
|
||||||
|
|
||||||
|
Evas_Object *rect = evas_object_rectangle_add(sub_e);
|
||||||
|
evas_object_color_set(rect, 128, 0, 0, 128);
|
||||||
|
evas_object_show(rect);
|
||||||
|
|
||||||
|
ref = evas_object_image_add(e);
|
||||||
|
str = eina_strbuf_new();
|
||||||
|
|
||||||
|
for (i = 0; i < sizeof (files) / sizeof (files[0]); i++)
|
||||||
|
{
|
||||||
|
Eina_Rect content;
|
||||||
|
int r_w, r_h;
|
||||||
|
const uint32_t *d, *r_d;
|
||||||
|
|
||||||
|
eina_strbuf_append_printf(str, "%s/%s", TESTS_IMG_DIR, files[i]);
|
||||||
|
evas_object_image_file_set(obj, eina_strbuf_string_get(str), NULL);
|
||||||
|
ck_assert_int_eq(evas_object_image_load_error_get(obj), EVAS_LOAD_ERROR_NONE);
|
||||||
|
content = efl_gfx_image_content_region_get(obj);
|
||||||
|
|
||||||
|
evas_object_move(rect, content.x, content.y);
|
||||||
|
evas_object_resize(rect, content.w, content.h);
|
||||||
|
|
||||||
|
eina_strbuf_reset(str);
|
||||||
|
|
||||||
|
ecore_evas_manual_render(ee);
|
||||||
|
|
||||||
|
d = evas_object_image_data_get(cmp, EINA_FALSE);
|
||||||
|
|
||||||
|
eina_strbuf_append_printf(str, "%s/%s.png", TESTS_IMG_DIR, files[i]);
|
||||||
|
evas_object_image_file_set(ref, eina_strbuf_string_get(str), NULL);
|
||||||
|
ck_assert_int_eq(evas_object_image_load_error_get(ref), EVAS_LOAD_ERROR_NONE);
|
||||||
|
evas_object_image_size_get(ref, &r_w, &r_h);
|
||||||
|
r_d = evas_object_image_data_get(ref, EINA_FALSE);
|
||||||
|
|
||||||
|
eina_strbuf_reset(str);
|
||||||
|
|
||||||
|
fail_if(r_w != 1024 || r_h != 1024);
|
||||||
|
for (int i = 0; i < r_w * r_h; i++)
|
||||||
|
fail_if(((d[i] - r_d[i]) & 0xF8F8F8F8) != 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
evas_object_del(obj);
|
||||||
|
evas_object_del(ref);
|
||||||
|
|
||||||
|
eina_strbuf_free(str);
|
||||||
|
|
||||||
|
evas_free(e);
|
||||||
|
}
|
||||||
|
EFL_END_TEST
|
||||||
|
|
||||||
void evas_test_image_object(TCase *tc)
|
void evas_test_image_object(TCase *tc)
|
||||||
{
|
{
|
||||||
tcase_add_test(tc, evas_object_image_api);
|
tcase_add_test(tc, evas_object_image_api);
|
||||||
|
@ -1054,6 +1142,7 @@ void evas_test_image_object(TCase *tc)
|
||||||
#endif
|
#endif
|
||||||
tcase_add_test(tc, evas_object_image_partially_load_orientation);
|
tcase_add_test(tc, evas_object_image_partially_load_orientation);
|
||||||
tcase_add_test(tc, evas_object_image_cached_data_comparision);
|
tcase_add_test(tc, evas_object_image_cached_data_comparision);
|
||||||
|
tcase_add_test(tc, evas_object_image_9patch);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -21,19 +21,10 @@ while (0)
|
||||||
static Evas *
|
static Evas *
|
||||||
_setup_evas()
|
_setup_evas()
|
||||||
{
|
{
|
||||||
Evas *evas;
|
Ecore_Evas *ee;
|
||||||
Evas_Engine_Info *einfo;
|
|
||||||
|
|
||||||
evas = evas_new();
|
ee = ecore_evas_buffer_new(500, 500);
|
||||||
|
return ecore_evas_get(ee);
|
||||||
evas_output_method_set(evas, evas_render_method_lookup("buffer"));
|
|
||||||
einfo = evas_engine_info_get(evas);
|
|
||||||
evas_engine_info_set(evas, einfo);
|
|
||||||
|
|
||||||
evas_output_size_set(evas, 500, 500);
|
|
||||||
evas_output_viewport_set(evas, 0, 0, 500, 500);
|
|
||||||
|
|
||||||
return evas;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 9.6 KiB |
Binary file not shown.
After Width: | Height: | Size: 16 KiB |
Loading…
Reference in New Issue