From 62862fa56ffc3b0c3fe987a47bd617a53e501a10 Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Sun, 29 Aug 2010 02:25:57 +0000 Subject: [PATCH] dont use evas_imaging anymore... and... do svg test the right way. SVN revision: 51708 --- data/images/Makefile.am | 1 + data/images/test.svg | 74 +++++++++++++++++++++++++++++++++++++++++ src/bin/e_main.c | 65 +++++++++++++++++------------------- src/bin/e_utils.c | 15 +++++---- 4 files changed, 115 insertions(+), 40 deletions(-) create mode 100644 data/images/test.svg diff --git a/data/images/Makefile.am b/data/images/Makefile.am index 55fb33d7c..cbf4153a4 100644 --- a/data/images/Makefile.am +++ b/data/images/Makefile.am @@ -5,6 +5,7 @@ enlightenment.png \ test.png \ test.jpg \ test.edj \ +test.svg \ lang-bg_BG.png \ lang-ca_ES.png \ lang-cs_CZ.png \ diff --git a/data/images/test.svg b/data/images/test.svg new file mode 100644 index 000000000..268b7399b --- /dev/null +++ b/data/images/test.svg @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + diff --git a/src/bin/e_main.c b/src/bin/e_main.c index 11616d9de..6268dd7d0 100644 --- a/src/bin/e_main.c +++ b/src/bin/e_main.c @@ -83,7 +83,6 @@ static Eina_Bool _e_main_cb_eet_cacheburst_end(void *data __UNUSED__); static Eina_Bool _e_main_cb_startup_fake_end(void *data __UNUSED__); static void _e_main_desk_save(void); static void _e_main_desk_restore(E_Manager *man, E_Container *con); -static void _e_main_test_svg_loader(void); /* local subsystem globals */ #define MAX_LEVEL 64 @@ -723,7 +722,7 @@ main(int argc, char **argv) "loader support.\n")); _e_main_shutdown(-1); } - + e_prefix_data_concat_static(buf, "data/images/test.edj"); evas_object_image_file_set(im, buf, "images/0"); if (evas_object_image_load_error_get(im) != EVAS_LOAD_ERROR_NONE) @@ -749,6 +748,36 @@ main(int argc, char **argv) } } + e_init_status_set(_("Check SVG Support")); + TS("svg"); + { + Ecore_Evas *ee; + Evas_Object *im; + char buf[PATH_MAX]; + + ee = ecore_evas_buffer_new(1, 1); + if (!ee) + { + e_error_message_show(_("Enlightenment found Evas can't create a buffer canvas. Please check\n" + "Evas has Software Buffer engine support.\n")); + _e_main_shutdown(-1); + } + e_canvas_add(ee); + im = evas_object_image_add(ecore_evas_get(ee)); + + e_prefix_data_concat_static(buf, "data/images/test.svg"); + evas_object_image_file_set(im, buf, NULL); + if (evas_object_image_load_error_get(im) == EVAS_LOAD_ERROR_NONE) + { + efreet_icon_extension_add(".svg"); + /* prefer png over svg */ + efreet_icon_extension_add(".png"); + } + evas_object_del(im); + e_canvas_del(ee); + ecore_evas_free(ee); + } + e_init_status_set(_("Setup Screens")); TS("screens"); /* manage the root window */ @@ -811,7 +840,6 @@ main(int argc, char **argv) *list = eina_list_prepend(*list, (void *)eina_stringshare_add(buf)); } } - _e_main_test_svg_loader(); efreet_icon_extension_add(".edj"); TS("efreet paths done"); @@ -1689,34 +1717,3 @@ _e_main_desk_restore(E_Manager *man, E_Container *con) e_desk_show(desk); } } - -static void -_e_main_test_svg_loader(void) -{ - Evas_Imaging_Image *tmp; - char file[] = "/tmp/e17-1341234234.svg"; - FILE *fp = fopen(file, "w"); - if (!fp) return; - - fputs("" - "" - "", fp); - fclose(fp); - - tmp = evas_imaging_image_load (file, NULL); - ecore_file_remove(file); - - if (tmp) - { - evas_imaging_image_free(tmp); - efreet_icon_extension_add(".svg"); - /* prefer png over svg */ - efreet_icon_extension_add(".png"); - } -} diff --git a/src/bin/e_utils.c b/src/bin/e_utils.c index 5c7b8079b..3256d4c45 100644 --- a/src/bin/e_utils.c +++ b/src/bin/e_utils.c @@ -1239,7 +1239,8 @@ e_util_image_import(const char *image_path, const char *edje_path, const char *e { static const char *tmpdir = NULL; E_Util_Image_Import_Handle *handle; - Evas_Imaging_Image *img; + Ecore_Evas *ee; + Evas_Object *img; int fd, w, h; const char *escaped_file; char cmd[PATH_MAX * 2], tmpn[PATH_MAX]; @@ -1249,15 +1250,17 @@ e_util_image_import(const char *image_path, const char *edje_path, const char *e if (!edje_path) return NULL; if (!edje_group) return NULL; if (!cb) return NULL; - - img = evas_imaging_image_load(image_path, NULL); - if (!img) + ee = ecore_evas_buffer_new(1, 1); + img = evas_object_image_add(ecore_evas_get(ee)); + evas_object_image_file_set(img, image_path, NULL); + if (evas_object_image_load_error_get(img) != EVAS_LOAD_ERROR_NONE) { + ecore_evas_free(ee); printf("Error loading image '%s'\n", image_path); return NULL; } - evas_imaging_image_size_get(img, &w, &h); - evas_imaging_image_free(img); + evas_object_image_size_get(img, &w, &h); + ecore_evas_free(ee); if (!tmpdir) {