From ac5e653efd5252a088516f16a1e47c760bdce643 Mon Sep 17 00:00:00 2001 From: vapier Date: Sun, 20 Feb 2011 01:21:33 +0000 Subject: [PATCH] evas: fix building with libpng-1.5 this should work with libpng-1.[245].x; dont know about older versions git-svn-id: http://svn.enlightenment.org/svn/e/trunk/evas@57178 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- src/modules/savers/png/evas_image_save_png.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/modules/savers/png/evas_image_save_png.c b/src/modules/savers/png/evas_image_save_png.c index f6dcb4b..decc14d 100644 --- a/src/modules/savers/png/evas_image_save_png.c +++ b/src/modules/savers/png/evas_image_save_png.c @@ -66,10 +66,13 @@ save_image_png(RGBA_Image *im, const char *file, int compress, int interlace) if (interlace) { #ifdef PNG_WRITE_INTERLACING_SUPPORTED - png_ptr->interlaced = PNG_INTERLACE_ADAM7; - num_passes = png_set_interlace_handling(png_ptr); + interlace = PNG_INTERLACE_ADAM7; +#else + interlace = PNG_INTERLACE_NONE; #endif } + else + interlace = PNG_INTERLACE_NONE; if (im->cache_entry.flags.alpha) { @@ -84,7 +87,7 @@ save_image_png(RGBA_Image *im, const char *file, int compress, int interlace) evas_common_convert_argb_unpremul(data, im->cache_entry.w * im->cache_entry.h); png_init_io(png_ptr, f); png_set_IHDR(png_ptr, info_ptr, im->cache_entry.w, im->cache_entry.h, 8, - PNG_COLOR_TYPE_RGB_ALPHA, png_ptr->interlaced, + PNG_COLOR_TYPE_RGB_ALPHA, interlace, PNG_COMPRESSION_TYPE_BASE, PNG_FILTER_TYPE_BASE); #ifdef WORDS_BIGENDIAN png_set_swap_alpha(png_ptr); @@ -97,7 +100,7 @@ save_image_png(RGBA_Image *im, const char *file, int compress, int interlace) data = im->image.data; png_init_io(png_ptr, f); png_set_IHDR(png_ptr, info_ptr, im->cache_entry.w, im->cache_entry.h, 8, - PNG_COLOR_TYPE_RGB, png_ptr->interlaced, + PNG_COLOR_TYPE_RGB, interlace, PNG_COMPRESSION_TYPE_BASE, PNG_FILTER_TYPE_BASE); png_data = alloca(im->cache_entry.w * 3 * sizeof(char)); } @@ -112,6 +115,10 @@ save_image_png(RGBA_Image *im, const char *file, int compress, int interlace) png_set_shift(png_ptr, &sig_bit); png_set_packing(png_ptr); +#ifdef PNG_WRITE_INTERLACING_SUPPORTED + num_passes = png_set_interlace_handling(png_ptr); +#endif + for (pass = 0; pass < num_passes; pass++) { ptr = data; -- 2.7.4