Enlightenment CVS committal

Author  : raster
Project : e17
Module  : libs/evas

Dir     : e17/libs/evas/src/modules/loaders/png


Modified Files:
        evas_image_load_png.c 


Log Message:


cedric's cache changes patch

===================================================================
RCS file: /cvs/e/e17/libs/evas/src/modules/loaders/png/evas_image_load_png.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -3 -r1.8 -r1.9
--- evas_image_load_png.c       28 Oct 2007 10:35:13 -0000      1.8
+++ evas_image_load_png.c       12 Apr 2008 00:32:29 -0000      1.9
@@ -80,16 +80,8 @@
        fclose(f);
        return 0;
      }
-   if (!im->image)
-     im->image = evas_common_image_surface_new(im);
-   if (!im->image)
-     {
-       png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp) NULL);
-       fclose(f);
-       return 0;
-     }
-   im->image->w = (int) w32;
-   im->image->h = (int) h32;
+   im->cache_entry.w = (int) w32;
+   im->cache_entry.h = (int) h32;
    if (png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS)) hasa = 1;
    if (color_type == PNG_COLOR_TYPE_RGB_ALPHA) hasa = 1;
    if (color_type == PNG_COLOR_TYPE_GRAY_ALPHA) hasa = 1;
@@ -151,7 +143,14 @@
    png_get_IHDR(png_ptr, info_ptr, (png_uint_32 *) (&w32),
                (png_uint_32 *) (&h32), &bit_depth, &color_type,
                &interlace_type, NULL, NULL);
-   if ((w32 != im->image->w) || (h32 != im->image->h))
+   evas_cache_image_surface_alloc(&im->cache_entry, w32, h32);
+   if (!im->image.data)
+     {
+       png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp) NULL);
+       fclose(f);
+       return 0;
+     }
+   if ((w32 != im->cache_entry.w) || (h32 != im->cache_entry.h))
      {
        png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp) NULL);
        fclose(f);
@@ -179,9 +178,9 @@
    if (bit_depth > 8) png_set_strip_16(png_ptr);
    /* pack all pixels to byte boundaries */
    png_set_packing(png_ptr);
-   
-   w = im->image->w;
-   h = im->image->h;
+
+   w = im->cache_entry.w;
+   h = im->cache_entry.h;
    /* we want ARGB */
 #ifdef WORDS_BIGENDIAN
    png_set_swap_alpha(png_ptr);
@@ -190,23 +189,16 @@
    png_set_bgr(png_ptr);
    if (!hasa) png_set_filler(png_ptr, 0xff, PNG_FILLER_AFTER);
 #endif
-   evas_common_image_surface_alloc(im->image);
-   if (!im->image->data)
-     {
-       evas_common_image_surface_free(im->image);
-       png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp) NULL);
-       fclose(f);
-       return 0;
-     }
    lines = (unsigned char **) alloca(h * sizeof(unsigned char *));
 
    for (i = 0; i < h; i++)
-     lines[i] = ((unsigned char *)(im->image->data)) + (i * w * 
sizeof(DATA32));
+     lines[i] = ((unsigned char *)(im->image.data)) + (i * w * sizeof(DATA32));
    png_read_image(png_ptr, lines);
    png_read_end(png_ptr, info_ptr);
    png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp) NULL);
    fclose(f);
    evas_common_image_premul(im);
+
    return 1;
    key = 0;
 }



-------------------------------------------------------------------------
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