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

Reply via email to