Enlightenment CVS committal Author : doursse Project : e17 Module : proto/edvi
Dir : e17/proto/edvi/src/plugins/epsilon Modified Files: epsilon_thumbnailer.c Log Message: * configure.in: fix autoconf warnings * Makefile.am: more files in maintainer rule * edvi.pc.in: fix cflags * src/bin/edvi_esmart_test.c: (main): * src/bin/edvi_evas_test.c: (main): * src/bin/edvi_ewl_test.c: (main), (_change_page_cb): * src/bin/ewl_test_dvi.c: (dvi_load): * src/lib/Edvi.h: * src/lib/edvi_document.c: (edvi_document_new): * src/lib/edvi_document.h: * src/lib/edvi_enum.h: * src/lib/edvi_main.h: * src/lib/edvi_page.c: (_edvi_format_string_get), (edvi_page_new), (edvi_page_render), (edvi_page_page_set), (edvi_page_page_get), (edvi_page_size_get), (edvi_page_mag_get), (edvi_page_format_set), (edvi_page_format_get), (edvi_page_orientation_get): * src/lib/edvi_page.h: * src/lib/edvi_private.h: * src/lib/esmart_dvi.c: (esmart_dvi_init), (esmart_dvi_file_set), (esmart_dvi_page_set), (esmart_dvi_page_get), (esmart_dvi_size_get), (esmart_dvi_orientation_set), (esmart_dvi_orientation_get), (esmart_dvi_mag_set), (esmart_dvi_mag_get), (esmart_dvi_page_next), (esmart_dvi_page_previous), (esmart_dvi_render), (esmart_dvi_dvi_document_get), (esmart_dvi_dvi_page_get), (_smart_clip_unset): * src/lib/esmart_dvi.h: * src/lib/etk_dvi.c: (etk_dvi_file_set), (etk_dvi_page_set), (etk_dvi_page_get), (etk_dvi_size_get), (etk_dvi_orientation_set), (etk_dvi_mag_set), (etk_dvi_mag_get), (etk_dvi_page_next), (etk_dvi_page_previous), (etk_dvi_dvi_document_get), (etk_dvi_dvi_page_get), (_etk_dvi_constructor), (_etk_dvi_destructor), (_etk_dvi_realize_cb), (_etk_dvi_unrealize_cb), (_etk_dvi_load): * src/lib/etk_dvi.h: * src/lib/ewl_dvi.c: (ewl_dvi_new), (ewl_dvi_init), (ewl_dvi_file_set), (ewl_dvi_file_get), (ewl_dvi_page_set), (ewl_dvi_page_get), (ewl_dvi_dvi_size_get), (ewl_dvi_orientation_set), (ewl_dvi_orientation_get), (ewl_dvi_mag_set), (ewl_dvi_mag_get), (ewl_dvi_page_next), (ewl_dvi_page_previous), (ewl_dvi_dvi_document_get), (ewl_dvi_dvi_page_get), (ewl_dvi_reveal_cb), (ewl_dvi_obscure_cb), (ewl_dvi_configure_cb), (ewl_dvi_destroy_cb): * src/lib/ewl_dvi.h: updates to fit Epdf API * src/plugins/epsilon/epsilon_thumbnailer.c: (epsilon_generate_thumb): update to the newest Epsilon API * src/plugins/ewl/ewl_dvi.c: (create_test): use ewl_model_ecore_list_instance instead of ewl_model_ecore_list_get =================================================================== RCS file: /cvs/e/e17/proto/edvi/src/plugins/epsilon/epsilon_thumbnailer.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- epsilon_thumbnailer.c 1 Mar 2008 22:59:51 -0000 1.2 +++ epsilon_thumbnailer.c 13 Jul 2008 10:11:57 -0000 1.3 @@ -1,60 +1,15 @@ #include <stdlib.h> +#include <string.h> -#include <Evas.h> #include <Ecore_Evas.h> #include <Epsilon.h> #include <Epsilon_Plugin.h> #include <Edvi.h> -Imlib_Image -epsilon_thumb_imlib_standardize () -{ - Imlib_Image dst = NULL; - int dw; - int dh; - int sw; - int sh; - int s = 128; - - sw = imlib_image_get_width (); - sh = imlib_image_get_height (); - - if (sw > sh) - { - dw = s; - dh = (s * sh) / sw; - } - else - { - dh = s; - dw = (s * sw) / sh; - } - - imlib_context_set_cliprect (0, 0, dw, dh); - - if ((dst = imlib_create_cropped_scaled_image (0, 0, sw, sh, dw, dh))) - { - imlib_context_set_image (dst); - imlib_context_set_anti_alias (1); - imlib_image_set_has_alpha (1); - } - - return dst; -} - -int -clip (int val) -{ - if (val < 0) - return 0; - - return (val > 255) ? 255 : val; -} - -Imlib_Image +Epsilon_Image * epsilon_generate_thumb (Epsilon * e) { - Imlib_Image img = NULL; + Epsilon_Image *dst = NULL; Ecore_Evas *ee; Evas *evas; Evas_Object *o; @@ -62,6 +17,8 @@ Edvi_Property *property; Edvi_Document *document; Edvi_Page *page; + int width; + int height; const int *pixels; char *param_kpathsea_mode = "cx"; @@ -83,30 +40,55 @@ document = edvi_document_new (e->src, device, property); if (!document) goto no_document; - page = edvi_page_new (document, 1); - ee = ecore_evas_buffer_new(64,64); + page = edvi_page_new (document); + if (!page) + goto no_page; + edvi_page_page_set (page, 0); + edvi_page_size_get (page, &width, &height); + + ee = ecore_evas_buffer_new(width, height); evas = ecore_evas_get(ee); + o = evas_object_image_add (evas); evas_object_move (o, 0, 0); edvi_page_render (page, device, o); evas_object_show (o); - ecore_evas_resize (ee, edvi_page_width_get (page), edvi_page_height_get (page)); + + dst = calloc(1, sizeof(Epsilon_Image)); + if (!dst) + goto no_dst; + + dst->w = width; + dst->h = height; + dst->alpha = 1; + dst->data = malloc(dst->w * dst->h * sizeof(int)); + if (!dst->data) + goto no_dst_data; pixels = ecore_evas_buffer_pixels_get (ee); - img = imlib_create_image_using_data (edvi_page_width_get (page), - edvi_page_height_get (page), - (DATA32 *)pixels); + memcpy(dst->data, pixels, dst->w * dst->h * sizeof(int)); - imlib_context_set_image(img); + edvi_page_delete (page); + edvi_document_delete (document); + edvi_property_delete (property); + edvi_device_delete (device); + edvi_shutdown (); + ecore_evas_free(ee); edvi_page_delete (page); edvi_document_delete (document); edvi_property_delete (property); edvi_device_delete (device); edvi_shutdown (); - return img; + return dst; + no_dst_data: + free(dst); + no_dst: + edvi_page_delete (page); + no_page: + edvi_document_delete (document); no_document: edvi_property_delete (property); no_property: ------------------------------------------------------------------------- Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW! Studies have shown that voting for your favorite open source project, along with a healthy diet, reduces your potential for chronic lameness and boredom. Vote Now at http://www.sourceforge.net/community/cca08 _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs