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 enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs