mirror of
https://git.FreeBSD.org/ports.git
synced 2024-12-24 04:33:24 +00:00
Add a proper patch to support png 1.5
Obtained from: Archlinux
This commit is contained in:
parent
de40ad94ae
commit
3c57aac6d9
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=375375
@ -26,7 +26,7 @@ USE_GL= yes
|
||||
USE_GCC= any # problems in luabind
|
||||
|
||||
CONFIGURE_ARGS= --datadir=${DATADIR}
|
||||
CPPFLAGS+= -I${LOCALBASE}/include -I${LUA_INCDIR} -I${LOCALBASE}/include/libpng15
|
||||
CPPFLAGS+= -I${LOCALBASE}/include -I${LUA_INCDIR}
|
||||
LDFLAGS+= -L${LOCALBASE}/lib -L${LUA_LIBDIR}
|
||||
|
||||
WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION}
|
||||
|
@ -1,10 +1,15 @@
|
||||
--- src/engine/video/image.cpp.orig 2010-05-17 01:38:27.000000000 +0200
|
||||
+++ src/engine/video/image.cpp 2012-05-03 05:56:08.000000000 +0200
|
||||
@@ -17,6 +17,7 @@
|
||||
#include <math.h>
|
||||
--- src/engine/video/image.cpp.orig 2010-05-16 23:38:27 UTC
|
||||
+++ src/engine/video/image.cpp
|
||||
@@ -677,9 +677,9 @@ void ImageDescriptor::_GetPngImageInfo(c
|
||||
png_read_png(png_ptr, info_ptr, PNG_TRANSFORM_STRIP_16 | PNG_TRANSFORM_PACKING | PNG_TRANSFORM_EXPAND, NULL);
|
||||
|
||||
#include "video.h"
|
||||
+#include "pngpriv.h"
|
||||
// grab the relevant data...
|
||||
- cols = info_ptr->width;
|
||||
- rows = info_ptr->height;
|
||||
- bpp = info_ptr->channels * 8;
|
||||
+ cols = png_get_image_width(png_ptr, info_ptr);
|
||||
+ rows = png_get_image_height(png_ptr, info_ptr);
|
||||
+ bpp = png_get_channels(png_ptr, info_ptr) * 8;
|
||||
|
||||
using namespace std;
|
||||
using namespace hoa_utils;
|
||||
// and clean up.
|
||||
png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL);
|
||||
|
@ -1,10 +0,0 @@
|
||||
--- src/engine/video/image_base.cpp.orig 2010-05-17 01:38:27.000000000 +0200
|
||||
+++ src/engine/video/image_base.cpp 2012-05-03 05:51:57.000000000 +0200
|
||||
@@ -18,6 +18,7 @@
|
||||
|
||||
#include "image_base.h"
|
||||
#include "video.h"
|
||||
+#include "pngpriv.h"
|
||||
|
||||
using namespace std;
|
||||
using namespace hoa_utils;
|
85
games/allacrost/files/patch-src_engine_video_image__base.cpp
Normal file
85
games/allacrost/files/patch-src_engine_video_image__base.cpp
Normal file
@ -0,0 +1,85 @@
|
||||
--- src/engine/video/image_base.cpp.orig 2010-05-16 23:38:27 UTC
|
||||
+++ src/engine/video/image_base.cpp
|
||||
@@ -259,9 +259,9 @@ bool ImageMemory::_LoadPngImage(const st
|
||||
uint8** row_pointers = png_get_rows(png_ptr, info_ptr);
|
||||
|
||||
// copy metadata
|
||||
- width = info_ptr->width;
|
||||
- height = info_ptr->height;
|
||||
- pixels = malloc(info_ptr->width * info_ptr->height * 4);
|
||||
+ width = png_get_image_width(png_ptr, info_ptr);
|
||||
+ height = png_get_image_height(png_ptr, info_ptr);
|
||||
+ pixels = malloc(width * height * 4);
|
||||
|
||||
// check that we were able to allocate enough memory for the PNG
|
||||
if (pixels == NULL) {
|
||||
@@ -274,18 +274,21 @@ bool ImageMemory::_LoadPngImage(const st
|
||||
// convert the damn thing so that it works in our format
|
||||
// this is mostly just byteswapping and adding extra data - we want everything in four channels
|
||||
// for the moment, anyway
|
||||
- uint32 bpp = info_ptr->channels;
|
||||
+ uint32 bpp = png_get_channels(png_ptr, info_ptr);
|
||||
uint8* img_pixel = NULL;
|
||||
uint8* dst_pixel = NULL;
|
||||
|
||||
- if (info_ptr->color_type == PNG_COLOR_TYPE_PALETTE) {
|
||||
+ if (png_get_color_type(png_ptr, info_ptr) == PNG_COLOR_TYPE_PALETTE) {
|
||||
// colours come from a palette - for this colour type, we have to look up the colour from the palette
|
||||
+ png_colorp palette;
|
||||
+ int num_palette;
|
||||
+ png_get_PLTE(png_ptr, info_ptr, &palette, &num_palette);
|
||||
png_color c;
|
||||
- for (uint32 y = 0; y < info_ptr->height; y++) {
|
||||
- for (uint32 x = 0; x < info_ptr->width; x++) {
|
||||
+ for (uint32 y = 0; y < height; y++) {
|
||||
+ for (uint32 x = 0; x < width; x++) {
|
||||
img_pixel = row_pointers[y] + (x * bpp);
|
||||
- dst_pixel = ((uint8*)pixels) + ((y * info_ptr->width) + x) * 4;
|
||||
- c = info_ptr->palette[img_pixel[0]];
|
||||
+ dst_pixel = ((uint8*)pixels) + ((y * width) + x) * 4;
|
||||
+ c = palette[img_pixel[0]];
|
||||
|
||||
dst_pixel[0] = c.red;
|
||||
dst_pixel[1] = c.green;
|
||||
@@ -295,10 +298,10 @@ bool ImageMemory::_LoadPngImage(const st
|
||||
}
|
||||
}
|
||||
else if (bpp == 1) {
|
||||
- for (uint32 y = 0; y < info_ptr->height; y++) {
|
||||
- for (uint32 x = 0; x < info_ptr->width; x++) {
|
||||
+ for (uint32 y = 0; y < height; y++) {
|
||||
+ for (uint32 x = 0; x < width; x++) {
|
||||
img_pixel = row_pointers[y] + (x * bpp);
|
||||
- dst_pixel = ((uint8*)pixels) + ((y * info_ptr->width) + x) * 4;
|
||||
+ dst_pixel = ((uint8*)pixels) + ((y * width) + x) * 4;
|
||||
dst_pixel[0] = img_pixel[0];
|
||||
dst_pixel[1] = img_pixel[0];
|
||||
dst_pixel[2] = img_pixel[0];
|
||||
@@ -307,10 +310,10 @@ bool ImageMemory::_LoadPngImage(const st
|
||||
}
|
||||
}
|
||||
else if (bpp == 3) {
|
||||
- for (uint32 y = 0; y < info_ptr->height; y++) {
|
||||
- for (uint32 x = 0; x < info_ptr->width; x++) {
|
||||
+ for (uint32 y = 0; y < height; y++) {
|
||||
+ for (uint32 x = 0; x < width; x++) {
|
||||
img_pixel = row_pointers[y] + (x * bpp);
|
||||
- dst_pixel = ((uint8*)pixels) + ((y * info_ptr->width) + x) * 4;
|
||||
+ dst_pixel = ((uint8*)pixels) + ((y * width) + x) * 4;
|
||||
dst_pixel[0] = img_pixel[0];
|
||||
dst_pixel[1] = img_pixel[1];
|
||||
dst_pixel[2] = img_pixel[2];
|
||||
@@ -319,10 +322,10 @@ bool ImageMemory::_LoadPngImage(const st
|
||||
}
|
||||
}
|
||||
else if (bpp == 4) {
|
||||
- for (uint32 y = 0; y < info_ptr->height; y++) {
|
||||
- for (uint32 x = 0; x < info_ptr->width; x++) {
|
||||
+ for (uint32 y = 0; y < height; y++) {
|
||||
+ for (uint32 x = 0; x < width; x++) {
|
||||
img_pixel = row_pointers[y] + (x * bpp);
|
||||
- dst_pixel = ((uint8*)pixels) + ((y * info_ptr->width) + x) * 4;
|
||||
+ dst_pixel = ((uint8*)pixels) + ((y * width) + x) * 4;
|
||||
dst_pixel[0] = img_pixel[0];
|
||||
dst_pixel[1] = img_pixel[1];
|
||||
dst_pixel[2] = img_pixel[2];
|
Loading…
Reference in New Issue
Block a user