diff options
author | antoine <antoine@FreeBSD.org> | 2014-12-25 18:12:06 +0800 |
---|---|---|
committer | antoine <antoine@FreeBSD.org> | 2014-12-25 18:12:06 +0800 |
commit | 2ba56dc693dde82b21fadcb9f1a6a832453c68fa (patch) | |
tree | 527cc532a8d12b8795b0f6986856d99081081dbe /graphics/flam3 | |
parent | 7870ff542a37a02c6875b94cd126879ade8acebd (diff) | |
download | freebsd-ports-gnome-2ba56dc693dde82b21fadcb9f1a6a832453c68fa.tar.gz freebsd-ports-gnome-2ba56dc693dde82b21fadcb9f1a6a832453c68fa.tar.zst freebsd-ports-gnome-2ba56dc693dde82b21fadcb9f1a6a832453c68fa.zip |
Properly support png 1.5
Diffstat (limited to 'graphics/flam3')
-rw-r--r-- | graphics/flam3/Makefile | 4 | ||||
-rw-r--r-- | graphics/flam3/files/patch-png.c | 86 |
2 files changed, 78 insertions, 12 deletions
diff --git a/graphics/flam3/Makefile b/graphics/flam3/Makefile index 9cd85d6eb37d..e563790fa829 100644 --- a/graphics/flam3/Makefile +++ b/graphics/flam3/Makefile @@ -11,14 +11,14 @@ MASTER_SITES= http://flam3.com/ \ MAINTAINER= john.c.prather@gmail.com COMMENT= Flame Renderer -LIB_DEPENDS= libpng15.so:${PORTSDIR}/graphics/png \ +LIB_DEPENDS= libpng.so:${PORTSDIR}/graphics/png \ libxml2.so:${PORTSDIR}/textproc/libxml2 \ libjpeg.so:${PORTSDIR}/graphics/jpeg GNU_CONFIGURE= yes USES= gmake libtool pathfix pkgconfig -CPPFLAGS+= -I${LOCALBASE}/include/libpng15 -I${LOCALBASE}/include +CPPFLAGS+= -I${LOCALBASE}/include LIBS+= -L${LOCALBASE}/lib .include <bsd.port.mk> diff --git a/graphics/flam3/files/patch-png.c b/graphics/flam3/files/patch-png.c index fa5a620a4b31..716451601970 100644 --- a/graphics/flam3/files/patch-png.c +++ b/graphics/flam3/files/patch-png.c @@ -1,10 +1,76 @@ ---- png.c.orig 2008-11-12 02:39:40.000000000 +0100 -+++ png.c 2012-04-25 06:46:07.000000000 +0200 -@@ -21,6 +21,7 @@ - #include <stdio.h> - #include <stdlib.h> - #include <png.h> -+#include <pngpriv.h> - #include <setjmp.h> - - #include "config.h" +http://code.google.com/p/flam3/issues/detail?id=8 + +--- png.c.orig ++++ png.c +@@ -142,7 +142,7 @@ + } + if (setjmp(png_jmpbuf(png_ptr))) { + if (png_image) { +- for (y = 0 ; y < info_ptr->height ; y++) ++ for (y = 0 ; y < png_get_image_height(png_ptr, info_ptr) ; y++) + free (png_image[y]); + free (png_image); + } +@@ -161,19 +161,19 @@ + png_set_sig_bytes (png_ptr, SIG_CHECK_SIZE); + png_read_info (png_ptr, info_ptr); + +- if (8 != info_ptr->bit_depth) { ++ if (8 != png_get_bit_depth(png_ptr, info_ptr)) { + fprintf(stderr, "bit depth type must be 8, not %d.\n", +- info_ptr->bit_depth); ++ png_get_bit_depth(png_ptr, info_ptr)); + return 0; + } + +- *width = info_ptr->width; +- *height = info_ptr->height; ++ *width = png_get_image_width(png_ptr, info_ptr); ++ *height = png_get_image_height(png_ptr, info_ptr); + p = q = malloc(4 * *width * *height); +- png_image = (png_byte **)malloc (info_ptr->height * sizeof (png_byte*)); ++ png_image = (png_byte **)malloc (png_get_image_height(png_ptr, info_ptr) * sizeof (png_byte*)); + +- linesize = info_ptr->width; +- switch (info_ptr->color_type) { ++ linesize = png_get_image_width(png_ptr, info_ptr); ++ switch (png_get_color_type(png_ptr, info_ptr)) { + case PNG_COLOR_TYPE_RGB: + linesize *= 3; + break; +@@ -182,21 +182,21 @@ + break; + default: + fprintf(stderr, "color type must be RGB or RGBA not %d.\n", +- info_ptr->color_type); ++ png_get_color_type(png_ptr, info_ptr)); + return 0; + } + +- for (y = 0 ; y < info_ptr->height ; y++) { ++ for (y = 0 ; y < png_get_image_height(png_ptr, info_ptr) ; y++) { + png_image[y] = malloc (linesize); + } + png_read_image (png_ptr, png_image); + png_read_end (png_ptr, info_ptr); + +- for (y = 0 ; y < info_ptr->height ; y++) { ++ for (y = 0 ; y < png_get_image_height(png_ptr, info_ptr) ; y++) { + unsigned char *s = png_image[y]; +- for (x = 0 ; x < info_ptr->width ; x++) { ++ for (x = 0 ; x < png_get_image_width(png_ptr, info_ptr) ; x++) { + +- switch (info_ptr->color_type) { ++ switch (png_get_color_type(png_ptr, info_ptr)) { + case PNG_COLOR_TYPE_RGB: + p[0] = s[0]; + p[1] = s[1]; +@@ -217,7 +217,7 @@ + } + } + +- for (y = 0 ; y < info_ptr->height ; y++) ++ for (y = 0 ; y < png_get_image_height(png_ptr, info_ptr) ; y++) + free (png_image[y]); + free (png_image); + png_destroy_read_struct (&png_ptr, &info_ptr, (png_infopp)NULL); |