65 lines
2.4 KiB
Diff
65 lines
2.4 KiB
Diff
More information on this patch:
|
|
http://sourceforge.net/mailarchive/forum.php?thread_name=01e601cbc22e%24f45d7200%24dd185600%24%40acm.org&forum_name=png-mng-implement
|
|
|
|
$NetBSD$
|
|
|
|
Fix build with png-1.5.
|
|
|
|
--- input-png.c.orig 2002-10-10 20:44:14.000000000 +0000
|
|
+++ input-png.c
|
|
@@ -42,17 +42,17 @@ static png_bytep * read_png(png_structp
|
|
|
|
static void handle_warning(png_structp png, const at_string message) {
|
|
LOG1("PNG warning: %s", message);
|
|
- at_exception_warning((at_exception_type *)png->error_ptr,
|
|
+ at_exception_warning((at_exception_type *)png_get_error_ptr(png),
|
|
message);
|
|
- /* at_exception_fatal((at_exception_type *)at_png->error_ptr,
|
|
+ /* at_exception_fatal((at_exception_type *)png_get_error_ptr(at_png),
|
|
"PNG warning"); */
|
|
}
|
|
|
|
static void handle_error(png_structp png, const at_string message) {
|
|
LOG1("PNG error: %s", message);
|
|
- at_exception_fatal((at_exception_type *)png->error_ptr,
|
|
+ at_exception_fatal((at_exception_type *)png_get_error_ptr(png),
|
|
message);
|
|
- /* at_exception_fatal((at_exception_type *)at_png->error_ptr,
|
|
+ /* at_exception_fatal((at_exception_type *)png_get_error_ptr(at_png),
|
|
"PNG error"); */
|
|
|
|
}
|
|
@@ -157,8 +157,8 @@ read_png(png_structp png_ptr, png_infop
|
|
|
|
png_set_strip_16(png_ptr);
|
|
png_set_packing(png_ptr);
|
|
- if ((png_ptr->bit_depth < 8) ||
|
|
- (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE) ||
|
|
+ if ((png_get_bit_depth(png_ptr, info_ptr) < 8) ||
|
|
+ (png_get_color_type(png_ptr, info_ptr) == PNG_COLOR_TYPE_PALETTE) ||
|
|
(png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS)))
|
|
png_set_expand(png_ptr);
|
|
|
|
@@ -181,20 +181,10 @@ read_png(png_structp png_ptr, png_infop
|
|
PNG_BACKGROUND_GAMMA_FILE, 1, 1.0);
|
|
} else
|
|
png_set_strip_alpha(png_ptr);
|
|
+ png_set_interlace_handling(png_ptr);
|
|
png_read_update_info(png_ptr, info_ptr);
|
|
|
|
-
|
|
- info_ptr->row_pointers = (png_bytepp)png_malloc(png_ptr,
|
|
- info_ptr->height * sizeof(png_bytep));
|
|
-#ifdef PNG_FREE_ME_SUPPORTED
|
|
- info_ptr->free_me |= PNG_FREE_ROWS;
|
|
-#endif
|
|
- for (row = 0; row < (int)info_ptr->height; row++)
|
|
- info_ptr->row_pointers[row] = (png_bytep)png_malloc(png_ptr,
|
|
- png_get_rowbytes(png_ptr, info_ptr));
|
|
-
|
|
- png_read_image(png_ptr, info_ptr->row_pointers);
|
|
- info_ptr->valid |= PNG_INFO_IDAT;
|
|
+ png_read_png(png_ptr, info_ptr, PNG_TRANSFORM_IDENTITY, NULL);
|
|
png_read_end(png_ptr, info_ptr);
|
|
return png_get_rows(png_ptr, info_ptr);
|
|
}
|