Blob Blame History Raw
diff -up irrlicht-1.7.2/source/Irrlicht/CImageLoaderPNG.cpp.png15 irrlicht-1.7.2/source/Irrlicht/CImageLoaderPNG.cpp
--- irrlicht-1.7.2/source/Irrlicht/CImageLoaderPNG.cpp.png15	2010-10-24 09:42:46.000000000 -0400
+++ irrlicht-1.7.2/source/Irrlicht/CImageLoaderPNG.cpp	2011-12-06 15:20:25.542576111 -0500
@@ -28,7 +28,11 @@ namespace video
 static void png_cpexcept_error(png_structp png_ptr, png_const_charp msg)
 {
 	os::Printer::log("PNG FATAL ERROR", msg, ELL_ERROR);
+#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4
+	longjmp(png_jmpbuf(png_ptr),1);
+#else
 	longjmp(png_ptr->jmpbuf, 1);
+#endif
 }
 
 // PNG function for file reading
@@ -37,7 +41,11 @@ void PNGAPI user_read_data_fcn(png_struc
 	png_size_t check;
 
 	// changed by zola {
+#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4
+	io::IReadFile* file=(io::IReadFile*)png_get_io_ptr(png_ptr);
+#else
 	io::IReadFile* file=(io::IReadFile*)png_ptr->io_ptr;
+#endif
 	check=(png_size_t) file->read((void*)data,(u32)length);
 	// }
 
@@ -162,7 +170,11 @@ IImage* CImageLoaderPng::loadImage(io::I
 	if (BitDepth < 8)
 	{
 		if (ColorType==PNG_COLOR_TYPE_GRAY || ColorType==PNG_COLOR_TYPE_GRAY_ALPHA)
+#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4
+			png_set_expand_gray_1_2_4_to_8(png_ptr);
+#else
 			png_set_gray_1_2_4_to_8(png_ptr);
+#endif
 		else
 			png_set_packing(png_ptr);
 	}
diff -up irrlicht-1.7.2/source/Irrlicht/CImageWriterPNG.cpp.png15 irrlicht-1.7.2/source/Irrlicht/CImageWriterPNG.cpp
--- irrlicht-1.7.2/source/Irrlicht/CImageWriterPNG.cpp.png15	2011-12-06 15:20:54.476303641 -0500
+++ irrlicht-1.7.2/source/Irrlicht/CImageWriterPNG.cpp	2011-12-06 15:22:56.424155264 -0500
@@ -35,7 +35,11 @@ IImageWriter* createImageWriterPNG()
 static void png_cpexcept_error(png_structp png_ptr, png_const_charp msg)
 {
 	os::Printer::log("PNG FATAL ERROR", msg, ELL_ERROR);
+#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4
+	longjmp(png_jmpbuf(png_ptr),1);
+#else
 	longjmp(png_ptr->jmpbuf, 1);
+#endif
 }
 
 // PNG function for file writing
@@ -43,7 +47,11 @@ void PNGAPI user_write_data_fcn(png_stru
 {
 	png_size_t check;
 
+#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4
+	io::IWriteFile* file=(io::IWriteFile*)png_get_io_ptr(png_ptr);
+#else
 	io::IWriteFile* file=(io::IWriteFile*)png_ptr->io_ptr;
+#endif
 	check=(png_size_t) file->write((const void*)data,(u32)length);
 
 	if (check != length)