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

Reply via email to