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
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs