Enlightenment CVS committal Author : doursse Project : e17 Module : proto/epdf
Dir : e17/proto/epdf/src/plugins/epsilon Modified Files: epsilon_thumbnailer.c Log Message: * src/plugins/epsilon/epsilon_thumbnailer.c: (epsilon_generate_thumb): update epsilon plugin to newest epsilon api =================================================================== RCS file: /cvs/e/e17/proto/epdf/src/plugins/epsilon/epsilon_thumbnailer.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -3 -r1.7 -r1.8 --- epsilon_thumbnailer.c 22 May 2008 04:43:14 -0000 1.7 +++ epsilon_thumbnailer.c 25 May 2008 14:35:27 -0000 1.8 @@ -1,59 +1,14 @@ -#include <Evas.h> #include <Ecore_Evas.h> #include <Epsilon.h> #include <Epsilon_Plugin.h> #include <Epdf.h> #include <stdlib.h> +#include <string.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; @@ -64,7 +19,15 @@ const int *pixels; document = epdf_document_new (e->src); + if (!document) + return NULL; + page = epdf_page_new (document); + if (!page) + { + epdf_document_delete (document); + return NULL; + } epdf_page_page_set (page, 0); epdf_page_size_get (page, &width, &height); @@ -76,15 +39,34 @@ epdf_page_render (page, o); evas_object_show (o); - pixels = ecore_evas_buffer_pixels_get (ee); - img = imlib_create_image_using_data (width, height, (DATA32 *)pixels); + dst = calloc(1, sizeof(Epsilon_Image)); + if (!dst) + { + epdf_page_delete (page); + epdf_document_delete (document); + return NULL; + } - imlib_context_set_image(img); + dst->w = width; + dst->h = height; + dst->alpha = 1; + dst->data = malloc(dst->w * dst->h * sizeof(int)); + if (!dst->data) + { + free(dst); + epdf_page_delete (page); + epdf_document_delete (document); + return NULL; + } + pixels = ecore_evas_buffer_pixels_get (ee); + memcpy(dst->data, pixels, dst->w * dst->h * sizeof(int)); + + ecore_evas_free(ee); epdf_page_delete (page); epdf_document_delete (document); - return img; + return dst; } Epsilon_Plugin * ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs