Enlightenment CVS committal
Author : raster
Project : e17
Module : libs/evas
Dir : e17/libs/evas/src/modules/loaders/jpeg
Modified Files:
evas_image_load_jpeg.c
Log Message:
cedric's cache changes patch
===================================================================
RCS file: /cvs/e/e17/libs/evas/src/modules/loaders/jpeg/evas_image_load_jpeg.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -3 -r1.6 -r1.7
--- evas_image_load_jpeg.c 5 Nov 2006 05:07:52 -0000 1.6
+++ evas_image_load_jpeg.c 12 Apr 2008 00:32:29 -0000 1.7
@@ -89,16 +89,11 @@
jpeg_read_header(&cinfo, TRUE);
cinfo.do_fancy_upsampling = FALSE;
cinfo.do_block_smoothing = FALSE;
+ cinfo.dct_method = JDCT_IFAST;
+ cinfo.dither_mode = JDITHER_ORDERED;
jpeg_start_decompress(&cinfo);
/* head decoding */
- if (!im->image)
- im->image = evas_common_image_surface_new(im);
- if (!im->image)
- {
- jpeg_destroy_decompress(&cinfo);
- return 0;
- }
w = cinfo.output_width;
h = cinfo.output_height;
if ((w < 1) || (h < 1) || (w > 8192) || (h > 8192))
@@ -106,27 +101,27 @@
jpeg_destroy_decompress(&cinfo);
return 0;
}
- if (im->load_opts.scale_down_by > 1)
+ if (im->cache_entry.load_opts.scale_down_by > 1)
{
- w /= im->load_opts.scale_down_by;
- h /= im->load_opts.scale_down_by;
+ w /= im->cache_entry.load_opts.scale_down_by;
+ h /= im->cache_entry.load_opts.scale_down_by;
}
- else if (im->load_opts.dpi > 0.0)
+ else if (im->cache_entry.load_opts.dpi > 0.0)
{
- w = (w * im->load_opts.dpi) / 90.0;
- h = (h * im->load_opts.dpi) / 90.0;
+ w = (w * im->cache_entry.load_opts.dpi) / 90.0;
+ h = (h * im->cache_entry.load_opts.dpi) / 90.0;
}
- else if ((im->load_opts.w > 0) &&
- (im->load_opts.h > 0))
+ else if ((im->cache_entry.load_opts.w > 0) &&
+ (im->cache_entry.load_opts.h > 0))
{
int w2, h2;
- w2 = im->load_opts.w;
- h2 = (im->load_opts.w * h) / w;
- if (h2 > im->load_opts.h)
+ w2 = im->cache_entry.load_opts.w;
+ h2 = (im->cache_entry.load_opts.w * h) / w;
+ if (h2 > im->cache_entry.load_opts.h)
{
- h2 = im->load_opts.h;
- w2 = (im->load_opts.h * w) / h;
+ h2 = im->cache_entry.load_opts.h;
+ w2 = (im->cache_entry.load_opts.h * w) / h;
}
w = w2;
h = h2;
@@ -139,19 +134,19 @@
scalew = cinfo.output_width / w;
scaleh = cinfo.output_height / h;
- im->scale = scalew;
- if (scaleh < scalew) im->scale = scaleh;
+ im->cache_entry.scale = scalew;
+ if (scaleh < scalew) im->cache_entry.scale = scaleh;
- if (im->scale > 8) im->scale = 8;
- else if (im->scale < 1) im->scale = 1;
+ if (im->cache_entry.scale > 8) im->cache_entry.scale = 8;
+ else if (im->cache_entry.scale < 1) im->cache_entry.scale = 1;
- if (im->scale == 3) im->scale = 2;
- else if (im->scale == 5) im->scale = 4;
- else if (im->scale == 6) im->scale = 4;
- else if (im->scale == 7) im->scale = 4;
+ if (im->cache_entry.scale == 3) im->cache_entry.scale = 2;
+ else if (im->cache_entry.scale == 5) im->cache_entry.scale = 4;
+ else if (im->cache_entry.scale == 6) im->cache_entry.scale = 4;
+ else if (im->cache_entry.scale == 7) im->cache_entry.scale = 4;
}
- if (im->scale > 1)
+ if (im->cache_entry.scale > 1)
{
jpeg_destroy_decompress(&cinfo);
@@ -162,13 +157,13 @@
cinfo.do_fancy_upsampling = FALSE;
cinfo.do_block_smoothing = FALSE;
cinfo.scale_num = 1;
- cinfo.scale_denom = im->scale;
+ cinfo.scale_denom = im->cache_entry.scale;
jpeg_calc_output_dimensions(&(cinfo));
jpeg_start_decompress(&cinfo);
}
- im->image->w = cinfo.output_width;
- im->image->h = cinfo.output_height;
+ im->cache_entry.w = cinfo.output_width;
+ im->cache_entry.h = cinfo.output_height;
/* end head decoding */
jpeg_destroy_decompress(&cinfo);
@@ -201,11 +196,12 @@
cinfo.do_fancy_upsampling = FALSE;
cinfo.do_block_smoothing = FALSE;
cinfo.dct_method = JDCT_IFAST;
-
- if (im->scale > 1)
+ cinfo.dither_mode = JDITHER_ORDERED;
+
+ if (im->cache_entry.scale > 1)
{
cinfo.scale_num = 1;
- cinfo.scale_denom = im->scale;
+ cinfo.scale_denom = im->cache_entry.scale;
}
/* head decoding */
@@ -215,7 +211,7 @@
w = cinfo.output_width;
h = cinfo.output_height;
- if ((w != im->image->w) || (h != im->image->h))
+ if ((w != im->cache_entry.w) || (h != im->cache_entry.h))
{
jpeg_destroy_decompress(&cinfo);
return 0;
@@ -229,13 +225,13 @@
return 0;
}
data = alloca(w * 16 * 3);
- evas_common_image_surface_alloc(im->image);
- if (!im->image->data)
+ evas_cache_image_surface_alloc(&im->cache_entry, w, h);
+ if (!im->image.data)
{
jpeg_destroy_decompress(&cinfo);
return 0;
}
- ptr2 = im->image->data;
+ ptr2 = im->image.data;
count = 0;
prevy = 0;
if (cinfo.output_components == 3)
-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
Don't miss this year's exciting event. There's still time to save $100.
Use priority code J8TL2D2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
enlightenment-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs