svn commit: r375466 - head/sysutils/qpxtool/files

Antoine Brodin antoine at FreeBSD.org
Wed Dec 24 15:03:49 UTC 2014


Author: antoine
Date: Wed Dec 24 15:03:48 2014
New Revision: 375466
URL: https://svnweb.freebsd.org/changeset/ports/375466
QAT: https://qat.redports.org/buildarchive/r375466/

Log:
  Properly support png 1.5
  
  Obtained from:	Gentoo

Modified:
  head/sysutils/qpxtool/files/patch-f1tattoo.cpp

Modified: head/sysutils/qpxtool/files/patch-f1tattoo.cpp
==============================================================================
--- head/sysutils/qpxtool/files/patch-f1tattoo.cpp	Wed Dec 24 14:45:43 2014	(r375465)
+++ head/sysutils/qpxtool/files/patch-f1tattoo.cpp	Wed Dec 24 15:03:48 2014	(r375466)
@@ -1,10 +1,125 @@
---- console/f1tattoo/f1tattoo.cpp.orig	2009-11-25 08:55:44.000000000 +0100
-+++ console/f1tattoo/f1tattoo.cpp	2012-05-09 13:18:22.000000000 +0200
-@@ -18,6 +18,7 @@
- 
- #ifdef USE_LIBPNG
- #include <png.h>
-+#include <pngpriv.h>
- #endif
+--- console/f1tattoo/f1tattoo.cpp.orig	2010-09-21 18:48:03 UTC
++++ console/f1tattoo/f1tattoo.cpp
+@@ -96,6 +96,10 @@ bool tattoo_read_png(unsigned char *buf,
+ 	int      c;
+ 	int32_t  r,g,b;
  
- #include "version.h"
++	png_colorp palette;
++	int num_palette;
++	png_get_PLTE(png_ptr, info_ptr, &palette, &num_palette);
++
+ 	if (fread(header, 1, 8, fp) < 8) {
+ 		printf("Error reading PNG header\n");
+ 		fclose(fp);	
+@@ -129,9 +133,9 @@ bool tattoo_read_png(unsigned char *buf,
+ 
+ 	png_read_info(png_ptr, info_ptr);
+ 
+-	printf("Image size: %ld x %ld\n", info_ptr->width, info_ptr->height);
++	printf("Image size: %ld x %ld\n", png_get_image_width(png_ptr, info_ptr), png_get_image_height(png_ptr, info_ptr));
+ 
+-	if (info_ptr->width != 3744U || info_ptr->height != rows ) {
++	if (png_get_image_width(png_ptr, info_ptr) != 3744U || png_get_image_height(png_ptr, info_ptr) != rows ) {
+ 		printf("Image should be 3744 x %d", rows);
+ 		return 1;
+ 	}
+@@ -143,14 +147,14 @@ bool tattoo_read_png(unsigned char *buf,
+ 	number_of_passes = png_set_interlace_handling(png_ptr);
+ 	png_read_update_info(png_ptr, info_ptr);
+ 
+-	printf("Color type: [%d] ", info_ptr->color_type);
+-	switch (info_ptr->color_type) {
++	printf("Color type: [%d] ", png_get_color_type(png_ptr, info_ptr));
++	switch (png_get_color_type(png_ptr, info_ptr)) {
+ 	    case PNG_COLOR_TYPE_GRAY:
+ 			printf("PNG_COLOR_TYPE_GRAY\n");
+ 			break;
+ 	    case PNG_COLOR_TYPE_PALETTE:
+ 			printf("PNG_COLOR_TYPE_PALETTE\n");
+-			if (!(info_ptr->valid & PNG_INFO_PLTE)) {
++			if (!(png_get_valid(png_ptr,info_ptr,PNG_INFO_PLTE))) {
+ 				printf("PNG color type is indexed, but no palette found!");
+ 				goto err_read_png;
+ 			}
+@@ -168,49 +172,49 @@ bool tattoo_read_png(unsigned char *buf,
+ 			printf("unlnown PNG color type!\n");
+ 			goto err_read_png;
+ 	}
+-	printf("Bit depth : %d\n", info_ptr->bit_depth);
+-	if (info_ptr->bit_depth != 8) {
++	printf("Bit depth : %d\n", png_get_bit_depth(png_ptr, info_ptr));
++	if (png_get_bit_depth(png_ptr, info_ptr) != 8) {
+ 		printf("Unsupported bit depth!\n");
+ 		goto err_read_png;
+ 	}
+-	if (info_ptr->valid & PNG_INFO_PLTE) {
+-		printf("Palette   : %d colors\n", info_ptr->num_palette);
++	if (png_get_valid(png_ptr,info_ptr,PNG_INFO_PLTE)) {
++		printf("Palette   : %d colors\n", num_palette);
+ 	} else {
+ 		printf("Palette   : NO\n");
+ 	}
+-	printf("ROW bytes : %ld\n", info_ptr->rowbytes);
++	printf("ROW bytes : %ld\n", png_get_rowbytes(png_ptr, info_ptr));
+ 
+ 
+ 	raw_row_pointer = buf;
+-	png_row_pointer = (png_byte*) malloc(info_ptr->rowbytes);
++	png_row_pointer = (png_byte*) malloc(png_get_rowbytes(png_ptr, info_ptr));
+ 	for (row=0; row<rows; row++) {
+ 		if (setjmp(png_jmpbuf(png_ptr))) {
+ 			printf("png_jmpbuf failed!\n");
+ 			goto err_read_png;
+ 		}
+ 		png_read_row(png_ptr, png_row_pointer, NULL);
+-		if (info_ptr->width < 3744U)
++		if (png_get_image_width(png_ptr, info_ptr) < 3744U)
+ 			memset(raw_row_pointer, 0, 3744);
+ 
+-		switch (info_ptr->color_type) {
++		switch (png_get_color_type(png_ptr, info_ptr)) {
+ 		    case PNG_COLOR_TYPE_GRAY:
+-				for (col=0; col<info_ptr->width; col++) {
++				for (col=0; col<png_get_image_width(png_ptr, info_ptr); col++) {
+ 					raw_row_pointer[col] = png_row_pointer[col] ^ 0xFF;
+ //					memcpy(raw_row_pointer, png_row_pointer, 3744);
+ 				}
+ 				break;
+ 		    case PNG_COLOR_TYPE_PALETTE:
+-				for (col=0; col<info_ptr->width; col++) {
++				for (col=0; col<png_get_image_width(png_ptr, info_ptr); col++) {
+ 					c = png_row_pointer[col];
+-					r = info_ptr->palette[c].red;
+-					g = info_ptr->palette[c].green;
+-					b = info_ptr->palette[c].blue;
++					r = palette[c].red;
++					g = palette[c].green;
++					b = palette[c].blue;
+ 					c = (r*11 + g*16 + b*5) / 32;
+ 					raw_row_pointer[col] = c ^ 0xFF;
+ 				}
+ 				break;
+ 		    case PNG_COLOR_TYPE_RGB:
+-				for (col=0; col<info_ptr->width; col++) {
++				for (col=0; col<png_get_image_width(png_ptr, info_ptr); col++) {
+ 					r = png_row_pointer[col*3];
+ 					g = png_row_pointer[col*3+1];
+ 					b = png_row_pointer[col*3+2];
+@@ -219,7 +223,7 @@ bool tattoo_read_png(unsigned char *buf,
+ 				}
+ 				break;
+ 		    case PNG_COLOR_TYPE_RGB_ALPHA:
+-				for (col=0; col<info_ptr->width; col++) {
++				for (col=0; col<png_get_image_width(png_ptr, info_ptr); col++) {
+ 					r = png_row_pointer[col*4];
+ 					g = png_row_pointer[col*4+1];
+ 					b = png_row_pointer[col*4+2];
+@@ -228,7 +232,7 @@ bool tattoo_read_png(unsigned char *buf,
+ 				}
+ 				break;
+ 		    case PNG_COLOR_TYPE_GRAY_ALPHA:
+-				for (col=0; col<info_ptr->width; col++) {
++				for (col=0; col<png_get_image_width(png_ptr, info_ptr); col++) {
+ 					raw_row_pointer[col] = png_row_pointer[col*2] ^ 0xFF;
+ 				}
+ 				break;


More information about the svn-ports-head mailing list