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