diff options
author | Peter Breitenlohner <peb@mppmu.mpg.de> | 2015-08-01 10:09:21 +0000 |
---|---|---|
committer | Peter Breitenlohner <peb@mppmu.mpg.de> | 2015-08-01 10:09:21 +0000 |
commit | 363d3d71fd0f22f3bf2c2c82f09e158db181d630 (patch) | |
tree | ebdbd833c6c61ec32ae5bde26d2448a8f1813ff1 /Build/source/libs | |
parent | 0fd479f40c7c1e76c7de05bbf63588df3d00b9ff (diff) |
libpng 1.6.18
git-svn-id: svn://tug.org/texlive/trunk@38018 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/libs')
-rw-r--r-- | Build/source/libs/README | 2 | ||||
-rw-r--r-- | Build/source/libs/libpng/ChangeLog | 5 | ||||
-rwxr-xr-x | Build/source/libs/libpng/configure | 24 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.17/ANNOUNCE | 72 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18-PATCHES/ChangeLog (renamed from Build/source/libs/libpng/libpng-1.6.17-PATCHES/ChangeLog) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18-PATCHES/TL-Changes (renamed from Build/source/libs/libpng/libpng-1.6.17-PATCHES/TL-Changes) | 4 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/ANNOUNCE | 90 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/CHANGES (renamed from Build/source/libs/libpng/libpng-1.6.17/CHANGES) | 161 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/CMakeLists.txt (renamed from Build/source/libs/libpng/libpng-1.6.17/CMakeLists.txt) | 4 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/INSTALL (renamed from Build/source/libs/libpng/libpng-1.6.17/INSTALL) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/LICENSE (renamed from Build/source/libs/libpng/libpng-1.6.17/LICENSE) | 48 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/Makefile.am (renamed from Build/source/libs/libpng/libpng-1.6.17/Makefile.am) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/README (renamed from Build/source/libs/libpng/libpng-1.6.17/README) | 4 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/TODO (renamed from Build/source/libs/libpng/libpng-1.6.17/TODO) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/arm/arm_init.c (renamed from Build/source/libs/libpng/libpng-1.6.17/arm/arm_init.c) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/arm/filter_neon.S (renamed from Build/source/libs/libpng/libpng-1.6.17/arm/filter_neon.S) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/arm/filter_neon_intrinsics.c (renamed from Build/source/libs/libpng/libpng-1.6.17/arm/filter_neon_intrinsics.c) | 0 | ||||
-rwxr-xr-x | Build/source/libs/libpng/libpng-1.6.18/autogen.sh (renamed from Build/source/libs/libpng/libpng-1.6.17/autogen.sh) | 5 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/config.h.in (renamed from Build/source/libs/libpng/libpng-1.6.17/config.h.in) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/configure.ac (renamed from Build/source/libs/libpng/libpng-1.6.17/configure.ac) | 6 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/README.txt (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/README.txt) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/arm-neon/README (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/arm-neon/README) | 2 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/arm-neon/android-ndk.c (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/arm-neon/android-ndk.c) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/arm-neon/linux-auxv.c (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/arm-neon/linux-auxv.c) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/arm-neon/linux.c (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/arm-neon/linux.c) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/conftest/README (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/conftest/README) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/conftest/read.dfa (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/conftest/read.dfa) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/conftest/s_read.dfa (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/conftest/s_read.dfa) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/conftest/s_write.dfa (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/conftest/s_write.dfa) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/conftest/simple.dfa (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/conftest/simple.dfa) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/conftest/write.dfa (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/conftest/write.dfa) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/examples/README.txt (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/examples/README.txt) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/examples/iccfrompng.c (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/examples/iccfrompng.c) | 5 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/examples/pngpixel.c (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/examples/pngpixel.c) | 3 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/examples/pngtopng.c (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/examples/pngtopng.c) | 3 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/examples/simpleover.c | 648 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/COPYING (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/COPYING) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/LICENSE (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/LICENSE) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/Makefile.mingw32 (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/Makefile.mingw32) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/Makefile.sgi (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/Makefile.sgi) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/Makefile.unx (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/Makefile.unx) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/Makefile.w32 (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/Makefile.w32) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/README (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/README) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/makevms.com (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/makevms.com) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/readpng.c (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/readpng.c) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/readpng.h (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/readpng.h) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/readpng2.c (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/readpng2.c) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/readpng2.h (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/readpng2.h) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/readppm.c (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/readppm.c) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/rpng-win.c (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/rpng-win.c) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/rpng-x.c (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/rpng-x.c) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/rpng2-win.c (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/rpng2-win.c) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/rpng2-x.c (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/rpng2-x.c) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/toucan.png (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/toucan.png) | bin | 12901 -> 12901 bytes | |||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/wpng.c (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/wpng.c) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/writepng.c (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/writepng.c) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/writepng.h (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/writepng.h) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/libtests/fakepng.c (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/libtests/fakepng.c) | 0 | ||||
-rwxr-xr-x | Build/source/libs/libpng/libpng-1.6.18/contrib/libtests/gentests.sh (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/libtests/gentests.sh) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/libtests/makepng.c (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/libtests/makepng.c) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/libtests/pngimage.c (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/libtests/pngimage.c) | 8 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/libtests/pngstest.c (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/libtests/pngstest.c) | 47 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/libtests/pngunknown.c (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/libtests/pngunknown.c) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/libtests/pngvalid.c (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/libtests/pngvalid.c) | 418 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/libtests/readpng.c (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/libtests/readpng.c) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/libtests/tarith.c (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/libtests/tarith.c) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/libtests/timepng.c (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/libtests/timepng.c) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/pngminim/README (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/pngminim/README) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/pngminim/decoder/README (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/pngminim/decoder/README) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/pngminim/decoder/makefile (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/pngminim/decoder/makefile) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/pngminim/decoder/pngusr.dfa (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/pngminim/decoder/pngusr.dfa) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/pngminim/decoder/pngusr.h (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/pngminim/decoder/pngusr.h) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/pngminim/encoder/README (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/pngminim/encoder/README) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/pngminim/encoder/makefile (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/pngminim/encoder/makefile) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/pngminim/encoder/pngusr.dfa (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/pngminim/encoder/pngusr.dfa) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/pngminim/encoder/pngusr.h (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/pngminim/encoder/pngusr.h) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/pngminim/preader/README (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/pngminim/preader/README) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/pngminim/preader/makefile (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/pngminim/preader/makefile) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/pngminim/preader/pngusr.dfa (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/pngminim/preader/pngusr.dfa) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/pngminim/preader/pngusr.h (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/pngminim/preader/pngusr.h) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/pngminus/README (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/pngminus/README) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/pngminus/makefile.std (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/pngminus/makefile.std) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/pngminus/makefile.tc3 (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/pngminus/makefile.tc3) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/pngminus/makevms.com (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/pngminus/makevms.com) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/pngminus/png2pnm.bat (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/pngminus/png2pnm.bat) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/pngminus/png2pnm.c (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/pngminus/png2pnm.c) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/pngminus/png2pnm.sh (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/pngminus/png2pnm.sh) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/pngminus/pngminus.bat (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/pngminus/pngminus.bat) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/pngminus/pngminus.sh (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/pngminus/pngminus.sh) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/pngminus/pnm2png.bat (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/pngminus/pnm2png.bat) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/pngminus/pnm2png.c (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/pngminus/pnm2png.c) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/pngminus/pnm2png.sh (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/pngminus/pnm2png.sh) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/README (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/README) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/basn0g01.png (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/basn0g01.png) | bin | 164 -> 164 bytes | |||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/basn0g02.png (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/basn0g02.png) | bin | 104 -> 104 bytes | |||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/basn0g04.png (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/basn0g04.png) | bin | 145 -> 145 bytes | |||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/basn0g08.png (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/basn0g08.png) | bin | 138 -> 138 bytes | |||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/basn0g16.png (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/basn0g16.png) | bin | 167 -> 167 bytes | |||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/basn2c08.png (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/basn2c08.png) | bin | 145 -> 145 bytes | |||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/basn2c16.png (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/basn2c16.png) | bin | 302 -> 302 bytes | |||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/basn3p01.png (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/basn3p01.png) | bin | 112 -> 112 bytes | |||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/basn3p02.png (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/basn3p02.png) | bin | 146 -> 146 bytes | |||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/basn3p04.png (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/basn3p04.png) | bin | 216 -> 216 bytes | |||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/basn3p08.png (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/basn3p08.png) | bin | 1286 -> 1286 bytes | |||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/basn4a08.png (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/basn4a08.png) | bin | 126 -> 126 bytes | |||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/basn4a16.png (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/basn4a16.png) | bin | 2206 -> 2206 bytes | |||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/basn6a08.png (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/basn6a08.png) | bin | 184 -> 184 bytes | |||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/basn6a16.png (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/basn6a16.png) | bin | 3435 -> 3435 bytes | |||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/ftbbn0g01.png (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/ftbbn0g01.png) | bin | 176 -> 176 bytes | |||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/ftbbn0g02.png (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/ftbbn0g02.png) | bin | 197 -> 197 bytes | |||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/ftbbn0g04.png (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/ftbbn0g04.png) | bin | 429 -> 429 bytes | |||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/ftbbn2c16.png (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/ftbbn2c16.png) | bin | 2041 -> 2041 bytes | |||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/ftbbn3p08.png (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/ftbbn3p08.png) | bin | 1499 -> 1499 bytes | |||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/ftbgn2c16.png (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/ftbgn2c16.png) | bin | 2041 -> 2041 bytes | |||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/ftbgn3p08.png (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/ftbgn3p08.png) | bin | 1499 -> 1499 bytes | |||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/ftbrn2c08.png (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/ftbrn2c08.png) | bin | 1633 -> 1633 bytes | |||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/ftbwn0g16.png (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/ftbwn0g16.png) | bin | 1313 -> 1313 bytes | |||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/ftbwn3p08.png (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/ftbwn3p08.png) | bin | 1496 -> 1496 bytes | |||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/ftbyn3p08.png (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/ftbyn3p08.png) | bin | 1499 -> 1499 bytes | |||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/ftp0n0g08.png (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/ftp0n0g08.png) | bin | 719 -> 719 bytes | |||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/ftp0n2c08.png (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/ftp0n2c08.png) | bin | 1594 -> 1594 bytes | |||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/ftp0n3p08.png (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/ftp0n3p08.png) | bin | 1476 -> 1476 bytes | |||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/ftp1n3p08.png (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/ftp1n3p08.png) | bin | 1483 -> 1483 bytes | |||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/tools/README.txt (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/tools/README.txt) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/tools/checksum-icc.c (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/tools/checksum-icc.c) | 0 | ||||
-rwxr-xr-x | Build/source/libs/libpng/libpng-1.6.18/contrib/tools/chkfmt (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/tools/chkfmt) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/tools/cvtcolor.c (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/tools/cvtcolor.c) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/tools/genpng.c | 867 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/tools/intgamma.sh (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/tools/intgamma.sh) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/tools/makesRGB.c (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/tools/makesRGB.c) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/tools/png-fix-itxt.c (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/tools/png-fix-itxt.c) | 67 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/tools/pngfix.c (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/tools/pngfix.c) | 32 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/tools/sRGB.h (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/tools/sRGB.h) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/visupng/PngFile.c (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/visupng/PngFile.c) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/visupng/PngFile.h (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/visupng/PngFile.h) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/visupng/README.txt (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/visupng/README.txt) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/visupng/VisualPng.c (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/visupng/VisualPng.c) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/visupng/VisualPng.dsp (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/visupng/VisualPng.dsp) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/visupng/VisualPng.dsw (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/visupng/VisualPng.dsw) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/visupng/VisualPng.ico (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/visupng/VisualPng.ico) | bin | 766 -> 766 bytes | |||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/visupng/VisualPng.png (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/visupng/VisualPng.png) | bin | 208 -> 208 bytes | |||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/visupng/VisualPng.rc (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/visupng/VisualPng.rc) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/visupng/cexcept.h (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/visupng/cexcept.h) | 7 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/contrib/visupng/resource.h (renamed from Build/source/libs/libpng/libpng-1.6.17/contrib/visupng/resource.h) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/example.c (renamed from Build/source/libs/libpng/libpng-1.6.17/example.c) | 0 | ||||
-rwxr-xr-x | Build/source/libs/libpng/libpng-1.6.18/libpng-config.in (renamed from Build/source/libs/libpng/libpng-1.6.17/libpng-config.in) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/libpng-manual.txt (renamed from Build/source/libs/libpng/libpng-1.6.17/libpng-manual.txt) | 65 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/libpng.3 (renamed from Build/source/libs/libpng/libpng-1.6.17/libpng.3) | 139 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/libpng.pc.in (renamed from Build/source/libs/libpng/libpng-1.6.17/libpng.pc.in) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/libpngpf.3 (renamed from Build/source/libs/libpng/libpng-1.6.17/libpngpf.3) | 4 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/png.5 (renamed from Build/source/libs/libpng/libpng-1.6.17/png.5) | 2 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/png.c (renamed from Build/source/libs/libpng/libpng-1.6.17/png.c) | 113 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/png.h (renamed from Build/source/libs/libpng/libpng-1.6.17/png.h) | 107 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/pngbar.jpg (renamed from Build/source/libs/libpng/libpng-1.6.17/pngbar.jpg) | bin | 2498 -> 2498 bytes | |||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/pngbar.png (renamed from Build/source/libs/libpng/libpng-1.6.17/pngbar.png) | bin | 2399 -> 2399 bytes | |||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/pngconf.h (renamed from Build/source/libs/libpng/libpng-1.6.17/pngconf.h) | 12 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/pngdebug.h (renamed from Build/source/libs/libpng/libpng-1.6.17/pngdebug.h) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/pngerror.c (renamed from Build/source/libs/libpng/libpng-1.6.17/pngerror.c) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/pngget.c (renamed from Build/source/libs/libpng/libpng-1.6.17/pngget.c) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/pnginfo.h (renamed from Build/source/libs/libpng/libpng-1.6.17/pnginfo.h) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/pnglibconf.h (renamed from Build/source/libs/libpng/libpng-1.6.17/pnglibconf.h) | 10 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/pngmem.c (renamed from Build/source/libs/libpng/libpng-1.6.17/pngmem.c) | 3 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/pngnow.png (renamed from Build/source/libs/libpng/libpng-1.6.17/pngnow.png) | bin | 2069 -> 2069 bytes | |||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/pngpread.c (renamed from Build/source/libs/libpng/libpng-1.6.17/pngpread.c) | 111 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/pngpriv.h (renamed from Build/source/libs/libpng/libpng-1.6.17/pngpriv.h) | 37 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/pngread.c (renamed from Build/source/libs/libpng/libpng-1.6.17/pngread.c) | 10 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/pngrio.c (renamed from Build/source/libs/libpng/libpng-1.6.17/pngrio.c) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/pngrtran.c (renamed from Build/source/libs/libpng/libpng-1.6.17/pngrtran.c) | 7 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/pngrutil.c (renamed from Build/source/libs/libpng/libpng-1.6.17/pngrutil.c) | 358 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/pngset.c (renamed from Build/source/libs/libpng/libpng-1.6.17/pngset.c) | 8 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/pngstruct.h (renamed from Build/source/libs/libpng/libpng-1.6.17/pngstruct.h) | 32 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/pngtest.c (renamed from Build/source/libs/libpng/libpng-1.6.17/pngtest.c) | 14 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/pngtest.png (renamed from Build/source/libs/libpng/libpng-1.6.17/pngtest.png) | bin | 8695 -> 8695 bytes | |||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/pngtrans.c (renamed from Build/source/libs/libpng/libpng-1.6.17/pngtrans.c) | 4 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/pngusr.dfa (renamed from Build/source/libs/libpng/libpng-1.6.17/pngusr.dfa) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/pngwio.c (renamed from Build/source/libs/libpng/libpng-1.6.17/pngwio.c) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/pngwrite.c (renamed from Build/source/libs/libpng/libpng-1.6.17/pngwrite.c) | 593 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/pngwtran.c (renamed from Build/source/libs/libpng/libpng-1.6.17/pngwtran.c) | 14 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/pngwutil.c (renamed from Build/source/libs/libpng/libpng-1.6.17/pngwutil.c) | 848 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/projects/owatcom/libpng.tgt (renamed from Build/source/libs/libpng/libpng-1.6.17/projects/owatcom/libpng.tgt) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/projects/owatcom/libpng.wpj (renamed from Build/source/libs/libpng/libpng-1.6.17/projects/owatcom/libpng.wpj) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/projects/owatcom/pngconfig.mak (renamed from Build/source/libs/libpng/libpng-1.6.17/projects/owatcom/pngconfig.mak) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/projects/owatcom/pngstest.tgt (renamed from Build/source/libs/libpng/libpng-1.6.17/projects/owatcom/pngstest.tgt) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/projects/owatcom/pngtest.tgt (renamed from Build/source/libs/libpng/libpng-1.6.17/projects/owatcom/pngtest.tgt) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/projects/owatcom/pngvalid.tgt (renamed from Build/source/libs/libpng/libpng-1.6.17/projects/owatcom/pngvalid.tgt) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/projects/visualc71/PRJ0041.mak (renamed from Build/source/libs/libpng/libpng-1.6.17/projects/visualc71/PRJ0041.mak) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/projects/visualc71/README.txt (renamed from Build/source/libs/libpng/libpng-1.6.17/projects/visualc71/README.txt) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/projects/visualc71/README_zlib.txt (renamed from Build/source/libs/libpng/libpng-1.6.17/projects/visualc71/README_zlib.txt) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/projects/visualc71/libpng.sln (renamed from Build/source/libs/libpng/libpng-1.6.17/projects/visualc71/libpng.sln) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/projects/visualc71/libpng.vcproj (renamed from Build/source/libs/libpng/libpng-1.6.17/projects/visualc71/libpng.vcproj) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/projects/visualc71/pngtest.vcproj (renamed from Build/source/libs/libpng/libpng-1.6.17/projects/visualc71/pngtest.vcproj) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/projects/visualc71/zlib.vcproj (renamed from Build/source/libs/libpng/libpng-1.6.17/projects/visualc71/zlib.vcproj) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/projects/vstudio/WARNING (renamed from Build/source/libs/libpng/libpng-1.6.17/projects/vstudio/WARNING) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/projects/vstudio/libpng/libpng.vcxproj (renamed from Build/source/libs/libpng/libpng-1.6.17/projects/vstudio/libpng/libpng.vcxproj) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/projects/vstudio/pnglibconf/pnglibconf.vcxproj (renamed from Build/source/libs/libpng/libpng-1.6.17/projects/vstudio/pnglibconf/pnglibconf.vcxproj) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/projects/vstudio/pngstest/pngstest.vcxproj (renamed from Build/source/libs/libpng/libpng-1.6.17/projects/vstudio/pngstest/pngstest.vcxproj) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/projects/vstudio/pngtest/pngtest.vcxproj (renamed from Build/source/libs/libpng/libpng-1.6.17/projects/vstudio/pngtest/pngtest.vcxproj) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/projects/vstudio/pngunknown/pngunknown.vcxproj (renamed from Build/source/libs/libpng/libpng-1.6.17/projects/vstudio/pngunknown/pngunknown.vcxproj) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/projects/vstudio/pngvalid/pngvalid.vcxproj (renamed from Build/source/libs/libpng/libpng-1.6.17/projects/vstudio/pngvalid/pngvalid.vcxproj) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/projects/vstudio/readme.txt (renamed from Build/source/libs/libpng/libpng-1.6.17/projects/vstudio/readme.txt) | 2 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/projects/vstudio/vstudio.sln (renamed from Build/source/libs/libpng/libpng-1.6.17/projects/vstudio/vstudio.sln) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/projects/vstudio/zlib.props (renamed from Build/source/libs/libpng/libpng-1.6.17/projects/vstudio/zlib.props) | 2 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/projects/vstudio/zlib/zlib.vcxproj (renamed from Build/source/libs/libpng/libpng-1.6.17/projects/vstudio/zlib/zlib.vcxproj) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/README.txt (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/README.txt) | 10 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/SCOPTIONS.ppc (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/SCOPTIONS.ppc) | 0 | ||||
-rwxr-xr-x | Build/source/libs/libpng/libpng-1.6.18/scripts/checksym.awk (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/checksym.awk) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/def.c (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/def.c) | 2 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/descrip.mms (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/descrip.mms) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/dfn.awk (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/dfn.awk) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/intprefix.c (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/intprefix.c) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/libpng-config-body.in (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/libpng-config-body.in) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/libpng-config-head.in (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/libpng-config-head.in) | 2 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/libpng.pc.in (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/libpng.pc.in) | 2 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/libtool.m4 (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/libtool.m4) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/ltoptions.m4 (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/ltoptions.m4) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/ltsugar.m4 (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/ltsugar.m4) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/ltversion.m4 (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/ltversion.m4) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/lt~obsolete.m4 (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/lt~obsolete.m4) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/macro.lst (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/macro.lst) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.32sunu (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.32sunu) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.64sunu (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.64sunu) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.acorn (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.acorn) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.aix (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.aix) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.amiga (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.amiga) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.atari (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.atari) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.bc32 (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.bc32) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.beos (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.beos) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.bor (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.bor) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.cegcc (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.cegcc) | 2 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.darwin (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.darwin) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.dec (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.dec) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.dj2 (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.dj2) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.freebsd (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.freebsd) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.gcc (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.gcc) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.hp64 (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.hp64) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.hpgcc (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.hpgcc) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.hpux (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.hpux) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.ibmc (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.ibmc) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.intel (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.intel) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.knr (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.knr) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.linux (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.linux) | 2 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.mips (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.mips) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.msc (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.msc) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.msys (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.msys) | 2 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.ne12bsd (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.ne12bsd) | 2 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.netbsd (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.netbsd) | 2 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.openbsd (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.openbsd) | 2 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.sco (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.sco) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.sggcc (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.sggcc) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.sgi (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.sgi) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.so9 (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.so9) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.solaris (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.solaris) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.solaris-x86 (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.solaris-x86) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.std (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.std) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.sunos (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.sunos) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.tc3 (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.tc3) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.vcwin32 (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.vcwin32) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/makevms.com (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/makevms.com) | 0 | ||||
-rwxr-xr-x | Build/source/libs/libpng/libpng-1.6.18/scripts/options.awk (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/options.awk) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/pnglibconf.dfa (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/pnglibconf.dfa) | 13 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/pnglibconf.h.prebuilt (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/pnglibconf.h.prebuilt) | 10 | ||||
-rwxr-xr-x | Build/source/libs/libpng/libpng-1.6.18/scripts/pnglibconf.mak (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/pnglibconf.mak) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/pngwin.rc (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/pngwin.rc) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/prefix.c (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/prefix.c) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/smakefile.ppc (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/smakefile.ppc) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/sym.c (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/sym.c) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/symbols.c (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/symbols.c) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/symbols.def (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/symbols.def) | 2 | ||||
-rw-r--r-- | Build/source/libs/libpng/libpng-1.6.18/scripts/vers.c (renamed from Build/source/libs/libpng/libpng-1.6.17/scripts/vers.c) | 0 | ||||
-rwxr-xr-x | Build/source/libs/libpng/libpng-1.6.18/tests/pngimage-full (renamed from Build/source/libs/libpng/libpng-1.6.17/tests/pngimage-full) | 0 | ||||
-rwxr-xr-x | Build/source/libs/libpng/libpng-1.6.18/tests/pngimage-quick (renamed from Build/source/libs/libpng/libpng-1.6.17/tests/pngimage-quick) | 0 | ||||
-rwxr-xr-x | Build/source/libs/libpng/libpng-1.6.18/tests/pngstest (renamed from Build/source/libs/libpng/libpng-1.6.17/tests/pngstest) | 0 | ||||
-rwxr-xr-x | Build/source/libs/libpng/libpng-1.6.18/tests/pngstest-0g01 (renamed from Build/source/libs/libpng/libpng-1.6.17/tests/pngstest-0g01) | 0 | ||||
-rwxr-xr-x | Build/source/libs/libpng/libpng-1.6.18/tests/pngstest-0g02 (renamed from Build/source/libs/libpng/libpng-1.6.17/tests/pngstest-0g02) | 0 | ||||
-rwxr-xr-x | Build/source/libs/libpng/libpng-1.6.18/tests/pngstest-0g04 (renamed from Build/source/libs/libpng/libpng-1.6.17/tests/pngstest-0g04) | 0 | ||||
-rwxr-xr-x | Build/source/libs/libpng/libpng-1.6.18/tests/pngstest-0g08 (renamed from Build/source/libs/libpng/libpng-1.6.17/tests/pngstest-0g08) | 0 | ||||
-rwxr-xr-x | Build/source/libs/libpng/libpng-1.6.18/tests/pngstest-0g16 (renamed from Build/source/libs/libpng/libpng-1.6.17/tests/pngstest-0g16) | 0 | ||||
-rwxr-xr-x | Build/source/libs/libpng/libpng-1.6.18/tests/pngstest-2c08 (renamed from Build/source/libs/libpng/libpng-1.6.17/tests/pngstest-2c08) | 0 | ||||
-rwxr-xr-x | Build/source/libs/libpng/libpng-1.6.18/tests/pngstest-2c16 (renamed from Build/source/libs/libpng/libpng-1.6.17/tests/pngstest-2c16) | 0 | ||||
-rwxr-xr-x | Build/source/libs/libpng/libpng-1.6.18/tests/pngstest-3p01 (renamed from Build/source/libs/libpng/libpng-1.6.17/tests/pngstest-3p01) | 0 | ||||
-rwxr-xr-x | Build/source/libs/libpng/libpng-1.6.18/tests/pngstest-3p02 (renamed from Build/source/libs/libpng/libpng-1.6.17/tests/pngstest-3p02) | 0 | ||||
-rwxr-xr-x | Build/source/libs/libpng/libpng-1.6.18/tests/pngstest-3p04 (renamed from Build/source/libs/libpng/libpng-1.6.17/tests/pngstest-3p04) | 0 | ||||
-rwxr-xr-x | Build/source/libs/libpng/libpng-1.6.18/tests/pngstest-3p08 (renamed from Build/source/libs/libpng/libpng-1.6.17/tests/pngstest-3p08) | 0 | ||||
-rwxr-xr-x | Build/source/libs/libpng/libpng-1.6.18/tests/pngstest-4a08 (renamed from Build/source/libs/libpng/libpng-1.6.17/tests/pngstest-4a08) | 0 | ||||
-rwxr-xr-x | Build/source/libs/libpng/libpng-1.6.18/tests/pngstest-4a16 (renamed from Build/source/libs/libpng/libpng-1.6.17/tests/pngstest-4a16) | 0 | ||||
-rwxr-xr-x | Build/source/libs/libpng/libpng-1.6.18/tests/pngstest-6a08 (renamed from Build/source/libs/libpng/libpng-1.6.17/tests/pngstest-6a08) | 0 | ||||
-rwxr-xr-x | Build/source/libs/libpng/libpng-1.6.18/tests/pngstest-6a16 (renamed from Build/source/libs/libpng/libpng-1.6.17/tests/pngstest-6a16) | 0 | ||||
-rwxr-xr-x | Build/source/libs/libpng/libpng-1.6.18/tests/pngstest-error (renamed from Build/source/libs/libpng/libpng-1.6.17/tests/pngstest-error) | 0 | ||||
-rwxr-xr-x | Build/source/libs/libpng/libpng-1.6.18/tests/pngtest (renamed from Build/source/libs/libpng/libpng-1.6.17/tests/pngtest) | 0 | ||||
-rwxr-xr-x | Build/source/libs/libpng/libpng-1.6.18/tests/pngunknown-IDAT (renamed from Build/source/libs/libpng/libpng-1.6.17/tests/pngunknown-IDAT) | 0 | ||||
-rwxr-xr-x | Build/source/libs/libpng/libpng-1.6.18/tests/pngunknown-discard (renamed from Build/source/libs/libpng/libpng-1.6.17/tests/pngunknown-discard) | 0 | ||||
-rwxr-xr-x | Build/source/libs/libpng/libpng-1.6.18/tests/pngunknown-if-safe (renamed from Build/source/libs/libpng/libpng-1.6.17/tests/pngunknown-if-safe) | 0 | ||||
-rwxr-xr-x | Build/source/libs/libpng/libpng-1.6.18/tests/pngunknown-sAPI (renamed from Build/source/libs/libpng/libpng-1.6.17/tests/pngunknown-sAPI) | 0 | ||||
-rwxr-xr-x | Build/source/libs/libpng/libpng-1.6.18/tests/pngunknown-sTER (renamed from Build/source/libs/libpng/libpng-1.6.17/tests/pngunknown-sTER) | 0 | ||||
-rwxr-xr-x | Build/source/libs/libpng/libpng-1.6.18/tests/pngunknown-save (renamed from Build/source/libs/libpng/libpng-1.6.17/tests/pngunknown-save) | 0 | ||||
-rwxr-xr-x | Build/source/libs/libpng/libpng-1.6.18/tests/pngunknown-vpAg (renamed from Build/source/libs/libpng/libpng-1.6.17/tests/pngunknown-vpAg) | 0 | ||||
-rwxr-xr-x | Build/source/libs/libpng/libpng-1.6.18/tests/pngvalid-gamma-16-to-8 (renamed from Build/source/libs/libpng/libpng-1.6.17/tests/pngvalid-gamma-16-to-8) | 0 | ||||
-rwxr-xr-x | Build/source/libs/libpng/libpng-1.6.18/tests/pngvalid-gamma-alpha-mode (renamed from Build/source/libs/libpng/libpng-1.6.17/tests/pngvalid-gamma-alpha-mode) | 0 | ||||
-rwxr-xr-x | Build/source/libs/libpng/libpng-1.6.18/tests/pngvalid-gamma-background (renamed from Build/source/libs/libpng/libpng-1.6.17/tests/pngvalid-gamma-background) | 0 | ||||
-rwxr-xr-x | Build/source/libs/libpng/libpng-1.6.18/tests/pngvalid-gamma-expand16-alpha-mode (renamed from Build/source/libs/libpng/libpng-1.6.17/tests/pngvalid-gamma-expand16-alpha-mode) | 0 | ||||
-rwxr-xr-x | Build/source/libs/libpng/libpng-1.6.18/tests/pngvalid-gamma-expand16-background (renamed from Build/source/libs/libpng/libpng-1.6.17/tests/pngvalid-gamma-expand16-background) | 0 | ||||
-rwxr-xr-x | Build/source/libs/libpng/libpng-1.6.18/tests/pngvalid-gamma-expand16-transform (renamed from Build/source/libs/libpng/libpng-1.6.17/tests/pngvalid-gamma-expand16-transform) | 0 | ||||
-rwxr-xr-x | Build/source/libs/libpng/libpng-1.6.18/tests/pngvalid-gamma-sbit (renamed from Build/source/libs/libpng/libpng-1.6.17/tests/pngvalid-gamma-sbit) | 0 | ||||
-rwxr-xr-x | Build/source/libs/libpng/libpng-1.6.18/tests/pngvalid-gamma-threshold (renamed from Build/source/libs/libpng/libpng-1.6.17/tests/pngvalid-gamma-threshold) | 0 | ||||
-rwxr-xr-x | Build/source/libs/libpng/libpng-1.6.18/tests/pngvalid-gamma-transform (renamed from Build/source/libs/libpng/libpng-1.6.17/tests/pngvalid-gamma-transform) | 0 | ||||
-rwxr-xr-x | Build/source/libs/libpng/libpng-1.6.18/tests/pngvalid-progressive-interlace-size (renamed from Build/source/libs/libpng/libpng-1.6.17/tests/pngvalid-progressive-interlace-size) | 0 | ||||
-rwxr-xr-x | Build/source/libs/libpng/libpng-1.6.18/tests/pngvalid-progressive-interlace-standard (renamed from Build/source/libs/libpng/libpng-1.6.17/tests/pngvalid-progressive-interlace-standard) | 0 | ||||
-rwxr-xr-x | Build/source/libs/libpng/libpng-1.6.18/tests/pngvalid-progressive-interlace-transform (renamed from Build/source/libs/libpng/libpng-1.6.17/tests/pngvalid-progressive-interlace-transform) | 0 | ||||
-rwxr-xr-x | Build/source/libs/libpng/libpng-1.6.18/tests/pngvalid-progressive-standard (renamed from Build/source/libs/libpng/libpng-1.6.17/tests/pngvalid-progressive-standard) | 0 | ||||
-rwxr-xr-x | Build/source/libs/libpng/libpng-1.6.18/tests/pngvalid-standard (renamed from Build/source/libs/libpng/libpng-1.6.17/tests/pngvalid-standard) | 0 | ||||
-rw-r--r-- | Build/source/libs/libpng/version.ac | 2 |
311 files changed, 3175 insertions, 1907 deletions
diff --git a/Build/source/libs/README b/Build/source/libs/README index 5687c1c4ee6..1eee4b30457 100644 --- a/Build/source/libs/README +++ b/Build/source/libs/README @@ -33,7 +33,7 @@ icu 55.1 (release) - checked 12apr15 libpaper 1.1.24+nmu2 - checked 24oct13 ftp://ftp.de.debian.org/debian/pool/main/libp/libpaper/ -libpng 1.6.17 - checked 27mar15 +libpng 1.6.18 - checked 1aug15 http://www.libpng.org/ - used by many http://www.libpng.org/pub/png/pngcode.html diff --git a/Build/source/libs/libpng/ChangeLog b/Build/source/libs/libpng/ChangeLog index 4df9940f9c8..1607cb4619d 100644 --- a/Build/source/libs/libpng/ChangeLog +++ b/Build/source/libs/libpng/ChangeLog @@ -1,3 +1,8 @@ +2015-08-01 Peter Breitenlohner <peb@mppmu.mpg.de> + + Import libpng-1.6.18. + * version.ac: Adjust. + 2015-07-06 Peter Breitenlohner <peb@mppmu.mpg.de> * Makefile.am: Better dependencies for 'make check'. diff --git a/Build/source/libs/libpng/configure b/Build/source/libs/libpng/configure index 04b14197191..992074ed2b6 100755 --- a/Build/source/libs/libpng/configure +++ b/Build/source/libs/libpng/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for libpng (TeX Live) 1.6.17. +# Generated by GNU Autoconf 2.69 for libpng (TeX Live) 1.6.18. # # Report bugs to <tex-k@tug.org>. # @@ -580,12 +580,12 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='libpng (TeX Live)' PACKAGE_TARNAME='libpng--tex-live-' -PACKAGE_VERSION='1.6.17' -PACKAGE_STRING='libpng (TeX Live) 1.6.17' +PACKAGE_VERSION='1.6.18' +PACKAGE_STRING='libpng (TeX Live) 1.6.18' PACKAGE_BUGREPORT='tex-k@tug.org' PACKAGE_URL='' -ac_unique_file="libpng-1.6.17/pngget.c" +ac_unique_file="libpng-1.6.18/pngget.c" # Factoring default headers for most tests. ac_includes_default="\ #include <stdio.h> @@ -1287,7 +1287,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures libpng (TeX Live) 1.6.17 to adapt to many kinds of systems. +\`configure' configures libpng (TeX Live) 1.6.18 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1354,7 +1354,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of libpng (TeX Live) 1.6.17:";; + short | recursive ) echo "Configuration of libpng (TeX Live) 1.6.18:";; esac cat <<\_ACEOF @@ -1459,7 +1459,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -libpng (TeX Live) configure 1.6.17 +libpng (TeX Live) configure 1.6.18 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1882,7 +1882,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by libpng (TeX Live) $as_me 1.6.17, which was +It was created by libpng (TeX Live) $as_me 1.6.18, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3805,7 +3805,7 @@ fi # Define the identity of the package. PACKAGE='libpng--tex-live-' - VERSION='1.6.17' + VERSION='1.6.18' cat >>confdefs.h <<_ACEOF @@ -5774,7 +5774,7 @@ LIBS=$kpse_save_LIBS echo timestamp >config.force fi -LIBPNG_TREE=libpng-1.6.17 +LIBPNG_TREE=libpng-1.6.18 LIBPNG_DEFINES='-DPNG_CONFIGURE_LIBPNG -DPNG_NO_MMX_CODE' @@ -6325,7 +6325,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by libpng (TeX Live) $as_me 1.6.17, which was +This file was extended by libpng (TeX Live) $as_me 1.6.18, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -6391,7 +6391,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -libpng (TeX Live) config.status 1.6.17 +libpng (TeX Live) config.status 1.6.18 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/Build/source/libs/libpng/libpng-1.6.17/ANNOUNCE b/Build/source/libs/libpng/libpng-1.6.17/ANNOUNCE deleted file mode 100644 index 131e0aa369e..00000000000 --- a/Build/source/libs/libpng/libpng-1.6.17/ANNOUNCE +++ /dev/null @@ -1,72 +0,0 @@ -Libpng 1.6.17 - March 26, 2015 - -This is a public release of libpng, intended for use in production codes. - -Files available for download: - -Source files with LF line endings (for Unix/Linux) and with a -"configure" script - - libpng-1.6.17.tar.xz (LZMA-compressed, recommended) - libpng-1.6.17.tar.gz - -Source files with CRLF line endings (for Windows), without the -"configure" script - - lpng1617.7z (LZMA-compressed, recommended) - lpng1617.zip - -Other information: - - libpng-1.6.17-README.txt - libpng-1.6.17-LICENSE.txt - libpng-1.6.17-*.asc (armored detached GPG signatures) - -Changes since the last public release (1.6.16): - - Removed duplicate PNG_SAFE_LIMITS_SUPPORTED handling from pngconf.h - Corrected the width limit calculation in png_check_IHDR(). - Removed user limits from pngfix. Also pass NULL pointers to - png_read_row to skip the unnecessary row de-interlace stuff. - Added testing of png_set_packing() to pngvalid.c - Regenerated configure scripts in the *.tar distributions with libtool-2.4.4 - Implement previously untested cases of libpng transforms in pngvalid.c - Fixed byte order in 2-byte filler, in png_do_read_filler(). - Made the check for out-of-range values in png_set_tRNS() detect - values that are exactly 2^bit_depth, and work on 16-bit platforms. - Merged some parts of libpng-1.6.17beta01 and libpng-1.7.0beta47. - Added #ifndef __COVERITY__ where needed in png.c, pngrutil.c and - pngset.c to avoid warnings about dead code. - Do not build png_product2() when it is unused. - Display user limits in the output from pngtest. - Eliminated the PNG_SAFE_LIMITS macro and restored the 1-million-column - and 1-million-row default limits in pnglibconf.dfa, that can be reset - by the user at build time or run time. This provides a more robust - defense against DOS and as-yet undiscovered overflows. - Added PNG_WRITE_CUSTOMIZE_COMPRESSION_SUPPORTED macro, on by default. - Allow user to call png_get_IHDR() with NULL arguments (Reuben Hawkins). - Rebuilt configure scripts with automake-1.15 and libtool-2.4.6 - Moved png_set_filter() prototype into a PNG_WRITE_SUPPORTED block - of png.h. - Avoid runtime checks when converting integer to png_byte with - Visual Studio (Sergey Kosarevsky) - Removed some comments that the configure script did not handle - properly from scripts/pnglibconf.dfa and pnglibconf.h.prebuilt. - Free the unknown_chunks structure even when it contains no data. - Updated CMakeLists.txt to add OSX framework, change YES/NO to ON/OFF - for consistency, and remove some useless tests (Alexey Petruchik). - Remove pnglibconf.h, pnglibconf.c, pnglibconf.pre, pnglibconf.dfn, - and pnglibconf.out instead of pnglibconf.* in "make clean" (Cosmin). - Fixed simplified 8-bit-linear to sRGB alpha. The calculated alpha - value was wrong. It's not clear if this affected the final stored - value; in the obvious code path the upper and lower 8-bits of the - alpha value were identical and the alpha was truncated to 8-bits - rather than dividing by 257 (John Bowler). - -Send comments/corrections/commendations to png-mng-implement at lists.sf.net -(subscription required; visit -https://lists.sourceforge.net/lists/listinfo/png-mng-implement -to subscribe) -or to glennrp at users.sourceforge.net - -Glenn R-P diff --git a/Build/source/libs/libpng/libpng-1.6.17-PATCHES/ChangeLog b/Build/source/libs/libpng/libpng-1.6.18-PATCHES/ChangeLog index 26311ea5079..26311ea5079 100644 --- a/Build/source/libs/libpng/libpng-1.6.17-PATCHES/ChangeLog +++ b/Build/source/libs/libpng/libpng-1.6.18-PATCHES/ChangeLog diff --git a/Build/source/libs/libpng/libpng-1.6.17-PATCHES/TL-Changes b/Build/source/libs/libpng/libpng-1.6.18-PATCHES/TL-Changes index 34fad95f258..e51d6311713 100644 --- a/Build/source/libs/libpng/libpng-1.6.17-PATCHES/TL-Changes +++ b/Build/source/libs/libpng/libpng-1.6.18-PATCHES/TL-Changes @@ -1,5 +1,5 @@ -Changes applied to the libpng-1.6.17/ tree as obtained from: - http://www.libpng.org/ libpng-1.6.17.tar.xz +Changes applied to the libpng-1.6.18/ tree as obtained from: + http://www.libpng.org/ libpng-1.6.18.tar.xz Copied: scripts/pnglibconf.h.prebuilt -> pnglibconf.h diff --git a/Build/source/libs/libpng/libpng-1.6.18/ANNOUNCE b/Build/source/libs/libpng/libpng-1.6.18/ANNOUNCE new file mode 100644 index 00000000000..c0289c1a8e6 --- /dev/null +++ b/Build/source/libs/libpng/libpng-1.6.18/ANNOUNCE @@ -0,0 +1,90 @@ +Libpng 1.6.18 - July 23, 2015 + +This is a public release of libpng, intended for use in production codes. + +Files available for download: + +Source files with LF line endings (for Unix/Linux) and with a +"configure" script + + libpng-1.6.18.tar.xz (LZMA-compressed, recommended) + libpng-1.6.18.tar.gz + +Source files with CRLF line endings (for Windows), without the +"configure" script + + lpng1618.7z (LZMA-compressed, recommended) + lpng1618.zip + +Other information: + + libpng-1.6.18-README.txt + libpng-1.6.18-LICENSE.txt + libpng-1.6.18-*.asc (armored detached GPG signatures) + +Changes since the last public release (1.6.17): + Removed PNG_SET_CHUNK_[CACHE|MALLOC]_LIMIT_SUPPORTED macros. They + have been combined with PNG_SET_USER_LIMITS_SUPPORTED (resolves + bug report by Andrew Church). + Fixed rgb_to_gray checks and added tRNS checks to pngvalid.c. This + fixes some arithmetic errors that caused some tests to fail on + some 32-bit platforms (Bug reports by Peter Breitenlohner [i686] + and Petr Gajdos [i586]). + Suppressed some warnings from the Borland C++ 5.5.1/5.82 compiler + (Bug report by Viktor Szaka'ts). + Replaced "unexpected" with an integer (0xabadca11) in pngset.c + where a long was expected, to avoid a compiler warning when PNG_DEBUG > 1. + Added contrib/examples/simpleover.c, to demonstrate how to handle + alpha compositing of multiple images, using the "simplified API" + and an example PNG generation tool, contrib/examples/genpng.c + (John Bowler). + PNG_RELEASE_BUILD replaces tests where the code depended on the build base + type and can be defined on the command line, allowing testing in beta + builds (John Bowler). + Avoid Coverity issue 80858 (REVERSE NULL) in pngtest.c + Avoid a harmless potential integer overflow in png_XYZ_from_xy() (Bug + report from Christopher Ferris). + Backport filter selection code from libpng-1.7.0beta51, to combine + sub_row, up_row, avg_row, and paeth_row into try_row and tst_row. + Changed png_voidcast(), etc., to voidcast(), etc., in contrib/tools/pngfix.c + to avoid confusion with the libpng private macros. + Fixed old cut&paste bug in the weighted filter selection code in + pngwutil.c, introduced in libpng-0.95, March 1997. + Removed WRITE_WEIGHTED_FILTERED code, to save a few kbytes of the + compiled library size. It never worked properly and as far as we can + tell, no one uses it. The png_set_filter_heuristics() and + png_set_filter_heuristics_fixed() APIs are retained but deprecated + and do nothing. + Quieted some Coverity issues in pngfix.c, png-fix-itxt.c, pngvalid.c, + pngstest.c, and pngimage.c. Most seem harmless, but png-fix-itxt + would only work with iTXt chunks with length 255 or less. + Removed non-working progressive reader 'skip' function. This + function has apparently never been used. It was implemented + to support back-door modification of png_struct in libpng-1.4.x + but (because it does nothing and cannot do anything) was apparently + never tested (John Bowler). + Fixed cexcept.h in which GCC 5 now reports that one of the auto + variables in the Try macro needs to be volatile to prevent value + being lost over the setjmp (John Bowler). + Added #ifdef's to contrib/examples programs so people don't try + to compile them without the minimum required support enabled + (suggested by Flavio Medeiros). + Eliminated the final two Coverity defects (insecure temporary file + handling in contrib/libtests/pngstest.c; possible overflow of + unsigned char in contrib/tools/png-fix-itxt.c). To use the "secure" + file handling, define PNG_USE_MKSTEMP, otherwise "tmpfile()" will + be used. + Removed some unused WEIGHTED_FILTER macros from pngstruct.h + Replaced arbitrary use of 'extern' with #define PNG_LINKAGE_*. To + preserve API compatibility, the new defines all default to "extern" + (requested by Jan Nijtmans). + Belatedly added Mans Rullgard and James Yu to the list of Contributing + Authors. + +Send comments/corrections/commendations to png-mng-implement at lists.sf.net +(subscription required; visit +https://lists.sourceforge.net/lists/listinfo/png-mng-implement +to subscribe) +or to glennrp at users.sourceforge.net + +Glenn R-P diff --git a/Build/source/libs/libpng/libpng-1.6.17/CHANGES b/Build/source/libs/libpng/libpng-1.6.18/CHANGES index 1be09e93856..d678392a515 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/CHANGES +++ b/Build/source/libs/libpng/libpng-1.6.18/CHANGES @@ -1,11 +1,14 @@ - +#if 0 CHANGES - changes for libpng -Version 0.2 +version 0.1 [March 29, 1995] + initial work-in-progress release + +version 0.2 [April 1, 1995] added reader into png.h fixed small problems in stub file -Version 0.3 +version 0.3 [April 8, 1995] added pull reader split up pngwrite.c to several files added pnglib.txt @@ -14,9 +17,9 @@ Version 0.3 fixed some bugs in writer interfaced with zlib 0.5 added K&R support - added check for 64 KB blocks for 16-bit machines + added check for 64 KB blocks for 16 bit machines -Version 0.4 +version 0.4 [April 26, 1995] cleaned up code and commented code simplified time handling into png_time created png_color_16 and png_color_8 to handle color needs @@ -27,28 +30,29 @@ Version 0.4 cleaned up zTXt reader and writer (using zlib's Reset functions) split transformations into pngrtran.c and pngwtran.c -Version 0.5 +version 0.5 [April 30, 1995] interfaced with zlib 0.8 fixed many reading and writing bugs saved using 3 spaces instead of tabs -Version 0.6 +version 0.6 [May 1, 1995] + first beta release added png_large_malloc() and png_large_free() added png_size_t cleaned up some compiler warnings added png_start_read_image() -Version 0.7 +version 0.7 [June 24, 1995] cleaned up lots of bugs finished dithering and other stuff added test program changed name from pnglib to libpng -Version 0.71 [June, 1995] +version 0.71 [June 26, 1995] changed pngtest.png for zlib 0.93 fixed error in libpng.txt and example.c -Version 0.8 +version 0.8 [August 20, 1995] cleaned up some bugs added png_set_filler() split up pngstub.c into pngmem.c, pngio.c, and pngerror.c @@ -91,7 +95,7 @@ Version 0.88 [January, 1996] cleaned up documentation added callbacks for read/write and warning/error functions -Version 0.89 [July, 1996] +Version 0.89 [June 5, 1996] Added new initialization API to make libpng work better with shared libs we now have png_create_read_struct(), png_create_write_struct(), png_create_info_struct(), png_destroy_read_struct(), and @@ -118,6 +122,9 @@ Version 0.89 [July, 1996] New pngtest image also has interlacing and zTXt Updated documentation to reflect new API +Version 0.89c [June 17, 1996] + Bug fixes. + Version 0.90 [January, 1997] Made CRC errors/warnings on critical and ancillary chunks configurable libpng will use the zlib CRC routines by (compile-time) default @@ -158,7 +165,7 @@ Version 0.95 [March, 1997] Added new pCAL chunk read/write support Added experimental filter selection weighting (Greg Roelofs) Removed old png_set_rgbx() and png_set_xrgb() functions that have been - obsolete for about 2 years now (use png_set_filler() instead) + obsolete for about 2 years now (use png_set_filler() instead) Added macros to read 16- and 32-bit ints directly from buffer, to be used only on those systems that support it (namely PowerPC and 680x0) With some testing, this may become the default for MACOS/PPC systems. @@ -440,7 +447,7 @@ Version 1.0.3 [January 14, 1999] Version 1.0.3a [August 12, 1999] Added check for PNG_READ_INTERLACE_SUPPORTED in pngread.c; issue a warning - if an attempt is made to read an interlaced image when it's not supported. + if an attempt is made to read an interlaced image when it's not supported. Added check if png_ptr->trans is defined before freeing it in pngread.c Modified the Y2K statement to include versions back to version 0.71 Fixed a bug in the check for valid IHDR bit_depth/color_types in pngrutil.c @@ -448,7 +455,7 @@ Version 1.0.3a [August 12, 1999] Replaced leading blanks with tab characters in makefile.hux Changed "dworkin.wustl.edu" to "ccrc.wustl.edu" in various documents. Changed (float)red and (float)green to (double)red, (double)green - in png_set_rgb_to_gray() to avoid "promotion" problems in AIX. + in png_set_rgb_to_gray() to avoid "promotion" problems in AIX. Fixed a bug in pngconf.h that omitted <stdio.h> when PNG_DEBUG==0 (K Bracey). Reformatted libpng.3 and libpngpf.3 with proper fonts (script by J. vanZandt). Updated documentation to refer to the PNG-1.2 specification. @@ -491,7 +498,7 @@ Version 1.0.3d [September 4, 1999] Added new png_expand functions to scripts/pngdef.pas and pngos2.def Added a demo read_user_transform_fn that examines the row filters in pngtest.c -Version 1.0.4 [September 24, 1999] +Version 1.0.4 [September 24, 1999, not distributed publicly] Define PNG_ALWAYS_EXTERN in pngconf.h if __STDC__ is defined Delete #define PNG_INTERNAL and include "png.h" from pngasmrd.h Made several minor corrections to pngtest.c @@ -518,6 +525,7 @@ Version 1.0.4c [October 1, 1999] Added a "png_check_version" function in png.c and pngtest.c that will generate a helpful compiler error if an old png.h is found in the search path. Changed type of png_user_transform_depth|channels from int to png_byte. + Added "Libpng is OSI Certified Open Source Software" statement to png.h Version 1.0.4d [October 6, 1999] Changed 0.45 to 0.45455 in png_set_sRGB() @@ -904,7 +912,7 @@ Version 1.0.7 [July 1, 2000] Version 1.0.8beta1 [July 8, 2000] Added png_free(png_ptr, key) two places in pngpread.c to stop memory leaks. Changed PNG_NO_STDIO to PNG_NO_CONSOLE_IO, several places in pngrutil.c and - pngwutil.c. + pngwutil.c. Changed PNG_EXPORT_VAR to use PNG_IMPEXP, in pngconf.h. Removed unused "#include <assert.h>" from png.c Added WindowsCE support. @@ -912,12 +920,12 @@ Version 1.0.8beta1 [July 8, 2000] Version 1.0.8beta2 [July 10, 2000] Added project files to the wince directory and made further revisions - of pngtest.c, pngrio.c, and pngwio.c in support of WindowsCE. + of pngtest.c, pngrio.c, and pngwio.c in support of WindowsCE. Version 1.0.8beta3 [July 11, 2000] Only set the PNG_FLAG_FREE_TRNS or PNG_FREE_TRNS flag in png_handle_tRNS() - for indexed-color input files to avoid potential double-freeing trans array - under some unusual conditions; problem was introduced in version 1.0.6f. + for indexed-color input files to avoid potential double-freeing trans array + under some unusual conditions; problem was introduced in version 1.0.6f. Further revisions to pngtest.c and files in the wince subdirectory. Version 1.0.8beta4 [July 14, 2000] @@ -1089,16 +1097,16 @@ Version 1.2.0beta3 [May 17, 2001] Version 1.2.0beta4 [June 23, 2001] Check for missing profile length field in iCCP chunk and free chunk_data - in case of truncated iCCP chunk. + in case of truncated iCCP chunk. Bumped shared-library number to 3 in makefile.sgi and makefile.sggcc Bumped dll-number from 2 to 3 in makefile.cygwin Revised contrib/gregbook/rpng*-x.c to avoid a memory leak and to exit cleanly - if user attempts to run it on an 8-bit display. + if user attempts to run it on an 8-bit display. Updated contrib/gregbook Use png_malloc instead of png_zalloc to allocate palette in pngset.c Updated makefile.ibmc Added some typecasts to eliminate gcc 3.0 warnings. Changed prototypes - of png_write_oFFS width and height from png_uint_32 to png_int_32. + of png_write_oFFS width and height from png_uint_32 to png_int_32. Updated example.c Revised prototypes for png_debug_malloc and png_debug_free in pngtest.c @@ -1106,9 +1114,9 @@ Version 1.2.0beta5 [August 8, 2001] Revised contrib/gregbook Revised makefile.gcmmx Revised pnggccrd.c to conditionally compile some thread-unsafe code only - when PNG_THREAD_UNSAFE_OK is defined. + when PNG_THREAD_UNSAFE_OK is defined. Added tests to prevent pngwutil.c from writing a bKGD or tRNS chunk with - value exceeding 2^bit_depth-1 + value exceeding 2^bit_depth-1 Revised makefile.sgi and makefile.sggcc Replaced calls to fprintf(stderr,...) with png_warning() in pnggccrd.c Removed restriction that do_invert_mono only operate on 1-bit opaque files @@ -1449,8 +1457,9 @@ Version 1.2.6beta4 [July 28, 2004] Use png_malloc instead of png_zalloc to allocate the pallete. Version 1.0.16rc1 and 1.2.6rc1 [August 4, 2004] - Fixed buffer overflow vulnerability in png_handle_tRNS() - Fixed integer arithmetic overflow vulnerability in png_read_png(). + Fixed buffer overflow vulnerability (CVE-2004-0597) in png_handle_tRNS(). + Fixed NULL dereference vulnerability (CVE-2004-0598) in png_handle_iCCP(). + Fixed integer overflow vulnerability (CVE-2004-0599) in png_read_png(). Fixed some harmless bugs in png_handle_sBIT, etc, that would cause duplicate chunk types to go undetected. Fixed some timestamps in the -config version @@ -1493,7 +1502,7 @@ Version 1.0.16rc4 and 1.2.6rc4 [August 10, 2004] Version 1.0.16rc5 and 1.2.6rc5 [August 10, 2004] Moved "PNG_HANDLE_CHUNK_*" macros out of PNG_ASSEMBLER_CODE_SUPPORTED - section of png.h where they were inadvertently placed in version rc3. + section of png.h where they were inadvertently placed in version rc3. Version 1.2.6 and 1.0.16 [August 15, 2004] Revised pngtest so memory allocation testing is only done when PNG_DEBUG==1. @@ -2325,7 +2334,7 @@ Version 1.4.0beta63 [June 15, 2009] Version 1.4.0beta64 [June 24, 2009] Eliminated PNG_LEGACY_SUPPORTED code. Moved the various unknown chunk macro definitions outside of the - PNG_READ|WRITE_ANCILLARY_CHUNK_SUPPORTED blocks. + PNG_READ|WRITE_ANCILLARY_CHUNK_SUPPORTED blocks. Version 1.4.0beta65 [June 26, 2009] Added a reference to the libpng license in each file. @@ -4525,7 +4534,7 @@ Version 1.6.3beta03 [April 30, 2013] Expanded manual paragraph about writing private chunks, particularly the need to call png_set_keep_unknown_chunks() when writing them. Avoid dereferencing NULL pointer possibly returned from - png_create_write_struct() (Andrew Church). + png_create_write_struct() (Andrew Church). Version 1.6.3beta05 [May 9, 2013] Calculate our own zlib windowBits when decoding rather than trusting the @@ -5141,7 +5150,7 @@ Version 1.6.17beta01 [January 29, 2015] Added #ifndef __COVERITY__ where needed in png.c, pngrutil.c and pngset.c to avoid warnings about dead code. Added "& 0xff" to many instances of expressions that are typecast - to (png_byte), to avoid Coverity gripes. + to (png_byte), to avoid Coverity warnings. Version 1.6.17beta02 [February 7, 2015] Work around one more Coverity-scan dead-code warning. @@ -5205,6 +5214,97 @@ Version 1.6.17rc06 [March 23, 2015] Version 1.6.17 [March 26, 2015] No changes. +Version 1.6.18beta01 [April 1, 2015] + Removed PNG_SET_CHUNK_[CACHE|MALLOC]_LIMIT_SUPPORTED macros. They + have been combined with PNG_SET_USER_LIMITS_SUPPORTED (resolves + bug report by Andrew Church). + Fixed rgb_to_gray checks and added tRNS checks to pngvalid.c. This + fixes some arithmetic errors that caused some tests to fail on + some 32-bit platforms (Bug reports by Peter Breitenlohner [i686] + and Petr Gajdos [i586]). + +Version 1.6.18beta02 [April 26, 2015] + Suppressed some warnings from the Borland C++ 5.5.1/5.82 compiler + (Bug report by Viktor Szaka'ts). + +Version 1.6.18beta03 [May 6, 2015] + Replaced "unexpected" with an integer (0xabadca11) in pngset.c + where a long was expected, to avoid a compiler warning when PNG_DEBUG > 1. + Added contrib/examples/simpleover.c, to demonstrate how to handle + alpha compositing of multiple images, using the "simplified API" + and an example PNG generation tool, contrib/examples/genpng.c + (John Bowler). + +Version 1.6.18beta04 [May 20, 2015] + PNG_RELEASE_BUILD replaces tests where the code depended on the build base + type and can be defined on the command line, allowing testing in beta + builds (John Bowler). + Avoid Coverity issue 80858 (REVERSE NULL) in pngtest.c PNG_DEBUG builds. + Avoid a harmless potential integer overflow in png_XYZ_from_xy() (Bug + report from Christopher Ferris). + +Version 1.6.18beta05 [May 31, 2015] + Backport filter selection code from libpng-1.7.0beta51, to combine + sub_row, up_row, avg_row, and paeth_row into try_row and tst_row. + Changed png_voidcast(), etc., to voidcast(), etc., in contrib/tools/pngfix.c + to avoid confusion with the libpng private macros. + Fixed old cut&paste bug in the weighted filter selection code in + pngwutil.c, introduced in libpng-0.95, March 1997. + +Version 1.6.18beta06 [June 1, 2015] + Removed WRITE_WEIGHTED_FILTERED code, to save a few kbytes of the + compiled library size. It never worked properly and as far as we can + tell, no one uses it. The png_set_filter_heuristics() and + png_set_filter_heuristics_fixed() APIs are retained but deprecated + and do nothing. + +Version 1.6.18beta07 [June 6, 2015] + Removed non-working progressive reader 'skip' function. This + function has apparently never been used. It was implemented + to support back-door modification of png_struct in libpng-1.4.x + but (because it does nothing and cannot do anything) was apparently + never tested (John Bowler). + Fixed cexcept.h in which GCC 5 now reports that one of the auto + variables in the Try macro needs to be volatile to prevent value + being lost over the setjmp (John Bowler). + Fixed NO_WRITE_FILTER and -Wconversion build breaks (John Bowler). + Fix g++ build breaks (John Bowler). + Quieted some Coverity issues in pngfix.c, png-fix-itxt.c, pngvalid.c, + pngstest.c, and pngimage.c. Most seem harmless, but png-fix-itxt + would only work with iTXt chunks with length 255 or less. + Added #ifdef's to contrib/examples programs so people don't try + to compile them without the minimum required support enabled + (suggested by Flavio Medeiros). + +Version 1.6.18beta08 [June 30, 2015] + Eliminated the final two Coverity defects (insecure temporary file + handling in contrib/libtests/pngstest.c; possible overflow of + unsigned char in contrib/tools/png-fix-itxt.c). To use the "secure" + file handling, define PNG_USE_MKSTEMP, otherwise "tmpfile()" will + be used. + Removed some unused WEIGHTED_FILTER macros from png.h and pngstruct.h + +Version 1.6.18beta09 [July 5, 2015] + Removed some useless typecasts from contrib/tools/png-fix-itxt.c + Fixed a new signed-unsigned comparison in pngrtran.c (Max Stepin). + Replaced arbitrary use of 'extern' with #define PNG_LINKAGE_*. To + preserve API compatibility, the new defines all default to "extern" + (requested by Jan Nijtmans). + +Version 1.6.18rc01 [July 9, 2015] + Belatedly added Mans Rullgard and James Yu to the list of Contributing + Authors. + +Version 1.6.18rc02 [July 12, 2015] + Restored unused FILTER_HEURISTIC macros removed at libpng-1.6.18beta08 + to png.h to avoid compatibility warnings. + +Version 1.6.18rc03 [July 15, 2015] + Minor changes to the man page + +Version 1.6.18 [July 23, 2015] + No changes. + Send comments/corrections/commendations to png-mng-implement at lists.sf.net (subscription required; visit https://lists.sourceforge.net/lists/listinfo/png-mng-implement @@ -5212,3 +5312,4 @@ to subscribe) or to glennrp at users.sourceforge.net Glenn R-P +#endif diff --git a/Build/source/libs/libpng/libpng-1.6.17/CMakeLists.txt b/Build/source/libs/libpng/libpng-1.6.18/CMakeLists.txt index f062a23a1f1..62d516070e6 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/CMakeLists.txt +++ b/Build/source/libs/libpng/libpng-1.6.18/CMakeLists.txt @@ -16,7 +16,7 @@ enable_testing() set(PNGLIB_MAJOR 1) set(PNGLIB_MINOR 6) -set(PNGLIB_RELEASE 17) +set(PNGLIB_RELEASE 18) set(PNGLIB_NAME libpng${PNGLIB_MAJOR}${PNGLIB_MINOR}) set(PNGLIB_VERSION ${PNGLIB_MAJOR}.${PNGLIB_MINOR}.${PNGLIB_RELEASE}) @@ -261,7 +261,7 @@ endif(NOT WIN32 OR CYGWIN OR MINGW) # SET UP LINKS if(PNG_SHARED) set_target_properties(${PNG_LIB_NAME} PROPERTIES -# VERSION 16.${PNGLIB_RELEASE}.1.6.17 +# VERSION 16.${PNGLIB_RELEASE}.1.6.18 VERSION 16.${PNGLIB_RELEASE}.0 SOVERSION 16 CLEAN_DIRECT_OUTPUT 1) diff --git a/Build/source/libs/libpng/libpng-1.6.17/INSTALL b/Build/source/libs/libpng/libpng-1.6.18/INSTALL index a294ffe633a..a294ffe633a 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/INSTALL +++ b/Build/source/libs/libpng/libpng-1.6.18/INSTALL diff --git a/Build/source/libs/libpng/libpng-1.6.17/LICENSE b/Build/source/libs/libpng/libpng-1.6.18/LICENSE index eb4a9a9da47..090a3600caf 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/LICENSE +++ b/Build/source/libs/libpng/libpng-1.6.18/LICENSE @@ -10,21 +10,17 @@ this sentence. This code is released under the libpng license. -libpng versions 1.2.6, August 15, 2004, through 1.6.17, March 26, 2015, are -Copyright (c) 2004, 2006-2015 Glenn Randers-Pehrson, and are -distributed according to the same disclaimer and license as libpng-1.2.5 -with the following individual added to the list of Contributing Authors - - Cosmin Truta - -libpng versions 1.0.7, July 1, 2000, through 1.2.5 - October 3, 2002, are -Copyright (c) 2000-2002 Glenn Randers-Pehrson, and are +libpng versions 1.0.7, July 1, 2000, through 1.6.18, July 23, 2015, are +Copyright (c) 2000-2002, 2004, 2006-2015 Glenn Randers-Pehrson, and are distributed according to the same disclaimer and license as libpng-1.0.6 -with the following individuals added to the list of Contributing Authors +with the following individuals added to the list of Contributing Authors: Simon-Pierre Cadieux Eric S. Raymond + Mans Rullgard + Cosmin Truta Gilles Vollant + James Yu and with the following additions to the disclaimer: @@ -36,17 +32,17 @@ and with the following additions to the disclaimer: the user. libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are -Copyright (c) 1998, 1999 Glenn Randers-Pehrson, and are -distributed according to the same disclaimer and license as libpng-0.96, -with the following individuals added to the list of Contributing Authors: +Copyright (c) 1998-2000 Glenn Randers-Pehrson, and are distributed according +to the same disclaimer and license as libpng-0.96, with the following +individuals added to the list of Contributing Authors: Tom Lane Glenn Randers-Pehrson Willem van Schaik libpng versions 0.89, June 1996, through 0.96, May 1997, are -Copyright (c) 1996, 1997 Andreas Dilger -Distributed according to the same disclaimer and license as libpng-0.88, +Copyright (c) 1996-1997 Andreas Dilger, and are +distributed according to the same disclaimer and license as libpng-0.88, with the following individuals added to the list of Contributing Authors: John Bowler @@ -57,7 +53,7 @@ with the following individuals added to the list of Contributing Authors: Tom Tanner libpng versions 0.5, May 1995, through 0.88, January 1996, are -Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. +Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. For the purposes of this copyright and license, "Contributing Authors" is defined as the following set of individuals: @@ -80,13 +76,13 @@ Permission is hereby granted to use, copy, modify, and distribute this source code, or portions hereof, for any purpose, without fee, subject to the following restrictions: -1. The origin of this source code must not be misrepresented. + 1. The origin of this source code must not be misrepresented. -2. Altered versions must be plainly marked as such and must not - be misrepresented as being the original source. + 2. Altered versions must be plainly marked as such and must not + be misrepresented as being the original source. -3. This Copyright notice may not be removed or altered from any - source or altered source distribution. + 3. This Copyright notice may not be removed or altered from any + source or altered source distribution. The Contributing Authors and Group 42, Inc. specifically permit, without fee, and encourage the use of this source code as a component to @@ -94,18 +90,18 @@ supporting the PNG file format in commercial products. If you use this source code in a product, acknowledgment is not required but would be appreciated. - A "png_get_copyright" function is available, for convenient use in "about" boxes and the like: - printf("%s",png_get_copyright(NULL)); + printf("%s", png_get_copyright(NULL)); Also, the PNG logo (in PNG format, of course) is supplied in the files "pngbar.png" and "pngbar.jpg (88x31) and "pngnow.png" (98x31). -Libpng is OSI Certified Open Source Software. OSI Certified Open Source is a -certification mark of the Open Source Initiative. +Libpng is OSI Certified Open Source Software. OSI Certified Open Source is +a certification mark of the Open Source Initiative. OSI has not addressed +the additional disclaimers inserted at version 1.0.7. Glenn Randers-Pehrson glennrp at users.sourceforge.net -March 26, 2015 +July 23, 2015 diff --git a/Build/source/libs/libpng/libpng-1.6.17/Makefile.am b/Build/source/libs/libpng/libpng-1.6.18/Makefile.am index ac5f95cf71a..ac5f95cf71a 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/Makefile.am +++ b/Build/source/libs/libpng/libpng-1.6.18/Makefile.am diff --git a/Build/source/libs/libpng/libpng-1.6.17/README b/Build/source/libs/libpng/libpng-1.6.18/README index a158ea8a774..3c181a304f7 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/README +++ b/Build/source/libs/libpng/libpng-1.6.18/README @@ -1,4 +1,4 @@ -README for libpng version 1.6.17 - March 26, 2015 (shared library 16.0) +README for libpng version 1.6.18 - July 23, 2015 (shared library 16.0) See the note about version numbers near the top of png.h See INSTALL for instructions on how to install libpng. @@ -134,7 +134,7 @@ and ...". If in doubt, send questions to me. I'll bounce them to others, if necessary. Please do not send suggestions on how to change PNG. We have -been discussing PNG for nineteen years now, and it is official and +been discussing PNG for twenty years now, and it is official and finished. If you have suggestions for libpng, however, I'll gladly listen. Even if your suggestion is not used immediately, it may be used later. diff --git a/Build/source/libs/libpng/libpng-1.6.17/TODO b/Build/source/libs/libpng/libpng-1.6.18/TODO index 72633774fff..72633774fff 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/TODO +++ b/Build/source/libs/libpng/libpng-1.6.18/TODO diff --git a/Build/source/libs/libpng/libpng-1.6.17/arm/arm_init.c b/Build/source/libs/libpng/libpng-1.6.18/arm/arm_init.c index fb3d50d04ae..fb3d50d04ae 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/arm/arm_init.c +++ b/Build/source/libs/libpng/libpng-1.6.18/arm/arm_init.c diff --git a/Build/source/libs/libpng/libpng-1.6.17/arm/filter_neon.S b/Build/source/libs/libpng/libpng-1.6.18/arm/filter_neon.S index 3b061d6bbf2..3b061d6bbf2 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/arm/filter_neon.S +++ b/Build/source/libs/libpng/libpng-1.6.18/arm/filter_neon.S diff --git a/Build/source/libs/libpng/libpng-1.6.17/arm/filter_neon_intrinsics.c b/Build/source/libs/libpng/libpng-1.6.18/arm/filter_neon_intrinsics.c index d42c7889091..d42c7889091 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/arm/filter_neon_intrinsics.c +++ b/Build/source/libs/libpng/libpng-1.6.18/arm/filter_neon_intrinsics.c diff --git a/Build/source/libs/libpng/libpng-1.6.17/autogen.sh b/Build/source/libs/libpng/libpng-1.6.18/autogen.sh index 9af34bde24b..702a0c110f3 100755 --- a/Build/source/libs/libpng/libpng-1.6.17/autogen.sh +++ b/Build/source/libs/libpng/libpng-1.6.18/autogen.sh @@ -73,8 +73,9 @@ done # present bad things are happening. # # The autotools generated files: -libpng_autotools_files="Makefile.in aclocal.m4 config.guess config.h.in\ - config.sub configure depcomp install-sh ltmain.sh missing test-driver" +libpng_autotools_files="Makefile.in aclocal.m4 config.guess config.h.in + config.h.in~ config.sub configure depcomp install-sh ltmain.sh missing\ + test-driver" # # Files generated by versions of configue >2.68 or automake >1.13 (i.e. later # versions than those required by configure.ac): diff --git a/Build/source/libs/libpng/libpng-1.6.17/config.h.in b/Build/source/libs/libpng/libpng-1.6.18/config.h.in index 898037ec37c..898037ec37c 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/config.h.in +++ b/Build/source/libs/libpng/libpng-1.6.18/config.h.in diff --git a/Build/source/libs/libpng/libpng-1.6.17/configure.ac b/Build/source/libs/libpng/libpng-1.6.18/configure.ac index 1c46ca235db..4fb07785ffb 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/configure.ac +++ b/Build/source/libs/libpng/libpng-1.6.18/configure.ac @@ -18,7 +18,7 @@ AC_PREREQ([2.68]) dnl Version number stuff here: -AC_INIT([libpng],[1.6.17],[png-mng-implement@lists.sourceforge.net]) +AC_INIT([libpng],[1.6.18],[png-mng-implement@lists.sourceforge.net]) AC_CONFIG_MACRO_DIR([scripts]) # libpng does not follow GNU file name conventions (hence 'foreign') @@ -39,10 +39,10 @@ dnl automake, so the following is not necessary (and is not defined anyway): dnl AM_PREREQ([1.11.2]) dnl stop configure from automagically running automake -PNGLIB_VERSION=1.6.17 +PNGLIB_VERSION=1.6.18 PNGLIB_MAJOR=1 PNGLIB_MINOR=6 -PNGLIB_RELEASE=17 +PNGLIB_RELEASE=18 dnl End of version number stuff diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/README.txt b/Build/source/libs/libpng/libpng-1.6.18/contrib/README.txt index bcd433d3523..bcd433d3523 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/README.txt +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/README.txt diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/arm-neon/README b/Build/source/libs/libpng/libpng-1.6.18/contrib/arm-neon/README index 535c8d3f76b..b4248cf2897 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/arm-neon/README +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/arm-neon/README @@ -1,7 +1,7 @@ OPERATING SYSTEM SPECIFIC ARM NEON DETECTION -------------------------------------------- -Detection of the ability to exexcute ARM NEON on an ARM processor requires +Detection of the ability to execute ARM NEON on an ARM processor requires operating system support. (The information is not available in user mode.) HOW TO USE THIS diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/arm-neon/android-ndk.c b/Build/source/libs/libpng/libpng-1.6.18/contrib/arm-neon/android-ndk.c index 7240123487d..7240123487d 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/arm-neon/android-ndk.c +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/arm-neon/android-ndk.c diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/arm-neon/linux-auxv.c b/Build/source/libs/libpng/libpng-1.6.18/contrib/arm-neon/linux-auxv.c index 696e297ef4c..696e297ef4c 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/arm-neon/linux-auxv.c +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/arm-neon/linux-auxv.c diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/arm-neon/linux.c b/Build/source/libs/libpng/libpng-1.6.18/contrib/arm-neon/linux.c index abae9e33bf6..abae9e33bf6 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/arm-neon/linux.c +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/arm-neon/linux.c diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/conftest/README b/Build/source/libs/libpng/libpng-1.6.18/contrib/conftest/README index 0f472791f27..0f472791f27 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/conftest/README +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/conftest/README diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/conftest/read.dfa b/Build/source/libs/libpng/libpng-1.6.18/contrib/conftest/read.dfa index 21e88d01a21..21e88d01a21 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/conftest/read.dfa +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/conftest/read.dfa diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/conftest/s_read.dfa b/Build/source/libs/libpng/libpng-1.6.18/contrib/conftest/s_read.dfa index cb1ce0ba65f..cb1ce0ba65f 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/conftest/s_read.dfa +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/conftest/s_read.dfa diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/conftest/s_write.dfa b/Build/source/libs/libpng/libpng-1.6.18/contrib/conftest/s_write.dfa index e540a46dc8b..e540a46dc8b 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/conftest/s_write.dfa +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/conftest/s_write.dfa diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/conftest/simple.dfa b/Build/source/libs/libpng/libpng-1.6.18/contrib/conftest/simple.dfa index 04193334452..04193334452 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/conftest/simple.dfa +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/conftest/simple.dfa diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/conftest/write.dfa b/Build/source/libs/libpng/libpng-1.6.18/contrib/conftest/write.dfa index 3319aabeeb3..3319aabeeb3 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/conftest/write.dfa +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/conftest/write.dfa diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/examples/README.txt b/Build/source/libs/libpng/libpng-1.6.18/contrib/examples/README.txt index 0525c9d36b4..0525c9d36b4 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/examples/README.txt +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/examples/README.txt diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/examples/iccfrompng.c b/Build/source/libs/libpng/libpng-1.6.18/contrib/examples/iccfrompng.c index 386e522a334..603037e7097 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/examples/iccfrompng.c +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/examples/iccfrompng.c @@ -26,6 +26,10 @@ #include <png.h> +#if defined(PNG_READ_SUPPORTED) && defined(PNG_STDIO_SUPPORTED) && \ + defined (PNG_iCCP_SUPPORTED) + + static int verbose = 1; static png_byte no_profile[] = "no profile"; @@ -178,3 +182,4 @@ main(int argc, char **argv) /* Exit code is true if any extract succeeds */ return extracted == 0; } +#endif /* READ && STDIO && iCCP */ diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/examples/pngpixel.c b/Build/source/libs/libpng/libpng-1.6.18/contrib/examples/pngpixel.c index e0d43e3f09b..27f2cb93647 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/examples/pngpixel.c +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/examples/pngpixel.c @@ -27,6 +27,8 @@ */ #include "../../png.h" +#if defined(PNG_READ_SUPPORTED) && defined(PNG_SEQUENTIAL_READ_SUPPORTED) + /* Return component 'c' of pixel 'x' from the given row. */ static unsigned int component(png_const_bytep row, png_uint_32 x, unsigned int c, @@ -366,3 +368,4 @@ int main(int argc, const char **argv) return result; } +#endif /* READ && SEQUENTIAL_READ */ diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/examples/pngtopng.c b/Build/source/libs/libpng/libpng-1.6.18/contrib/examples/pngtopng.c index b1b3be677b9..4acf6b3ad4d 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/examples/pngtopng.c +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/examples/pngtopng.c @@ -20,6 +20,8 @@ * ensure the code picks up the local libpng implementation: */ #include "../../png.h" +#if defined(PNG_SIMPLIFIED_READ_SUPPORTED) && \ + defined(PNG_SIMPLIFIED_WRITE_SUPPORTED) int main(int argc, const char **argv) { @@ -90,3 +92,4 @@ int main(int argc, const char **argv) return result; } +#endif /* READ && WRITE */ diff --git a/Build/source/libs/libpng/libpng-1.6.18/contrib/examples/simpleover.c b/Build/source/libs/libpng/libpng-1.6.18/contrib/examples/simpleover.c new file mode 100644 index 00000000000..6852a957466 --- /dev/null +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/examples/simpleover.c @@ -0,0 +1,648 @@ +/*- simpleover + * + * COPYRIGHT: Written by John Cunningham Bowler, 2015. + * To the extent possible under law, the author has waived all copyright and + * related or neighboring rights to this work. This work is published from: + * United States. + * + * Read several PNG files, which should have an alpha channel or transparency + * information, and composite them together to produce one or more 16-bit linear + * RGBA intermediates. This involves doing the correct 'over' composition to + * combine the alpha channels and corresponding data. + * + * Finally read an output (background) PNG using the 24-bit RGB format (the + * PNG will be composited on green (#00ff00) by default if it has an alpha + * channel), and apply the intermediate image generated above to specified + * locations in the image. + * + * The command line has the general format: + * + * simpleover <background.png> [output.png] + * {--sprite=width,height,name {[--at=x,y] {sprite.png}}} + * {--add=name {x,y}} + * + * The --sprite and --add options may occur multiple times. They are executed + * in order. --add may refer to any sprite already read. + * + * This code is intended to show how to composite multiple images together + * correctly. Apart from the libpng Simplified API the only work done in here + * is to combine multiple input PNG images into a single sprite; this involves + * a Porter-Duff 'over' operation and the input PNG images may, as a result, + * be regarded as being layered one on top of the other with the first (leftmost + * on the command line) being at the bottom and the last on the top. + */ +#include <stddef.h> +#include <stdlib.h> +#include <string.h> +#include <stdio.h> +#include <errno.h> + +/* Normally use <png.h> here to get the installed libpng, but this is done to + * ensure the code picks up the local libpng implementation, so long as this + * file is linked against a sufficiently recent libpng (1.6+) it is ok to + * change this to <png.h>: + */ +#include "../../png.h" + +#ifdef PNG_SIMPLIFIED_READ_SUPPORTED + +#define sprite_name_chars 15 +struct sprite { + FILE *file; + png_uint_16p buffer; + unsigned int width; + unsigned int height; + char name[sprite_name_chars+1]; +}; + +#if 0 /* div by 65535 test program */ +#include <math.h> +#include <stdio.h> + +int main(void) { + double err = 0; + unsigned int xerr = 0; + unsigned int r = 32769; + { + unsigned int x = 0; + + do { + unsigned int t = x + (x >> 16) /*+ (x >> 31)*/ + r; + double v = x, errtest; + + if (t < x) { + fprintf(stderr, "overflow: %u+%u -> %u\n", x, r, t); + return 1; + } + + v /= 65535; + errtest = v; + t >>= 16; + errtest -= t; + + if (errtest > err) { + err = errtest; + xerr = x; + + if (errtest >= .5) { + fprintf(stderr, "error: %u/65535 = %f, not %u, error %f\n", + x, v, t, errtest); + return 0; + } + } + } while (++x <= 65535U*65535U); + } + + printf("error %f @ %u\n", err, xerr); + + return 0; +} +#endif /* div by 65535 test program */ + +static void +sprite_op(const struct sprite *sprite, int x_offset, int y_offset, + png_imagep image, const png_uint_16 *buffer) +{ + /* This is where the Porter-Duff 'Over' operator is evaluated; change this + * code to change the operator (this could be parameterized). Any other + * image processing operation could be used here. + */ + + + /* Check for an x or y offset that pushes any part of the image beyond the + * right or bottom of the sprite: + */ + if ((y_offset < 0 || (unsigned)/*SAFE*/y_offset < sprite->height) && + (x_offset < 0 || (unsigned)/*SAFE*/x_offset < sprite->width)) + { + unsigned int y = 0; + + if (y_offset < 0) + y = -y_offset; /* Skip to first visible row */ + + do + { + unsigned int x = 0; + + if (x_offset < 0) + x = -x_offset; + + do + { + /* In and out are RGBA values, so: */ + const png_uint_16 *in_pixel = buffer + (y * image->width + x)*4; + png_uint_32 in_alpha = in_pixel[3]; + + /* This is the optimized Porter-Duff 'Over' operation, when the + * input alpha is 0 the output is not changed. + */ + if (in_alpha > 0) + { + png_uint_16 *out_pixel = sprite->buffer + + ((y+y_offset) * sprite->width + (x+x_offset))*4; + + /* This is the weight to apply to the output: */ + in_alpha = 65535-in_alpha; + + if (in_alpha > 0) + { + /* The input must be composed onto the output. This means + * multiplying the current output pixel value by the inverse + * of the input alpha (1-alpha). A division is required but + * it is by the constant 65535. Approximate this as: + * + * (x + (x >> 16) + 32769) >> 16; + * + * This is exact (and does not overflow) for all values of + * x in the range 0..65535*65535. (Note that the calculation + * produces the closest integer; the maximum error is <0.5). + */ + png_uint_32 tmp; + +# define compose(c)\ + tmp = out_pixel[c] * in_alpha;\ + tmp = (tmp + (tmp >> 16) + 32769) >> 16;\ + out_pixel[c] = tmp + in_pixel[c] + + /* The following is very vectorizable... */ + compose(0); + compose(1); + compose(2); + compose(3); + } + + else + out_pixel[0] = in_pixel[0], + out_pixel[1] = in_pixel[1], + out_pixel[2] = in_pixel[2], + out_pixel[3] = in_pixel[3]; + } + } + while (++x < image->width); + } + while (++y < image->height); + } +} + +static int +create_sprite(struct sprite *sprite, int *argc, const char ***argv) +{ + /* Read the arguments and create this sprite. The sprite buffer has already + * been allocated. This reads the input PNGs one by one in linear format, + * composes them onto the sprite buffer (the code in the function above) + * then saves the result, converting it on the fly to PNG RGBA 8-bit format. + */ + while (*argc > 0) + { + char tombstone; + int x = 0, y = 0; + + if ((*argv)[0][0] == '-' && (*argv)[0][1] == '-') + { + /* The only supported option is --at. */ + if (sscanf((*argv)[0], "--at=%d,%d%c", &x, &y, &tombstone) != 2) + break; /* success; caller will parse this option */ + + ++*argv, --*argc; + } + + else + { + /* The argument has to be a file name */ + png_image image; + + image.version = PNG_IMAGE_VERSION; + image.opaque = NULL; + + if (png_image_begin_read_from_file(&image, (*argv)[0])) + { + png_uint_16p buffer; + + image.format = PNG_FORMAT_LINEAR_RGB_ALPHA; + + buffer = malloc(PNG_IMAGE_SIZE(image)); + + if (buffer != NULL) + { + if (png_image_finish_read(&image, NULL/*background*/, buffer, + 0/*row_stride*/, + NULL/*colormap for PNG_FORMAT_FLAG_COLORMAP*/)) + { + /* This is the place where the Porter-Duff 'Over' operator + * needs to be done by this code. In fact, any image + * processing required can be done here; the data is in + * the correct format (linear, 16-bit) and source and + * destination are in memory. + */ + sprite_op(sprite, x, y, &image, buffer); + free(buffer); + ++*argv, --*argc; + /* And continue to the next argument */ + continue; + } + + else + { + free(buffer); + fprintf(stderr, "simpleover: read %s: %s\n", (*argv)[0], + image.message); + } + } + + else + { + fprintf(stderr, "simpleover: out of memory: %lu bytes\n", + (unsigned long)PNG_IMAGE_SIZE(image)); + + /* png_image_free must be called if we abort the Simplified API + * read because of a problem detected in this code. If problems + * are detected in the Simplified API it cleans up itself. + */ + png_image_free(&image); + } + } + + else + { + /* Failed to read the first argument: */ + fprintf(stderr, "simpleover: %s: %s\n", (*argv)[0], image.message); + } + + return 0; /* failure */ + } + } + + /* All the sprite operations have completed successfully. Save the RGBA + * buffer as a PNG using the simplified write API. + */ + sprite->file = tmpfile(); + + if (sprite->file != NULL) + { + png_image save; + + memset(&save, 0, sizeof save); + save.version = PNG_IMAGE_VERSION; + save.opaque = NULL; + save.width = sprite->width; + save.height = sprite->height; + save.format = PNG_FORMAT_LINEAR_RGB_ALPHA; + save.flags = PNG_IMAGE_FLAG_FAST; + save.colormap_entries = 0; + + if (png_image_write_to_stdio(&save, sprite->file, 1/*convert_to_8_bit*/, + sprite->buffer, 0/*row_stride*/, NULL/*colormap*/)) + { + /* Success; the buffer is no longer needed: */ + free(sprite->buffer); + sprite->buffer = NULL; + return 1; /* ok */ + } + + else + fprintf(stderr, "simpleover: write sprite %s: %s\n", sprite->name, + save.message); + } + + else + fprintf(stderr, "simpleover: sprite %s: could not allocate tmpfile: %s\n", + sprite->name, strerror(errno)); + + return 0; /* fail */ +} + +static int +add_sprite(png_imagep output, png_bytep out_buf, struct sprite *sprite, + int *argc, const char ***argv) +{ + /* Given a --add argument naming this sprite, perform the operations listed + * in the following arguments. The arguments are expected to have the form + * (x,y), which is just an offset at which to add the sprite to the + * output. + */ + while (*argc > 0) + { + char tombstone; + int x, y; + + if ((*argv)[0][0] == '-' && (*argv)[0][1] == '-') + return 1; /* success */ + + if (sscanf((*argv)[0], "%d,%d%c", &x, &y, &tombstone) == 2) + { + /* Now add the new image into the sprite data, but only if it + * will fit. + */ + if (x < 0 || y < 0 || + (unsigned)/*SAFE*/x >= output->width || + (unsigned)/*SAFE*/y >= output->height || + sprite->width > output->width-x || + sprite->height > output->height-y) + { + fprintf(stderr, "simpleover: sprite %s @ (%d,%d) outside image\n", + sprite->name, x, y); + /* Could just skip this, but for the moment it is an error */ + return 0; /* error */ + } + + else + { + /* Since we know the sprite fits we can just read it into the + * output using the simplified API. + */ + png_image in; + + in.version = PNG_IMAGE_VERSION; + rewind(sprite->file); + + if (png_image_begin_read_from_stdio(&in, sprite->file)) + { + in.format = PNG_FORMAT_RGB; /* force compose */ + + if (png_image_finish_read(&in, NULL/*background*/, + out_buf + (y*output->width + x)*3/*RGB*/, + output->width*3/*row_stride*/, + NULL/*colormap for PNG_FORMAT_FLAG_COLORMAP*/)) + { + ++*argv, --*argc; + continue; + } + } + + /* The read failed: */ + fprintf(stderr, "simpleover: add sprite %s: %s\n", sprite->name, + in.message); + return 0; /* error */ + } + } + + else + { + fprintf(stderr, "simpleover: --add='%s': invalid position %s\n", + sprite->name, (*argv)[0]); + return 0; /* error */ + } + } + + return 1; /* ok */ +} + +static int +simpleover_process(png_imagep output, png_bytep out_buf, int argc, + const char **argv) +{ + int result = 1; /* success */ +# define csprites 10/*limit*/ +# define str(a) #a + int nsprites = 0; + struct sprite sprites[csprites]; + + while (argc > 0) + { + result = 0; /* fail */ + + if (strncmp(argv[0], "--sprite=", 9) == 0) + { + char tombstone; + + if (nsprites < csprites) + { + int n; + + sprites[nsprites].width = sprites[nsprites].height = 0; + sprites[nsprites].name[0] = 0; + + n = sscanf(argv[0], "--sprite=%u,%u,%" str(sprite_name_chars) "s%c", + &sprites[nsprites].width, &sprites[nsprites].height, + sprites[nsprites].name, &tombstone); + + if ((n == 2 || n == 3) && + sprites[nsprites].width > 0 && sprites[nsprites].height > 0) + { + size_t buf_size, tmp; + + /* Default a name if not given. */ + if (sprites[nsprites].name[0] == 0) + sprintf(sprites[nsprites].name, "sprite-%d", nsprites+1); + + /* Allocate a buffer for the sprite and calculate the buffer + * size: + */ + buf_size = sizeof (png_uint_16 [4]); + buf_size *= sprites[nsprites].width; + buf_size *= sprites[nsprites].height; + + /* This can overflow a (size_t); check for this: */ + tmp = buf_size; + tmp /= sprites[nsprites].width; + tmp /= sprites[nsprites].height; + + if (tmp == sizeof (png_uint_16 [4])) + { + sprites[nsprites].buffer = malloc(buf_size); + /* This buffer must be initialized to transparent: */ + memset(sprites[nsprites].buffer, 0, buf_size); + + if (sprites[nsprites].buffer != NULL) + { + sprites[nsprites].file = NULL; + ++argv, --argc; + + if (create_sprite(sprites+nsprites++, &argc, &argv)) + { + result = 1; /* still ok */ + continue; + } + + break; /* error */ + } + } + + /* Overflow, or OOM */ + fprintf(stderr, "simpleover: %s: sprite too large\n", argv[0]); + break; + } + + else + { + fprintf(stderr, "simpleover: %s: invalid sprite (%u,%u)\n", + argv[0], sprites[nsprites].width, sprites[nsprites].height); + break; + } + } + + else + { + fprintf(stderr, "simpleover: %s: too many sprites\n", argv[0]); + break; + } + } + + else if (strncmp(argv[0], "--add=", 6) == 0) + { + const char *name = argv[0]+6; + int isprite = nsprites; + + ++argv, --argc; + + while (--isprite >= 0) + { + if (strcmp(sprites[isprite].name, name) == 0) + { + if (!add_sprite(output, out_buf, sprites+isprite, &argc, &argv)) + goto out; /* error in add_sprite */ + + break; + } + } + + if (isprite < 0) /* sprite not found */ + { + fprintf(stderr, "simpleover: --add='%s': sprite not found\n", name); + break; + } + } + + else + { + fprintf(stderr, "simpleover: %s: unrecognized operation\n", argv[0]); + break; + } + + result = 1; /* ok */ + } + + /* Clean up the cache of sprites: */ +out: + while (--nsprites >= 0) + { + if (sprites[nsprites].buffer != NULL) + free(sprites[nsprites].buffer); + + if (sprites[nsprites].file != NULL) + (void)fclose(sprites[nsprites].file); + } + + return result; +} + +int main(int argc, const char **argv) +{ + int result = 1; /* default to fail */ + + if (argc >= 2) + { + int argi = 2; + const char *output = NULL; + png_image image; + + if (argc > 2 && argv[2][0] != '-'/*an operation*/) + { + output = argv[2]; + argi = 3; + } + + image.version = PNG_IMAGE_VERSION; + image.opaque = NULL; + + if (png_image_begin_read_from_file(&image, argv[1])) + { + png_bytep buffer; + + image.format = PNG_FORMAT_RGB; /* 24-bit RGB */ + + buffer = malloc(PNG_IMAGE_SIZE(image)); + + if (buffer != NULL) + { + png_color background = {0, 0xff, 0}; /* fully saturated green */ + + if (png_image_finish_read(&image, &background, buffer, + 0/*row_stride*/, NULL/*colormap for PNG_FORMAT_FLAG_COLORMAP */)) + { + /* At this point png_image_finish_read has cleaned up the + * allocated data in png_image, and only the buffer needs to be + * freed. + * + * Perform the remaining operations: + */ + if (simpleover_process(&image, buffer, argc-argi, argv+argi)) + { + /* Write the output: */ + if ((output != NULL && + png_image_write_to_file(&image, output, + 0/*convert_to_8bit*/, buffer, 0/*row_stride*/, + NULL/*colormap*/)) || + (output == NULL && + png_image_write_to_stdio(&image, stdout, + 0/*convert_to_8bit*/, buffer, 0/*row_stride*/, + NULL/*colormap*/))) + result = 0; + + else + fprintf(stderr, "simpleover: write %s: %s\n", + output == NULL ? "stdout" : output, image.message); + } + + /* else simpleover_process writes an error message */ + } + + else + fprintf(stderr, "simpleover: read %s: %s\n", argv[1], + image.message); + + free(buffer); + } + + else + { + fprintf(stderr, "simpleover: out of memory: %lu bytes\n", + (unsigned long)PNG_IMAGE_SIZE(image)); + + /* This is the only place where a 'free' is required; libpng does + * the cleanup on error and success, but in this case we couldn't + * complete the read because of running out of memory. + */ + png_image_free(&image); + } + } + + else + { + /* Failed to read the first argument: */ + fprintf(stderr, "simpleover: %s: %s\n", argv[1], image.message); + } + } + + else + { + /* Usage message */ + fprintf(stderr, + "simpleover: usage: simpleover background.png [output.png]\n" + " Output 'background.png' as a 24-bit RGB PNG file in 'output.png'\n" + " or, if not given, stdout. 'background.png' will be composited\n" + " on fully saturated green.\n" + "\n" + " Optionally, before output, process additional PNG files:\n" + "\n" + " --sprite=width,height,name {[--at=x,y] {sprite.png}}\n" + " Produce a transparent sprite of size (width,height) and with\n" + " name 'name'.\n" + " For each sprite.png composite it using a Porter-Duff 'Over'\n" + " operation at offset (x,y) in the sprite (defaulting to (0,0)).\n" + " Input PNGs will be truncated to the area of the sprite.\n" + "\n" + " --add='name' {x,y}\n" + " Optionally, before output, composite a sprite, 'name', which\n" + " must have been previously produced using --sprite, at each\n" + " offset (x,y) in the output image. Each sprite must fit\n" + " completely within the output image.\n" + "\n" + " PNG files are processed in the order they occur on the command\n" + " line and thus the first PNG processed appears as the bottommost\n" + " in the output image.\n"); + } + + return result; +} +#endif /* SIMPLIFIED_READ */ diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/COPYING b/Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/COPYING index a3e97747969..a3e97747969 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/COPYING +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/COPYING diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/LICENSE b/Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/LICENSE index d9567178cb6..d9567178cb6 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/LICENSE +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/LICENSE diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/Makefile.mingw32 b/Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/Makefile.mingw32 index 3a3ff607e81..3a3ff607e81 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/Makefile.mingw32 +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/Makefile.mingw32 diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/Makefile.sgi b/Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/Makefile.sgi index 94d61b4652c..94d61b4652c 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/Makefile.sgi +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/Makefile.sgi diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/Makefile.unx b/Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/Makefile.unx index 1a73e03bff4..1a73e03bff4 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/Makefile.unx +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/Makefile.unx diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/Makefile.w32 b/Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/Makefile.w32 index ab7dcf7cae7..ab7dcf7cae7 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/Makefile.w32 +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/Makefile.w32 diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/README b/Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/README index 7b1f6a3ea62..7b1f6a3ea62 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/README +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/README diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/makevms.com b/Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/makevms.com index f32bcaba7f9..f32bcaba7f9 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/makevms.com +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/makevms.com diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/readpng.c b/Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/readpng.c index 9167403e597..9167403e597 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/readpng.c +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/readpng.c diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/readpng.h b/Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/readpng.h index fad9fe3b4c5..fad9fe3b4c5 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/readpng.h +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/readpng.h diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/readpng2.c b/Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/readpng2.c index 4cf2600a41d..4cf2600a41d 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/readpng2.c +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/readpng2.c diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/readpng2.h b/Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/readpng2.h index 6b3660d7c17..6b3660d7c17 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/readpng2.h +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/readpng2.h diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/readppm.c b/Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/readppm.c index 7fefc3943ec..7fefc3943ec 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/readppm.c +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/readppm.c diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/rpng-win.c b/Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/rpng-win.c index f53ddc8ece6..f53ddc8ece6 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/rpng-win.c +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/rpng-win.c diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/rpng-x.c b/Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/rpng-x.c index ddd7c58d6f3..ddd7c58d6f3 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/rpng-x.c +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/rpng-x.c diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/rpng2-win.c b/Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/rpng2-win.c index eda176eee33..eda176eee33 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/rpng2-win.c +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/rpng2-win.c diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/rpng2-x.c b/Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/rpng2-x.c index cf371014c8d..cf371014c8d 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/rpng2-x.c +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/rpng2-x.c diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/toucan.png b/Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/toucan.png Binary files differindex 03960d49399..03960d49399 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/toucan.png +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/toucan.png diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/wpng.c b/Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/wpng.c index a06e3529ecb..a06e3529ecb 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/wpng.c +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/wpng.c diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/writepng.c b/Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/writepng.c index c5c9534797b..c5c9534797b 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/writepng.c +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/writepng.c diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/writepng.h b/Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/writepng.h index 78b966b5874..78b966b5874 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/gregbook/writepng.h +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/gregbook/writepng.h diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/libtests/fakepng.c b/Build/source/libs/libpng/libpng-1.6.18/contrib/libtests/fakepng.c index fcc111286c6..fcc111286c6 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/libtests/fakepng.c +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/libtests/fakepng.c diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/libtests/gentests.sh b/Build/source/libs/libpng/libpng-1.6.18/contrib/libtests/gentests.sh index f0f8d2395a5..f0f8d2395a5 100755 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/libtests/gentests.sh +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/libtests/gentests.sh diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/libtests/makepng.c b/Build/source/libs/libpng/libpng-1.6.18/contrib/libtests/makepng.c index 9f11b29645b..9f11b29645b 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/libtests/makepng.c +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/libtests/makepng.c diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/libtests/pngimage.c b/Build/source/libs/libpng/libpng-1.6.18/contrib/libtests/pngimage.c index dccfbce127c..180cf0a16cb 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/libtests/pngimage.c +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/libtests/pngimage.c @@ -1,8 +1,8 @@ /* pngimage.c * - * Copyright (c) 2014 John Cunningham Bowler + * Copyright (c) 2015 John Cunningham Bowler * - * Last changed in libpng 1.6.10 [March 6, 2014] + * Last changed in libpng 1.6.18 [July 23, 2015] * * This code is released under the libpng license. * For conditions of distribution and use, see the disclaimer @@ -1120,8 +1120,8 @@ compare_read(struct display *dp, int applied_transforms) { int b; - case 16: /* Two bytes per component, bit-endian */ - for (b = (bpp >> 4); b > 0; ) + case 16: /* Two bytes per component, big-endian */ + for (b = (bpp >> 4); b > 0; --b) { unsigned int sig = (unsigned int)(0xffff0000 >> sig_bits[b]); diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/libtests/pngstest.c b/Build/source/libs/libpng/libpng-1.6.18/contrib/libtests/pngstest.c index d7c1c1e794b..5a080b46edd 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/libtests/pngstest.c +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/libtests/pngstest.c @@ -1,9 +1,9 @@ /*- * pngstest.c * - * Copyright (c) 2013-2014 John Cunningham Bowler + * Copyright (c) 2013-2015 John Cunningham Bowler * - * Last changed in libpng 1.6.16 [December 22, 2014] + * Last changed in libpng 1.6.18 [July 23, 2015] * * This code is released under the libpng license. * For conditions of distribution and use, see the disclaimer @@ -615,7 +615,7 @@ freeimage(Image *image) if (image->tmpfile_name[0] != 0 && (image->opts & KEEP_TMPFILES) == 0) { - remove(image->tmpfile_name); + (void)remove(image->tmpfile_name); image->tmpfile_name[0] = 0; } } @@ -2828,7 +2828,7 @@ compare_two_images(Image *a, Image *b, int via_linear, else if (y >= b->image.colormap_entries) { - if ((a->opts & ACCUMULATE) == 0) + if ((b->opts & ACCUMULATE) == 0) { char pindex[9]; sprintf(pindex, "%lu[%lu]", (unsigned long)y, @@ -3175,7 +3175,9 @@ read_one_file(Image *image) if (cb > 0) { +#ifndef __COVERITY__ if ((unsigned long int)cb <= (size_t)~(size_t)0) +#endif { png_bytep b = voidcast(png_bytep, malloc((size_t)cb)); @@ -3243,8 +3245,41 @@ write_one_file(Image *output, Image *image, int convert_to_8bit) if (image->opts & USE_STDIO) { +#ifndef PNG_USE_MKSTEMP FILE *f = tmpfile(); - +#else + /* Experimental. Coverity says tmpfile() is insecure because it + * generates predictable names. + * + * It is possible to satisfy Coverity by using mkstemp(); however, + * any platform supporting mkstemp() undoubtedly has a secure tmpfile() + * implementation as well, and doesn't need the fix. Note that + * the fix won't work on platforms that don't support mkstemp(). + * + * https://www.securecoding.cert.org/confluence/display/c/ + * FIO21-C.+Do+not+create+temporary+files+in+shared+directories + * says that most historic implementations of tmpfile() provide + * only a limited number of possible temporary file names + * (usually 26) before file names are recycled. That article also + * provides a secure solution that unfortunately depends upon mkstemp(). + */ + char tmpfile[] = "pngstest-XXXXXX"; + int filedes; + FILE *f; + umask(0177); + filedes = mkstemp(tmpfile); + if (filedes < 0) + f = NULL; + else + { + f = fdopen(filedes,"w+"); + /* Hide the filename immediately and ensure that the file does + * not exist after the program ends + */ + (void) unlink(tmpfile); + } +#endif + if (f != NULL) { if (png_image_write_to_stdio(&image->image, f, convert_to_8bit, @@ -3588,7 +3623,7 @@ main(int argc, char **argv) } /* Safe: checked above */ - strcpy(tmpf, argv[c]); + strncpy(tmpf, argv[c], sizeof (tmpf)-1); } else diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/libtests/pngunknown.c b/Build/source/libs/libpng/libpng-1.6.18/contrib/libtests/pngunknown.c index 309ee604e59..309ee604e59 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/libtests/pngunknown.c +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/libtests/pngunknown.c diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/libtests/pngvalid.c b/Build/source/libs/libpng/libpng-1.6.18/contrib/libtests/pngvalid.c index 79de125da11..1efab64538a 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/libtests/pngvalid.c +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/libtests/pngvalid.c @@ -1,7 +1,7 @@ /* pngvalid.c - validate libpng by constructing then reading png files. * - * Last changed in libpng 1.6.17 [March 26, 2015] + * Last changed in libpng 1.6.18 [July 23, 2015] * Copyright (c) 2014-2015 Glenn Randers-Pehrson * Written by John Cunningham Bowler * @@ -258,7 +258,7 @@ make_four_random_bytes(png_uint_32* seed, png_bytep bytes) make_random_bytes(seed, bytes, 4); } -#ifdef PNG_READ_SUPPORTED +#if defined PNG_READ_SUPPORTED || defined PNG_WRITE_tRNS_SUPPORTED static void randomize(void *pv, size_t size) { @@ -267,7 +267,9 @@ randomize(void *pv, size_t size) } #define RANDOMIZE(this) randomize(&(this), sizeof (this)) +#endif /* READ || WRITE_tRNS */ +#ifdef PNG_READ_SUPPORTED static unsigned int random_mod(unsigned int max) { @@ -295,7 +297,8 @@ random_choice(void) /* A numeric ID based on PNG file characteristics. The 'do_interlace' field * simply records whether pngvalid did the interlace itself or whether it * was done by libpng. Width and height must be less than 256. 'palette' is an - * index of the palette to use for formats with a palette (0 otherwise.) + * index of the palette to use for formats with a palette otherwise a boolean + * indicating if a tRNS chunk was generated. */ #define FILEID(col, depth, palette, interlace, width, height, do_interlace) \ ((png_uint_32)((col) + ((depth)<<3) + ((palette)<<8) + ((interlace)<<13) + \ @@ -316,12 +319,16 @@ standard_name(char *buffer, size_t bufsize, size_t pos, png_byte colour_type, png_uint_32 w, png_uint_32 h, int do_interlace) { pos = safecat(buffer, bufsize, pos, colour_types[colour_type]); - if (npalette > 0) + if (colour_type == 3) /* must have a palette */ { pos = safecat(buffer, bufsize, pos, "["); pos = safecatn(buffer, bufsize, pos, npalette); pos = safecat(buffer, bufsize, pos, "]"); } + + else if (npalette != 0) + pos = safecat(buffer, bufsize, pos, "+tRNS"); + pos = safecat(buffer, bufsize, pos, " "); pos = safecatn(buffer, bufsize, pos, bit_depth); pos = safecat(buffer, bufsize, pos, " bit"); @@ -378,25 +385,32 @@ standard_name_from_id(char *buffer, size_t bufsize, size_t pos, png_uint_32 id) static int next_format(png_bytep colour_type, png_bytep bit_depth, - unsigned int* palette_number, int no_low_depth_gray) + unsigned int* palette_number, int low_depth_gray, int tRNS) { if (*bit_depth == 0) { *colour_type = 0; - if (no_low_depth_gray) - *bit_depth = 8; - else + if (low_depth_gray) *bit_depth = 1; + else + *bit_depth = 8; *palette_number = 0; return 1; } - if (*colour_type == 3) + if (*colour_type < 4/*no alpha channel*/) { - /* Add multiple palettes for colour type 3. */ - if (++*palette_number < PALETTE_COUNT(*bit_depth)) + /* Add multiple palettes for colour type 3, one image with tRNS + * and one without for other non-alpha formats: + */ + unsigned int pn = ++*palette_number; + png_byte ct = *colour_type; + + if (((ct == 0/*GRAY*/ || ct/*RGB*/ == 2) && tRNS && pn < 2) || + (ct == 3/*PALETTE*/ && pn < PALETTE_COUNT(*bit_depth))) return 1; + /* No: next bit depth */ *palette_number = 0; } @@ -1305,7 +1319,10 @@ store_current_palette(png_store *ps, int *npalette) * operation.) */ if (ps->current == NULL) + { store_log(ps, ps->pread, "no current stream for palette", 1); + return NULL; + } /* The result may be null if there is no palette. */ *npalette = ps->current->npalette; @@ -1959,6 +1976,7 @@ typedef struct png_modifier /* Run tests on reading with a combination of transforms, */ unsigned int test_transform :1; + unsigned int test_tRNS :1; /* Includes tRNS images */ /* When to use the use_input_precision option, this controls the gamma * validation code checks. If set any value that is within the transformed @@ -1990,6 +2008,16 @@ typedef struct png_modifier unsigned int test_gamma_expand16 :1; unsigned int test_exhaustive :1; + /* Whether or not to run the low-bit-depth grayscale tests. This fail on + * gamma images in some cases because of gross inaccuracies in the grayscale + * gamma handling for low bit depth. + */ + unsigned int test_lbg :1; + unsigned int test_lbg_gamma_threshold :1; + unsigned int test_lbg_gamma_transform :1; + unsigned int test_lbg_gamma_sbit :1; + unsigned int test_lbg_gamma_composition :1; + unsigned int log :1; /* Log max error */ /* Buffer information, the buffer size limits the size of the chunks that can @@ -2042,6 +2070,11 @@ modifier_init(png_modifier *pm) pm->test_standard = 0; pm->test_size = 0; pm->test_transform = 0; +# ifdef PNG_WRITE_tRNS_SUPPORTED + pm->test_tRNS = 1; +# else + pm->test_tRNS = 0; +# endif pm->use_input_precision = 0; pm->use_input_precision_sbit = 0; pm->use_input_precision_16to8 = 0; @@ -2054,6 +2087,11 @@ modifier_init(png_modifier *pm) pm->test_gamma_background = 0; pm->test_gamma_alpha_mode = 0; pm->test_gamma_expand16 = 0; + pm->test_lbg = 1; + pm->test_lbg_gamma_threshold = 1; + pm->test_lbg_gamma_transform = 1; + pm->test_lbg_gamma_sbit = 1; + pm->test_lbg_gamma_composition = 1; pm->test_exhaustive = 0; pm->log = 0; @@ -3192,6 +3230,45 @@ init_standard_palette(png_store *ps, png_structp pp, png_infop pi, int npalette, } } +#ifdef PNG_WRITE_tRNS_SUPPORTED +static void +set_random_tRNS(png_structp pp, png_infop pi, PNG_CONST png_byte colour_type, + PNG_CONST int bit_depth) +{ + /* To make this useful the tRNS color needs to match at least one pixel. + * Random values are fine for gray, including the 16-bit case where we know + * that the test image contains all the gray values. For RGB we need more + * method as only 65536 different RGB values are generated. + */ + png_color_16 tRNS; + const png_uint_16 mask = (png_uint_16)((1U << bit_depth)-1); + + RANDOMIZE(tRNS); + + if (colour_type & 2/*RGB*/) + { + if (bit_depth == 8) + { + tRNS.blue = tRNS.red ^ tRNS.green; + tRNS.red &= mask; + tRNS.green &= mask; + tRNS.blue &= mask; + } + + else /* bit_depth == 16 */ + { + tRNS.green = (png_uint_16)(tRNS.red * 257); + tRNS.blue = (png_uint_16)(tRNS.green * 17); + } + } + + else + tRNS.gray &= mask; + + png_set_tRNS(pp, pi, NULL, 0, &tRNS); +} +#endif + /* The number of passes is related to the interlace type. There was no libpng * API to determine this prior to 1.5, so we need an inquiry function: */ @@ -3525,6 +3602,11 @@ make_transform_image(png_store* PNG_CONST ps, png_byte PNG_CONST colour_type, if (colour_type == 3) /* palette */ init_standard_palette(ps, pp, pi, 1U << bit_depth, 1/*do tRNS*/); +# ifdef PNG_WRITE_tRNS_SUPPORTED + else if (palette_number) + set_random_tRNS(pp, pi, colour_type, bit_depth); +# endif + png_write_info(pp, pi); if (png_get_rowbytes(pp, pi) != @@ -3598,19 +3680,20 @@ make_transform_image(png_store* PNG_CONST ps, png_byte PNG_CONST colour_type, } static void -make_transform_images(png_store *ps) +make_transform_images(png_modifier *pm) { png_byte colour_type = 0; png_byte bit_depth = 0; unsigned int palette_number = 0; /* This is in case of errors. */ - safecat(ps->test, sizeof ps->test, 0, "make standard images"); + safecat(pm->this.test, sizeof pm->this.test, 0, "make standard images"); /* Use next_format to enumerate all the combinations we test, including - * generating multiple low bit depth palette images. + * generating multiple low bit depth palette images. Non-A images (palette + * and direct) are created with and without tRNS chunks. */ - while (next_format(&colour_type, &bit_depth, &palette_number, 0)) + while (next_format(&colour_type, &bit_depth, &palette_number, 1, 1)) { int interlace_type; @@ -3621,7 +3704,7 @@ make_transform_images(png_store *ps) standard_name(name, sizeof name, 0, colour_type, bit_depth, palette_number, interlace_type, 0, 0, 0); - make_transform_image(ps, colour_type, bit_depth, palette_number, + make_transform_image(&pm->this, colour_type, bit_depth, palette_number, interlace_type, name); } } @@ -4017,7 +4100,7 @@ make_error(png_store* volatile psIn, png_byte PNG_CONST colour_type, Try { - png_structp pp; + volatile png_structp pp; png_infop pi; pp = set_store_for_write(ps, &pi, name); @@ -4287,6 +4370,7 @@ typedef struct standard_display size_t cbRow; /* Bytes in a row of the output image */ int do_interlace; /* Do interlacing internally */ int is_transparent; /* Transparency information was present. */ + int has_tRNS; /* color type GRAY or RGB with a tRNS chunk. */ int speed; /* Doing a speed test */ int use_update_info;/* Call update_info, not start_image */ struct @@ -4619,14 +4703,14 @@ standard_info_part1(standard_display *dp, png_structp pp, png_infop pi) case 0: dp->transparent.red = dp->transparent.green = dp->transparent.blue = trans_color->gray; - dp->is_transparent = 1; + dp->has_tRNS = 1; break; case 2: dp->transparent.red = trans_color->red; dp->transparent.green = trans_color->green; dp->transparent.blue = trans_color->blue; - dp->is_transparent = 1; + dp->has_tRNS = 1; break; case 3: @@ -5518,7 +5602,7 @@ image_pixel_add_alpha(image_pixel *this, PNG_CONST standard_display *display) if (this->colour_type == PNG_COLOR_TYPE_GRAY) { if (this->bit_depth < 8) - this->bit_depth = 8; + this->bit_depth = this->sample_depth = 8; if (this->have_tRNS) { @@ -5553,9 +5637,11 @@ image_pixel_add_alpha(image_pixel *this, PNG_CONST standard_display *display) this->alphaf = 0; else this->alphaf = 1; - - this->colour_type = PNG_COLOR_TYPE_RGB_ALPHA; } + else + this->alphaf = 1; + + this->colour_type = PNG_COLOR_TYPE_RGB_ALPHA; } /* The error in the alpha is zero and the sBIT value comes from the @@ -5848,8 +5934,9 @@ transform_info_imp(transform_display *dp, png_structp pp, png_infop pi) /* If png_set_filler is in action then fake the output color type to include * an alpha channel where appropriate. */ - if (dp->output_bit_depth >= 8 && (dp->output_colour_type == PNG_COLOR_TYPE_RGB || - dp->output_colour_type == PNG_COLOR_TYPE_GRAY) && dp->this.filler) + if (dp->output_bit_depth >= 8 && + (dp->output_colour_type == PNG_COLOR_TYPE_RGB || + dp->output_colour_type == PNG_COLOR_TYPE_GRAY) && dp->this.filler) dp->output_colour_type |= 4; /* Validate the combination of colour type and bit depth that we are getting @@ -6372,6 +6459,13 @@ image_transform_png_set_tRNS_to_alpha_set(PNG_CONST image_transform *this, transform_display *that, png_structp pp, png_infop pi) { png_set_tRNS_to_alpha(pp); + + /* If there was a tRNS chunk that would get expanded and add an alpha + * channel is_transparent must be updated: + */ + if (that->this.has_tRNS) + that->this.is_transparent = 1; + this->next->set(this->next, that, pp, pi); } @@ -6430,6 +6524,7 @@ image_transform_png_set_gray_to_rgb_set(PNG_CONST image_transform *this, transform_display *that, png_structp pp, png_infop pi) { png_set_gray_to_rgb(pp); + /* NOTE: this doesn't result in tRNS expansion. */ this->next->set(this->next, that, pp, pi); } @@ -6489,6 +6584,10 @@ image_transform_png_set_expand_set(PNG_CONST image_transform *this, transform_display *that, png_structp pp, png_infop pi) { png_set_expand(pp); + + if (that->this.has_tRNS) + that->this.is_transparent = 1; + this->next->set(this->next, that, pp, pi); } @@ -6539,6 +6638,7 @@ image_transform_png_set_expand_gray_1_2_4_to_8_set( png_infop pi) { png_set_expand_gray_1_2_4_to_8(pp); + /* NOTE: don't expect this to expand tRNS */ this->next->set(this->next, that, pp, pi); } @@ -6570,6 +6670,11 @@ image_transform_png_set_expand_16_set(PNG_CONST image_transform *this, transform_display *that, png_structp pp, png_infop pi) { png_set_expand_16(pp); + + /* NOTE: at present libpng does SET_EXPAND as well, so tRNS is expanded. */ + if (that->this.has_tRNS) + that->this.is_transparent = 1; + this->next->set(this->next, that, pp, pi); } @@ -6940,14 +7045,14 @@ image_transform_png_set_rgb_to_gray_ini(PNG_CONST image_transform *this, * When DIGITIZE is set because a pre-1.7 version of libpng is being * tested allow a bigger slack. * - * NOTE: this magic number was determined by experiment to be 1.25. - * There's no great merit to the value below, however it only affects - * the limit used for checking for internal calculation errors, not - * the actual limit imposed by pngvalid on the output errors. + * NOTE: this magic number was determined by experiment to be about + * 1.263. There's no great merit to the value below, however it only + * affects the limit used for checking for internal calculation errors, + * not the actual limit imposed by pngvalid on the output errors. */ that->pm->limit += pow( # if DIGITIZE - 1.25 + 1.3 # else 1.0 # endif @@ -7111,7 +7216,8 @@ image_transform_png_set_rgb_to_gray_mod(PNG_CONST image_transform *this, const unsigned int sample_depth = that->sample_depth; const unsigned int calc_depth = (pm->assume_16_bit_calculations ? 16 : sample_depth); - const unsigned int gamma_depth = (sample_depth == 16 ? 16 : + const unsigned int gamma_depth = (sample_depth == 16 ? + PNG_MAX_GAMMA_8 : (pm->assume_16_bit_calculations ? PNG_MAX_GAMMA_8 : sample_depth)); int isgray; double r, g, b; @@ -7125,56 +7231,73 @@ image_transform_png_set_rgb_to_gray_mod(PNG_CONST image_transform *this, * will be identical after this operation if there is only one * transform, feel free to delete the png_error checks on this below in * the future (this is just me trying to ensure it works!) + * + * Interval arithmetic is exact, but to implement it it must be + * possible to control the floating point implementation rounding mode. + * This cannot be done in ANSI-C, so instead I reduce the 'lo' values + * by DBL_EPSILON and increase the 'hi' values by the same. */ +# define DD(v,d,r) (digitize(v*(1-DBL_EPSILON), d, r) * (1-DBL_EPSILON)) +# define DU(v,d,r) (digitize(v*(1+DBL_EPSILON), d, r) * (1+DBL_EPSILON)) + r = rlo = rhi = that->redf; rlo -= that->rede; - rlo = digitize(rlo, calc_depth, 1/*round*/); + rlo = DD(rlo, calc_depth, 1/*round*/); rhi += that->rede; - rhi = digitize(rhi, calc_depth, 1/*round*/); + rhi = DU(rhi, calc_depth, 1/*round*/); g = glo = ghi = that->greenf; glo -= that->greene; - glo = digitize(glo, calc_depth, 1/*round*/); + glo = DD(glo, calc_depth, 1/*round*/); ghi += that->greene; - ghi = digitize(ghi, calc_depth, 1/*round*/); + ghi = DU(ghi, calc_depth, 1/*round*/); b = blo = bhi = that->bluef; blo -= that->bluee; - blo = digitize(blo, calc_depth, 1/*round*/); + blo = DD(blo, calc_depth, 1/*round*/); bhi += that->greene; - bhi = digitize(bhi, calc_depth, 1/*round*/); + bhi = DU(bhi, calc_depth, 1/*round*/); isgray = r==g && g==b; if (data.gamma != 1) { PNG_CONST double power = 1/data.gamma; - PNG_CONST double abse = calc_depth == 16 ? .5/65535 : .5/255; + PNG_CONST double abse = .5/(sample_depth == 16 ? 65535 : 255); - /* 'abse' is the absolute error permitted in linear calculations. It - * is used here to capture the error permitted in the handling - * (undoing) of the gamma encoding. Once again digitization occurs - * to handle the upper and lower bounds of the values. This is - * where the real errors are introduced. + /* If a gamma calculation is done it is done using lookup tables of + * precision gamma_depth, so the already digitized value above may + * need to be further digitized here. */ + if (gamma_depth != calc_depth) + { + rlo = DD(rlo, gamma_depth, 0/*truncate*/); + rhi = DU(rhi, gamma_depth, 0/*truncate*/); + glo = DD(glo, gamma_depth, 0/*truncate*/); + ghi = DU(ghi, gamma_depth, 0/*truncate*/); + blo = DD(blo, gamma_depth, 0/*truncate*/); + bhi = DU(bhi, gamma_depth, 0/*truncate*/); + } + + /* 'abse' is the error in the gamma table calculation itself. */ r = pow(r, power); - rlo = digitize(pow(rlo, power)-abse, calc_depth, 1); - rhi = digitize(pow(rhi, power)+abse, calc_depth, 1); + rlo = DD(pow(rlo, power)-abse, calc_depth, 1); + rhi = DU(pow(rhi, power)+abse, calc_depth, 1); g = pow(g, power); - glo = digitize(pow(glo, power)-abse, calc_depth, 1); - ghi = digitize(pow(ghi, power)+abse, calc_depth, 1); + glo = DD(pow(glo, power)-abse, calc_depth, 1); + ghi = DU(pow(ghi, power)+abse, calc_depth, 1); b = pow(b, power); - blo = digitize(pow(blo, power)-abse, calc_depth, 1); - bhi = digitize(pow(bhi, power)+abse, calc_depth, 1); + blo = DD(pow(blo, power)-abse, calc_depth, 1); + bhi = DU(pow(bhi, power)+abse, calc_depth, 1); } /* Now calculate the actual gray values. Although the error in the * coefficients depends on whether they were specified on the command * line (in which case truncation to 15 bits happened) or not (rounding * was used) the maxium error in an individual coefficient is always - * 1/32768, because even in the rounding case the requirement that + * 2/32768, because even in the rounding case the requirement that * coefficients add up to 32768 can cause a larger rounding error. * * The only time when rounding doesn't occur in 1.5.5 and later is when @@ -7185,19 +7308,19 @@ image_transform_png_set_rgb_to_gray_mod(PNG_CONST image_transform *this, { PNG_CONST int do_round = data.gamma != 1 || calc_depth == 16; - PNG_CONST double ce = 1. / 32768; + PNG_CONST double ce = 2. / 32768; - graylo = digitize(rlo * (data.red_coefficient-ce) + + graylo = DD(rlo * (data.red_coefficient-ce) + glo * (data.green_coefficient-ce) + - blo * (data.blue_coefficient-ce), gamma_depth, do_round); - if (graylo <= 0) - graylo = 0; + blo * (data.blue_coefficient-ce), calc_depth, do_round); + if (graylo > gray) /* always accept the right answer */ + graylo = gray; - grayhi = digitize(rhi * (data.red_coefficient+ce) + + grayhi = DU(rhi * (data.red_coefficient+ce) + ghi * (data.green_coefficient+ce) + - bhi * (data.blue_coefficient+ce), gamma_depth, do_round); - if (grayhi >= 1) - grayhi = 1; + bhi * (data.blue_coefficient+ce), calc_depth, do_round); + if (grayhi < gray) + grayhi = gray; } /* And invert the gamma. */ @@ -7205,11 +7328,25 @@ image_transform_png_set_rgb_to_gray_mod(PNG_CONST image_transform *this, { PNG_CONST double power = data.gamma; + /* And this happens yet again, shifting the values once more. */ + if (gamma_depth != sample_depth) + { + rlo = DD(rlo, gamma_depth, 0/*truncate*/); + rhi = DU(rhi, gamma_depth, 0/*truncate*/); + glo = DD(glo, gamma_depth, 0/*truncate*/); + ghi = DU(ghi, gamma_depth, 0/*truncate*/); + blo = DD(blo, gamma_depth, 0/*truncate*/); + bhi = DU(bhi, gamma_depth, 0/*truncate*/); + } + gray = pow(gray, power); - graylo = digitize(pow(graylo, power), sample_depth, 1); - grayhi = digitize(pow(grayhi, power), sample_depth, 1); + graylo = DD(pow(graylo, power), sample_depth, 1); + grayhi = DU(pow(grayhi, power), sample_depth, 1); } +# undef DD +# undef DU + /* Now the error can be calculated. * * If r==g==b because there is no overall gamma correction libpng @@ -7260,16 +7397,28 @@ image_transform_png_set_rgb_to_gray_mod(PNG_CONST image_transform *this, { /* There is no need to do the conversions to and from linear space, * so the calculation should be a lot more accurate. There is a - * built in 1/32768 error in the coefficients because they only have - * 15 bits and are adjusted to make sure they add up to 32768, so - * the result may have an additional error up to 1/32768. (Note - * that adding the 1/32768 here avoids needing to increase the - * global error limits to take this into account.) + * built in error in the coefficients because they only have 15 bits + * and are adjusted to make sure they add up to 32768. This + * involves a integer calculation with truncation of the form: + * + * ((int)(coefficient * 100000) * 32768)/100000 + * + * This is done to the red and green coefficients (the ones + * provided to the API) then blue is calculated from them so the + * result adds up to 32768. In the worst case this can result in + * a -1 error in red and green and a +2 error in blue. Consequently + * the worst case in the calculation below is 2/32768 error. + * + * TODO: consider fixing this in libpng by rounding the calculation + * limiting the error to 1/32768. + * + * Handling this by adding 2/32768 here avoids needing to increase + * the global error limits to take this into account.) */ gray = r * data.red_coefficient + g * data.green_coefficient + b * data.blue_coefficient; err = re * data.red_coefficient + ge * data.green_coefficient + - be * data.blue_coefficient + 1./32768 + gray * 5 * DBL_EPSILON; + be * data.blue_coefficient + 2./32768 + gray * 5 * DBL_EPSILON; } else @@ -7304,7 +7453,7 @@ image_transform_png_set_rgb_to_gray_mod(PNG_CONST image_transform *this, * previously added input quantization error at this point. */ gray = r * data.red_coefficient + g * data.green_coefficient + - b * data.blue_coefficient - 1./32768 - out_qe; + b * data.blue_coefficient - 2./32768 - out_qe; if (gray <= 0) gray = 0; else @@ -7314,7 +7463,7 @@ image_transform_png_set_rgb_to_gray_mod(PNG_CONST image_transform *this, } grayhi = rhi * data.red_coefficient + ghi * data.green_coefficient + - bhi * data.blue_coefficient + 1./32768 + out_qe; + bhi * data.blue_coefficient + 2./32768 + out_qe; grayhi *= (1 + 6 * DBL_EPSILON); if (grayhi >= 1) grayhi = 1; @@ -7429,6 +7578,9 @@ image_transform_png_set_background_set(PNG_CONST image_transform *this, else { + if (that->this.has_tRNS) + that->this.is_transparent = 1; + bit_depth = that->this.bit_depth; expand = 1; } @@ -7506,14 +7658,14 @@ image_transform_png_set_background_mod(PNG_CONST image_transform *this, /* Remove the alpha type and set the alpha (not in that order.) */ that->alphaf = 1; that->alphae = 0; - - if (that->colour_type == PNG_COLOR_TYPE_RGB_ALPHA) - that->colour_type = PNG_COLOR_TYPE_RGB; - else if (that->colour_type == PNG_COLOR_TYPE_GRAY_ALPHA) - that->colour_type = PNG_COLOR_TYPE_GRAY; - /* PNG_COLOR_TYPE_PALETTE is not changed */ } + if (that->colour_type == PNG_COLOR_TYPE_RGB_ALPHA) + that->colour_type = PNG_COLOR_TYPE_RGB; + else if (that->colour_type == PNG_COLOR_TYPE_GRAY_ALPHA) + that->colour_type = PNG_COLOR_TYPE_GRAY; + /* PNG_COLOR_TYPE_PALETTE is not changed */ + this->next->mod(this->next, that, pp, display); } @@ -8301,7 +8453,8 @@ perform_transform_test(png_modifier *pm) png_byte bit_depth = 0; unsigned int palette_number = 0; - while (next_format(&colour_type, &bit_depth, &palette_number, 0)) + while (next_format(&colour_type, &bit_depth, &palette_number, pm->test_lbg, + pm->test_tRNS)) { png_uint_32 counter = 0; size_t base_pos; @@ -8604,7 +8757,9 @@ init_validate_info(validate_info *vi, gamma_display *dp, png_const_structp pp, vi->outlog = outlog(dp->pm, in_depth, out_depth); if ((dp->this.colour_type & PNG_COLOR_MASK_ALPHA) != 0 || - (dp->this.colour_type == 3 && dp->this.is_transparent)) + (dp->this.colour_type == 3 && dp->this.is_transparent) || + ((dp->this.colour_type == 0 || dp->this.colour_type == 2) && + dp->this.has_tRNS)) { vi->do_background = dp->do_background; @@ -8634,7 +8789,7 @@ init_validate_info(validate_info *vi, gamma_display *dp, png_const_structp pp, vi->background_blue = b; } } - else + else /* Do not expect any background processing */ vi->do_background = 0; if (vi->do_background == 0) @@ -9350,6 +9505,7 @@ gamma_image_validate(gamma_display *dp, png_const_structp pp, png_uint_32 y; PNG_CONST store_palette_entry *in_palette = dp->this.palette; PNG_CONST int in_is_transparent = dp->this.is_transparent; + int process_tRNS; int out_npalette = -1; int out_is_transparent = 0; /* Just refers to the palette case */ store_palette out_palette; @@ -9365,6 +9521,7 @@ gamma_image_validate(gamma_display *dp, png_const_structp pp, processing = (vi.gamma_correction > 0 && !dp->threshold_test) || in_bd != out_bd || in_ct != out_ct || vi.do_background; + process_tRNS = dp->this.has_tRNS && vi.do_background; /* TODO: FIX THIS: MAJOR BUG! If the transformations all happen inside * the palette there is no way of finding out, because libpng fails to @@ -9403,8 +9560,8 @@ gamma_image_validate(gamma_display *dp, png_const_structp pp, /* Handle input alpha - png_set_background will cause the output * alpha to disappear so there is nothing to check. */ - if ((in_ct & PNG_COLOR_MASK_ALPHA) != 0 || (in_ct == 3 && - in_is_transparent)) + if ((in_ct & PNG_COLOR_MASK_ALPHA) != 0 || + (in_ct == 3 && in_is_transparent)) { PNG_CONST unsigned int input_alpha = in_ct == 3 ? dp->this.palette[in_index].alpha : @@ -9436,6 +9593,35 @@ gamma_image_validate(gamma_display *dp, png_const_structp pp, } } + else if (process_tRNS) + { + /* alpha needs to be set appropriately for this pixel, it is + * currently 1 and needs to be 0 for an input pixel which matches + * the values in tRNS. + */ + switch (in_ct) + { + case 0: /* gray */ + if (sample(std, in_ct, in_bd, x, 0, 0, 0) == + dp->this.transparent.red) + alpha = 0; + break; + + case 2: /* RGB */ + if (sample(std, in_ct, in_bd, x, 0, 0, 0) == + dp->this.transparent.red && + sample(std, in_ct, in_bd, x, 1, 0, 0) == + dp->this.transparent.green && + sample(std, in_ct, in_bd, x, 2, 0, 0) == + dp->this.transparent.blue) + alpha = 0; + break; + + default: + break; + } + } + /* Handle grayscale or RGB components. */ if ((in_ct & PNG_COLOR_MASK_COLOR) == 0) /* grayscale */ (void)gamma_component_validate("gray", &vi, @@ -9545,7 +9731,7 @@ gamma_test(png_modifier *pmIn, PNG_CONST png_byte colour_typeIn, modification_reset(d.pm->modifications); - /* Get a png_struct for writing the image. */ + /* Get a png_struct for reading the image. */ pp = set_modifier_for_read(d.pm, &pi, d.this.id, name); standard_palette_init(&d.this); @@ -9684,9 +9870,13 @@ perform_gamma_threshold_tests(png_modifier *pm) /* Don't test more than one instance of each palette - it's pointless, in * fact this test is somewhat excessive since libpng doesn't make this * decision based on colour type or bit depth! + * + * CHANGED: now test two palettes and, as a side effect, images with and + * without tRNS. */ - while (next_format(&colour_type, &bit_depth, &palette_number, 1/*gamma*/)) - if (palette_number == 0) + while (next_format(&colour_type, &bit_depth, &palette_number, + pm->test_lbg_gamma_threshold, pm->test_tRNS)) + if (palette_number < 2) { double test_gamma = 1.0; while (test_gamma >= .4) @@ -9746,7 +9936,8 @@ static void perform_gamma_transform_tests(png_modifier *pm) png_byte bit_depth = 0; unsigned int palette_number = 0; - while (next_format(&colour_type, &bit_depth, &palette_number, 1/*gamma*/)) + while (next_format(&colour_type, &bit_depth, &palette_number, + pm->test_lbg_gamma_transform, pm->test_tRNS)) { unsigned int i, j; @@ -9776,7 +9967,8 @@ static void perform_gamma_sbit_tests(png_modifier *pm) png_byte colour_type = 0, bit_depth = 0; unsigned int npalette = 0; - while (next_format(&colour_type, &bit_depth, &npalette, 1/*gamma*/)) + while (next_format(&colour_type, &bit_depth, &npalette, + pm->test_lbg_gamma_sbit, pm->test_tRNS)) if ((colour_type & PNG_COLOR_MASK_ALPHA) == 0 && ((colour_type == 3 && sbit < 8) || (colour_type != 3 && sbit < bit_depth))) @@ -9967,8 +10159,17 @@ static void gamma_composition_test(png_modifier *pm, } background.index = 193; /* rgb(193,193,193) to detect errors */ + if (!(colour_type & PNG_COLOR_MASK_COLOR)) { + /* Because, currently, png_set_background is always called with + * 'need_expand' false in this case and because the gamma test itself + * doesn't cause an expand to 8-bit for lower bit depths the colour must + * be reduced to the correct range. + */ + if (bit_depth < 8) + background.gray &= (png_uint_16)((1U << bit_depth)-1); + /* Grayscale input, we do not convert to RGB (TBD), so we must set the * background to gray - else libpng seems to fail. */ @@ -10017,9 +10218,18 @@ perform_gamma_composition_tests(png_modifier *pm, int do_background, /* Skip the non-alpha cases - there is no setting of a transparency colour at * present. - */ - while (next_format(&colour_type, &bit_depth, &palette_number, 1/*gamma*/)) - if ((colour_type & PNG_COLOR_MASK_ALPHA) != 0) + * + * TODO: incorrect; the palette case sets tRNS and, now RGB and gray do, + * however the palette case fails miserably so is commented out below. + */ + while (next_format(&colour_type, &bit_depth, &palette_number, + pm->test_lbg_gamma_composition, pm->test_tRNS)) + if ((colour_type & PNG_COLOR_MASK_ALPHA) != 0 +#if 0 /* TODO: FIXME */ + /*TODO: FIXME: this should work */ + || colour_type == 3 +#endif + || (colour_type != 3 && palette_number != 0)) { unsigned int i, j; @@ -10751,6 +10961,18 @@ int main(int argc, char **argv) pm.ngammas = ARRAY_SIZE(gammas); pm.ngamma_tests = 0; /* default to off */ + /* Low bit depth gray images don't do well in the gamma tests, until + * this is fixed turn them off for some gamma cases: + */ +# ifdef PNG_WRITE_tRNS_SUPPORTED + pm.test_tRNS = 1; +# endif + pm.test_lbg = 0; + pm.test_lbg_gamma_threshold = 1; + pm.test_lbg_gamma_transform = 0/*PNG_LIBPNG_VER >= 10700*/; + pm.test_lbg_gamma_sbit = 1; + pm.test_lbg_gamma_composition = 0; + /* And the test encodings */ pm.encodings = test_encodings; pm.nencodings = ARRAY_SIZE(test_encodings); @@ -10863,7 +11085,7 @@ int main(int argc, char **argv) pm.test_gamma_transform = 1; pm.test_gamma_sbit = 1; pm.test_gamma_scale16 = 1; - pm.test_gamma_background = 1; + pm.test_gamma_background = 1; /* composition */ pm.test_gamma_alpha_mode = 1; } @@ -10912,6 +11134,24 @@ int main(int argc, char **argv) else if (strcmp(*argv, "--noexpand16") == 0) pm.test_gamma_expand16 = 0; + else if (strcmp(*argv, "--low-depth-gray") == 0) + pm.test_lbg = pm.test_lbg_gamma_threshold = + pm.test_lbg_gamma_transform = pm.test_lbg_gamma_sbit = + pm.test_lbg_gamma_composition = 1; + + else if (strcmp(*argv, "--nolow-depth-gray") == 0) + pm.test_lbg = pm.test_lbg_gamma_threshold = + pm.test_lbg_gamma_transform = pm.test_lbg_gamma_sbit = + pm.test_lbg_gamma_composition = 0; + +# ifdef PNG_WRITE_tRNS_SUPPORTED + else if (strcmp(*argv, "--tRNS") == 0) + pm.test_tRNS = 1; +# endif + + else if (strcmp(*argv, "--notRNS") == 0) + pm.test_tRNS = 0; + else if (strcmp(*argv, "--more-gammas") == 0) pm.ngamma_tests = 3U; @@ -11102,7 +11342,7 @@ int main(int argc, char **argv) Try { /* Make useful base images */ - make_transform_images(&pm.this); + make_transform_images(&pm); /* Perform the standard and gamma tests. */ if (pm.test_standard) diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/libtests/readpng.c b/Build/source/libs/libpng/libpng-1.6.18/contrib/libtests/readpng.c index 7ba46d0b96b..7ba46d0b96b 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/libtests/readpng.c +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/libtests/readpng.c diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/libtests/tarith.c b/Build/source/libs/libpng/libpng-1.6.18/contrib/libtests/tarith.c index cdb00dbf7e7..cdb00dbf7e7 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/libtests/tarith.c +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/libtests/tarith.c diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/libtests/timepng.c b/Build/source/libs/libpng/libpng-1.6.18/contrib/libtests/timepng.c index 7c937971cfd..7c937971cfd 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/libtests/timepng.c +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/libtests/timepng.c diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngminim/README b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngminim/README index e17fe35b6a8..e17fe35b6a8 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngminim/README +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngminim/README diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngminim/decoder/README b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngminim/decoder/README index fa979fcb727..fa979fcb727 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngminim/decoder/README +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngminim/decoder/README diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngminim/decoder/makefile b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngminim/decoder/makefile index 4acf3c1779b..4acf3c1779b 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngminim/decoder/makefile +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngminim/decoder/makefile diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngminim/decoder/pngusr.dfa b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngminim/decoder/pngusr.dfa index 4f402721ab0..4f402721ab0 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngminim/decoder/pngusr.dfa +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngminim/decoder/pngusr.dfa diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngminim/decoder/pngusr.h b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngminim/decoder/pngusr.h index cbd7890c7d6..cbd7890c7d6 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngminim/decoder/pngusr.h +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngminim/decoder/pngusr.h diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngminim/encoder/README b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngminim/encoder/README index d8d9a6466e2..d8d9a6466e2 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngminim/encoder/README +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngminim/encoder/README diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngminim/encoder/makefile b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngminim/encoder/makefile index 41b205c284a..41b205c284a 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngminim/encoder/makefile +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngminim/encoder/makefile diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngminim/encoder/pngusr.dfa b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngminim/encoder/pngusr.dfa index 1fc24f3f2a8..1fc24f3f2a8 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngminim/encoder/pngusr.dfa +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngminim/encoder/pngusr.dfa diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngminim/encoder/pngusr.h b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngminim/encoder/pngusr.h index 997d44fe904..997d44fe904 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngminim/encoder/pngusr.h +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngminim/encoder/pngusr.h diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngminim/preader/README b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngminim/preader/README index faa83560a72..faa83560a72 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngminim/preader/README +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngminim/preader/README diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngminim/preader/makefile b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngminim/preader/makefile index b625199114c..b625199114c 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngminim/preader/makefile +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngminim/preader/makefile diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngminim/preader/pngusr.dfa b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngminim/preader/pngusr.dfa index ac297f41bd7..ac297f41bd7 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngminim/preader/pngusr.dfa +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngminim/preader/pngusr.dfa diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngminim/preader/pngusr.h b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngminim/preader/pngusr.h index 80db3bb1719..80db3bb1719 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngminim/preader/pngusr.h +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngminim/preader/pngusr.h diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngminus/README b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngminus/README index bbe7407ecce..bbe7407ecce 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngminus/README +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngminus/README diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngminus/makefile.std b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngminus/makefile.std index 14e25cd64ff..14e25cd64ff 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngminus/makefile.std +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngminus/makefile.std diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngminus/makefile.tc3 b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngminus/makefile.tc3 index 6a2f4b9853f..6a2f4b9853f 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngminus/makefile.tc3 +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngminus/makefile.tc3 diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngminus/makevms.com b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngminus/makevms.com index 00561bcd0d7..00561bcd0d7 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngminus/makevms.com +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngminus/makevms.com diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngminus/png2pnm.bat b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngminus/png2pnm.bat index 449cf36750b..449cf36750b 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngminus/png2pnm.bat +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngminus/png2pnm.bat diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngminus/png2pnm.c b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngminus/png2pnm.c index dff4d0b3d04..dff4d0b3d04 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngminus/png2pnm.c +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngminus/png2pnm.c diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngminus/png2pnm.sh b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngminus/png2pnm.sh index b1c05370dff..b1c05370dff 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngminus/png2pnm.sh +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngminus/png2pnm.sh diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngminus/pngminus.bat b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngminus/pngminus.bat index 911bb8dff9e..911bb8dff9e 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngminus/pngminus.bat +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngminus/pngminus.bat diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngminus/pngminus.sh b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngminus/pngminus.sh index 2a0a9d8fbba..2a0a9d8fbba 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngminus/pngminus.sh +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngminus/pngminus.sh diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngminus/pnm2png.bat b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngminus/pnm2png.bat index f756cb84de4..f756cb84de4 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngminus/pnm2png.bat +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngminus/pnm2png.bat diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngminus/pnm2png.c b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngminus/pnm2png.c index 7bf720f6813..7bf720f6813 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngminus/pnm2png.c +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngminus/pnm2png.c diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngminus/pnm2png.sh b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngminus/pnm2png.sh index d79df2fae08..d79df2fae08 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngminus/pnm2png.sh +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngminus/pnm2png.sh diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/README b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/README index ec4af9473f1..ec4af9473f1 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/README +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/README diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/basn0g01.png b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/basn0g01.png Binary files differindex e31e1c7a635..e31e1c7a635 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/basn0g01.png +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/basn0g01.png diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/basn0g02.png b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/basn0g02.png Binary files differindex 68809dd8fc0..68809dd8fc0 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/basn0g02.png +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/basn0g02.png diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/basn0g04.png b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/basn0g04.png Binary files differindex 6fa089cb8a4..6fa089cb8a4 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/basn0g04.png +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/basn0g04.png diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/basn0g08.png b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/basn0g08.png Binary files differindex bf522eef001..bf522eef001 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/basn0g08.png +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/basn0g08.png diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/basn0g16.png b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/basn0g16.png Binary files differindex 318ebcadf4f..318ebcadf4f 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/basn0g16.png +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/basn0g16.png diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/basn2c08.png b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/basn2c08.png Binary files differindex 21d2f91a868..21d2f91a868 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/basn2c08.png +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/basn2c08.png diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/basn2c16.png b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/basn2c16.png Binary files differindex 1bd4a4d0e2c..1bd4a4d0e2c 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/basn2c16.png +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/basn2c16.png diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/basn3p01.png b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/basn3p01.png Binary files differindex a21db597746..a21db597746 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/basn3p01.png +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/basn3p01.png diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/basn3p02.png b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/basn3p02.png Binary files differindex 1d0ab6197cc..1d0ab6197cc 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/basn3p02.png +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/basn3p02.png diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/basn3p04.png b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/basn3p04.png Binary files differindex 6dc6eac83f3..6dc6eac83f3 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/basn3p04.png +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/basn3p04.png diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/basn3p08.png b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/basn3p08.png Binary files differindex 0e07f483c0e..0e07f483c0e 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/basn3p08.png +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/basn3p08.png diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/basn4a08.png b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/basn4a08.png Binary files differindex 3bb0dd06b51..3bb0dd06b51 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/basn4a08.png +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/basn4a08.png diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/basn4a16.png b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/basn4a16.png Binary files differindex 6dbee9fbdb9..6dbee9fbdb9 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/basn4a16.png +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/basn4a16.png diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/basn6a08.png b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/basn6a08.png Binary files differindex 61062308548..61062308548 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/basn6a08.png +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/basn6a08.png diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/basn6a16.png b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/basn6a16.png Binary files differindex a9bf3cb4612..a9bf3cb4612 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/basn6a16.png +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/basn6a16.png diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/ftbbn0g01.png b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/ftbbn0g01.png Binary files differindex ba746ffb2f5..ba746ffb2f5 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/ftbbn0g01.png +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/ftbbn0g01.png diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/ftbbn0g02.png b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/ftbbn0g02.png Binary files differindex 3d83bd6900b..3d83bd6900b 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/ftbbn0g02.png +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/ftbbn0g02.png diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/ftbbn0g04.png b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/ftbbn0g04.png Binary files differindex 39a7050d27a..39a7050d27a 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/ftbbn0g04.png +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/ftbbn0g04.png diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/ftbbn2c16.png b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/ftbbn2c16.png Binary files differindex dd3168e5c86..dd3168e5c86 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/ftbbn2c16.png +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/ftbbn2c16.png diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/ftbbn3p08.png b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/ftbbn3p08.png Binary files differindex 0ede3574db0..0ede3574db0 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/ftbbn3p08.png +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/ftbbn3p08.png diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/ftbgn2c16.png b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/ftbgn2c16.png Binary files differindex 85cec395c01..85cec395c01 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/ftbgn2c16.png +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/ftbgn2c16.png diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/ftbgn3p08.png b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/ftbgn3p08.png Binary files differindex 8cf2e6fb6aa..8cf2e6fb6aa 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/ftbgn3p08.png +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/ftbgn3p08.png diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/ftbrn2c08.png b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/ftbrn2c08.png Binary files differindex 5cca0d62104..5cca0d62104 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/ftbrn2c08.png +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/ftbrn2c08.png diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/ftbwn0g16.png b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/ftbwn0g16.png Binary files differindex 99bdeed2b3b..99bdeed2b3b 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/ftbwn0g16.png +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/ftbwn0g16.png diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/ftbwn3p08.png b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/ftbwn3p08.png Binary files differindex eacab7a144c..eacab7a144c 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/ftbwn3p08.png +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/ftbwn3p08.png diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/ftbyn3p08.png b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/ftbyn3p08.png Binary files differindex 656db0989ad..656db0989ad 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/ftbyn3p08.png +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/ftbyn3p08.png diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/ftp0n0g08.png b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/ftp0n0g08.png Binary files differindex 333465fcdc9..333465fcdc9 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/ftp0n0g08.png +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/ftp0n0g08.png diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/ftp0n2c08.png b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/ftp0n2c08.png Binary files differindex fc6e42cb420..fc6e42cb420 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/ftp0n2c08.png +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/ftp0n2c08.png diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/ftp0n3p08.png b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/ftp0n3p08.png Binary files differindex 69a69e58722..69a69e58722 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/ftp0n3p08.png +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/ftp0n3p08.png diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/ftp1n3p08.png b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/ftp1n3p08.png Binary files differindex a6c9f35a862..a6c9f35a862 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/pngsuite/ftp1n3p08.png +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/pngsuite/ftp1n3p08.png diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/tools/README.txt b/Build/source/libs/libpng/libpng-1.6.18/contrib/tools/README.txt index 5ddae02ce9b..5ddae02ce9b 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/tools/README.txt +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/tools/README.txt diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/tools/checksum-icc.c b/Build/source/libs/libpng/libpng-1.6.18/contrib/tools/checksum-icc.c index 581e7088a62..581e7088a62 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/tools/checksum-icc.c +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/tools/checksum-icc.c diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/tools/chkfmt b/Build/source/libs/libpng/libpng-1.6.18/contrib/tools/chkfmt index 9da6475fd4e..9da6475fd4e 100755 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/tools/chkfmt +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/tools/chkfmt diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/tools/cvtcolor.c b/Build/source/libs/libpng/libpng-1.6.18/contrib/tools/cvtcolor.c index e6793c7d596..e6793c7d596 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/tools/cvtcolor.c +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/tools/cvtcolor.c diff --git a/Build/source/libs/libpng/libpng-1.6.18/contrib/tools/genpng.c b/Build/source/libs/libpng/libpng-1.6.18/contrib/tools/genpng.c new file mode 100644 index 00000000000..44102b4d69b --- /dev/null +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/tools/genpng.c @@ -0,0 +1,867 @@ +/*- genpng + * + * COPYRIGHT: Written by John Cunningham Bowler, 2015. + * To the extent possible under law, the author has waived all copyright and + * related or neighboring rights to this work. This work is published from: + * United States. + * + * Generate a PNG with an alpha channel, correctly. + * + * This is a test case generator; the resultant PNG files are only of interest + * to those of us who care about whether the edges of circles are green, red, + * or yellow. + * + * The program generates an RGB+Alpha PNG of a given size containing the given + * shapes on a transparent background: + * + * genpng width height { shape } + * shape ::= color width shape x1 y1 x2 y2 + * + * 'color' is: + * + * black white red green yellow blue brown purple pink orange gray cyan + * + * The point is to have colors that are linguistically meaningful plus that old + * bugbear of the department store dress murders, Cyan, the only color we argue + * about. + * + * 'shape' is: + * + * circle: an ellipse + * square: a rectangle + * line: a straight line + * + * Each shape is followed by four numbers, these are two points in the output + * coordinate space (as real numbers) which describe the circle, square, or + * line. The shape is filled if it is preceded by 'filled' (not valid for + * 'line') or is drawn with a line, in which case the width of the line must + * precede the shape. + * + * The whole set of information can be repeated as many times as desired: + * + * shape ::= color width shape x1 y1 x2 y2 + * + * color ::= black|white|red|green|yellow|blue + * color ::= brown|purple|pink|orange|gray|cyan + * width ::= filled + * width ::= <number> + * shape ::= circle|square|line + * x1 ::= <number> + * x2 ::= <number> + * y1 ::= <number> + * y2 ::= <number> + * + * The output PNG is generated by down-sampling a 4x supersampled image using + * a bi-cubic filter. The bi-cubic has a 2 (output) pixel width, so an 8x8 + * array of super-sampled points contribute to each output pixel. The value of + * a super-sampled point is found using an unfiltered, aliased, infinite + * precision image: Each shape from the last to the first is checked to see if + * the point is in the drawn area and, if it is, the color of the point is the + * color of the shape and the alpha is 1, if not the previous shape is checked. + * + * This is an aliased algorithm because no filtering is done; a point is either + * inside or outside each shape and 'close' points do not contribute to the + * sample. The down-sampling is relied on to correct the error of not using + * a filter. + * + * The line end-caps are 'flat'; they go through the points. The square line + * joins are mitres; the outside of the lines are continued to the point of + * intersection. + */ +#include <stddef.h> +#include <stdlib.h> +#include <string.h> +#include <stdio.h> +#include <math.h> + +/* Normally use <png.h> here to get the installed libpng, but this is done to + * ensure the code picks up the local libpng implementation: + */ +#include "../../png.h" + +#if defined(PNG_SIMPLIFIED_WRITE_SUPPORTED) && defined(PNG_STDIO_SUPPORTED) + +static const struct color +{ + const char *name; + double red; + double green; + double blue; +} colors[] = +/* color ::= black|white|red|green|yellow|blue + * color ::= brown|purple|pink|orange|gray|cyan + */ +{ + { "black", 0, 0, 0 }, + { "white", 1, 1, 1 }, + { "red", 1, 0, 0 }, + { "green", 0, 1, 0 }, + { "yellow", 1, 1, 0 }, + { "blue", 0, 0, 1 }, + { "brown", .5, .125, 0 }, + { "purple", 1, 0, 1 }, + { "pink", 1, .5, .5 }, + { "orange", 1, .5, 0 }, + { "gray", 0, .5, .5 }, + { "cyan", 0, 1, 1 } +}; +#define color_count ((sizeof colors)/(sizeof colors[0])) + +static const struct color * +color_of(const char *arg) +{ + int icolor = color_count; + + while (--icolor >= 0) + { + if (strcmp(colors[icolor].name, arg) == 0) + return colors+icolor; + } + + fprintf(stderr, "genpng: invalid color %s\n", arg); + exit(1); +} + +static double +width_of(const char *arg) +{ + if (strcmp(arg, "filled") == 0) + return 0; + + else + { + char *ep = NULL; + double w = strtod(arg, &ep); + + if (ep != NULL && *ep == 0 && w > 0) + return w; + } + + fprintf(stderr, "genpng: invalid line width %s\n", arg); + exit(1); +} + +static double +coordinate_of(const char *arg) +{ + char *ep = NULL; + double w = strtod(arg, &ep); + + if (ep != NULL && *ep == 0) + return w; + + fprintf(stderr, "genpng: invalid coordinate value %s\n", arg); + exit(1); +} + +struct arg; /* forward declaration */ + +typedef int (*shape_fn_ptr)(const struct arg *arg, double x, double y); + /* A function to determine if (x,y) is inside the shape. + * + * There are two implementations: + * + * inside_fn: returns true if the point is inside + * check_fn: returns; + * -1: the point is outside the shape by more than the filter width (2) + * 0: the point may be inside the shape + * +1: the point is inside the shape by more than the filter width + */ +#define OUTSIDE (-1) +#define INSIDE (1) + +struct arg +{ + const struct color *color; + shape_fn_ptr inside_fn; + shape_fn_ptr check_fn; + double width; /* line width, 0 for 'filled' */ + double x1, y1, x2, y2; +}; + +/* IMPLEMENTATION NOTE: + * + * We want the contribution of each shape to the sample corresponding to each + * pixel. This could be obtained by super sampling the image to infinite + * dimensions, finding each point within the shape and assigning that a value + * '1' while leaving every point outside the shape with value '0' then + * downsampling to the image size with sinc; computationally very expensive. + * + * Approximations are as follows: + * + * 1) If the pixel coordinate is within the shape assume the sample has the + * shape color and is opaque, else assume there is no contribution from + * the shape. + * + * This is the equivalent of aliased rendering or resampling an image with + * a block filter. The maximum error in the calculated alpha (which will + * always be 0 or 1) is 0.5. + * + * 2) If the shape is within a square of size 1x1 centered on the pixel assume + * that the shape obscures an amount of the pixel equal to its area within + * that square. + * + * This is the equivalent of 'pixel coverage' alpha calculation or resampling + * an image with a bi-linear filter. The maximum error is over 0.2, but the + * results are often acceptable. + * + * This can be approximated by applying (1) to a super-sampled image then + * downsampling with a bi-linear filter. The error in the super-sampled + * image is 0.5 per sample, but the resampling reduces this. + * + * 3) Use a better filter with a super-sampled image; in the limit this is the + * sinc() approach. + * + * 4) Do the geometric calculation; a bivariate definite integral across the + * shape, unfortunately this means evaluating Si(x), the integral of sinc(x), + * which is still a lot of math. + * + * This code uses approach (3) with a bi-cubic filter and 8x super-sampling + * and method (1) for the super-samples. This means that the sample is either + * 0 or 1, depending on whether the sub-pixel is within or outside the shape. + * The bi-cubic weights are also fixed and the 16 required weights are + * pre-computed here (note that the 'scale' setting will need to be changed if + * 'super' is increased). + * + * The code also calculates a sum to the edge of the filter. This is not + * currently used by could be used to optimize the calculation. + */ +#if 0 /* bc code */ +scale=10 +super=8 +define bicubic(x) { + if (x <= 1) return (1.5*x - 2.5)*x*x + 1; + if (x < 2) return (((2.5 - 0.5*x)*x - 4)*x + 2); + return 0; +} +define sum(x) { + auto s; + s = 0; + while (x < 2*super) { + s = s + bicubic(x/super); + x = x + 1; + } + return s; +} +define results(x) { + auto b, s; + b = bicubic(x/super); + s = sum(x); + + print " /*", x, "*/ { ", b, ", ", s, " }"; + return 1; +} +x=0 +while (x<2*super) { + x = x + results(x) + if (x < 2*super) print "," + print "\n" +} +quit +#endif + +#define BICUBIC1(x) /* |x| <= 1 */ ((1.5*(x)* - 2.5)*(x)*(x) + 1) +#define BICUBIC2(x) /* 1 < |x| < 2 */ (((2.5 - 0.5*(x))*(x) - 4)*(x) + 2) +#define FILTER_WEIGHT 9 /* Twice the first sum below */ +#define FILTER_WIDTH 2 /* Actually half the width; -2..+2 */ +#define FILTER_STEPS 8 /* steps per filter unit */ +static const double +bicubic[16][2] = +{ + /* These numbers are exact; the weight for the filter is 1/9, but this + * would make the numbers inexact, so it is not included here. + */ + /* bicubic sum */ + /* 0*/ { 1.0000000000, 4.5000000000 }, + /* 1*/ { .9638671875, 3.5000000000 }, + /* 2*/ { .8671875000, 2.5361328125 }, + /* 3*/ { .7275390625, 1.6689453125 }, + /* 4*/ { .5625000000, .9414062500 }, + /* 5*/ { .3896484375, .3789062500 }, + /* 6*/ { .2265625000, -.0107421875 }, + /* 7*/ { .0908203125, -.2373046875 }, + /* 8*/ { 0, -.3281250000 }, + /* 9*/ { -.0478515625, -.3281250000 }, + /*10*/ { -.0703125000, -.2802734375 }, + /*11*/ { -.0732421875, -.2099609375 }, + /*12*/ { -.0625000000, -.1367187500 }, + /*13*/ { -.0439453125, -.0742187500 }, + /*14*/ { -.0234375000, -.0302734375 }, + /*15*/ { -.0068359375, -.0068359375 } +}; + +static double +alpha_calc(const struct arg *arg, double x, double y) +{ + /* For [x-2..x+2],[y-2,y+2] calculate the weighted bicubic given a function + * which tells us whether a point is inside or outside the shape. First + * check if we need to do this at all: + */ + switch (arg->check_fn(arg, x, y)) + { + case OUTSIDE: + return 0; /* all samples outside the shape */ + + case INSIDE: + return 1; /* all samples inside the shape */ + + default: + { + int dy; + double alpha = 0; + +# define FILTER_D (FILTER_WIDTH*FILTER_STEPS-1) + for (dy=-FILTER_D; dy<=FILTER_D; ++dy) + { + double wy = bicubic[abs(dy)][0]; + + if (wy != 0) + { + double alphay = 0; + int dx; + + for (dx=-FILTER_D; dx<=FILTER_D; ++dx) + { + double wx = bicubic[abs(dx)][0]; + + if (wx != 0 && arg->inside_fn(arg, x+dx/16, y+dy/16)) + alphay += wx; + } + + alpha += wy * alphay; + } + } + + /* This needs to be weighted for each dimension: */ + return alpha / (FILTER_WEIGHT*FILTER_WEIGHT); + } + } +} + +/* These are the shape functions. */ +/* "square", + * { inside_square_filled, check_square_filled }, + * { inside_square, check_square } + */ +static int +square_check(double x, double y, double x1, double y1, double x2, double y2) + /* Is x,y inside the square (x1,y1)..(x2,y2)? */ +{ + /* Do a modified Cohen-Sutherland on one point, bit patterns that indicate + * 'outside' are: + * + * x<x1 | x<y1 | x<x2 | x<y2 + * 0 x 0 x To the right + * 1 x 1 x To the left + * x 0 x 0 Below + * x 1 x 1 Above + * + * So 'inside' is (x<x1) != (x<x2) && (y<y1) != (y<y2); + */ + return ((x<x1) ^ (x<x2)) & ((y<y1) ^ (y<y2)); +} + +static int +inside_square_filled(const struct arg *arg, double x, double y) +{ + return square_check(x, y, arg->x1, arg->y1, arg->x2, arg->y2); +} + +static int +square_check_line(const struct arg *arg, double x, double y, double w) + /* Check for a point being inside the boundaries implied by the given arg + * and assuming a width 2*w each side of the boundaries. This returns the + * 'check' INSIDE/OUTSIDE/0 result but note the semantics: + * + * +--------------+ + * | | OUTSIDE + * | INSIDE | + * | | + * +--------------+ + * + * And '0' means within the line boundaries. + */ +{ + double cx = (arg->x1+arg->x2)/2; + double wx = fabs(arg->x1-arg->x2)/2; + double cy = (arg->y1+arg->y2)/2; + double wy = fabs(arg->y1-arg->y2)/2; + + if (square_check(x, y, cx-wx-w, cy-wy-w, cx+wx+w, cy+wy+w)) + { + /* Inside, but maybe too far; check for the redundant case where + * the lines overlap: + */ + wx -= w; + wy -= w; + if (wx > 0 && wy > 0 && square_check(x, y, cx-wx, cy-wy, cx+wx, cy+wy)) + return INSIDE; /* between (inside) the boundary lines. */ + + return 0; /* inside the lines themselves. */ + } + + return OUTSIDE; /* outside the boundary lines. */ +} + +static int +check_square_filled(const struct arg *arg, double x, double y) +{ + /* The filter extends +/-FILTER_WIDTH each side of each output point, so + * the check has to expand and contract the square by that amount; '0' + * means close enough to the edge of the square that the bicubic filter has + * to be run, OUTSIDE means alpha==0, INSIDE means alpha==1. + */ + return square_check_line(arg, x, y, FILTER_WIDTH); +} + +static int +inside_square(const struct arg *arg, double x, double y) +{ + /* Return true if within the drawn lines, else false, no need to distinguish + * INSIDE vs OUTSIDE here: + */ + return square_check_line(arg, x, y, arg->width/2) == 0; +} + +static int +check_square(const struct arg *arg, double x, double y) +{ + /* So for this function a result of 'INSIDE' means inside the actual lines. + */ + double w = arg->width/2; + + if (square_check_line(arg, x, y, w+FILTER_WIDTH) == 0) + { + /* Somewhere close to the boundary lines. If far enough inside one of + * them then we can return INSIDE: + */ + w -= FILTER_WIDTH; + + if (w > 0 && square_check_line(arg, x, y, w) == 0) + return INSIDE; + + /* Point is somewhere in the filter region: */ + return 0; + } + + else /* Inside or outside the square by more than w+FILTER_WIDTH. */ + return OUTSIDE; +} + +/* "circle", + * { inside_circle_filled, check_circle_filled }, + * { inside_circle, check_circle } + * + * The functions here are analoguous to the square ones; however, they check + * the corresponding ellipse as opposed to the rectangle. + */ +static int +circle_check(double x, double y, double x1, double y1, double x2, double y2) +{ + if (square_check(x, y, x1, y1, x2, y2)) + { + /* Inside the square, so maybe inside the circle too: */ + const double cx = (x1 + x2)/2; + const double cy = (y1 + y2)/2; + const double dx = x1 - x2; + const double dy = y1 - y2; + + x = (x - cx)/dx; + y = (y - cy)/dy; + + /* It is outside if the distance from the center is more than half the + * diameter: + */ + return x*x+y*y < .25; + } + + return 0; /* outside */ +} + +static int +inside_circle_filled(const struct arg *arg, double x, double y) +{ + return circle_check(x, y, arg->x1, arg->y1, arg->x2, arg->y2); +} + +static int +circle_check_line(const struct arg *arg, double x, double y, double w) + /* Check for a point being inside the boundaries implied by the given arg + * and assuming a width 2*w each side of the boundaries. This function has + * the same semantic as square_check_line but tests the circle. + */ +{ + double cx = (arg->x1+arg->x2)/2; + double wx = fabs(arg->x1-arg->x2)/2; + double cy = (arg->y1+arg->y2)/2; + double wy = fabs(arg->y1-arg->y2)/2; + + if (circle_check(x, y, cx-wx-w, cy-wy-w, cx+wx+w, cy+wy+w)) + { + /* Inside, but maybe too far; check for the redundant case where + * the lines overlap: + */ + wx -= w; + wy -= w; + if (wx > 0 && wy > 0 && circle_check(x, y, cx-wx, cy-wy, cx+wx, cy+wy)) + return INSIDE; /* between (inside) the boundary lines. */ + + return 0; /* inside the lines themselves. */ + } + + return OUTSIDE; /* outside the boundary lines. */ +} + +static int +check_circle_filled(const struct arg *arg, double x, double y) +{ + return circle_check_line(arg, x, y, FILTER_WIDTH); +} + +static int +inside_circle(const struct arg *arg, double x, double y) +{ + return circle_check_line(arg, x, y, arg->width/2) == 0; +} + +static int +check_circle(const struct arg *arg, double x, double y) +{ + /* Exactly as the 'square' code. */ + double w = arg->width/2; + + if (circle_check_line(arg, x, y, w+FILTER_WIDTH) == 0) + { + w -= FILTER_WIDTH; + + if (w > 0 && circle_check_line(arg, x, y, w) == 0) + return INSIDE; + + /* Point is somewhere in the filter region: */ + return 0; + } + + else /* Inside or outside the square by more than w+FILTER_WIDTH. */ + return OUTSIDE; +} + +/* "line", + * { NULL, NULL }, There is no 'filled' line. + * { inside_line, check_line } + */ +static int +line_check(double x, double y, double x1, double y1, double x2, double y2, + double w, double expand) +{ + /* Shift all the points to (arg->x1, arg->y1) */ + double lx = x2 - x1; + double ly = y2 - y1; + double len2 = lx*lx + ly*ly; + double cross, dot; + + x -= x1; + y -= y1; + + /* The dot product is the distance down the line, the cross product is + * the distance away from the line: + * + * distance = |cross| / sqrt(len2) + */ + cross = x * ly - y * lx; + + /* If 'distance' is more than w the point is definitely outside the line: + * + * distance >= w + * |cross| >= w * sqrt(len2) + * cross^2 >= w^2 * len2: + */ + if (cross*cross >= (w+expand)*(w+expand)*len2) + return 0; /* outside */ + + /* Now find the distance *along* the line; this comes from the dot product + * lx.x+ly.y. The actual distance (in pixels) is: + * + * distance = dot / sqrt(len2) + */ + dot = lx * x + ly * y; + + /* The test for 'outside' is: + * + * distance < 0 || distance > sqrt(len2) + * -> dot / sqrt(len2) > sqrt(len2) + * -> dot > len2 + * + * But 'expand' is used for the filter width and needs to be handled too: + */ + return dot > -expand && dot < len2+expand; +} + +static int +inside_line(const struct arg *arg, double x, double y) +{ + return line_check(x, y, arg->x1, arg->y1, arg->x2, arg->y2, arg->width/2, 0); +} + +static int +check_line(const struct arg *arg, double x, double y) +{ + /* The end caps of the line must be checked too; it's not enough just to + * widen the line by FILTER_WIDTH; 'expand' exists for this purpose: + */ + if (line_check(x, y, arg->x1, arg->y1, arg->x2, arg->y2, arg->width/2, + FILTER_WIDTH)) + { + /* Inside the line+filter; far enough inside that the filter isn't + * required? + */ + if (arg->width > 2*FILTER_WIDTH && + line_check(x, y, arg->x1, arg->y1, arg->x2, arg->y2, arg->width/2, + -FILTER_WIDTH)) + return INSIDE; + + return 0; + } + + return OUTSIDE; +} + +static const struct +{ + const char *name; + shape_fn_ptr function[2/*fill,line*/][2]; +# define FN_INSIDE 0 +# define FN_CHECK 1 +} shape_defs[] = +{ + { "square", + { { inside_square_filled, check_square_filled }, + { inside_square, check_square } } + }, + { "circle", + { { inside_circle_filled, check_circle_filled }, + { inside_circle, check_circle } } + }, + { "line", + { { NULL, NULL }, + { inside_line, check_line } } + } +}; + +#define shape_count ((sizeof shape_defs)/(sizeof shape_defs[0])) + +static shape_fn_ptr +shape_of(const char *arg, double width, int f) +{ + unsigned int i; + + for (i=0; i<shape_count; ++i) if (strcmp(shape_defs[i].name, arg) == 0) + { + shape_fn_ptr fn = shape_defs[i].function[width != 0][f]; + + if (fn != NULL) + return fn; + + fprintf(stderr, "genpng: %s %s not supported\n", + width == 0 ? "filled" : "unfilled", arg); + exit(1); + } + + fprintf(stderr, "genpng: %s: not a valid shape name\n", arg); + exit(1); +} + +static void +parse_arg(struct arg *arg, const char **argv/*7 arguments*/) +{ + /* shape ::= color width shape x1 y1 x2 y2 */ + arg->color = color_of(argv[0]); + arg->width = width_of(argv[1]); + arg->inside_fn = shape_of(argv[2], arg->width, FN_INSIDE); + arg->check_fn = shape_of(argv[2], arg->width, FN_CHECK); + arg->x1 = coordinate_of(argv[3]); + arg->y1 = coordinate_of(argv[4]); + arg->x2 = coordinate_of(argv[5]); + arg->y2 = coordinate_of(argv[6]); +} + +static png_uint_32 +read_wh(const char *name, const char *str) + /* read a PNG width or height */ +{ + char *ep = NULL; + unsigned long ul = strtoul(str, &ep, 10); + + if (ep != NULL && *ep == 0 && ul > 0 && ul <= 0x7fffffff) + return (png_uint_32)/*SAFE*/ul; + + fprintf(stderr, "genpng: %s: invalid number %s\n", name, str); + exit(1); +} + +static void +pixel(png_uint_16p p, struct arg *args, int nargs, double x, double y) +{ + /* Fill in the pixel by checking each shape (args[nargs]) for effects on + * the corresponding sample: + */ + double r=0, g=0, b=0, a=0; + + while (--nargs >= 0 && a != 1) + { + /* NOTE: alpha_calc can return a value outside the range 0..1 with the + * bicubic filter. + */ + const double alpha = alpha_calc(args+nargs, x, y) * (1-a); + + r += alpha * args[nargs].color->red; + g += alpha * args[nargs].color->green; + b += alpha * args[nargs].color->blue; + a += alpha; + } + + /* 'a' may be negative or greater than 1; if it is, negative clamp the + * pixel to 0 if >1 clamp r/g/b: + */ + if (a > 0) + { + if (a > 1) + { + if (r > 1) r = 1; + if (g > 1) g = 1; + if (b > 1) b = 1; + a = 1; + } + + /* And fill in the pixel: */ + p[0] = (png_uint_16)/*SAFE*/round(r * 65535); + p[1] = (png_uint_16)/*SAFE*/round(g * 65535); + p[2] = (png_uint_16)/*SAFE*/round(b * 65535); + p[3] = (png_uint_16)/*SAFE*/round(a * 65535); + } + + else + p[3] = p[2] = p[1] = p[0] = 0; +} + +int +main(int argc, const char **argv) +{ + int convert_to_8bit = 0; + + /* There is one option: --8bit: */ + if (argc > 1 && strcmp(argv[1], "--8bit") == 0) + --argc, ++argv, convert_to_8bit = 1; + + if (argc >= 3) + { + png_uint_16p buffer; + int nshapes; + png_image image; +# define max_shapes 256 + struct arg arg_list[max_shapes]; + + /* The libpng Simplified API write code requires a fully initialized + * structure. + */ + memset(&image, 0, sizeof image); + image.version = PNG_IMAGE_VERSION; + image.opaque = NULL; + image.width = read_wh("width", argv[1]); + image.height = read_wh("height", argv[2]); + image.format = PNG_FORMAT_LINEAR_RGB_ALPHA; + image.flags = 0; + image.colormap_entries = 0; + + /* Check the remainder of the arguments */ + for (nshapes=0; 3+7*(nshapes+1) <= argc && nshapes < max_shapes; + ++nshapes) + parse_arg(arg_list+nshapes, argv+3+7*nshapes); + + if (3+7*nshapes != argc) + { + fprintf(stderr, "genpng: %s: too many arguments\n", argv[3+7*nshapes]); + return 1; + } + + /* Create the buffer: */ + buffer = malloc(PNG_IMAGE_SIZE(image)); + + if (buffer != NULL) + { + png_uint_32 y; + + /* Write each row... */ + for (y=0; y<image.height; ++y) + { + png_uint_32 x; + + /* Each pixel in each row: */ + for (x=0; x<image.width; ++x) + pixel(buffer + 4*(x + y*image.width), arg_list, nshapes, x, y); + } + + /* Write the result (to stdout) */ + if (png_image_write_to_stdio(&image, stdout, convert_to_8bit, + buffer, 0/*row_stride*/, NULL/*colormap*/)) + { + free(buffer); + return 0; /* success */ + } + + else + fprintf(stderr, "genpng: write stdout: %s\n", image.message); + + free(buffer); + } + + else + fprintf(stderr, "genpng: out of memory: %lu bytes\n", + (unsigned long)PNG_IMAGE_SIZE(image)); + } + + else + { + /* Wrong number of arguments */ + fprintf(stderr, "genpng: usage: genpng [--8bit] width height {shape}\n" + " Generate a transparent PNG in RGBA (truecolor+alpha) format\n" + " containing the given shape or shapes. Shapes are defined:\n" + "\n" + " shape ::= color width shape x1 y1 x2 y2\n" + " color ::= black|white|red|green|yellow|blue\n" + " color ::= brown|purple|pink|orange|gray|cyan\n" + " width ::= filled|<number>\n" + " shape ::= circle|square|line\n" + " x1,x2 ::= <number>\n" + " y1,y2 ::= <number>\n" + "\n" + " Numbers are floating point numbers describing points relative to\n" + " the top left of the output PNG as pixel coordinates. The 'width'\n" + " parameter is either the width of the line (in output pixels) used\n" + " to draw the shape or 'filled' to indicate that the shape should\n" + " be filled with the color.\n" + "\n" + " Colors are interpreted loosely to give access to the eight full\n" + " intensity RGB values:\n" + "\n" + " black, red, green, blue, yellow, cyan, purple, white,\n" + "\n" + " Cyan is full intensity blue+green; RGB(0,1,1), plus the following\n" + " lower intensity values:\n" + "\n" + " brown: red+orange: RGB(0.5, 0.125, 0) (dark red+orange)\n" + " pink: red+white: RGB(1.0, 0.5, 0.5)\n" + " orange: red+yellow: RGB(1.0, 0.5, 0)\n" + " gray: black+white: RGB(0.5, 0.5, 0.5)\n" + "\n" + " The RGB values are selected to make detection of aliasing errors\n" + " easy. The names are selected to make the description of errors\n" + " easy.\n" + "\n" + " The PNG is written to stdout, if --8bit is given a 32bpp RGBA sRGB\n" + " file is produced, otherwise a 64bpp RGBA linear encoded file is\n" + " written.\n"); + } + + return 1; +} +#endif /* SIMPLIFIED_WRITE && STDIO */ diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/tools/intgamma.sh b/Build/source/libs/libpng/libpng-1.6.18/contrib/tools/intgamma.sh index 41c5d6dd278..41c5d6dd278 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/tools/intgamma.sh +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/tools/intgamma.sh diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/tools/makesRGB.c b/Build/source/libs/libpng/libpng-1.6.18/contrib/tools/makesRGB.c index e66c9f1576b..e66c9f1576b 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/tools/makesRGB.c +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/tools/makesRGB.c diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/tools/png-fix-itxt.c b/Build/source/libs/libpng/libpng-1.6.18/contrib/tools/png-fix-itxt.c index 1210bd9c813..5730d9f792d 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/tools/png-fix-itxt.c +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/tools/png-fix-itxt.c @@ -1,8 +1,8 @@ /* png-fix-itxt version 1.0.0 * - * Copyright 2013 Glenn Randers-Pehrson - * Last changed in libpng 1.6.3 [July 18, 2013] + * Copyright 2015 Glenn Randers-Pehrson + * Last changed in libpng 1.6.18 [July 23, 2015] * * This code is released under the libpng license. * For conditions of distribution and use, see the disclaimer @@ -34,8 +34,10 @@ #define MAX_LENGTH 500000 -#define GETBREAK ((unsigned char)(inchar=getchar())); if (inchar == EOF) break - +/* Read one character (inchar), also return octet (c), break if EOF */ +#define GETBREAK inchar=getchar(); \ + c=(inchar & 0xffU);\ + if (inchar != c) break int main(void) { @@ -48,25 +50,25 @@ main(void) /* Skip 8-byte signature */ for (i=8; i; i--) { - c=GETBREAK; + GETBREAK; putchar(c); } -if (inchar != EOF) +if (inchar == c) /* !EOF */ for (;;) { /* Read the length */ unsigned long length; /* must be 32 bits! */ - c=GETBREAK; buf[0] = c; length = c; length <<= 8; - c=GETBREAK; buf[1] = c; length += c; length <<= 8; - c=GETBREAK; buf[2] = c; length += c; length <<= 8; - c=GETBREAK; buf[3] = c; length += c; + GETBREAK; buf[0] = c; length = c; length <<= 8; + GETBREAK; buf[1] = c; length += c; length <<= 8; + GETBREAK; buf[2] = c; length += c; length <<= 8; + GETBREAK; buf[3] = c; length += c; /* Read the chunkname */ - c=GETBREAK; buf[4] = c; - c=GETBREAK; buf[5] = c; - c=GETBREAK; buf[6] = c; - c=GETBREAK; buf[7] = c; + GETBREAK; buf[4] = c; + GETBREAK; buf[5] = c; + GETBREAK; buf[6] = c; + GETBREAK; buf[7] = c; /* The iTXt chunk type expressed as integers is (105, 84, 88, 116) */ @@ -81,19 +83,22 @@ for (;;) /* Copy the data bytes */ for (i=8; i < length + 12; i++) { - c=GETBREAK; buf[i] = c; + GETBREAK; buf[i] = c; } + if (inchar != c) /* EOF */ + break; + /* Calculate the CRC */ crc = crc32(crc, buf+4, (uInt)length+4); for (;;) { /* Check the CRC */ - if (((crc >> 24) & 0xff) == buf[length+8] && - ((crc >> 16) & 0xff) == buf[length+9] && - ((crc >> 8) & 0xff) == buf[length+10] && - ((crc ) & 0xff) == buf[length+11]) + if (((crc >> 24) & 0xffU) == buf[length+8] && + ((crc >> 16) & 0xffU) == buf[length+9] && + ((crc >> 8) & 0xffU) == buf[length+10] && + ((crc ) & 0xffU) == buf[length+11]) break; length++; @@ -101,18 +106,21 @@ for (;;) if (length >= MAX_LENGTH-12) break; - c=GETBREAK; - buf[length+11]=c; + GETBREAK; + buf[length+11] = c; /* Update the CRC */ crc = crc32(crc, buf+7+length, 1); } + if (inchar != c) /* EOF */ + break; + /* Update length bytes */ - buf[0] = (unsigned char)((length << 24) & 0xff); - buf[1] = (unsigned char)((length << 16) & 0xff); - buf[2] = (unsigned char)((length << 8) & 0xff); - buf[3] = (unsigned char)((length ) & 0xff); + buf[0] = (unsigned char)((length >> 24) & 0xffU); + buf[1] = (unsigned char)((length >> 16) & 0xffU); + buf[2] = (unsigned char)((length >> 8) & 0xffU); + buf[3] = (unsigned char)((length ) & 0xffU); /* Write the fixed iTXt chunk (length, name, data, crc) */ for (i=0; i<length+12; i++) @@ -121,6 +129,9 @@ for (;;) else { + if (inchar != c) /* EOF */ + break; + /* Copy bytes that were already read (length and chunk name) */ for (i=0; i<8; i++) putchar(buf[i]); @@ -128,11 +139,11 @@ for (;;) /* Copy data bytes and CRC */ for (i=8; i< length+12; i++) { - c=GETBREAK; + GETBREAK; putchar(c); } - if (inchar == EOF) + if (inchar != c) /* EOF */ { break; } @@ -142,7 +153,7 @@ for (;;) break; } - if (inchar == EOF) + if (inchar != c) /* EOF */ break; if (buf[4] == 73 && buf[5] == 69 && buf[6] == 78 && buf[7] == 68) diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/tools/pngfix.c b/Build/source/libs/libpng/libpng-1.6.18/contrib/tools/pngfix.c index 67bab6aec69..2489ac374f7 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/tools/pngfix.c +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/tools/pngfix.c @@ -2,7 +2,7 @@ * * Copyright (c) 2014-2015 John Cunningham Bowler * - * Last changed in libpng 1.6.17 [March 26, 2015] + * Last changed in libpng 1.6.18 [July 23, 2015] * * This code is released under the libpng license. * For conditions of distribution and use, see the disclaimer @@ -71,8 +71,8 @@ * with older builds. */ #if ZLIB_VERNUM < 0x1260 -# define PNGZ_MSG_CAST(s) png_constcast(char*,s) -# define PNGZ_INPUT_CAST(b) png_constcast(png_bytep,b) +# define PNGZ_MSG_CAST(s) constcast(char*,s) +# define PNGZ_INPUT_CAST(b) constcast(png_bytep,b) #else # define PNGZ_MSG_CAST(s) (s) # define PNGZ_INPUT_CAST(b) (b) @@ -86,17 +86,17 @@ /* Copied from pngpriv.h */ #ifdef __cplusplus -# define png_voidcast(type, value) static_cast<type>(value) -# define png_constcast(type, value) const_cast<type>(value) -# define png_aligncast(type, value) \ +# define voidcast(type, value) static_cast<type>(value) +# define constcast(type, value) const_cast<type>(value) +# define aligncast(type, value) \ static_cast<type>(static_cast<void*>(value)) -# define png_aligncastconst(type, value) \ +# define aligncastconst(type, value) \ static_cast<type>(static_cast<const void*>(value)) #else -# define png_voidcast(type, value) (value) -# define png_constcast(type, value) ((type)(value)) -# define png_aligncast(type, value) ((void*)(value)) -# define png_aligncastconst(type, value) ((const void*)(value)) +# define voidcast(type, value) (value) +# define constcast(type, value) ((type)(value)) +# define aligncast(type, value) ((void*)(value)) +# define aligncastconst(type, value) ((const void*)(value)) #endif /* __cplusplus */ #if PNG_LIBPNG_VER < 10700 @@ -446,7 +446,7 @@ static void make_random_bytes(png_uint_32* seed, void* pv, size_t size) { png_uint_32 u0 = seed[0], u1 = seed[1]; - png_bytep bytes = png_voidcast(png_bytep, pv); + png_bytep bytes = voidcast(png_bytep, pv); /* There are thirty-three bits; the next bit in the sequence is bit-33 XOR * bit-20. The top 1 bit is in u1, the bottom 32 are in u0. @@ -668,7 +668,7 @@ IDAT_list_extend(struct IDAT_list *tail) if (length < tail->length) /* arithmetic overflow */ length = tail->length; - next = png_voidcast(IDAT_list*, malloc(IDAT_list_size(NULL, length))); + next = voidcast(IDAT_list*, malloc(IDAT_list_size(NULL, length))); CLEAR(*next); /* The caller must handle this: */ @@ -3535,7 +3535,7 @@ get_control(png_const_structrp png_ptr) /* This just returns the (file*). The chunk and idat control structures * don't always exist. */ - struct control *control = png_voidcast(struct control*, + struct control *control = voidcast(struct control*, png_get_error_ptr(png_ptr)); return &control->file; } @@ -3543,7 +3543,7 @@ get_control(png_const_structrp png_ptr) static void allocate(struct file *file, int allocate_idat) { - struct control *control = png_voidcast(struct control*, file->alloc_ptr); + struct control *control = voidcast(struct control*, file->alloc_ptr); if (allocate_idat) { @@ -3853,6 +3853,7 @@ usage(const char *prog) int main(int argc, const char **argv) { + char temp_name[FILENAME_MAX+1]; const char * prog = *argv; const char * outfile = NULL; const char * suffix = NULL; @@ -3955,7 +3956,6 @@ main(int argc, const char **argv) else { size_t outlen = strlen(*argv); - char temp_name[FILENAME_MAX+1]; if (outfile == NULL) /* else this takes precedence */ { diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/tools/sRGB.h b/Build/source/libs/libpng/libpng-1.6.18/contrib/tools/sRGB.h index 22c8f7c0e3d..22c8f7c0e3d 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/tools/sRGB.h +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/tools/sRGB.h diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/visupng/PngFile.c b/Build/source/libs/libpng/libpng-1.6.18/contrib/visupng/PngFile.c index e563e929274..e563e929274 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/visupng/PngFile.c +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/visupng/PngFile.c diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/visupng/PngFile.h b/Build/source/libs/libpng/libpng-1.6.18/contrib/visupng/PngFile.h index 474426c22ea..474426c22ea 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/visupng/PngFile.h +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/visupng/PngFile.h diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/visupng/README.txt b/Build/source/libs/libpng/libpng-1.6.18/contrib/visupng/README.txt index 72c5cba1790..72c5cba1790 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/visupng/README.txt +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/visupng/README.txt diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/visupng/VisualPng.c b/Build/source/libs/libpng/libpng-1.6.18/contrib/visupng/VisualPng.c index 236525a59fe..236525a59fe 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/visupng/VisualPng.c +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/visupng/VisualPng.c diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/visupng/VisualPng.dsp b/Build/source/libs/libpng/libpng-1.6.18/contrib/visupng/VisualPng.dsp index 741ef6ce76f..741ef6ce76f 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/visupng/VisualPng.dsp +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/visupng/VisualPng.dsp diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/visupng/VisualPng.dsw b/Build/source/libs/libpng/libpng-1.6.18/contrib/visupng/VisualPng.dsw index a30e1cc1cdb..a30e1cc1cdb 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/visupng/VisualPng.dsw +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/visupng/VisualPng.dsw diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/visupng/VisualPng.ico b/Build/source/libs/libpng/libpng-1.6.18/contrib/visupng/VisualPng.ico Binary files differindex 68aa3719fb5..68aa3719fb5 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/visupng/VisualPng.ico +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/visupng/VisualPng.ico diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/visupng/VisualPng.png b/Build/source/libs/libpng/libpng-1.6.18/contrib/visupng/VisualPng.png Binary files differindex c6aa80a9bfa..c6aa80a9bfa 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/visupng/VisualPng.png +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/visupng/VisualPng.png diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/visupng/VisualPng.rc b/Build/source/libs/libpng/libpng-1.6.18/contrib/visupng/VisualPng.rc index 6e0623a73cf..6e0623a73cf 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/visupng/VisualPng.rc +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/visupng/VisualPng.rc diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/visupng/cexcept.h b/Build/source/libs/libpng/libpng-1.6.18/contrib/visupng/cexcept.h index 5f45d769758..e28f3e9e460 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/visupng/cexcept.h +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/visupng/cexcept.h @@ -1,11 +1,12 @@ /*=== -cexcept.h 2.0.1 (2008-Jul-19-Sat) +cexcept.h 2.0.1 (2008-Jul-19-Sat, modified 2015-Jun-03-Mon) http://www.nicemice.net/cexcept/ Adam M. Costello http://www.nicemice.net/amc/ An interface for exception-handling in ANSI C (C89 and subsequent ISO -standards), developed jointly with Cosmin Truta. +standards), developed jointly with Cosmin Truta. Revised by John Bowler, +June 2015, to declare exception_env and exception_prev "volatile". Copyright (c) 2000-2008 Adam M. Costello and Cosmin Truta. This software may be modified only if its author and version @@ -210,7 +211,7 @@ struct exception_context { \ #define Try \ { \ - jmp_buf *exception__prev, exception__env; \ + jmp_buf * volatile exception__prev, exception__env; \ exception__prev = the_exception_context->penv; \ the_exception_context->penv = &exception__env; \ if (setjmp(exception__env) == 0) { \ diff --git a/Build/source/libs/libpng/libpng-1.6.17/contrib/visupng/resource.h b/Build/source/libs/libpng/libpng-1.6.18/contrib/visupng/resource.h index b62176d1dca..b62176d1dca 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/contrib/visupng/resource.h +++ b/Build/source/libs/libpng/libpng-1.6.18/contrib/visupng/resource.h diff --git a/Build/source/libs/libpng/libpng-1.6.17/example.c b/Build/source/libs/libpng/libpng-1.6.18/example.c index 945546c259a..945546c259a 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/example.c +++ b/Build/source/libs/libpng/libpng-1.6.18/example.c diff --git a/Build/source/libs/libpng/libpng-1.6.17/libpng-config.in b/Build/source/libs/libpng/libpng-1.6.18/libpng-config.in index 69bf8e33f0b..69bf8e33f0b 100755 --- a/Build/source/libs/libpng/libpng-1.6.17/libpng-config.in +++ b/Build/source/libs/libpng/libpng-1.6.18/libpng-config.in diff --git a/Build/source/libs/libpng/libpng-1.6.17/libpng-manual.txt b/Build/source/libs/libpng/libpng-1.6.18/libpng-manual.txt index f0dae987f98..da247cf84c5 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/libpng-manual.txt +++ b/Build/source/libs/libpng/libpng-1.6.18/libpng-manual.txt @@ -1,6 +1,6 @@ libpng-manual.txt - A description on how to use and modify libpng - libpng version 1.6.17 - March 26, 2015 + libpng version 1.6.18 - July 23, 2015 Updated and distributed by Glenn Randers-Pehrson <glennrp at users.sourceforge.net> Copyright (c) 1998-2015 Glenn Randers-Pehrson @@ -11,7 +11,7 @@ libpng-manual.txt - A description on how to use and modify libpng Based on: - libpng versions 0.97, January 1998, through 1.6.17 - March 26, 2015 + libpng versions 0.97, January 1998, through 1.6.18 - July 23, 2015 Updated and distributed by Glenn Randers-Pehrson Copyright (c) 1998-2015 Glenn Randers-Pehrson @@ -4065,10 +4065,11 @@ a 16-bit linear encoded PNG file is written. With all APIs row_stride is handled as in the read APIs - it is the spacing from one row to the next in component sized units (float) and if negative -indicates a bottom-up row layout in the buffer. +indicates a bottom-up row layout in the buffer. If you pass zero, libpng will +calculate the row_stride for you from the width and number of channels. Note that the write API does not support interlacing, sub-8-bit pixels, -and indexed (paletted) images. +indexed (paletted) images, or most ancillary chunks. VI. Modifying/Customizing libpng @@ -4356,41 +4357,6 @@ is called for the first time.) same as the value of filter_method used in png_set_IHDR(). -It is also possible to influence how libpng chooses from among the -available filters. This is done in one or both of two ways - by -telling it how important it is to keep the same filter for successive -rows, and by telling it the relative computational costs of the filters. - - double weights[3] = {1.5, 1.3, 1.1}, - costs[PNG_FILTER_VALUE_LAST] = - {1.0, 1.3, 1.3, 1.5, 1.7}; - - png_set_filter_heuristics(png_ptr, - PNG_FILTER_HEURISTIC_WEIGHTED, 3, - weights, costs); - -The weights are multiplying factors that indicate to libpng that the -row filter should be the same for successive rows unless another row filter -is that many times better than the previous filter. In the above example, -if the previous 3 filters were SUB, SUB, NONE, the SUB filter could have a -"sum of absolute differences" 1.5 x 1.3 times higher than other filters -and still be chosen, while the NONE filter could have a sum 1.1 times -higher than other filters and still be chosen. Unspecified weights are -taken to be 1.0, and the specified weights should probably be declining -like those above in order to emphasize recent filters over older filters. - -The filter costs specify for each filter type a relative decoding cost -to be considered when selecting row filters. This means that filters -with higher costs are less likely to be chosen over filters with lower -costs, unless their "sum of absolute differences" is that much smaller. -The costs do not necessarily reflect the exact computational speeds of -the various filters, since this would unduly influence the final image -size. - -Note that the numbers above were invented purely for this example and -are given only to help explain the function usage. Little testing has -been done to find optimum values for either the costs or the weights. - Requesting debug printout The macro definition PNG_DEBUG can be used to request debugging @@ -5109,6 +5075,23 @@ length, which resulted in PNG files that cannot be read beyond the bad iTXt chunk. This error was fixed in libpng-1.6.3, and a tool (called contrib/tools/png-fix-itxt) has been added to the libpng distribution. +Starting with libpng-1.6.17, the PNG_SAFE_LIMITS macro was eliminated +and safe limits are used by default (users who need larger limits +can still override them at compile time or run time, as described above). + +The new limits are + default spec limit + png_user_width_max 1,000,000 2,147,483,647 + png_user_height_max 1,000,000 2,147,483,647 + png_user_chunk_cache_max 128 unlimited + png_user_chunk_malloc_max 8,000,000 unlimited + +Starting with libpng-1.6.18, a PNG_RELEASE_BUILD macro was added, which allows +library builders to control compilation for an installed system (a release build). +It can be set for testing debug or beta builds to ensure that they will compile +when the build type is switched to RC or STABLE. In essence this overrides the +PNG_LIBPNG_BUILD_BASE_TYPE definition which is not directly user controllable. + XIII. Detecting libpng The png_get_io_ptr() function has been present since libpng-0.88, has never @@ -5279,13 +5262,13 @@ Other rules can be inferred by inspecting the libpng source. XVI. Y2K Compliance in libpng -March 26, 2015 +July 23, 2015 Since the PNG Development group is an ad-hoc body, we can't make an official declaration. This is your unofficial assurance that libpng from version 0.71 and -upward through 1.6.17 are Y2K compliant. It is my belief that earlier +upward through 1.6.18 are Y2K compliant. It is my belief that earlier versions were also Y2K compliant. Libpng only has two year fields. One is a 2-byte unsigned integer diff --git a/Build/source/libs/libpng/libpng-1.6.17/libpng.3 b/Build/source/libs/libpng/libpng-1.6.18/libpng.3 index dfc4484c3d9..bb079d43e0c 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/libpng.3 +++ b/Build/source/libs/libpng/libpng-1.6.18/libpng.3 @@ -1,6 +1,6 @@ -.TH LIBPNG 3 "March 26, 2015" +.TH LIBPNG 3 "July 23, 2015" .SH NAME -libpng \- Portable Network Graphics (PNG) Reference Library 1.6.17 +libpng \- Portable Network Graphics (PNG) Reference Library 1.6.18 .SH SYNOPSIS \fB #include <png.h>\fP @@ -119,6 +119,8 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.6.17 \fBpng_byte png_get_libpng_ver (png_const_structp \fIpng_ptr\fP\fB);\fP +\fBint png_get_palette_max(png_const_structp \fP\fIpng_ptr\fP\fB, png_const_infop \fIinfo_ptr\fP\fB);\fP + \fBpng_voidp png_get_mem_ptr (png_const_structp \fIpng_ptr\fP\fB);\fP \fBpng_uint_32 png_get_oFFs (png_const_structp \fP\fIpng_ptr\fP\fB, png_const_infop \fP\fIinfo_ptr\fP\fB, png_uint_32 \fP\fI*offset_x\fP\fB, png_uint_32 \fP\fI*offset_y\fP\fB, int \fI*unit_type\fP\fB);\fP @@ -369,6 +371,8 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.6.17 \fBvoid png_set_oFFs (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, png_uint_32 \fP\fIoffset_x\fP\fB, png_uint_32 \fP\fIoffset_y\fP\fB, int \fIunit_type\fP\fB);\fP +\fBint png_set_option(png_structrp \fP\fIpng_ptr\fP\fB, int \fP\fIoption\fP\fB, int \fIonoff\fP\fB);\fP + \fBvoid png_set_packing (png_structp \fIpng_ptr\fP\fB);\fP \fBvoid png_set_packswap (png_structp \fIpng_ptr\fP\fB);\fP @@ -504,7 +508,7 @@ Following is a copy of the libpng-manual.txt file that accompanies libpng. .SH LIBPNG.TXT libpng-manual.txt - A description on how to use and modify libpng - libpng version 1.6.17 - March 26, 2015 + libpng version 1.6.18 - July 23, 2015 Updated and distributed by Glenn Randers-Pehrson <glennrp at users.sourceforge.net> Copyright (c) 1998-2015 Glenn Randers-Pehrson @@ -515,7 +519,7 @@ libpng-manual.txt - A description on how to use and modify libpng Based on: - libpng versions 0.97, January 1998, through 1.6.17 - March 26, 2015 + libpng versions 0.97, January 1998, through 1.6.18 - July 23, 2015 Updated and distributed by Glenn Randers-Pehrson Copyright (c) 1998-2015 Glenn Randers-Pehrson @@ -4569,10 +4573,11 @@ a 16-bit linear encoded PNG file is written. With all APIs row_stride is handled as in the read APIs - it is the spacing from one row to the next in component sized units (float) and if negative -indicates a bottom-up row layout in the buffer. +indicates a bottom-up row layout in the buffer. If you pass zero, libpng will +calculate the row_stride for you from the width and number of channels. Note that the write API does not support interlacing, sub-8-bit pixels, -and indexed (paletted) images. +indexed (paletted) images, or most ancillary chunks. .SH VI. Modifying/Customizing libpng @@ -4860,41 +4865,6 @@ is called for the first time.) same as the value of filter_method used in png_set_IHDR(). -It is also possible to influence how libpng chooses from among the -available filters. This is done in one or both of two ways - by -telling it how important it is to keep the same filter for successive -rows, and by telling it the relative computational costs of the filters. - - double weights[3] = {1.5, 1.3, 1.1}, - costs[PNG_FILTER_VALUE_LAST] = - {1.0, 1.3, 1.3, 1.5, 1.7}; - - png_set_filter_heuristics(png_ptr, - PNG_FILTER_HEURISTIC_WEIGHTED, 3, - weights, costs); - -The weights are multiplying factors that indicate to libpng that the -row filter should be the same for successive rows unless another row filter -is that many times better than the previous filter. In the above example, -if the previous 3 filters were SUB, SUB, NONE, the SUB filter could have a -"sum of absolute differences" 1.5 x 1.3 times higher than other filters -and still be chosen, while the NONE filter could have a sum 1.1 times -higher than other filters and still be chosen. Unspecified weights are -taken to be 1.0, and the specified weights should probably be declining -like those above in order to emphasize recent filters over older filters. - -The filter costs specify for each filter type a relative decoding cost -to be considered when selecting row filters. This means that filters -with higher costs are less likely to be chosen over filters with lower -costs, unless their "sum of absolute differences" is that much smaller. -The costs do not necessarily reflect the exact computational speeds of -the various filters, since this would unduly influence the final image -size. - -Note that the numbers above were invented purely for this example and -are given only to help explain the function usage. Little testing has -been done to find optimum values for either the costs or the weights. - .SS Requesting debug printout The macro definition PNG_DEBUG can be used to request debugging @@ -5613,6 +5583,23 @@ length, which resulted in PNG files that cannot be read beyond the bad iTXt chunk. This error was fixed in libpng-1.6.3, and a tool (called contrib/tools/png-fix-itxt) has been added to the libpng distribution. +Starting with libpng-1.6.17, the PNG_SAFE_LIMITS macro was eliminated +and safe limits are used by default (users who need larger limits +can still override them at compile time or run time, as described above). + +The new limits are + default spec limit + png_user_width_max 1,000,000 2,147,483,647 + png_user_height_max 1,000,000 2,147,483,647 + png_user_chunk_cache_max 128 unlimited + png_user_chunk_malloc_max 8,000,000 unlimited + +Starting with libpng-1.6.18, a PNG_RELEASE_BUILD macro was added, which allows +library builders to control compilation for an installed system (a release build). +It can be set for testing debug or beta builds to ensure that they will compile +when the build type is switched to RC or STABLE. In essence this overrides the +PNG_LIBPNG_BUILD_BASE_TYPE definition which is not directly user controllable. + .SH XIII. Detecting libpng The png_get_io_ptr() function has been present since libpng-0.88, has never @@ -5783,13 +5770,13 @@ Other rules can be inferred by inspecting the libpng source. .SH XVI. Y2K Compliance in libpng -March 26, 2015 +July 23, 2015 Since the PNG Development group is an ad-hoc body, we can't make an official declaration. This is your unofficial assurance that libpng from version 0.71 and -upward through 1.6.17 are Y2K compliant. It is my belief that earlier +upward through 1.6.18 are Y2K compliant. It is my belief that earlier versions were also Y2K compliant. Libpng only has two year fields. One is a 2-byte unsigned integer @@ -6044,6 +6031,9 @@ the first widely used release: 1.6.17beta01-06 16 10617 16.so.16.17[.0] 1.6.17rc01-06 16 10617 16.so.16.17[.0] 1.6.17 16 10617 16.so.16.17[.0] + 1.6.18beta01-09 16 10618 16.so.16.18[.0] + 1.6.18rc01-03 16 10618 16.so.16.18[.0] + 1.6.18 16 10618 16.so.16.18[.0] Henceforth the source version will match the shared-library minor and patch numbers; the shared-library major version number will be @@ -6100,7 +6090,7 @@ possible without all of you. Thanks to Frank J. T. Wojcik for helping with the documentation. -Libpng version 1.6.17 - March 26, 2015: +Libpng version 1.6.18 - July 23, 2015: Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc. Currently maintained by Glenn Randers-Pehrson (glennrp at users.sourceforge.net). @@ -6123,44 +6113,39 @@ this sentence. This code is released under the libpng license. -libpng versions 1.2.6, August 15, 2004, through 1.6.17, March 26, 2015, are -Copyright (c) 2004,2006-2015 Glenn Randers-Pehrson, and are -distributed according to the same disclaimer and license as libpng-1.2.5 -with the following individual added to the list of Contributing Authors - - Cosmin Truta - -libpng versions 1.0.7, July 1, 2000, through 1.2.5 - October 3, 2002, are -Copyright (c) 2000-2002 Glenn Randers-Pehrson, and are +libpng versions 1.0.7, July 1, 2000, through 1.6.18, July 23, 2015, are +Copyright (c) 2000-2002, 2004, 2006-2015 Glenn Randers-Pehrson, and are distributed according to the same disclaimer and license as libpng-1.0.6 -with the following individuals added to the list of Contributing Authors +with the following individuals added to the list of Contributing Authors: Simon-Pierre Cadieux Eric S. Raymond + Mans Rullgard + Cosmin Truta Gilles Vollant + James Yu and with the following additions to the disclaimer: - There is no warranty against interference with your - enjoyment of the library or against infringement. - There is no warranty that our efforts or the library - will fulfill any of your particular purposes or needs. - This library is provided with all faults, and the entire - risk of satisfactory quality, performance, accuracy, and - effort is with the user. + There is no warranty against interference with your enjoyment of the + library or against infringement. There is no warranty that our + efforts or the library will fulfill any of your particular purposes + or needs. This library is provided with all faults, and the entire + risk of satisfactory quality, performance, accuracy, and effort is with + the user. libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are -Copyright (c) 1998, 1999 Glenn Randers-Pehrson -Distributed according to the same disclaimer and license as libpng-0.96, -with the following individuals added to the list of Contributing Authors: +Copyright (c) 1998-2000 Glenn Randers-Pehrson, and are distributed according +to the same disclaimer and license as libpng-0.96, with the following +individuals added to the list of Contributing Authors: Tom Lane Glenn Randers-Pehrson Willem van Schaik libpng versions 0.89, June 1996, through 0.96, May 1997, are -Copyright (c) 1996, 1997 Andreas Dilger -Distributed according to the same disclaimer and license as libpng-0.88, +Copyright (c) 1996-1997 Andreas Dilger, and are +distributed according to the same disclaimer and license as libpng-0.88, with the following individuals added to the list of Contributing Authors: John Bowler @@ -6171,7 +6156,7 @@ with the following individuals added to the list of Contributing Authors: Tom Tanner libpng versions 0.5, May 1995, through 0.88, January 1996, are -Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. +Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. For the purposes of this copyright and license, "Contributing Authors" is defined as the following set of individuals: @@ -6194,13 +6179,13 @@ Permission is hereby granted to use, copy, modify, and distribute this source code, or portions hereof, for any purpose, without fee, subject to the following restrictions: -1. The origin of this source code must not be misrepresented. + 1. The origin of this source code must not be misrepresented. -2. Altered versions must be plainly marked as such and - must not be misrepresented as being the original source. + 2. Altered versions must be plainly marked as such and must not + be misrepresented as being the original source. -3. This Copyright notice may not be removed or altered from - any source or altered source distribution. + 3. This Copyright notice may not be removed or altered from any + source or altered source distribution. The Contributing Authors and Group 42, Inc. specifically permit, without fee, and encourage the use of this source code as a component to @@ -6208,21 +6193,21 @@ supporting the PNG file format in commercial products. If you use this source code in a product, acknowledgment is not required but would be appreciated. - A "png_get_copyright" function is available, for convenient use in "about" boxes and the like: - printf("%s",png_get_copyright(NULL)); + printf("%s", png_get_copyright(NULL)); Also, the PNG logo (in PNG format, of course) is supplied in the files "pngbar.png" and "pngbar.jpg (88x31) and "pngnow.png" (98x31). -Libpng is OSI Certified Open Source Software. OSI Certified Open Source is a -certification mark of the Open Source Initiative. +Libpng is OSI Certified Open Source Software. OSI Certified Open Source is +a certification mark of the Open Source Initiative. OSI has not addressed +the additional disclaimers inserted at version 1.0.7. Glenn Randers-Pehrson glennrp at users.sourceforge.net -March 26, 2015 +July 23, 2015 .\" end of man page diff --git a/Build/source/libs/libpng/libpng-1.6.17/libpng.pc.in b/Build/source/libs/libpng/libpng-1.6.18/libpng.pc.in index 3e7e2c58a7e..3e7e2c58a7e 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/libpng.pc.in +++ b/Build/source/libs/libpng/libpng-1.6.18/libpng.pc.in diff --git a/Build/source/libs/libpng/libpng-1.6.17/libpngpf.3 b/Build/source/libs/libpng/libpng-1.6.18/libpngpf.3 index d0dd5be57f1..f5511dd2a00 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/libpngpf.3 +++ b/Build/source/libs/libpng/libpng-1.6.18/libpngpf.3 @@ -1,6 +1,6 @@ -.TH LIBPNGPF 3 "March 26, 2015" +.TH LIBPNGPF 3 "July 23, 2015" .SH NAME -libpng \- Portable Network Graphics (PNG) Reference Library 1.6.17 +libpng \- Portable Network Graphics (PNG) Reference Library 1.6.18 (private functions) .SH SYNOPSIS \fB#include \fI"pngpriv.h" diff --git a/Build/source/libs/libpng/libpng-1.6.17/png.5 b/Build/source/libs/libpng/libpng-1.6.18/png.5 index 10c4c3cb179..37a8525c6e7 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/png.5 +++ b/Build/source/libs/libpng/libpng-1.6.18/png.5 @@ -1,4 +1,4 @@ -.TH PNG 5 "March 26, 2015" +.TH PNG 5 "July 23, 2015" .SH NAME png \- Portable Network Graphics (PNG) format .SH DESCRIPTION diff --git a/Build/source/libs/libpng/libpng-1.6.17/png.c b/Build/source/libs/libpng/libpng-1.6.18/png.c index 7575ede97bc..f6e353ace0f 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/png.c +++ b/Build/source/libs/libpng/libpng-1.6.18/png.c @@ -1,7 +1,7 @@ /* png.c - location for general purpose libpng functions * - * Last changed in libpng 1.6.17 [March 26, 2015] + * Last changed in libpng 1.6.18 [July 23, 2015] * Copyright (c) 1998-2015 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) @@ -14,7 +14,7 @@ #include "pngpriv.h" /* Generate a compiler error if there is an old png.h in the search path. */ -typedef png_libpng_version_1_6_17 Your_png_h_is_not_version_1_6_17; +typedef png_libpng_version_1_6_18 Your_png_h_is_not_version_1_6_18; /* Tells libpng that we have already handled the first "num_bytes" bytes * of the PNG file signature. If the PNG data is embedded into another @@ -101,7 +101,7 @@ png_zfree(voidpf png_ptr, voidpf ptr) void /* PRIVATE */ png_reset_crc(png_structrp png_ptr) { - /* The cast is safe because the crc is a 32 bit value. */ + /* The cast is safe because the crc is a 32-bit value. */ png_ptr->crc = (png_uint_32)crc32(0, Z_NULL, 0); } @@ -129,7 +129,7 @@ png_calculate_crc(png_structrp png_ptr, png_const_bytep ptr, png_size_t length) } /* 'uLong' is defined in zlib.h as unsigned long; this means that on some - * systems it is a 64 bit value. crc32, however, returns 32 bits so the + * systems it is a 64-bit value. crc32, however, returns 32 bits so the * following cast is safe. 'uInt' may be no more than 16 bits, so it is * necessary to perform a loop here. */ @@ -243,15 +243,15 @@ png_create_png_struct,(png_const_charp user_png_ver, png_voidp error_ptr, create_struct.user_height_max = PNG_USER_HEIGHT_MAX; # ifdef PNG_USER_CHUNK_CACHE_MAX - /* Added at libpng-1.2.43 and 1.4.0 */ - create_struct.user_chunk_cache_max = PNG_USER_CHUNK_CACHE_MAX; + /* Added at libpng-1.2.43 and 1.4.0 */ + create_struct.user_chunk_cache_max = PNG_USER_CHUNK_CACHE_MAX; # endif # ifdef PNG_USER_CHUNK_MALLOC_MAX - /* Added at libpng-1.2.43 and 1.4.1, required only for read but exists - * in png_struct regardless. - */ - create_struct.user_chunk_malloc_max = PNG_USER_CHUNK_MALLOC_MAX; + /* Added at libpng-1.2.43 and 1.4.1, required only for read but exists + * in png_struct regardless. + */ + create_struct.user_chunk_malloc_max = PNG_USER_CHUNK_MALLOC_MAX; # endif # endif @@ -275,7 +275,9 @@ png_create_png_struct,(png_const_charp user_png_ver, png_voidp error_ptr, # ifdef PNG_SETJMP_SUPPORTED if (!setjmp(create_jmp_buf)) +# endif { +# ifdef PNG_SETJMP_SUPPORTED /* Temporarily fake out the longjmp information until we have * successfully completed this function. This only works if we have * setjmp() support compiled in, but it is safe - this stuff should @@ -284,8 +286,6 @@ png_create_png_struct,(png_const_charp user_png_ver, png_voidp error_ptr, create_struct.jmp_buf_ptr = &create_jmp_buf; create_struct.jmp_buf_size = 0; /*stack allocation*/ create_struct.longjmp_fn = longjmp; -# else - { # endif /* Call the general version checker (shared with read and write code): */ @@ -304,10 +304,10 @@ png_create_png_struct,(png_const_charp user_png_ver, png_voidp error_ptr, create_struct.zstream.opaque = png_ptr; # ifdef PNG_SETJMP_SUPPORTED - /* Eliminate the local error handling: */ - create_struct.jmp_buf_ptr = NULL; - create_struct.jmp_buf_size = 0; - create_struct.longjmp_fn = 0; + /* Eliminate the local error handling: */ + create_struct.jmp_buf_ptr = NULL; + create_struct.jmp_buf_size = 0; + create_struct.longjmp_fn = 0; # endif *png_ptr = create_struct; @@ -766,13 +766,13 @@ png_get_copyright(png_const_structrp png_ptr) #else # ifdef __STDC__ return PNG_STRING_NEWLINE \ - "libpng version 1.6.17 - March 26, 2015" PNG_STRING_NEWLINE \ - "Copyright (c) 1998-2015 Glenn Randers-Pehrson" PNG_STRING_NEWLINE \ - "Copyright (c) 1996-1997 Andreas Dilger" PNG_STRING_NEWLINE \ - "Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc." \ - PNG_STRING_NEWLINE; + "libpng version 1.6.18 - July 23, 2015" PNG_STRING_NEWLINE \ + "Copyright (c) 1998-2015 Glenn Randers-Pehrson" PNG_STRING_NEWLINE \ + "Copyright (c) 1996-1997 Andreas Dilger" PNG_STRING_NEWLINE \ + "Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc." \ + PNG_STRING_NEWLINE; # else - return "libpng version 1.6.17 - March 26, 2015\ + return "libpng version 1.6.18 - July 23, 2015\ Copyright (c) 1998-2015 Glenn Randers-Pehrson\ Copyright (c) 1996-1997 Andreas Dilger\ Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc."; @@ -811,9 +811,9 @@ png_get_header_version(png_const_structrp png_ptr) #ifdef __STDC__ return PNG_HEADER_VERSION_STRING # ifndef PNG_READ_SUPPORTED - " (NO READ SUPPORT)" + " (NO READ SUPPORT)" # endif - PNG_STRING_NEWLINE; + PNG_STRING_NEWLINE; #else return PNG_HEADER_VERSION_STRING; #endif @@ -1086,10 +1086,10 @@ png_colorspace_set_gamma(png_const_structrp png_ptr, errmsg = "gamma value out of range"; # ifdef PNG_READ_gAMA_SUPPORTED - /* Allow the application to set the gamma value more than once */ - else if ((png_ptr->mode & PNG_IS_READ_STRUCT) != 0 && - (colorspace->flags & PNG_COLORSPACE_FROM_gAMA) != 0) - errmsg = "duplicate"; + /* Allow the application to set the gamma value more than once */ + else if ((png_ptr->mode & PNG_IS_READ_STRUCT) != 0 && + (colorspace->flags & PNG_COLORSPACE_FROM_gAMA) != 0) + errmsg = "duplicate"; # endif /* Do nothing if the colorspace is already invalid */ @@ -1130,31 +1130,31 @@ png_colorspace_sync_info(png_const_structrp png_ptr, png_inforp info_ptr) PNG_INFO_iCCP); # ifdef PNG_COLORSPACE_SUPPORTED - /* Clean up the iCCP profile now if it won't be used. */ - png_free_data(png_ptr, info_ptr, PNG_FREE_ICCP, -1/*not used*/); + /* Clean up the iCCP profile now if it won't be used. */ + png_free_data(png_ptr, info_ptr, PNG_FREE_ICCP, -1/*not used*/); # else - PNG_UNUSED(png_ptr) + PNG_UNUSED(png_ptr) # endif } else { # ifdef PNG_COLORSPACE_SUPPORTED - /* Leave the INFO_iCCP flag set if the pngset.c code has already set - * it; this allows a PNG to contain a profile which matches sRGB and - * yet still have that profile retrievable by the application. - */ - if ((info_ptr->colorspace.flags & PNG_COLORSPACE_MATCHES_sRGB) != 0) - info_ptr->valid |= PNG_INFO_sRGB; + /* Leave the INFO_iCCP flag set if the pngset.c code has already set + * it; this allows a PNG to contain a profile which matches sRGB and + * yet still have that profile retrievable by the application. + */ + if ((info_ptr->colorspace.flags & PNG_COLORSPACE_MATCHES_sRGB) != 0) + info_ptr->valid |= PNG_INFO_sRGB; - else - info_ptr->valid &= ~PNG_INFO_sRGB; + else + info_ptr->valid &= ~PNG_INFO_sRGB; - if ((info_ptr->colorspace.flags & PNG_COLORSPACE_HAVE_ENDPOINTS) != 0) - info_ptr->valid |= PNG_INFO_cHRM; + if ((info_ptr->colorspace.flags & PNG_COLORSPACE_HAVE_ENDPOINTS) != 0) + info_ptr->valid |= PNG_INFO_cHRM; - else - info_ptr->valid &= ~PNG_INFO_cHRM; + else + info_ptr->valid &= ~PNG_INFO_cHRM; # endif if ((info_ptr->colorspace.flags & PNG_COLORSPACE_HAVE_GAMMA) != 0) @@ -1235,16 +1235,17 @@ png_XYZ_from_xy(png_XYZ *XYZ, const png_xy *xy) /* Check xy and, implicitly, z. Note that wide gamut color spaces typically * have end points with 0 tristimulus values (these are impossible end - * points, but they are used to cover the possible colors.) + * points, but they are used to cover the possible colors). We check + * xy->whitey against 5, not 0, to avoid a possible integer overflow. */ - if (xy->redx < 0 || xy->redx > PNG_FP_1) return 1; - if (xy->redy < 0 || xy->redy > PNG_FP_1-xy->redx) return 1; + if (xy->redx < 0 || xy->redx > PNG_FP_1) return 1; + if (xy->redy < 0 || xy->redy > PNG_FP_1-xy->redx) return 1; if (xy->greenx < 0 || xy->greenx > PNG_FP_1) return 1; if (xy->greeny < 0 || xy->greeny > PNG_FP_1-xy->greenx) return 1; - if (xy->bluex < 0 || xy->bluex > PNG_FP_1) return 1; - if (xy->bluey < 0 || xy->bluey > PNG_FP_1-xy->bluex) return 1; + if (xy->bluex < 0 || xy->bluex > PNG_FP_1) return 1; + if (xy->bluey < 0 || xy->bluey > PNG_FP_1-xy->bluex) return 1; if (xy->whitex < 0 || xy->whitex > PNG_FP_1) return 1; - if (xy->whitey < 0 || xy->whitey > PNG_FP_1-xy->whitex) return 1; + if (xy->whitey < 5 || xy->whitey > PNG_FP_1-xy->whitex) return 1; /* The reverse calculation is more difficult because the original tristimulus * value had 9 independent values (red,green,blue)x(X,Y,Z) however only 8 @@ -2276,7 +2277,7 @@ png_compare_ICC_profile_with_sRGB(png_const_structrp png_ptr, /* Length *and* intent must match */ if (length == png_sRGB_checks[i].length && - intent == png_sRGB_checks[i].intent) + intent == (png_uint_32) png_sRGB_checks[i].intent) { /* Now calculate the adler32 if not done already. */ if (adler == 0) @@ -2843,7 +2844,7 @@ png_ascii_from_fp(png_const_structrp png_ptr, png_charp ascii, png_size_t size, if (fp >= DBL_MIN && fp <= DBL_MAX) { - int exp_b10; /* A base 10 exponent */ + int exp_b10; /* A base 10 exponent */ double base; /* 10^exp_b10 */ /* First extract a base 10 exponent of the number, @@ -2891,7 +2892,7 @@ png_ascii_from_fp(png_const_structrp png_ptr, png_charp ascii, png_size_t size, */ { - int czero, clead, cdigits; + unsigned int czero, clead, cdigits; char exponent[10]; /* Allow up to two leading zeros - this will not lengthen @@ -2921,7 +2922,7 @@ png_ascii_from_fp(png_const_structrp png_ptr, png_charp ascii, png_size_t size, * of the loop don't break the number into parts so * that the final digit is rounded. */ - if (cdigits+czero-clead+1 < (int)precision) + if (cdigits+czero+1 < precision+clead) fp = modf(fp, &d); else @@ -3027,7 +3028,7 @@ png_ascii_from_fp(png_const_structrp png_ptr, png_charp ascii, png_size_t size, *ascii++ = (char)(48 + (int)d), ++cdigits; } } - while (cdigits+czero-clead < (int)precision && fp > DBL_MIN); + while (cdigits+czero < precision+clead && fp > DBL_MIN); /* The total output count (max) is now 4+precision */ @@ -3095,7 +3096,7 @@ png_ascii_from_fp(png_const_structrp png_ptr, png_charp ascii, png_size_t size, /* Need another size check here for the exponent digits, so * this need not be considered above. */ - if ((int)size > cdigits) + if (size > cdigits) { while (cdigits > 0) *ascii++ = exponent[--cdigits]; @@ -4236,7 +4237,7 @@ png_set_option(png_structrp png_ptr, int option, int onoff) * contrib/tools/makesRGB.c. The actual sRGB transfer curve defined in the * specification (see the article at http://en.wikipedia.org/wiki/SRGB) * is used, not the gamma=1/2.2 approximation use elsewhere in libpng. - * The sRGB to linear table is exact (to the nearest 16 bit linear fraction). + * The sRGB to linear table is exact (to the nearest 16-bit linear fraction). * The inverse (linear to sRGB) table has accuracies as follows: * * For all possible (255*65535+1) input values: diff --git a/Build/source/libs/libpng/libpng-1.6.17/png.h b/Build/source/libs/libpng/libpng-1.6.18/png.h index 372599bfb47..f2013cf758d 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/png.h +++ b/Build/source/libs/libpng/libpng-1.6.18/png.h @@ -1,7 +1,7 @@ /* png.h - header file for PNG reference library * - * libpng version 1.6.17, March 26, 2015 + * libpng version 1.6.18, July 23, 2015 * * Copyright (c) 1998-2015 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) @@ -11,8 +11,8 @@ * * Authors and maintainers: * libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat - * libpng versions 0.89c, June 1996, through 0.96, May 1997: Andreas Dilger - * libpng versions 0.97, January 1998, through 1.6.17, March 26, 2015: Glenn + * libpng versions 0.89, June 1996, through 0.96, May 1997: Andreas Dilger + * libpng versions 0.97, January 1998, through 1.6.18, July 23, 2015: Glenn * See also "Contributing Authors", below. * * Note about libpng version numbers: @@ -216,6 +216,9 @@ * 1.6.17beta01-06 16 10617 16.so.16.17[.0] * 1.6.17rc01-06 16 10617 16.so.16.17[.0] * 1.6.17 16 10617 16.so.16.17[.0] + * 1.6.18beta01-09 16 10618 16.so.16.18[.0] + * 1.6.18rc01-03 16 10618 16.so.16.18[.0] + * 1.6.18 16 10618 16.so.16.18[.0] * * Henceforth the source version will match the shared-library major * and minor numbers; the shared-library major version number will be @@ -247,21 +250,16 @@ * * This code is released under the libpng license. * - * libpng versions 1.2.6, August 15, 2004, through 1.6.17, March 26, 2015, are - * Copyright (c) 2004, 2006-2015 Glenn Randers-Pehrson, and are - * distributed according to the same disclaimer and license as libpng-1.2.5 - * with the following individual added to the list of Contributing Authors: - * - * Cosmin Truta - * - * libpng versions 1.0.7, July 1, 2000, through 1.2.5, October 3, 2002, are - * Copyright (c) 2000-2002 Glenn Randers-Pehrson, and are + * libpng versions 1.0.7, July 1, 2000, through 1.6.18, July 23, 2015, are + * Copyright (c) 2000-2002, 2004, 2006-2015 Glenn Randers-Pehrson, and are * distributed according to the same disclaimer and license as libpng-1.0.6 * with the following individuals added to the list of Contributing Authors: * * Simon-Pierre Cadieux - * Eric S. Raymond + * Mans Rullgard + * Cosmin Truta * Gilles Vollant + * James Yu * * and with the following additions to the disclaimer: * @@ -273,17 +271,18 @@ * the user. * * libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are - * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson, and are - * distributed according to the same disclaimer and license as libpng-0.96, - * with the following individuals added to the list of Contributing Authors: + * Copyright (c) 1998-2000 Glenn Randers-Pehrson, and are distributed according + * to the same disclaimer and license as libpng-0.96, with the following + * individuals added to the list of Contributing Authors: * * Tom Lane * Glenn Randers-Pehrson + * Eric S. Raymond * Willem van Schaik * * libpng versions 0.89, June 1996, through 0.96, May 1997, are - * Copyright (c) 1996, 1997 Andreas Dilger - * Distributed according to the same disclaimer and license as libpng-0.88, + * Copyright (c) 1996-1997 Andreas Dilger, and are + * distributed according to the same disclaimer and license as libpng-0.88, * with the following individuals added to the list of Contributing Authors: * * John Bowler @@ -294,7 +293,7 @@ * Tom Tanner * * libpng versions 0.5, May 1995, through 0.88, January 1996, are - * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. + * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. * * For the purposes of this copyright and license, "Contributing Authors" * is defined as the following set of individuals: @@ -322,8 +321,8 @@ * 2. Altered versions must be plainly marked as such and must not * be misrepresented as being the original source. * - * 3. This Copyright notice may not be removed or altered from - * any source or altered source distribution. + * 3. This Copyright notice may not be removed or altered from any + * source or altered source distribution. * * The Contributing Authors and Group 42, Inc. specifically permit, without * fee, and encourage the use of this source code as a component to @@ -336,15 +335,16 @@ * A "png_get_copyright" function is available, for convenient use in "about" * boxes and the like: * - * printf("%s", png_get_copyright(NULL)); + * printf("%s", png_get_copyright(NULL)); * * Also, the PNG logo (in PNG format, of course) is supplied in the * files "pngbar.png" and "pngbar.jpg (88x31) and "pngnow.png" (98x31). */ /* - * Libpng is OSI Certified Open Source Software. OSI Certified is a - * certification mark of the Open Source Initiative. + * Libpng is OSI Certified Open Source Software. OSI Certified Open Source is + * a certification mark of the Open Source Initiative. OSI has not addressed + * the additional disclaimers inserted at version 1.0.7. */ /* @@ -359,13 +359,13 @@ * Y2K compliance in libpng: * ========================= * - * March 26, 2015 + * July 23, 2015 * * Since the PNG Development group is an ad-hoc body, we can't make * an official declaration. * * This is your unofficial assurance that libpng from version 0.71 and - * upward through 1.6.17 are Y2K compliant. It is my belief that + * upward through 1.6.18 are Y2K compliant. It is my belief that * earlier versions were also Y2K compliant. * * Libpng only has two year fields. One is a 2-byte unsigned integer @@ -427,9 +427,9 @@ */ /* Version information for png.h - this should match the version in png.c */ -#define PNG_LIBPNG_VER_STRING "1.6.17" +#define PNG_LIBPNG_VER_STRING "1.6.18" #define PNG_HEADER_VERSION_STRING \ - " libpng version 1.6.17 - March 26, 2015\n" + " libpng version 1.6.18 - July 23, 2015\n" #define PNG_LIBPNG_VER_SONUM 16 #define PNG_LIBPNG_VER_DLLNUM 16 @@ -437,7 +437,7 @@ /* These should match the first 3 components of PNG_LIBPNG_VER_STRING: */ #define PNG_LIBPNG_VER_MAJOR 1 #define PNG_LIBPNG_VER_MINOR 6 -#define PNG_LIBPNG_VER_RELEASE 17 +#define PNG_LIBPNG_VER_RELEASE 18 /* This should match the numeric part of the final component of * PNG_LIBPNG_VER_STRING, omitting any leading zero: @@ -468,7 +468,7 @@ * version 1.0.0 was mis-numbered 100 instead of 10000). From * version 1.0.1 it's xxyyzz, where x=major, y=minor, z=release */ -#define PNG_LIBPNG_VER 10617 /* 1.6.17 */ +#define PNG_LIBPNG_VER 10618 /* 1.6.18 */ /* Library configuration: these options cannot be changed after * the library has been built. @@ -573,7 +573,7 @@ extern "C" { /* This triggers a compiler error in png.c, if png.c and png.h * do not agree upon the version number. */ -typedef char* png_libpng_version_1_6_17; +typedef char* png_libpng_version_1_6_18; /* Basic control structions. Read libpng-manual.txt or libpng.3 for more info. * @@ -1623,35 +1623,7 @@ PNG_EXPORT(67, void, png_set_filter, (png_structrp png_ptr, int method, #define PNG_FILTER_VALUE_LAST 5 #ifdef PNG_WRITE_SUPPORTED -#ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED /* EXPERIMENTAL */ -/* The "heuristic_method" is given by one of the PNG_FILTER_HEURISTIC_ - * defines, either the default (minimum-sum-of-absolute-differences), or - * the experimental method (weighted-minimum-sum-of-absolute-differences). - * - * Weights are factors >= 1.0, indicating how important it is to keep the - * filter type consistent between rows. Larger numbers mean the current - * filter is that many times as likely to be the same as the "num_weights" - * previous filters. This is cumulative for each previous row with a weight. - * There needs to be "num_weights" values in "filter_weights", or it can be - * NULL if the weights aren't being specified. Weights have no influence on - * the selection of the first row filter. Well chosen weights can (in theory) - * improve the compression for a given image. - * - * Costs are factors >= 1.0 indicating the relative decoding costs of a - * filter type. Higher costs indicate more decoding expense, and are - * therefore less likely to be selected over a filter with lower computational - * costs. There needs to be a value in "filter_costs" for each valid filter - * type (given by PNG_FILTER_VALUE_LAST), or it can be NULL if you aren't - * setting the costs. Costs try to improve the speed of decompression without - * unduly increasing the compressed image size. - * - * A negative weight or cost indicates the default value is to be used, and - * values in the range [0.0, 1.0) indicate the value is to remain unchanged. - * The default values for both weights and costs are currently 1.0, but may - * change if good general weighting/cost heuristics can be found. If both - * the weights and costs are set to 1.0, this degenerates the WEIGHTED method - * to the UNWEIGHTED method, but with added encoding time/computation. - */ +#ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED /* DEPRECATED */ PNG_FP_EXPORT(68, void, png_set_filter_heuristics, (png_structrp png_ptr, int heuristic_method, int num_weights, png_const_doublep filter_weights, png_const_doublep filter_costs)) @@ -1661,9 +1633,7 @@ PNG_FIXED_EXPORT(209, void, png_set_filter_heuristics_fixed, png_const_fixed_point_p filter_costs)) #endif /* WRITE_WEIGHTED_FILTER */ -/* Heuristic used for row filter selection. These defines should NOT be - * changed. - */ +/* The following are no longer used and will be removed from libpng-1.7: */ #define PNG_FILTER_HEURISTIC_DEFAULT 0 /* Currently "UNWEIGHTED" */ #define PNG_FILTER_HEURISTIC_UNWEIGHTED 1 /* Used by libpng < 0.95 */ #define PNG_FILTER_HEURISTIC_WEIGHTED 2 /* Experimental feature */ @@ -2783,8 +2753,9 @@ PNG_EXPORT(207, void, png_save_uint_16, (png_bytep buf, unsigned int i)); * * To read a PNG file using the simplified API: * - * 1) Declare a 'png_image' structure (see below) on the stack and set the - * version field to PNG_IMAGE_VERSION. + * 1) Declare a 'png_image' structure (see below) on the stack, set the + * version field to PNG_IMAGE_VERSION and the 'opaque' pointer to NULL + * (this is REQUIRED, your program may crash if you don't do it.) * 2) Call the appropriate png_image_begin_read... function. * 3) Set the png_image 'format' member to the required sample format. * 4) Allocate a buffer for the image and, if required, the color-map. @@ -3209,9 +3180,11 @@ PNG_EXPORT(240, int, png_image_write_to_stdio, (png_imagep image, FILE *file, * * With all APIs row_stride is handled as in the read APIs - it is the spacing * from one row to the next in component sized units (1 or 2 bytes) and if - * negative indicates a bottom-up row layout in the buffer. + * negative indicates a bottom-up row layout in the buffer. If row_stride is zero, + * libpng will calculate it for you from the image width and number of channels. * - * Note that the write API does not support interlacing or sub-8-bit pixels. + * Note that the write API does not support interlacing, sub-8-bit pixels, indexed + * PNG (color_type 3) or most ancillary chunks. */ #endif /* STDIO */ #endif /* SIMPLIFIED_WRITE */ diff --git a/Build/source/libs/libpng/libpng-1.6.17/pngbar.jpg b/Build/source/libs/libpng/libpng-1.6.18/pngbar.jpg Binary files differindex 70ba8d817ce..70ba8d817ce 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/pngbar.jpg +++ b/Build/source/libs/libpng/libpng-1.6.18/pngbar.jpg diff --git a/Build/source/libs/libpng/libpng-1.6.17/pngbar.png b/Build/source/libs/libpng/libpng-1.6.18/pngbar.png Binary files differindex 49798c8ed95..49798c8ed95 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/pngbar.png +++ b/Build/source/libs/libpng/libpng-1.6.18/pngbar.png diff --git a/Build/source/libs/libpng/libpng-1.6.17/pngconf.h b/Build/source/libs/libpng/libpng-1.6.18/pngconf.h index 3f9493e4384..62e37cf2b5a 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/pngconf.h +++ b/Build/source/libs/libpng/libpng-1.6.18/pngconf.h @@ -1,7 +1,7 @@ /* pngconf.h - machine configurable file for libpng * - * libpng version 1.6.17, March 26, 2015 + * libpng version 1.6.18, July 23, 2015 * * Copyright (c) 1998-2015 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) @@ -295,11 +295,11 @@ * table entries, so we discard it here. See the .dfn files in the * scripts directory. */ -#ifndef PNG_EXPORTA -# define PNG_EXPORTA(ordinal, type, name, args, attributes)\ - PNG_FUNCTION(PNG_EXPORT_TYPE(type),(PNGAPI name),PNGARG(args), \ - extern attributes) +#ifndef PNG_EXPORTA +# define PNG_EXPORTA(ordinal, type, name, args, attributes) \ + PNG_FUNCTION(PNG_EXPORT_TYPE(type), (PNGAPI name), PNGARG(args), \ + PNG_LINKAGE_API attributes) #endif /* ANSI-C (C90) does not permit a macro to be invoked with an empty argument, @@ -307,7 +307,7 @@ */ #define PNG_EMPTY /*empty list*/ -#define PNG_EXPORT(ordinal, type, name, args)\ +#define PNG_EXPORT(ordinal, type, name, args) \ PNG_EXPORTA(ordinal, type, name, args, PNG_EMPTY) /* Use PNG_REMOVED to comment out a removed interface. */ diff --git a/Build/source/libs/libpng/libpng-1.6.17/pngdebug.h b/Build/source/libs/libpng/libpng-1.6.18/pngdebug.h index 6a01b106ede..6a01b106ede 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/pngdebug.h +++ b/Build/source/libs/libpng/libpng-1.6.18/pngdebug.h diff --git a/Build/source/libs/libpng/libpng-1.6.17/pngerror.c b/Build/source/libs/libpng/libpng-1.6.18/pngerror.c index 0781866a893..0781866a893 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/pngerror.c +++ b/Build/source/libs/libpng/libpng-1.6.18/pngerror.c diff --git a/Build/source/libs/libpng/libpng-1.6.17/pngget.c b/Build/source/libs/libpng/libpng-1.6.18/pngget.c index 743a6a9bbcc..743a6a9bbcc 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/pngget.c +++ b/Build/source/libs/libpng/libpng-1.6.18/pngget.c diff --git a/Build/source/libs/libpng/libpng-1.6.17/pnginfo.h b/Build/source/libs/libpng/libpng-1.6.18/pnginfo.h index c8c874dd1ea..c8c874dd1ea 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/pnginfo.h +++ b/Build/source/libs/libpng/libpng-1.6.18/pnginfo.h diff --git a/Build/source/libs/libpng/libpng-1.6.17/pnglibconf.h b/Build/source/libs/libpng/libpng-1.6.18/pnglibconf.h index b4ec3c31e8a..2719f0098d1 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/pnglibconf.h +++ b/Build/source/libs/libpng/libpng-1.6.18/pnglibconf.h @@ -1,8 +1,8 @@ -/* libpng 1.6.17 STANDARD API DEFINITION */ +/* libpng 1.6.18 STANDARD API DEFINITION */ /* pnglibconf.h - library build configuration */ -/* Libpng version 1.6.17 - March 26, 2015 */ +/* Libpng version 1.6.18 - July 23, 2015 */ /* Copyright (c) 1998-2014 Glenn Randers-Pehrson */ @@ -101,8 +101,6 @@ #define PNG_SAVE_UNKNOWN_CHUNKS_SUPPORTED #define PNG_SEQUENTIAL_READ_SUPPORTED #define PNG_SETJMP_SUPPORTED -#define PNG_SET_CHUNK_CACHE_LIMIT_SUPPORTED -#define PNG_SET_CHUNK_MALLOC_LIMIT_SUPPORTED #define PNG_SET_OPTION_SUPPORTED #define PNG_SET_UNKNOWN_CHUNKS_SUPPORTED #define PNG_SET_USER_LIMITS_SUPPORTED @@ -192,6 +190,10 @@ #define PNG_GAMMA_THRESHOLD_FIXED 5000 #define PNG_IDAT_READ_SIZE PNG_ZBUF_SIZE #define PNG_INFLATE_BUF_SIZE 1024 +#define PNG_LINKAGE_API extern +#define PNG_LINKAGE_CALLBACK extern +#define PNG_LINKAGE_DATA extern +#define PNG_LINKAGE_FUNCTION extern #define PNG_MAX_GAMMA_8 11 #define PNG_QUANTIZE_BLUE_BITS 5 #define PNG_QUANTIZE_GREEN_BITS 5 diff --git a/Build/source/libs/libpng/libpng-1.6.17/pngmem.c b/Build/source/libs/libpng/libpng-1.6.18/pngmem.c index 8b157e54d2a..45ac5579b21 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/pngmem.c +++ b/Build/source/libs/libpng/libpng-1.6.18/pngmem.c @@ -77,6 +77,9 @@ png_malloc_base,(png_const_structrp png_ptr, png_alloc_size_t size), PNG_UNUSED(png_ptr) #endif + /* Some compilers complain that this is always true. However, it + * can be false when integer overflow happens. + */ if (size > 0 && size <= PNG_SIZE_MAX # ifdef PNG_MAX_MALLOC_64K && size <= 65536U diff --git a/Build/source/libs/libpng/libpng-1.6.17/pngnow.png b/Build/source/libs/libpng/libpng-1.6.18/pngnow.png Binary files differindex 82793ebddb7..82793ebddb7 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/pngnow.png +++ b/Build/source/libs/libpng/libpng-1.6.18/pngnow.png diff --git a/Build/source/libs/libpng/libpng-1.6.17/pngpread.c b/Build/source/libs/libpng/libpng-1.6.18/pngpread.c index 823dcad8c00..2d4a86269f6 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/pngpread.c +++ b/Build/source/libs/libpng/libpng-1.6.18/pngpread.c @@ -1,7 +1,7 @@ /* pngpread.c - read a png file in push mode * - * Last changed in libpng 1.6.17 [March 26, 2015] + * Last changed in libpng 1.6.18 [July 23, 2015] * Copyright (c) 1998-2015 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) @@ -19,7 +19,6 @@ #define PNG_READ_SIG_MODE 0 #define PNG_READ_CHUNK_MODE 1 #define PNG_READ_IDAT_MODE 2 -#define PNG_SKIP_MODE 3 #define PNG_READ_tEXt_MODE 4 #define PNG_READ_zTXt_MODE 5 #define PNG_READ_DONE_MODE 6 @@ -78,32 +77,14 @@ png_process_data_pause(png_structrp png_ptr, int save) png_uint_32 PNGAPI png_process_data_skip(png_structrp png_ptr) { - png_uint_32 remaining = 0; - - if (png_ptr != NULL && png_ptr->process_mode == PNG_SKIP_MODE && - png_ptr->skip_length > 0) - { - /* At the end of png_process_data the buffer size must be 0 (see the loop - * above) so we can detect a broken call here: - */ - if (png_ptr->buffer_size != 0) - png_error(png_ptr, - "png_process_data_skip called inside png_process_data"); - - /* If is impossible for there to be a saved buffer at this point - - * otherwise we could not be in SKIP mode. This will also happen if - * png_process_skip is called inside png_process_data (but only very - * rarely.) - */ - if (png_ptr->save_buffer_size != 0) - png_error(png_ptr, "png_process_data_skip called with saved data"); - - remaining = png_ptr->skip_length; - png_ptr->skip_length = 0; - png_ptr->process_mode = PNG_READ_CHUNK_MODE; - } - - return remaining; + /* TODO: Deprecate and remove this API. + * Somewhere the implementation of this seems to have been lost, + * or abandoned. It was only to support some internal back-door access + * to png_struct) in libpng-1.4.x. + */ + png_app_warning(png_ptr, +"png_process_data_skip is not implemented in any current version of libpng"); + return 0; } /* What we do with the incoming data depends on what we were previously @@ -135,12 +116,6 @@ png_process_some_data(png_structrp png_ptr, png_inforp info_ptr) break; } - case PNG_SKIP_MODE: - { - png_push_crc_finish(png_ptr); - break; - } - default: { png_ptr->buffer_size = 0; @@ -159,7 +134,7 @@ void /* PRIVATE */ png_push_read_sig(png_structrp png_ptr, png_inforp info_ptr) { png_size_t num_checked = png_ptr->sig_bytes, /* SAFE, does not exceed 8 */ - num_to_check = 8 - num_checked; + num_to_check = 8 - num_checked; if (png_ptr->buffer_size < num_to_check) { @@ -439,69 +414,6 @@ png_push_read_chunk(png_structrp png_ptr, png_inforp info_ptr) png_ptr->mode &= ~PNG_HAVE_CHUNK_HEADER; } -void /* PRIVATE */ -png_push_crc_skip(png_structrp png_ptr, png_uint_32 skip) -{ - png_ptr->process_mode = PNG_SKIP_MODE; - png_ptr->skip_length = skip; -} - -void /* PRIVATE */ -png_push_crc_finish(png_structrp png_ptr) -{ - if (png_ptr->skip_length != 0 && png_ptr->save_buffer_size != 0) - { - png_size_t save_size = png_ptr->save_buffer_size; - png_uint_32 skip_length = png_ptr->skip_length; - - /* We want the smaller of 'skip_length' and 'save_buffer_size', but - * they are of different types and we don't know which variable has the - * fewest bits. Carefully select the smaller and cast it to the type of - * the larger - this cannot overflow. Do not cast in the following test - * - it will break on either 16 or 64 bit platforms. - */ - if (skip_length < save_size) - save_size = (png_size_t)skip_length; - - else - skip_length = (png_uint_32)save_size; - - png_calculate_crc(png_ptr, png_ptr->save_buffer_ptr, save_size); - - png_ptr->skip_length -= skip_length; - png_ptr->buffer_size -= save_size; - png_ptr->save_buffer_size -= save_size; - png_ptr->save_buffer_ptr += save_size; - } - if (png_ptr->skip_length != 0 && png_ptr->current_buffer_size != 0) - { - png_size_t save_size = png_ptr->current_buffer_size; - png_uint_32 skip_length = png_ptr->skip_length; - - /* We want the smaller of 'skip_length' and 'current_buffer_size', here, - * the same problem exists as above and the same solution. - */ - if (skip_length < save_size) - save_size = (png_size_t)skip_length; - - else - skip_length = (png_uint_32)save_size; - - png_calculate_crc(png_ptr, png_ptr->current_buffer_ptr, save_size); - - png_ptr->skip_length -= skip_length; - png_ptr->buffer_size -= save_size; - png_ptr->current_buffer_size -= save_size; - png_ptr->current_buffer_ptr += save_size; - } - if (png_ptr->skip_length == 0) - { - PNG_PUSH_SAVE_BUFFER_IF_LT(4) - png_crc_finish(png_ptr, 0); - png_ptr->process_mode = PNG_READ_CHUNK_MODE; - } -} - void PNGCBAPI png_push_fill_buffer(png_structp png_ptr, png_bytep buffer, png_size_t length) { @@ -584,13 +496,11 @@ png_push_save_buffer(png_structrp png_ptr) if (png_ptr->save_buffer == NULL) { png_free(png_ptr, old_buffer); - old_buffer = NULL; png_error(png_ptr, "Insufficient memory for save_buffer"); } memcpy(png_ptr->save_buffer, old_buffer, png_ptr->save_buffer_size); png_free(png_ptr, old_buffer); - old_buffer = NULL; png_ptr->save_buffer_max = new_max; } if (png_ptr->current_buffer_size) @@ -696,6 +606,7 @@ png_push_read_IDAT(png_structrp png_ptr) png_ptr->current_buffer_size -= save_size; png_ptr->current_buffer_ptr += save_size; } + if (png_ptr->idat_size == 0) { PNG_PUSH_SAVE_BUFFER_IF_LT(4) diff --git a/Build/source/libs/libpng/libpng-1.6.17/pngpriv.h b/Build/source/libs/libpng/libpng-1.6.18/pngpriv.h index 5980a3fc3c8..1997503284e 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/pngpriv.h +++ b/Build/source/libs/libpng/libpng-1.6.18/pngpriv.h @@ -1,7 +1,7 @@ /* pngpriv.h - private declarations for use inside libpng * - * Last changed in libpng 1.6.17 [March 26, 2015] + * Last changed in libpng 1.6.18 [July 23, 2015] * Copyright (c) 1998-2015 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) @@ -118,8 +118,12 @@ * to compile with an appropriate #error if ALIGNED_MEMORY has been turned * off. * - * Note that gcc-4.9 defines __ARM_NEON instead of __ARM_NEON__, so we - * check both variants. + * Note that gcc-4.9 defines __ARM_NEON instead of the deprecated + * __ARM_NEON__, so we check both variants. + * + * To disable ARM_NEON optimizations entirely, and skip compiling the + * associated assembler code, pass --enable-arm-neon=no to configure + * or put -DPNG_ARM_NEON_OPT=0 in CPPFLAGS. */ # if (defined(__ARM_NEON__) || defined(__ARM_NEON)) && \ defined(PNG_ALIGNED_MEMORY_SUPPORTED) @@ -248,17 +252,18 @@ * always be used to declare an extern data or function object in this file. */ #ifndef PNG_INTERNAL_DATA -# define PNG_INTERNAL_DATA(type, name, array) extern type name array +# define PNG_INTERNAL_DATA(type, name, array) PNG_LINKAGE_DATA type name array #endif #ifndef PNG_INTERNAL_FUNCTION # define PNG_INTERNAL_FUNCTION(type, name, args, attributes)\ - extern PNG_FUNCTION(type, name, args, PNG_EMPTY attributes) + PNG_LINKAGE_FUNCTION PNG_FUNCTION(type, name, args, PNG_EMPTY attributes) #endif #ifndef PNG_INTERNAL_CALLBACK # define PNG_INTERNAL_CALLBACK(type, name, args, attributes)\ - extern PNG_FUNCTION(type, (PNGCBAPI name), args, PNG_EMPTY attributes) + PNG_LINKAGE_CALLBACK PNG_FUNCTION(type, (PNGCBAPI name), args,\ + PNG_EMPTY attributes) #endif /* If floating or fixed point APIs are disabled they may still be compiled @@ -296,6 +301,22 @@ # define PNG_DLL_EXPORT #endif +/* This is a global switch to set the compilation for an installed system + * (a release build). It can be set for testing debug builds to ensure that + * they will compile when the build type is switched to RC or STABLE, the + * default is just to use PNG_LIBPNG_BUILD_BASE_TYPE. Set this in CPPFLAGS + * with either: + * + * -DPNG_RELEASE_BUILD Turns on the release compile path + * -DPNG_RELEASE_BUILD=0 Turns it off + * or in your pngusr.h with + * #define PNG_RELEASE_BUILD=1 Turns on the release compile path + * #define PNG_RELEASE_BUILD=0 Turns it off + */ +#ifndef PNG_RELEASE_BUILD +# define PNG_RELEASE_BUILD (PNG_LIBPNG_BUILD_BASE_TYPE >= PNG_LIBPNG_BUILD_RC) +#endif + /* SECURITY and SAFETY: * * libpng is built with support for internal limits on image dimensions and @@ -1372,10 +1393,6 @@ PNG_INTERNAL_FUNCTION(void,png_push_read_chunk,(png_structrp png_ptr, PNG_INTERNAL_FUNCTION(void,png_push_read_sig,(png_structrp png_ptr, png_inforp info_ptr),PNG_EMPTY); PNG_INTERNAL_FUNCTION(void,png_push_check_crc,(png_structrp png_ptr),PNG_EMPTY); -PNG_INTERNAL_FUNCTION(void,png_push_crc_skip,(png_structrp png_ptr, - png_uint_32 length),PNG_EMPTY); -PNG_INTERNAL_FUNCTION(void,png_push_crc_finish,(png_structrp png_ptr), - PNG_EMPTY); PNG_INTERNAL_FUNCTION(void,png_push_save_buffer,(png_structrp png_ptr), PNG_EMPTY); PNG_INTERNAL_FUNCTION(void,png_push_restore_buffer,(png_structrp png_ptr, diff --git a/Build/source/libs/libpng/libpng-1.6.17/pngread.c b/Build/source/libs/libpng/libpng-1.6.18/pngread.c index 6764dbe5618..e88151c20bb 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/pngread.c +++ b/Build/source/libs/libpng/libpng-1.6.18/pngread.c @@ -63,7 +63,7 @@ png_create_read_struct_2,(png_const_charp user_png_ver, png_voidp error_ptr, /* In stable builds only warn if an application error can be completely * handled. */ -# if PNG_LIBPNG_BUILD_BASE_TYPE >= PNG_LIBPNG_BUILD_RC +# if PNG_RELEASE_BUILD png_ptr->flags |= PNG_FLAG_APP_WARNINGS_WARN; # endif # endif @@ -1043,9 +1043,9 @@ png_read_png(png_structrp png_ptr, png_inforp info_ptr, /* Tell libpng to strip 16-bit/color files down to 8 bits per color. */ if ((transforms & PNG_TRANSFORM_SCALE_16) != 0) - /* Added at libpng-1.5.4. "strip_16" produces the same result that it - * did in earlier versions, while "scale_16" is now more accurate. - */ + /* Added at libpng-1.5.4. "strip_16" produces the same result that it + * did in earlier versions, while "scale_16" is now more accurate. + */ #ifdef PNG_READ_SCALE_16_TO_8_SUPPORTED png_set_scale_16(png_ptr); #else @@ -1209,7 +1209,7 @@ png_read_png(png_structrp png_ptr, png_inforp info_ptr, for (iptr = 0; iptr < info_ptr->height; iptr++) info_ptr->row_pointers[iptr] = png_voidcast(png_bytep, - png_malloc(png_ptr, info_ptr->rowbytes)); + png_malloc(png_ptr, info_ptr->rowbytes)); } png_read_image(png_ptr, info_ptr->row_pointers); diff --git a/Build/source/libs/libpng/libpng-1.6.17/pngrio.c b/Build/source/libs/libpng/libpng-1.6.18/pngrio.c index bb5c825109c..bb5c825109c 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/pngrio.c +++ b/Build/source/libs/libpng/libpng-1.6.18/pngrio.c diff --git a/Build/source/libs/libpng/libpng-1.6.17/pngrtran.c b/Build/source/libs/libpng/libpng-1.6.18/pngrtran.c index cad7a8daa59..4c84d30f27e 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/pngrtran.c +++ b/Build/source/libs/libpng/libpng-1.6.18/pngrtran.c @@ -1,7 +1,7 @@ /* pngrtran.c - transforms the data in a row for PNG readers * - * Last changed in libpng 1.6.17 [March 26, 2015] + * Last changed in libpng 1.6.18 [July 23, 2015] * Copyright (c) 1998-2015 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) @@ -4460,7 +4460,7 @@ png_do_expand(png_row_infop row_info, png_bytep row, for (i = 0; i < row_width; i++) { - if (*sp == gray) + if ((*sp & 0xffU) == gray) *dp-- = 0; else @@ -4478,7 +4478,8 @@ png_do_expand(png_row_infop row_info, png_bytep row, dp = row + (row_info->rowbytes << 1) - 1; for (i = 0; i < row_width; i++) { - if (*(sp - 1) == gray_high && *(sp) == gray_low) + if ((*(sp - 1) & 0xffU) == gray_high && + (*(sp) & 0xffU) == gray_low) { *dp-- = 0; *dp-- = 0; diff --git a/Build/source/libs/libpng/libpng-1.6.17/pngrutil.c b/Build/source/libs/libpng/libpng-1.6.18/pngrutil.c index 6c5c37526bc..8f8edbc5807 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/pngrutil.c +++ b/Build/source/libs/libpng/libpng-1.6.18/pngrutil.c @@ -1,7 +1,7 @@ /* pngrutil.c - utilities to read a PNG file * - * Last changed in libpng 1.6.17 [March 26, 2015] + * Last changed in libpng 1.6.18 [July 23, 2015] * Copyright (c) 1998-2015 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) @@ -341,7 +341,7 @@ png_inflate_claim(png_structrp png_ptr, png_uint_32 owner) * are minimal. */ (void)png_safecat(msg, (sizeof msg), 4, " using zstream"); -#if PNG_LIBPNG_BUILD_BASE_TYPE >= PNG_LIBPNG_BUILD_RC +#if PNG_RELEASE_BUILD png_chunk_warning(png_ptr, msg); png_ptr->zowner = 0; #else @@ -575,7 +575,7 @@ png_decompress_chunk(png_structrp png_ptr, */ png_alloc_size_t limit = PNG_SIZE_MAX; -# ifdef PNG_SET_CHUNK_MALLOC_LIMIT_SUPPORTED +# ifdef PNG_SET_USER_LIMITS_SUPPORTED if (png_ptr->user_chunk_malloc_max > 0 && png_ptr->user_chunk_malloc_max < limit) limit = png_ptr->user_chunk_malloc_max; @@ -670,7 +670,6 @@ png_decompress_chunk(png_structrp png_ptr, * success) */ png_free(png_ptr, text); - text = NULL; /* This really is very benign, but it's still an error because * the extra space may otherwise be used as a Trojan Horse. @@ -1147,11 +1146,13 @@ png_handle_sBIT(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length) return; for (i=0; i<truelen; ++i) + { if (buf[i] == 0 || buf[i] > sample_depth) { png_chunk_benign_error(png_ptr, "invalid"); return; } + } if ((png_ptr->color_type & PNG_COLOR_MASK_COLOR) != 0) { @@ -1462,10 +1463,10 @@ png_handle_iCCP(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length) finished = 1; # ifdef PNG_sRGB_SUPPORTED - /* Check for a match against sRGB */ - png_icc_set_sRGB(png_ptr, - &png_ptr->colorspace, profile, - png_ptr->zstream.adler); + /* Check for a match against sRGB */ + png_icc_set_sRGB(png_ptr, + &png_ptr->colorspace, profile, + png_ptr->zstream.adler); # endif /* Steal the profile for info_ptr. */ @@ -1675,8 +1676,8 @@ png_handle_sPLT(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length) if (dl > max_dl) { - png_warning(png_ptr, "sPLT chunk too long"); - return; + png_warning(png_ptr, "sPLT chunk too long"); + return; } new_palette.nentries = (png_int_32)(data_length / entry_size); @@ -1686,8 +1687,8 @@ png_handle_sPLT(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length) if (new_palette.entries == NULL) { - png_warning(png_ptr, "sPLT chunk requires too much memory"); - return; + png_warning(png_ptr, "sPLT chunk requires too much memory"); + return; } #ifdef PNG_POINTER_INDEXING_SUPPORTED @@ -1817,7 +1818,8 @@ png_handle_tRNS(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length) return; } - if (length > png_ptr->num_palette || length > PNG_MAX_PALETTE_LENGTH || + if (length > png_ptr->num_palette || + length > (unsigned int) PNG_MAX_PALETTE_LENGTH || length == 0) { png_crc_finish(png_ptr, length); @@ -1980,7 +1982,7 @@ png_handle_hIST(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length) num = length / 2 ; - if (num != png_ptr->num_palette || num > PNG_MAX_PALETTE_LENGTH) + if (num != png_ptr->num_palette || num > (unsigned int) PNG_MAX_PALETTE_LENGTH) { png_crc_finish(png_ptr, length); png_chunk_benign_error(png_ptr, "invalid"); @@ -2715,14 +2717,14 @@ png_cache_unknown_chunk(png_structrp png_ptr, png_uint_32 length) png_ptr->unknown_chunk.data = NULL; } -# ifdef PNG_SET_CHUNK_MALLOC_LIMIT_SUPPORTED - if (png_ptr->user_chunk_malloc_max > 0 && - png_ptr->user_chunk_malloc_max < limit) - limit = png_ptr->user_chunk_malloc_max; +# ifdef PNG_SET_USER_LIMITS_SUPPORTED + if (png_ptr->user_chunk_malloc_max > 0 && + png_ptr->user_chunk_malloc_max < limit) + limit = png_ptr->user_chunk_malloc_max; # elif PNG_USER_CHUNK_MALLOC_MAX > 0 - if (PNG_USER_CHUNK_MALLOC_MAX < limit) - limit = PNG_USER_CHUNK_MALLOC_MAX; + if (PNG_USER_CHUNK_MALLOC_MAX < limit) + limit = PNG_USER_CHUNK_MALLOC_MAX; # endif if (length <= limit) @@ -2785,7 +2787,7 @@ png_handle_unknown(png_structrp png_ptr, png_inforp info_ptr, */ # ifndef PNG_HANDLE_AS_UNKNOWN_SUPPORTED # ifdef PNG_SET_UNKNOWN_CHUNKS_SUPPORTED - keep = png_chunk_unknown_handling(png_ptr, png_ptr->chunk_name); + keep = png_chunk_unknown_handling(png_ptr, png_ptr->chunk_name); # endif # endif @@ -2794,153 +2796,153 @@ png_handle_unknown(png_structrp png_ptr, png_inforp info_ptr, * PNG_READ_UNKNOWN_CHUNKS_SUPPORTED) */ # ifdef PNG_READ_USER_CHUNKS_SUPPORTED - /* The user callback takes precedence over the chunk keep value, but the - * keep value is still required to validate a save of a critical chunk. - */ - if (png_ptr->read_user_chunk_fn != NULL) + /* The user callback takes precedence over the chunk keep value, but the + * keep value is still required to validate a save of a critical chunk. + */ + if (png_ptr->read_user_chunk_fn != NULL) + { + if (png_cache_unknown_chunk(png_ptr, length) != 0) { - if (png_cache_unknown_chunk(png_ptr, length) != 0) + /* Callback to user unknown chunk handler */ + int ret = (*(png_ptr->read_user_chunk_fn))(png_ptr, + &png_ptr->unknown_chunk); + + /* ret is: + * negative: An error occurred; png_chunk_error will be called. + * zero: The chunk was not handled, the chunk will be discarded + * unless png_set_keep_unknown_chunks has been used to set + * a 'keep' behavior for this particular chunk, in which + * case that will be used. A critical chunk will cause an + * error at this point unless it is to be saved. + * positive: The chunk was handled, libpng will ignore/discard it. + */ + if (ret < 0) + png_chunk_error(png_ptr, "error in user chunk"); + + else if (ret == 0) { - /* Callback to user unknown chunk handler */ - int ret = (*(png_ptr->read_user_chunk_fn))(png_ptr, - &png_ptr->unknown_chunk); - - /* ret is: - * negative: An error occurred; png_chunk_error will be called. - * zero: The chunk was not handled, the chunk will be discarded - * unless png_set_keep_unknown_chunks has been used to set - * a 'keep' behavior for this particular chunk, in which - * case that will be used. A critical chunk will cause an - * error at this point unless it is to be saved. - * positive: The chunk was handled, libpng will ignore/discard it. + /* If the keep value is 'default' or 'never' override it, but + * still error out on critical chunks unless the keep value is + * 'always' While this is weird it is the behavior in 1.4.12. + * A possible improvement would be to obey the value set for the + * chunk, but this would be an API change that would probably + * damage some applications. + * + * The png_app_warning below catches the case that matters, where + * the application has not set specific save or ignore for this + * chunk or global save or ignore. */ - if (ret < 0) - png_chunk_error(png_ptr, "error in user chunk"); - - else if (ret == 0) + if (keep < PNG_HANDLE_CHUNK_IF_SAFE) { - /* If the keep value is 'default' or 'never' override it, but - * still error out on critical chunks unless the keep value is - * 'always' While this is weird it is the behavior in 1.4.12. - * A possible improvement would be to obey the value set for the - * chunk, but this would be an API change that would probably - * damage some applications. - * - * The png_app_warning below catches the case that matters, where - * the application has not set specific save or ignore for this - * chunk or global save or ignore. - */ - if (keep < PNG_HANDLE_CHUNK_IF_SAFE) +# ifdef PNG_SET_UNKNOWN_CHUNKS_SUPPORTED + if (png_ptr->unknown_default < PNG_HANDLE_CHUNK_IF_SAFE) { -# ifdef PNG_SET_UNKNOWN_CHUNKS_SUPPORTED - if (png_ptr->unknown_default < PNG_HANDLE_CHUNK_IF_SAFE) - { - png_chunk_warning(png_ptr, "Saving unknown chunk:"); - png_app_warning(png_ptr, - "forcing save of an unhandled chunk;" - " please call png_set_keep_unknown_chunks"); - /* with keep = PNG_HANDLE_CHUNK_IF_SAFE */ - } -# endif - keep = PNG_HANDLE_CHUNK_IF_SAFE; + png_chunk_warning(png_ptr, "Saving unknown chunk:"); + png_app_warning(png_ptr, + "forcing save of an unhandled chunk;" + " please call png_set_keep_unknown_chunks"); + /* with keep = PNG_HANDLE_CHUNK_IF_SAFE */ } - } - - else /* chunk was handled */ - { - handled = 1; - /* Critical chunks can be safely discarded at this point. */ - keep = PNG_HANDLE_CHUNK_NEVER; +# endif + keep = PNG_HANDLE_CHUNK_IF_SAFE; } } - else - keep = PNG_HANDLE_CHUNK_NEVER; /* insufficient memory */ + else /* chunk was handled */ + { + handled = 1; + /* Critical chunks can be safely discarded at this point. */ + keep = PNG_HANDLE_CHUNK_NEVER; + } } else - /* Use the SAVE_UNKNOWN_CHUNKS code or skip the chunk */ + keep = PNG_HANDLE_CHUNK_NEVER; /* insufficient memory */ + } + + else + /* Use the SAVE_UNKNOWN_CHUNKS code or skip the chunk */ # endif /* READ_USER_CHUNKS */ # ifdef PNG_SAVE_UNKNOWN_CHUNKS_SUPPORTED - { - /* keep is currently just the per-chunk setting, if there was no - * setting change it to the global default now (not that this may - * still be AS_DEFAULT) then obtain the cache of the chunk if required, - * if not simply skip the chunk. - */ - if (keep == PNG_HANDLE_CHUNK_AS_DEFAULT) - keep = png_ptr->unknown_default; - - if (keep == PNG_HANDLE_CHUNK_ALWAYS || - (keep == PNG_HANDLE_CHUNK_IF_SAFE && - PNG_CHUNK_ANCILLARY(png_ptr->chunk_name))) - { - if (png_cache_unknown_chunk(png_ptr, length) == 0) - keep = PNG_HANDLE_CHUNK_NEVER; - } + { + /* keep is currently just the per-chunk setting, if there was no + * setting change it to the global default now (not that this may + * still be AS_DEFAULT) then obtain the cache of the chunk if required, + * if not simply skip the chunk. + */ + if (keep == PNG_HANDLE_CHUNK_AS_DEFAULT) + keep = png_ptr->unknown_default; - else - png_crc_finish(png_ptr, length); + if (keep == PNG_HANDLE_CHUNK_ALWAYS || + (keep == PNG_HANDLE_CHUNK_IF_SAFE && + PNG_CHUNK_ANCILLARY(png_ptr->chunk_name))) + { + if (png_cache_unknown_chunk(png_ptr, length) == 0) + keep = PNG_HANDLE_CHUNK_NEVER; } + + else + png_crc_finish(png_ptr, length); + } # else # ifndef PNG_READ_USER_CHUNKS_SUPPORTED # error no method to support READ_UNKNOWN_CHUNKS # endif - { - /* If here there is no read callback pointer set and no support is - * compiled in to just save the unknown chunks, so simply skip this - * chunk. If 'keep' is something other than AS_DEFAULT or NEVER then - * the app has erroneously asked for unknown chunk saving when there - * is no support. - */ - if (keep > PNG_HANDLE_CHUNK_NEVER) - png_app_error(png_ptr, "no unknown chunk support available"); + { + /* If here there is no read callback pointer set and no support is + * compiled in to just save the unknown chunks, so simply skip this + * chunk. If 'keep' is something other than AS_DEFAULT or NEVER then + * the app has erroneously asked for unknown chunk saving when there + * is no support. + */ + if (keep > PNG_HANDLE_CHUNK_NEVER) + png_app_error(png_ptr, "no unknown chunk support available"); - png_crc_finish(png_ptr, length); - } + png_crc_finish(png_ptr, length); + } # endif # ifdef PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED - /* Now store the chunk in the chunk list if appropriate, and if the limits - * permit it. - */ - if (keep == PNG_HANDLE_CHUNK_ALWAYS || - (keep == PNG_HANDLE_CHUNK_IF_SAFE && - PNG_CHUNK_ANCILLARY(png_ptr->chunk_name))) - { -# ifdef PNG_USER_LIMITS_SUPPORTED - switch (png_ptr->user_chunk_cache_max) - { - case 2: - png_ptr->user_chunk_cache_max = 1; - png_chunk_benign_error(png_ptr, "no space in chunk cache"); - /* FALL THROUGH */ - case 1: - /* NOTE: prior to 1.6.0 this case resulted in an unknown critical - * chunk being skipped, now there will be a hard error below. - */ - break; - - default: /* not at limit */ - --(png_ptr->user_chunk_cache_max); - /* FALL THROUGH */ - case 0: /* no limit */ -# endif /* USER_LIMITS */ - /* Here when the limit isn't reached or when limits are compiled - * out; store the chunk. - */ - png_set_unknown_chunks(png_ptr, info_ptr, - &png_ptr->unknown_chunk, 1); - handled = 1; + /* Now store the chunk in the chunk list if appropriate, and if the limits + * permit it. + */ + if (keep == PNG_HANDLE_CHUNK_ALWAYS || + (keep == PNG_HANDLE_CHUNK_IF_SAFE && + PNG_CHUNK_ANCILLARY(png_ptr->chunk_name))) + { # ifdef PNG_USER_LIMITS_SUPPORTED - break; - } -# endif + switch (png_ptr->user_chunk_cache_max) + { + case 2: + png_ptr->user_chunk_cache_max = 1; + png_chunk_benign_error(png_ptr, "no space in chunk cache"); + /* FALL THROUGH */ + case 1: + /* NOTE: prior to 1.6.0 this case resulted in an unknown critical + * chunk being skipped, now there will be a hard error below. + */ + break; + + default: /* not at limit */ + --(png_ptr->user_chunk_cache_max); + /* FALL THROUGH */ + case 0: /* no limit */ +# endif /* USER_LIMITS */ + /* Here when the limit isn't reached or when limits are compiled + * out; store the chunk. + */ + png_set_unknown_chunks(png_ptr, info_ptr, + &png_ptr->unknown_chunk, 1); + handled = 1; +# ifdef PNG_USER_LIMITS_SUPPORTED + break; } +# endif + } # else /* no store support: the chunk must be handled by the user callback */ - PNG_UNUSED(info_ptr) + PNG_UNUSED(info_ptr) # endif /* Regardless of the error handling below the cached data (if any) can be @@ -3042,13 +3044,13 @@ png_combine_row(png_const_structrp png_ptr, png_bytep dp, int display) end_ptr = dp + PNG_ROWBYTES(pixel_depth, row_width) - 1; end_byte = *end_ptr; # ifdef PNG_READ_PACKSWAP_SUPPORTED - if ((png_ptr->transformations & PNG_PACKSWAP) != 0) - /* little-endian byte */ - end_mask = 0xff << end_mask; + if ((png_ptr->transformations & PNG_PACKSWAP) != 0) + /* little-endian byte */ + end_mask = 0xff << end_mask; - else /* big-endian byte */ + else /* big-endian byte */ # endif - end_mask = 0xff >> end_mask; + end_mask = 0xff >> end_mask; /* end_mask is now the bits to *keep* from the destination row */ } @@ -3206,12 +3208,12 @@ png_combine_row(png_const_structrp png_ptr, png_bytep dp, int display) png_uint_32 mask; # ifdef PNG_READ_PACKSWAP_SUPPORTED - if ((png_ptr->transformations & PNG_PACKSWAP) != 0) - mask = MASK(pass, pixel_depth, display, 0); + if ((png_ptr->transformations & PNG_PACKSWAP) != 0) + mask = MASK(pass, pixel_depth, display, 0); - else + else # endif - mask = MASK(pass, pixel_depth, display, 1); + mask = MASK(pass, pixel_depth, display, 1); for (;;) { @@ -3812,15 +3814,15 @@ png_read_filter_row_paeth_1byte_pixel(png_row_infop row_info, png_bytep row, p = b - c; pc = a - c; -# ifdef PNG_USE_ABS - pa = abs(p); - pb = abs(pc); - pc = abs(p + pc); -# else - pa = p < 0 ? -p : p; - pb = pc < 0 ? -pc : pc; - pc = (p + pc) < 0 ? -(p + pc) : p + pc; -# endif +#ifdef PNG_USE_ABS + pa = abs(p); + pb = abs(pc); + pc = abs(p + pc); +#else + pa = p < 0 ? -p : p; + pb = pc < 0 ? -pc : pc; + pc = (p + pc) < 0 ? -(p + pc) : p + pc; +#endif /* Find the best predictor, the least of pa, pb, pc favoring the earlier * ones in the case of a tie. @@ -3867,15 +3869,15 @@ png_read_filter_row_paeth_multibyte_pixel(png_row_infop row_info, png_bytep row, p = b - c; pc = a - c; -# ifdef PNG_USE_ABS - pa = abs(p); - pb = abs(pc); - pc = abs(p + pc); -# else - pa = p < 0 ? -p : p; - pb = pc < 0 ? -pc : pc; - pc = (p + pc) < 0 ? -(p + pc) : p + pc; -# endif +#ifdef PNG_USE_ABS + pa = abs(p); + pb = abs(pc); + pc = abs(p + pc); +#else + pa = p < 0 ? -p : p; + pb = pc < 0 ? -pc : pc; + pc = (p + pc) < 0 ? -(p + pc) : p + pc; +#endif if (pb < pa) pa = pb, a = b; if (pc < pa) a = c; @@ -4280,18 +4282,18 @@ png_read_start_row(png_structrp png_ptr) #ifdef PNG_READ_EXPAND_16_SUPPORTED if ((png_ptr->transformations & PNG_EXPAND_16) != 0) { -# ifdef PNG_READ_EXPAND_SUPPORTED - /* In fact it is an error if it isn't supported, but checking is - * the safe way. - */ - if ((png_ptr->transformations & PNG_EXPAND) != 0) - { - if (png_ptr->bit_depth < 16) - max_pixel_depth *= 2; - } - else -# endif - png_ptr->transformations &= ~PNG_EXPAND_16; +# ifdef PNG_READ_EXPAND_SUPPORTED + /* In fact it is an error if it isn't supported, but checking is + * the safe way. + */ + if ((png_ptr->transformations & PNG_EXPAND) != 0) + { + if (png_ptr->bit_depth < 16) + max_pixel_depth *= 2; + } + else +# endif + png_ptr->transformations &= ~PNG_EXPAND_16; } #endif diff --git a/Build/source/libs/libpng/libpng-1.6.17/pngset.c b/Build/source/libs/libpng/libpng-1.6.18/pngset.c index fce30391682..5f62af168c1 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/pngset.c +++ b/Build/source/libs/libpng/libpng-1.6.18/pngset.c @@ -1,7 +1,7 @@ /* pngset.c - storage of image information into info struct * - * Last changed in libpng 1.6.17 [March 26, 2015] + * Last changed in libpng 1.6.18 [July 23, 2015] * Copyright (c) 1998-2015 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) @@ -673,7 +673,6 @@ png_set_iCCP(png_const_structrp png_ptr, png_inforp info_ptr, if (new_iccp_profile == NULL) { png_free(png_ptr, new_iccp_name); - new_iccp_name = NULL; png_benign_error(png_ptr, "Insufficient memory to process iCCP profile"); @@ -710,7 +709,7 @@ png_set_text_2(png_const_structrp png_ptr, png_inforp info_ptr, { int i; - png_debug1(1, "in %lx storage function", png_ptr == NULL ? "unexpected" : + png_debug1(1, "in %lx storage function", png_ptr == NULL ? 0xabadca11 : (unsigned long)png_ptr->chunk_name); if (png_ptr == NULL || info_ptr == NULL || num_text <= 0 || text_ptr == NULL) @@ -1522,6 +1521,9 @@ png_set_compression_buffer_size(png_structrp png_ptr, png_size_t size) } #ifndef __COVERITY__ + /* Some compilers complain that this is always false. However, it + * can be true when integer overflow happens. + */ if (size > ZLIB_IO_MAX) { png_warning(png_ptr, diff --git a/Build/source/libs/libpng/libpng-1.6.17/pngstruct.h b/Build/source/libs/libpng/libpng-1.6.18/pngstruct.h index 8420d09972b..c8c0e46e8b0 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/pngstruct.h +++ b/Build/source/libs/libpng/libpng-1.6.18/pngstruct.h @@ -1,8 +1,8 @@ /* pngstruct.h - header file for PNG reference library * - * Last changed in libpng 1.6.1 [March 28, 2013] - * Copyright (c) 1998-2013 Glenn Randers-Pehrson + * Last changed in libpng 1.6.18 [July 23, 2015] + * Copyright (c) 1998-2015 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) * @@ -219,16 +219,18 @@ struct png_struct_def png_uint_32 row_number; /* current row in interlace pass */ png_uint_32 chunk_name; /* PNG_CHUNK() id of current chunk */ png_bytep prev_row; /* buffer to save previous (unfiltered) row. - * This is a pointer into big_prev_row + * While reading this is a pointer into + * big_prev_row; while writing it is separately + * allocated if needed. */ png_bytep row_buf; /* buffer to save current (unfiltered) row. - * This is a pointer into big_row_buf + * While reading, this is a pointer into + * big_row_buf; while writing it is separately + * allocated. */ -#ifdef PNG_WRITE_SUPPORTED - png_bytep sub_row; /* buffer to save "sub" row when filtering */ - png_bytep up_row; /* buffer to save "up" row when filtering */ - png_bytep avg_row; /* buffer to save "avg" row when filtering */ - png_bytep paeth_row; /* buffer to save "Paeth" row when filtering */ +#ifdef PNG_WRITE_FILTER_SUPPORTED + png_bytep try_row; /* buffer to save trial row when filtering */ + png_bytep tst_row; /* buffer to save best trial row when filtering */ #endif png_size_t info_rowbytes; /* Added in 1.5.4: cache of updated row bytes */ @@ -346,17 +348,7 @@ struct png_struct_def png_bytep quantize_index; /* index translation for palette files */ #endif -#ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED - png_byte heuristic_method; /* heuristic for row filter selection */ - png_byte num_prev_filters; /* number of weights for previous rows */ - png_bytep prev_filters; /* filter type(s) of previous row(s) */ - png_uint_16p filter_weights; /* weight(s) for previous line(s) */ - png_uint_16p inv_filter_weights; /* 1/weight(s) for previous line(s) */ - png_uint_16p filter_costs; /* relative filter calculation cost */ - png_uint_16p inv_filter_costs; /* 1/relative filter calculation cost */ -#endif - - /* Options */ +/* Options */ #ifdef PNG_SET_OPTION_SUPPORTED png_byte options; /* On/off state (up to 4 options) */ #endif diff --git a/Build/source/libs/libpng/libpng-1.6.17/pngtest.c b/Build/source/libs/libpng/libpng-1.6.18/pngtest.c index 2c3e04d2d7c..84745b6d44a 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/pngtest.c +++ b/Build/source/libs/libpng/libpng-1.6.18/pngtest.c @@ -1,7 +1,7 @@ /* pngtest.c - a simple test program to test libpng * - * Last changed in libpng 1.6.17 [March 26, 2015] + * Last changed in libpng 1.6.18 [July 23, 2015] * Copyright (c) 1998-2015 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) @@ -565,6 +565,7 @@ png_debug_free(png_structp png_ptr, png_voidp ptr) } /* Unlink the element from the list. */ + if (pinformation != NULL) { memory_infop *ppinfo = &pinformation; @@ -581,8 +582,7 @@ png_debug_free(png_structp png_ptr, png_voidp ptr) /* We must free the list element too, but first kill the memory that is to be freed. */ memset(ptr, 0x55, pinfo->size); - if (pinfo != NULL) - free(pinfo); + free(pinfo); pinfo = NULL; break; } @@ -1833,10 +1833,10 @@ main(int argc, char *argv[]) k, (unsigned long)filters_used[k]); #endif #ifdef PNG_TIME_RFC1123_SUPPORTED - if (tIME_chunk_present != 0) - fprintf(STDERR, " tIME = %s\n", tIME_string); + if (tIME_chunk_present != 0) + fprintf(STDERR, " tIME = %s\n", tIME_string); - tIME_chunk_present = 0; + tIME_chunk_present = 0; #endif /* TIME_RFC1123 */ } @@ -2028,4 +2028,4 @@ main(void) #endif /* Generate a compiler error if there is an old png.h in the search path. */ -typedef png_libpng_version_1_6_17 Your_png_h_is_not_version_1_6_17; +typedef png_libpng_version_1_6_18 Your_png_h_is_not_version_1_6_18; diff --git a/Build/source/libs/libpng/libpng-1.6.17/pngtest.png b/Build/source/libs/libpng/libpng-1.6.18/pngtest.png Binary files differindex cb3fef4cf84..cb3fef4cf84 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/pngtest.png +++ b/Build/source/libs/libpng/libpng-1.6.18/pngtest.png diff --git a/Build/source/libs/libpng/libpng-1.6.17/pngtrans.c b/Build/source/libs/libpng/libpng-1.6.18/pngtrans.c index cd3a79b6fa4..43920174457 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/pngtrans.c +++ b/Build/source/libs/libpng/libpng-1.6.18/pngtrans.c @@ -1,7 +1,7 @@ /* pngtrans.c - transforms the data in a row (used by both readers and writers) * - * Last changed in libpng 1.6.17 [March 26, 2015] + * Last changed in libpng 1.6.18 [July 23, 2015] * Copyright (c) 1998-2015 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) @@ -704,7 +704,7 @@ png_do_check_palette_indexes(png_structrp png_ptr, png_row_infop row_info) */ for (; rp > png_ptr->row_buf; rp--) { - if (*rp >> padding != 0) + if ((*rp >> padding) != 0) png_ptr->num_palette_max = 1; padding = 0; } diff --git a/Build/source/libs/libpng/libpng-1.6.17/pngusr.dfa b/Build/source/libs/libpng/libpng-1.6.18/pngusr.dfa index 83067c38c07..83067c38c07 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/pngusr.dfa +++ b/Build/source/libs/libpng/libpng-1.6.18/pngusr.dfa diff --git a/Build/source/libs/libpng/libpng-1.6.17/pngwio.c b/Build/source/libs/libpng/libpng-1.6.18/pngwio.c index 0a40948aab5..0a40948aab5 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/pngwio.c +++ b/Build/source/libs/libpng/libpng-1.6.18/pngwio.c diff --git a/Build/source/libs/libpng/libpng-1.6.17/pngwrite.c b/Build/source/libs/libpng/libpng-1.6.18/pngwrite.c index e3c203496ec..3c8cbbe5e8a 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/pngwrite.c +++ b/Build/source/libs/libpng/libpng-1.6.18/pngwrite.c @@ -1,7 +1,7 @@ /* pngwrite.c - general routines to write a PNG file * - * Last changed in libpng 1.6.17 [March 26, 2015] + * Last changed in libpng 1.6.18 [July 23, 2015] * Copyright (c) 1998-2015 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) @@ -90,43 +90,44 @@ png_write_info_before_PLTE(png_structrp png_ptr, png_const_inforp info_ptr) if ((png_ptr->mode & PNG_WROTE_INFO_BEFORE_PLTE) == 0) { - /* Write PNG signature */ - png_write_sig(png_ptr); + /* Write PNG signature */ + png_write_sig(png_ptr); #ifdef PNG_MNG_FEATURES_SUPPORTED - if ((png_ptr->mode & PNG_HAVE_PNG_SIGNATURE) != 0 && \ - png_ptr->mng_features_permitted != 0) - { - png_warning(png_ptr, "MNG features are not allowed in a PNG datastream"); - png_ptr->mng_features_permitted = 0; - } + if ((png_ptr->mode & PNG_HAVE_PNG_SIGNATURE) != 0 && \ + png_ptr->mng_features_permitted != 0) + { + png_warning(png_ptr, + "MNG features are not allowed in a PNG datastream"); + png_ptr->mng_features_permitted = 0; + } #endif - /* Write IHDR information. */ - png_write_IHDR(png_ptr, info_ptr->width, info_ptr->height, - info_ptr->bit_depth, info_ptr->color_type, info_ptr->compression_type, - info_ptr->filter_type, + /* Write IHDR information. */ + png_write_IHDR(png_ptr, info_ptr->width, info_ptr->height, + info_ptr->bit_depth, info_ptr->color_type, info_ptr->compression_type, + info_ptr->filter_type, #ifdef PNG_WRITE_INTERLACING_SUPPORTED - info_ptr->interlace_type + info_ptr->interlace_type #else - 0 + 0 #endif - ); + ); - /* The rest of these check to see if the valid field has the appropriate - * flag set, and if it does, writes the chunk. - * - * 1.6.0: COLORSPACE support controls the writing of these chunks too, and - * the chunks will be written if the WRITE routine is there and information - * is available in the COLORSPACE. (See png_colorspace_sync_info in png.c - * for where the valid flags get set.) - * - * Under certain circumstances the colorspace can be invalidated without - * syncing the info_struct 'valid' flags; this happens if libpng detects and - * error and calls png_error while the color space is being set, yet the - * application continues writing the PNG. So check the 'invalid' flag here - * too. - */ + /* The rest of these check to see if the valid field has the appropriate + * flag set, and if it does, writes the chunk. + * + * 1.6.0: COLORSPACE support controls the writing of these chunks too, and + * the chunks will be written if the WRITE routine is there and + * information * is available in the COLORSPACE. (See + * png_colorspace_sync_info in png.c for where the valid flags get set.) + * + * Under certain circumstances the colorspace can be invalidated without + * syncing the info_struct 'valid' flags; this happens if libpng detects + * an error and calls png_error while the color space is being set, yet + * the application continues writing the PNG. So check the 'invalid' + * flag here too. + */ #ifdef PNG_GAMMA_SUPPORTED # ifdef PNG_WRITE_gAMA_SUPPORTED if ((info_ptr->colorspace.flags & PNG_COLORSPACE_INVALID) == 0 && @@ -137,50 +138,50 @@ png_write_info_before_PLTE(png_structrp png_ptr, png_const_inforp info_ptr) #endif #ifdef PNG_COLORSPACE_SUPPORTED - /* Write only one of sRGB or an ICC profile. If a profile was supplied - * and it matches one of the known sRGB ones issue a warning. - */ + /* Write only one of sRGB or an ICC profile. If a profile was supplied + * and it matches one of the known sRGB ones issue a warning. + */ # ifdef PNG_WRITE_iCCP_SUPPORTED - if ((info_ptr->colorspace.flags & PNG_COLORSPACE_INVALID) == 0 && - (info_ptr->valid & PNG_INFO_iCCP) != 0) - { -# ifdef PNG_WRITE_sRGB_SUPPORTED - if ((info_ptr->valid & PNG_INFO_sRGB) != 0) - png_app_warning(png_ptr, - "profile matches sRGB but writing iCCP instead"); -# endif - - png_write_iCCP(png_ptr, info_ptr->iccp_name, - info_ptr->iccp_profile); - } + if ((info_ptr->colorspace.flags & PNG_COLORSPACE_INVALID) == 0 && + (info_ptr->valid & PNG_INFO_iCCP) != 0) + { +# ifdef PNG_WRITE_sRGB_SUPPORTED + if ((info_ptr->valid & PNG_INFO_sRGB) != 0) + png_app_warning(png_ptr, + "profile matches sRGB but writing iCCP instead"); +# endif + + png_write_iCCP(png_ptr, info_ptr->iccp_name, + info_ptr->iccp_profile); + } # ifdef PNG_WRITE_sRGB_SUPPORTED else # endif # endif # ifdef PNG_WRITE_sRGB_SUPPORTED - if ((info_ptr->colorspace.flags & PNG_COLORSPACE_INVALID) == 0 && - (info_ptr->valid & PNG_INFO_sRGB) != 0) - png_write_sRGB(png_ptr, info_ptr->colorspace.rendering_intent); + if ((info_ptr->colorspace.flags & PNG_COLORSPACE_INVALID) == 0 && + (info_ptr->valid & PNG_INFO_sRGB) != 0) + png_write_sRGB(png_ptr, info_ptr->colorspace.rendering_intent); # endif /* WRITE_sRGB */ #endif /* COLORSPACE */ #ifdef PNG_WRITE_sBIT_SUPPORTED - if ((info_ptr->valid & PNG_INFO_sBIT) != 0) - png_write_sBIT(png_ptr, &(info_ptr->sig_bit), info_ptr->color_type); + if ((info_ptr->valid & PNG_INFO_sBIT) != 0) + png_write_sBIT(png_ptr, &(info_ptr->sig_bit), info_ptr->color_type); #endif #ifdef PNG_COLORSPACE_SUPPORTED # ifdef PNG_WRITE_cHRM_SUPPORTED - if ((info_ptr->colorspace.flags & PNG_COLORSPACE_INVALID) == 0 && - (info_ptr->colorspace.flags & PNG_COLORSPACE_FROM_cHRM) != 0 && - (info_ptr->valid & PNG_INFO_cHRM) != 0) - png_write_cHRM_fixed(png_ptr, &info_ptr->colorspace.end_points_xy); + if ((info_ptr->colorspace.flags & PNG_COLORSPACE_INVALID) == 0 && + (info_ptr->colorspace.flags & PNG_COLORSPACE_FROM_cHRM) != 0 && + (info_ptr->valid & PNG_INFO_cHRM) != 0) + png_write_cHRM_fixed(png_ptr, &info_ptr->colorspace.end_points_xy); # endif #endif #ifdef PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED - write_unknown_chunks(png_ptr, info_ptr, PNG_HAVE_IHDR); + write_unknown_chunks(png_ptr, info_ptr, PNG_HAVE_IHDR); #endif png_ptr->mode |= PNG_WROTE_INFO_BEFORE_PLTE; @@ -216,8 +217,13 @@ png_write_info(png_structrp png_ptr, png_const_inforp info_ptr) if ((png_ptr->transformations & PNG_INVERT_ALPHA) != 0 && info_ptr->color_type == PNG_COLOR_TYPE_PALETTE) { - int j; - for (j = 0; j<(int)info_ptr->num_trans; j++) + int j, jend; + + jend = info_ptr->num_trans; + if (jend > PNG_MAX_PALETTE_LENGTH) + jend = PNG_MAX_PALETTE_LENGTH; + + for (j = 0; j<jend; ++j) info_ptr->trans_alpha[j] = (png_byte)(255 - info_ptr->trans_alpha[j]); } @@ -538,7 +544,7 @@ png_create_write_struct_2,(png_const_charp user_png_ver, png_voidp error_ptr, /* App warnings are warnings in release (or release candidate) builds but * are errors during development. */ -#if PNG_LIBPNG_BUILD_BASE_TYPE >= PNG_LIBPNG_BUILD_RC +#if PNG_RELEASE_BUILD png_ptr->flags |= PNG_FLAG_APP_WARNINGS_WARN; #endif @@ -849,7 +855,7 @@ png_write_row(png_structrp png_ptr, png_const_bytep row) * which is also the output depth. */ if (row_info.pixel_depth != png_ptr->pixel_depth || - row_info.pixel_depth != png_ptr->transformed_pixel_depth) + row_info.pixel_depth != png_ptr->transformed_pixel_depth) png_error(png_ptr, "internal write transform logic error"); #ifdef PNG_MNG_FEATURES_SUPPORTED @@ -917,10 +923,6 @@ png_write_flush(png_structrp png_ptr) } #endif /* WRITE_FLUSH */ -#ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED -static void png_reset_filter_heuristics(png_structrp png_ptr);/* forward decl */ -#endif - /* Free any memory used in png_ptr struct without freeing the struct itself. */ static void png_write_destroy(png_structrp png_ptr) @@ -937,24 +939,11 @@ png_write_destroy(png_structrp png_ptr) png_ptr->row_buf = NULL; #ifdef PNG_WRITE_FILTER_SUPPORTED png_free(png_ptr, png_ptr->prev_row); - png_free(png_ptr, png_ptr->sub_row); - png_free(png_ptr, png_ptr->up_row); - png_free(png_ptr, png_ptr->avg_row); - png_free(png_ptr, png_ptr->paeth_row); + png_free(png_ptr, png_ptr->try_row); + png_free(png_ptr, png_ptr->tst_row); png_ptr->prev_row = NULL; - png_ptr->sub_row = NULL; - png_ptr->up_row = NULL; - png_ptr->avg_row = NULL; - png_ptr->paeth_row = NULL; -#endif - -#ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED - /* Use this to save a little code space, it doesn't free the filter_costs */ - png_reset_filter_heuristics(png_ptr); - png_free(png_ptr, png_ptr->filter_costs); - png_free(png_ptr, png_ptr->inv_filter_costs); - png_ptr->filter_costs = NULL; - png_ptr->inv_filter_costs = NULL; + png_ptr->try_row = NULL; + png_ptr->tst_row = NULL; #endif #ifdef PNG_SET_UNKNOWN_CHUNKS_SUPPORTED @@ -1044,6 +1033,7 @@ png_set_filter(png_structrp png_ptr, int method, int filters) #endif /* WRITE_FILTER */ } +#ifdef PNG_WRITE_FILTER_SUPPORTED /* If we have allocated the row_buf, this means we have already started * with the image and we should have allocated all of the filter buffers * that have been selected. If prev_row isn't already allocated, then @@ -1052,203 +1042,76 @@ png_set_filter(png_structrp png_ptr, int method, int filters) * wants to start and stop using particular filters during compression, * it should start out with all of the filters, and then remove them * or add them back after the start of compression. + * + * NOTE: this is a nasty constraint on the code, because it means that the + * prev_row buffer must be maintained even if there are currently no + * 'prev_row' requiring filters active. */ if (png_ptr->row_buf != NULL) { -#ifdef PNG_WRITE_FILTER_SUPPORTED - if ((png_ptr->do_filter & PNG_FILTER_SUB) != 0 && - png_ptr->sub_row == NULL) - { - png_ptr->sub_row = (png_bytep)png_malloc(png_ptr, - (png_ptr->rowbytes + 1)); - png_ptr->sub_row[0] = PNG_FILTER_VALUE_SUB; - } + int num_filters; + png_alloc_size_t buf_size; - if ((png_ptr->do_filter & PNG_FILTER_UP) != 0 && - png_ptr->up_row == NULL) - { - if (png_ptr->prev_row == NULL) - { - png_warning(png_ptr, "Can't add Up filter after starting"); - png_ptr->do_filter = (png_byte)(png_ptr->do_filter & - ~PNG_FILTER_UP); - } + /* Repeat the checks in png_write_start_row; 1 pixel high or wide + * images cannot benefit from certain filters. If this isn't done here + * the check below will fire on 1 pixel high images. + */ + if (png_ptr->height == 1) + filters &= ~(PNG_FILTER_UP|PNG_FILTER_AVG|PNG_FILTER_PAETH); - else - { - png_ptr->up_row = (png_bytep)png_malloc(png_ptr, - (png_ptr->rowbytes + 1)); - png_ptr->up_row[0] = PNG_FILTER_VALUE_UP; - } - } + if (png_ptr->width == 1) + filters &= ~(PNG_FILTER_SUB|PNG_FILTER_AVG|PNG_FILTER_PAETH); - if ((png_ptr->do_filter & PNG_FILTER_AVG) != 0 && - png_ptr->avg_row == NULL) + if ((filters & (PNG_FILTER_UP|PNG_FILTER_AVG|PNG_FILTER_PAETH)) != 0 + && png_ptr->prev_row == NULL) { - if (png_ptr->prev_row == NULL) - { - png_warning(png_ptr, "Can't add Average filter after starting"); - png_ptr->do_filter = (png_byte)(png_ptr->do_filter & - ~PNG_FILTER_AVG); - } - - else - { - png_ptr->avg_row = (png_bytep)png_malloc(png_ptr, - (png_ptr->rowbytes + 1)); - png_ptr->avg_row[0] = PNG_FILTER_VALUE_AVG; - } + /* This is the error case, however it is benign - the previous row + * is not available so the filter can't be used. Just warn here. + */ + png_app_warning(png_ptr, + "png_set_filter: UP/AVG/PAETH cannot be added after start"); + filters &= ~(PNG_FILTER_UP|PNG_FILTER_AVG|PNG_FILTER_PAETH); } - if ((png_ptr->do_filter & PNG_FILTER_PAETH) != 0 && - png_ptr->paeth_row == NULL) - { - if (png_ptr->prev_row == NULL) - { - png_warning(png_ptr, "Can't add Paeth filter after starting"); - png_ptr->do_filter &= (png_byte)(~PNG_FILTER_PAETH); - } + num_filters = 0; - else - { - png_ptr->paeth_row = (png_bytep)png_malloc(png_ptr, - (png_ptr->rowbytes + 1)); - png_ptr->paeth_row[0] = PNG_FILTER_VALUE_PAETH; - } - } + if (filters & PNG_FILTER_SUB) + num_filters++; - if (png_ptr->do_filter == PNG_NO_FILTERS) -#endif /* WRITE_FILTER */ - png_ptr->do_filter = PNG_FILTER_NONE; - } - } - else - png_error(png_ptr, "Unknown custom filter method"); -} + if (filters & PNG_FILTER_UP) + num_filters++; -/* This allows us to influence the way in which libpng chooses the "best" - * filter for the current scanline. While the "minimum-sum-of-absolute- - * differences metric is relatively fast and effective, there is some - * question as to whether it can be improved upon by trying to keep the - * filtered data going to zlib more consistent, hopefully resulting in - * better compression. - */ -#ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED /* GRR 970116 */ -/* Convenience reset API. */ -static void -png_reset_filter_heuristics(png_structrp png_ptr) -{ - /* Clear out any old values in the 'weights' - this must be done because if - * the app calls set_filter_heuristics multiple times with different - * 'num_weights' values we would otherwise potentially have wrong sized - * arrays. - */ - png_ptr->num_prev_filters = 0; - png_ptr->heuristic_method = PNG_FILTER_HEURISTIC_UNWEIGHTED; - if (png_ptr->prev_filters != NULL) - { - png_bytep old = png_ptr->prev_filters; - png_ptr->prev_filters = NULL; - png_free(png_ptr, old); - } - if (png_ptr->filter_weights != NULL) - { - png_uint_16p old = png_ptr->filter_weights; - png_ptr->filter_weights = NULL; - png_free(png_ptr, old); - } - - if (png_ptr->inv_filter_weights != NULL) - { - png_uint_16p old = png_ptr->inv_filter_weights; - png_ptr->inv_filter_weights = NULL; - png_free(png_ptr, old); - } - - /* Leave the filter_costs - this array is fixed size. */ -} - -static int -png_init_filter_heuristics(png_structrp png_ptr, int heuristic_method, - int num_weights) -{ - if (png_ptr == NULL) - return 0; + if (filters & PNG_FILTER_AVG) + num_filters++; - /* Clear out the arrays */ - png_reset_filter_heuristics(png_ptr); + if (filters & PNG_FILTER_PAETH) + num_filters++; - /* Check arguments; the 'reset' function makes the correct settings for the - * unweighted case, but we must handle the weight case by initializing the - * arrays for the caller. - */ - if (heuristic_method == PNG_FILTER_HEURISTIC_WEIGHTED) - { - int i; - - if (num_weights > 0) - { - png_ptr->prev_filters = (png_bytep)png_malloc(png_ptr, - (png_uint_32)((sizeof (png_byte)) * num_weights)); - - /* To make sure that the weighting starts out fairly */ - for (i = 0; i < num_weights; i++) - { - png_ptr->prev_filters[i] = 255; - } - - png_ptr->filter_weights = (png_uint_16p)png_malloc(png_ptr, - (png_uint_32)((sizeof (png_uint_16)) * num_weights)); + /* Allocate needed row buffers if they have not already been + * allocated. + */ + buf_size = PNG_ROWBYTES(png_ptr->usr_channels * png_ptr->usr_bit_depth, + png_ptr->width) + 1; - png_ptr->inv_filter_weights = (png_uint_16p)png_malloc(png_ptr, - (png_uint_32)((sizeof (png_uint_16)) * num_weights)); + if (png_ptr->try_row == NULL) + png_ptr->try_row = png_voidcast(png_bytep, + png_malloc(png_ptr, buf_size)); - for (i = 0; i < num_weights; i++) + if (num_filters > 1) { - png_ptr->inv_filter_weights[i] = - png_ptr->filter_weights[i] = PNG_WEIGHT_FACTOR; + if (png_ptr->tst_row == NULL) + png_ptr->tst_row = png_voidcast(png_bytep, + png_malloc(png_ptr, buf_size)); } - - /* Safe to set this now */ - png_ptr->num_prev_filters = (png_byte)num_weights; } - - /* If, in the future, there are other filter methods, this would - * need to be based on png_ptr->filter. - */ - if (png_ptr->filter_costs == NULL) - { - png_ptr->filter_costs = (png_uint_16p)png_malloc(png_ptr, - (png_uint_32)((sizeof (png_uint_16)) * PNG_FILTER_VALUE_LAST)); - - png_ptr->inv_filter_costs = (png_uint_16p)png_malloc(png_ptr, - (png_uint_32)((sizeof (png_uint_16)) * PNG_FILTER_VALUE_LAST)); - } - - for (i = 0; i < PNG_FILTER_VALUE_LAST; i++) - { - png_ptr->inv_filter_costs[i] = - png_ptr->filter_costs[i] = PNG_COST_FACTOR; - } - - /* All the arrays are inited, safe to set this: */ - png_ptr->heuristic_method = PNG_FILTER_HEURISTIC_WEIGHTED; - - /* Return the 'ok' code. */ - return 1; - } - else if (heuristic_method == PNG_FILTER_HEURISTIC_DEFAULT || - heuristic_method == PNG_FILTER_HEURISTIC_UNWEIGHTED) - { - return 1; + png_ptr->do_filter = (png_byte)filters; +#endif } else - { - png_warning(png_ptr, "Unknown filter heuristic method"); - return 0; - } + png_error(png_ptr, "Unknown custom filter method"); } +#ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED /* DEPRECATED */ /* Provide floating and fixed point APIs */ #ifdef PNG_FLOATING_POINT_SUPPORTED void PNGAPI @@ -1256,52 +1119,11 @@ png_set_filter_heuristics(png_structrp png_ptr, int heuristic_method, int num_weights, png_const_doublep filter_weights, png_const_doublep filter_costs) { - png_debug(1, "in png_set_filter_heuristics"); - - /* The internal API allocates all the arrays and ensures that the elements of - * those arrays are set to the default value. - */ - if (png_init_filter_heuristics(png_ptr, heuristic_method, num_weights) == 0) - return; - - /* If using the weighted method copy in the weights. */ - if (heuristic_method == PNG_FILTER_HEURISTIC_WEIGHTED) - { - int i; - for (i = 0; i < num_weights; i++) - { - if (filter_weights[i] <= 0.0) - { - png_ptr->inv_filter_weights[i] = - png_ptr->filter_weights[i] = PNG_WEIGHT_FACTOR; - } - - else - { - png_ptr->inv_filter_weights[i] = - (png_uint_16)(PNG_WEIGHT_FACTOR*filter_weights[i]+.5); - - png_ptr->filter_weights[i] = - (png_uint_16)(PNG_WEIGHT_FACTOR/filter_weights[i]+.5); - } - } - - /* Here is where we set the relative costs of the different filters. We - * should take the desired compression level into account when setting - * the costs, so that Paeth, for instance, has a high relative cost at low - * compression levels, while it has a lower relative cost at higher - * compression settings. The filter types are in order of increasing - * relative cost, so it would be possible to do this with an algorithm. - */ - for (i = 0; i < PNG_FILTER_VALUE_LAST; i++) if (filter_costs[i] >= 1.0) - { - png_ptr->inv_filter_costs[i] = - (png_uint_16)(PNG_COST_FACTOR / filter_costs[i] + .5); - - png_ptr->filter_costs[i] = - (png_uint_16)(PNG_COST_FACTOR * filter_costs[i] + .5); - } - } + PNG_UNUSED(png_ptr) + PNG_UNUSED(heuristic_method) + PNG_UNUSED(num_weights) + PNG_UNUSED(filter_weights) + PNG_UNUSED(filter_costs) } #endif /* FLOATING_POINT */ @@ -1311,63 +1133,11 @@ png_set_filter_heuristics_fixed(png_structrp png_ptr, int heuristic_method, int num_weights, png_const_fixed_point_p filter_weights, png_const_fixed_point_p filter_costs) { - png_debug(1, "in png_set_filter_heuristics_fixed"); - - /* The internal API allocates all the arrays and ensures that the elements of - * those arrays are set to the default value. - */ - if (png_init_filter_heuristics(png_ptr, heuristic_method, num_weights) == 0) - return; - - /* If using the weighted method copy in the weights. */ - if (heuristic_method == PNG_FILTER_HEURISTIC_WEIGHTED) - { - int i; - for (i = 0; i < num_weights; i++) - { - if (filter_weights[i] <= 0) - { - png_ptr->inv_filter_weights[i] = - png_ptr->filter_weights[i] = PNG_WEIGHT_FACTOR; - } - - else - { - png_ptr->inv_filter_weights[i] = (png_uint_16) - ((PNG_WEIGHT_FACTOR*filter_weights[i]+PNG_FP_HALF)/PNG_FP_1); - - png_ptr->filter_weights[i] = (png_uint_16)((PNG_WEIGHT_FACTOR* - PNG_FP_1+(filter_weights[i]/2))/filter_weights[i]); - } - } - - /* Here is where we set the relative costs of the different filters. We - * should take the desired compression level into account when setting - * the costs, so that Paeth, for instance, has a high relative cost at low - * compression levels, while it has a lower relative cost at higher - * compression settings. The filter types are in order of increasing - * relative cost, so it would be possible to do this with an algorithm. - */ - for (i = 0; i < PNG_FILTER_VALUE_LAST; i++) - if (filter_costs[i] >= PNG_FP_1) - { - png_uint_32 tmp; - - /* Use a 32 bit unsigned temporary here because otherwise the - * intermediate value will be a 32 bit *signed* integer (ANSI rules) - * and this will get the wrong answer on division. - */ - tmp = PNG_COST_FACTOR*PNG_FP_1 + (filter_costs[i]/2); - tmp /= filter_costs[i]; - - png_ptr->inv_filter_costs[i] = (png_uint_16)tmp; - - tmp = PNG_COST_FACTOR * filter_costs[i] + PNG_FP_HALF; - tmp /= PNG_FP_1; - - png_ptr->filter_costs[i] = (png_uint_16)tmp; - } - } + PNG_UNUSED(png_ptr) + PNG_UNUSED(heuristic_method) + PNG_UNUSED(num_weights) + PNG_UNUSED(filter_weights) + PNG_UNUSED(filter_costs) } #endif /* FIXED_POINT */ #endif /* WRITE_WEIGHTED_FILTER */ @@ -1616,14 +1386,14 @@ png_write_png(png_structrp png_ptr, png_inforp info_ptr, * alpha channel. */ if ((transforms & (PNG_TRANSFORM_STRIP_FILLER_AFTER| - PNG_TRANSFORM_STRIP_FILLER_BEFORE)) != 0) + PNG_TRANSFORM_STRIP_FILLER_BEFORE)) != 0) { #ifdef PNG_WRITE_FILLER_SUPPORTED if ((transforms & PNG_TRANSFORM_STRIP_FILLER_AFTER) != 0) { if ((transforms & PNG_TRANSFORM_STRIP_FILLER_BEFORE) != 0) png_app_error(png_ptr, - "PNG_TRANSFORM_STRIP_FILLER: BEFORE+AFTER not supported"); + "PNG_TRANSFORM_STRIP_FILLER: BEFORE+AFTER not supported"); /* Continue if ignored - this is the pre-1.6.10 behavior */ png_set_filler(png_ptr, 0, PNG_FILLER_AFTER); @@ -1682,13 +1452,13 @@ png_write_png(png_structrp png_ptr, png_inforp info_ptr, #ifdef PNG_SIMPLIFIED_WRITE_SUPPORTED -#ifdef PNG_STDIO_SUPPORTED /* currently required for png_image_write_* */ +# ifdef PNG_STDIO_SUPPORTED /* currently required for png_image_write_* */ /* Initialize the write structure - general purpose utility. */ static int png_image_write_init(png_imagep image) { png_structp png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, image, - png_safe_error, png_safe_warning); + png_safe_error, png_safe_warning); if (png_ptr != NULL) { @@ -1697,7 +1467,7 @@ png_image_write_init(png_imagep image) if (info_ptr != NULL) { png_controlp control = png_voidcast(png_controlp, - png_malloc_warn(png_ptr, (sizeof *control))); + png_malloc_warn(png_ptr, (sizeof *control))); if (control != NULL) { @@ -1744,12 +1514,12 @@ static int png_write_image_16bit(png_voidp argument) { png_image_write_control *display = png_voidcast(png_image_write_control*, - argument); + argument); png_imagep image = display->image; png_structrp png_ptr = image->opaque->png_ptr; png_const_uint_16p input_row = png_voidcast(png_const_uint_16p, - display->first_row); + display->first_row); png_uint_16p output_row = png_voidcast(png_uint_16p, display->local_row); png_uint_16p row_end; const int channels = (image->format & PNG_FORMAT_FLAG_COLOR) != 0 ? 3 : 1; @@ -1758,17 +1528,18 @@ png_write_image_16bit(png_voidp argument) if ((image->format & PNG_FORMAT_FLAG_ALPHA) != 0) { -# ifdef PNG_SIMPLIFIED_WRITE_AFIRST_SUPPORTED - if ((image->format & PNG_FORMAT_FLAG_AFIRST) != 0) - { - aindex = -1; - ++input_row; /* To point to the first component */ - ++output_row; - } - +# ifdef PNG_SIMPLIFIED_WRITE_AFIRST_SUPPORTED + if ((image->format & PNG_FORMAT_FLAG_AFIRST) != 0) + { + aindex = -1; + ++input_row; /* To point to the first component */ + ++output_row; + } else -# endif + aindex = channels; +# else aindex = channels; +# endif } else @@ -1850,7 +1621,7 @@ png_write_image_16bit(png_voidp argument) * calculation can be done to 15 bits of accuracy; however, the output needs to * be scaled in the range 0..255*65535, so include that scaling here. */ -#define UNP_RECIPROCAL(alpha) ((((0xffff*0xff)<<7)+(alpha>>1))/alpha) +# define UNP_RECIPROCAL(alpha) ((((0xffff*0xff)<<7)+(alpha>>1))/alpha) static png_byte png_unpremultiply(png_uint_32 component, png_uint_32 alpha, @@ -1901,12 +1672,12 @@ static int png_write_image_8bit(png_voidp argument) { png_image_write_control *display = png_voidcast(png_image_write_control*, - argument); + argument); png_imagep image = display->image; png_structrp png_ptr = image->opaque->png_ptr; png_const_uint_16p input_row = png_voidcast(png_const_uint_16p, - display->first_row); + display->first_row); png_bytep output_row = png_voidcast(png_bytep, display->local_row); png_uint_32 y = image->height; const int channels = (image->format & PNG_FORMAT_FLAG_COLOR) != 0 ? 3 : 1; @@ -1916,17 +1687,17 @@ png_write_image_8bit(png_voidp argument) png_bytep row_end; int aindex; -# ifdef PNG_SIMPLIFIED_WRITE_AFIRST_SUPPORTED - if ((image->format & PNG_FORMAT_FLAG_AFIRST) != 0) - { - aindex = -1; - ++input_row; /* To point to the first component */ - ++output_row; - } +# ifdef PNG_SIMPLIFIED_WRITE_AFIRST_SUPPORTED + if ((image->format & PNG_FORMAT_FLAG_AFIRST) != 0) + { + aindex = -1; + ++input_row; /* To point to the first component */ + ++output_row; + } - else -# endif - aindex = channels; + else +# endif + aindex = channels; /* Use row_end in place of a loop counter: */ row_end = output_row + image->width * (channels+1); @@ -1960,7 +1731,7 @@ png_write_image_8bit(png_voidp argument) } /* while out_ptr < row_end */ png_write_row(png_ptr, png_voidcast(png_const_bytep, - display->local_row)); + display->local_row)); input_row += display->row_bytes/(sizeof (png_uint_16)); } /* while y */ } @@ -1999,25 +1770,25 @@ png_image_set_PLTE(png_image_write_control *display) const png_imagep image = display->image; const void *cmap = display->colormap; const int entries = image->colormap_entries > 256 ? 256 : - (int)image->colormap_entries; + (int)image->colormap_entries; /* NOTE: the caller must check for cmap != NULL and entries != 0 */ const png_uint_32 format = image->format; const int channels = PNG_IMAGE_SAMPLE_CHANNELS(format); -# if defined(PNG_FORMAT_BGR_SUPPORTED) &&\ +# if defined(PNG_FORMAT_BGR_SUPPORTED) &&\ defined(PNG_SIMPLIFIED_WRITE_AFIRST_SUPPORTED) const int afirst = (format & PNG_FORMAT_FLAG_AFIRST) != 0 && - (format & PNG_FORMAT_FLAG_ALPHA) != 0; -# else + (format & PNG_FORMAT_FLAG_ALPHA) != 0; +# else # define afirst 0 -# endif +# endif -# ifdef PNG_FORMAT_BGR_SUPPORTED +# ifdef PNG_FORMAT_BGR_SUPPORTED const int bgr = (format & PNG_FORMAT_FLAG_BGR) != 0 ? 2 : 0; -# else +# else # define bgr 0 -# endif +# endif int i, num_trans; png_color palette[256]; @@ -2042,11 +1813,11 @@ png_image_set_PLTE(png_image_write_control *display) if (channels >= 3) /* RGB */ { palette[i].blue = (png_byte)PNG_sRGB_FROM_LINEAR(255 * - entry[(2 ^ bgr)]); + entry[(2 ^ bgr)]); palette[i].green = (png_byte)PNG_sRGB_FROM_LINEAR(255 * - entry[1]); + entry[1]); palette[i].red = (png_byte)PNG_sRGB_FROM_LINEAR(255 * - entry[bgr]); + entry[bgr]); } else /* Gray */ @@ -2122,12 +1893,12 @@ png_image_set_PLTE(png_image_write_control *display) } } -# ifdef afirst +# ifdef afirst # undef afirst -# endif -# ifdef bgr +# endif +# ifdef bgr # undef bgr -# endif +# endif png_set_PLTE(image->opaque->png_ptr, image->opaque->info_ptr, palette, entries); @@ -2155,10 +1926,10 @@ png_image_write_main(png_voidp argument) int alpha = !colormap && (format & PNG_FORMAT_FLAG_ALPHA); int write_16bit = linear && !colormap && (display->convert_to_8bit == 0); -# ifdef PNG_BENIGN_ERRORS_SUPPORTED +# ifdef PNG_BENIGN_ERRORS_SUPPORTED /* Make sure we error out on any bad situation */ png_set_benign_errors(png_ptr, 0/*error*/); -# endif +# endif /* Default the 'row_stride' parameter if required. */ if (display->row_stride == 0) @@ -2237,23 +2008,23 @@ png_image_write_main(png_voidp argument) png_set_swap(png_ptr); } -# ifdef PNG_SIMPLIFIED_WRITE_BGR_SUPPORTED +# ifdef PNG_SIMPLIFIED_WRITE_BGR_SUPPORTED if ((format & PNG_FORMAT_FLAG_BGR) != 0) { if (colormap == 0 && (format & PNG_FORMAT_FLAG_COLOR) != 0) png_set_bgr(png_ptr); format &= ~PNG_FORMAT_FLAG_BGR; } -# endif +# endif -# ifdef PNG_SIMPLIFIED_WRITE_AFIRST_SUPPORTED +# ifdef PNG_SIMPLIFIED_WRITE_AFIRST_SUPPORTED if ((format & PNG_FORMAT_FLAG_AFIRST) != 0) { if (colormap == 0 && (format & PNG_FORMAT_FLAG_ALPHA) != 0) png_set_swap_alpha(png_ptr); format &= ~PNG_FORMAT_FLAG_AFIRST; } -# endif +# endif /* If there are 16 or fewer color-map entries we wrote a lower bit depth * above, but the application data is still byte packed. @@ -2289,9 +2060,9 @@ png_image_write_main(png_voidp argument) * it about 50 times. The speed-up in pngstest was about 10-20% of the * total (user) time on a heavily loaded system. */ -#ifdef PNG_WRITE_CUSTOMIZE_COMPRESSION_SUPPORTED +# ifdef PNG_WRITE_CUSTOMIZE_COMPRESSION_SUPPORTED png_set_compression_level(png_ptr, 3); -#endif +# endif } /* Check for the cases that currently require a pre-transform on the row @@ -2454,6 +2225,6 @@ png_image_write_to_file(png_imagep image, const char *file_name, else return 0; } -#endif /* STDIO */ +# endif /* STDIO */ #endif /* SIMPLIFIED_WRITE */ #endif /* WRITE */ diff --git a/Build/source/libs/libpng/libpng-1.6.17/pngwtran.c b/Build/source/libs/libpng/libpng-1.6.18/pngwtran.c index db82e27bcea..5dc949157d4 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/pngwtran.c +++ b/Build/source/libs/libpng/libpng-1.6.18/pngwtran.c @@ -1,7 +1,7 @@ /* pngwtran.c - transforms the data in a row for PNG writers * - * Last changed in libpng 1.6.17 [March 26, 2015] + * Last changed in libpng 1.6.18 [July 23, 2015] * Copyright (c) 1998-2015 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) @@ -71,7 +71,8 @@ png_do_pack(png_row_infop row_info, png_bytep row, png_uint_32 bit_depth) case 2: { png_bytep sp, dp; - int shift, v; + unsigned int shift; + int v; png_uint_32 i; png_uint_32 row_width = row_info->width; @@ -110,7 +111,8 @@ png_do_pack(png_row_infop row_info, png_bytep row, png_uint_32 bit_depth) case 4: { png_bytep sp, dp; - int shift, v; + unsigned int shift; + int v; png_uint_32 i; png_uint_32 row_width = row_info->width; @@ -422,7 +424,7 @@ png_do_write_invert_alpha(png_row_infop row_info, png_bytep row) *(dp++) = *(sp++); */ sp+=3; dp = sp; - *(dp++) = (png_byte)(255 - *(sp++)); + *dp = (png_byte)(255 - *(sp++)); } } @@ -446,7 +448,7 @@ png_do_write_invert_alpha(png_row_infop row_info, png_bytep row) */ sp+=6; dp = sp; *(dp++) = (png_byte)(255 - *(sp++)); - *(dp++) = (png_byte)(255 - *(sp++)); + *dp = (png_byte)(255 - *(sp++)); } } #endif /* WRITE_16BIT */ @@ -484,7 +486,7 @@ png_do_write_invert_alpha(png_row_infop row_info, png_bytep row) */ sp+=2; dp = sp; *(dp++) = (png_byte)(255 - *(sp++)); - *(dp++) = (png_byte)(255 - *(sp++)); + *dp = (png_byte)(255 - *(sp++)); } } #endif /* WRITE_16BIT */ diff --git a/Build/source/libs/libpng/libpng-1.6.17/pngwutil.c b/Build/source/libs/libpng/libpng-1.6.18/pngwutil.c index b289671d12f..9e6019e5520 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/pngwutil.c +++ b/Build/source/libs/libpng/libpng-1.6.18/pngwutil.c @@ -1,7 +1,7 @@ /* pngwutil.c - utilities to write a PNG file * - * Last changed in libpng 1.6.17 [March 26, 2015] + * Last changed in libpng 1.6.18 [July 23, 2015] * Copyright (c) 1998-2015 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) @@ -308,7 +308,7 @@ png_deflate_claim(png_structrp png_ptr, png_uint_32 owner, */ (void)png_safecat(msg, (sizeof msg), 10, " using zstream"); #endif -#if PNG_LIBPNG_BUILD_BASE_TYPE >= PNG_LIBPNG_BUILD_RC +#if PNG_RELEASE_BUILD png_warning(png_ptr, msg); /* Attempt sane error recovery */ @@ -1961,6 +1961,10 @@ png_write_start_row(png_structrp png_ptr) png_alloc_size_t buf_size; int usr_pixel_depth; +#ifdef PNG_WRITE_FILTER_SUPPORTED + png_byte filters; +#endif + png_debug(1, "in png_write_start_row"); usr_pixel_depth = png_ptr->usr_channels * png_ptr->usr_bit_depth; @@ -1971,50 +1975,54 @@ png_write_start_row(png_structrp png_ptr) png_ptr->maximum_pixel_depth = (png_byte)usr_pixel_depth; /* Set up row buffer */ - png_ptr->row_buf = (png_bytep)png_malloc(png_ptr, buf_size); + png_ptr->row_buf = png_voidcast(png_bytep, png_malloc(png_ptr, buf_size)); png_ptr->row_buf[0] = PNG_FILTER_VALUE_NONE; #ifdef PNG_WRITE_FILTER_SUPPORTED - /* Set up filtering buffer, if using this filter */ - if (png_ptr->do_filter & PNG_FILTER_SUB) - { - png_ptr->sub_row = (png_bytep)png_malloc(png_ptr, png_ptr->rowbytes + 1); + filters = png_ptr->do_filter; - png_ptr->sub_row[0] = PNG_FILTER_VALUE_SUB; - } + if (png_ptr->height == 1) + filters &= 0xff & ~(PNG_FILTER_UP|PNG_FILTER_AVG|PNG_FILTER_PAETH); + + if (png_ptr->width == 1) + filters &= 0xff & ~(PNG_FILTER_SUB|PNG_FILTER_AVG|PNG_FILTER_PAETH); - /* We only need to keep the previous row if we are using one of these. */ - if ((png_ptr->do_filter & - (PNG_FILTER_AVG | PNG_FILTER_UP | PNG_FILTER_PAETH)) != 0) + if (filters == 0) + filters = PNG_FILTER_NONE; + + png_ptr->do_filter = filters; + + if (((filters & (PNG_FILTER_SUB | PNG_FILTER_UP | PNG_FILTER_AVG | + PNG_FILTER_PAETH)) != 0) && png_ptr->try_row == NULL) { - /* Set up previous row buffer */ - png_ptr->prev_row = (png_bytep)png_calloc(png_ptr, buf_size); + int num_filters = 0; - if ((png_ptr->do_filter & PNG_FILTER_UP) != 0) - { - png_ptr->up_row = (png_bytep)png_malloc(png_ptr, - png_ptr->rowbytes + 1); + png_ptr->try_row = png_voidcast(png_bytep, png_malloc(png_ptr, buf_size)); - png_ptr->up_row[0] = PNG_FILTER_VALUE_UP; - } + if (filters & PNG_FILTER_SUB) + num_filters++; - if ((png_ptr->do_filter & PNG_FILTER_AVG) != 0) - { - png_ptr->avg_row = (png_bytep)png_malloc(png_ptr, - png_ptr->rowbytes + 1); + if (filters & PNG_FILTER_UP) + num_filters++; - png_ptr->avg_row[0] = PNG_FILTER_VALUE_AVG; - } + if (filters & PNG_FILTER_AVG) + num_filters++; - if ((png_ptr->do_filter & PNG_FILTER_PAETH) != 0) - { - png_ptr->paeth_row = (png_bytep)png_malloc(png_ptr, - png_ptr->rowbytes + 1); + if (filters & PNG_FILTER_PAETH) + num_filters++; - png_ptr->paeth_row[0] = PNG_FILTER_VALUE_PAETH; - } + if (num_filters > 1) + png_ptr->tst_row = png_voidcast(png_bytep, png_malloc(png_ptr, + buf_size)); } + + /* We only need to keep the previous row if we are using one of the following + * filters. + */ + if ((filters & (PNG_FILTER_AVG | PNG_FILTER_UP | PNG_FILTER_PAETH)) != 0) + png_ptr->prev_row = png_voidcast(png_bytep, + png_calloc(png_ptr, buf_size)); #endif /* WRITE_FILTER */ #ifdef PNG_WRITE_INTERLACING_SUPPORTED @@ -2160,7 +2168,7 @@ png_do_write_interlace(png_row_infop row_info, png_bytep row, int pass) { png_bytep sp; png_bytep dp; - int shift; + unsigned int shift; int d; int value; png_uint_32 i; @@ -2198,7 +2206,7 @@ png_do_write_interlace(png_row_infop row_info, png_bytep row, int pass) { png_bytep sp; png_bytep dp; - int shift; + unsigned int shift; int d; int value; png_uint_32 i; @@ -2235,7 +2243,7 @@ png_do_write_interlace(png_row_infop row_info, png_bytep row, int pass) { png_bytep sp; png_bytep dp; - int shift; + unsigned int shift; int d; int value; png_uint_32 i; @@ -2310,6 +2318,7 @@ png_do_write_interlace(png_row_infop row_info, png_bytep row, int pass) } #endif + /* This filters the row, chooses which filter to use, if it has not already * been specified by the application, and then writes the row out with the * chosen filter. @@ -2318,42 +2327,172 @@ static void /* PRIVATE */ png_write_filtered_row(png_structrp png_ptr, png_bytep filtered_row, png_size_t row_bytes); -#define PNG_MAXSUM (((png_uint_32)(-1)) >> 1) -#define PNG_HISHIFT 10 -#define PNG_LOMASK ((png_uint_32)0xffffL) -#define PNG_HIMASK ((png_uint_32)(~PNG_LOMASK >> PNG_HISHIFT)) +#ifdef PNG_WRITE_FILTER_SUPPORTED +static png_size_t /* PRIVATE */ +png_setup_sub_row(png_structrp png_ptr, const png_uint_32 bpp, + const png_size_t row_bytes, const png_size_t lmins) +{ + png_bytep rp, dp, lp; + png_size_t i; + png_size_t sum = 0; + int v; + + png_ptr->try_row[0] = PNG_FILTER_VALUE_SUB; + + for (i = 0, rp = png_ptr->row_buf + 1, dp = png_ptr->try_row + 1; i < bpp; + i++, rp++, dp++) + { + v = *dp = *rp; + sum += (v < 128) ? v : 256 - v; + } + + for (lp = png_ptr->row_buf + 1; i < row_bytes; + i++, rp++, lp++, dp++) + { + v = *dp = (png_byte)(((int)*rp - (int)*lp) & 0xff); + sum += (v < 128) ? v : 256 - v; + + if (sum > lmins) /* We are already worse, don't continue. */ + break; + } + + return (sum); +} + +static png_size_t /* PRIVATE */ +png_setup_up_row(png_structrp png_ptr, const png_size_t row_bytes, + const png_size_t lmins) +{ + png_bytep rp, dp, pp; + png_size_t i; + png_size_t sum = 0; + int v; + + png_ptr->try_row[0] = PNG_FILTER_VALUE_UP; + + for (i = 0, rp = png_ptr->row_buf + 1, dp = png_ptr->try_row + 1, + pp = png_ptr->prev_row + 1; i < row_bytes; + i++, rp++, pp++, dp++) + { + v = *dp = (png_byte)(((int)*rp - (int)*pp) & 0xff); + sum += (v < 128) ? v : 256 - v; + + if (sum > lmins) /* We are already worse, don't continue. */ + break; + } + + return (sum); +} + +static png_size_t /* PRIVATE */ +png_setup_avg_row(png_structrp png_ptr, const png_uint_32 bpp, + const png_size_t row_bytes, const png_size_t lmins) +{ + png_bytep rp, dp, pp, lp; + png_uint_32 i; + png_size_t sum = 0; + int v; + + png_ptr->try_row[0] = PNG_FILTER_VALUE_AVG; + + for (i = 0, rp = png_ptr->row_buf + 1, dp = png_ptr->try_row + 1, + pp = png_ptr->prev_row + 1; i < bpp; i++) + { + v = *dp++ = (png_byte)(((int)*rp++ - ((int)*pp++ / 2)) & 0xff); + + sum += (v < 128) ? v : 256 - v; + } + + for (lp = png_ptr->row_buf + 1; i < row_bytes; i++) + { + v = *dp++ = (png_byte)(((int)*rp++ - (((int)*pp++ + (int)*lp++) / 2)) + & 0xff); + + sum += (v < 128) ? v : 256 - v; + + if (sum > lmins) /* We are already worse, don't continue. */ + break; + } + + return (sum); +} + +static png_size_t /* PRIVATE */ +png_setup_paeth_row(png_structrp png_ptr, const png_uint_32 bpp, + const png_size_t row_bytes, const png_size_t lmins) +{ + png_bytep rp, dp, pp, cp, lp; + png_size_t i; + png_size_t sum = 0; + int v; + + png_ptr->try_row[0] = PNG_FILTER_VALUE_PAETH; + + for (i = 0, rp = png_ptr->row_buf + 1, dp = png_ptr->try_row + 1, + pp = png_ptr->prev_row + 1; i < bpp; i++) + { + v = *dp++ = (png_byte)(((int)*rp++ - (int)*pp++) & 0xff); + + sum += (v < 128) ? v : 256 - v; + } + + for (lp = png_ptr->row_buf + 1, cp = png_ptr->prev_row + 1; i < row_bytes; + i++) + { + int a, b, c, pa, pb, pc, p; + + b = *pp++; + c = *cp++; + a = *lp++; + + p = b - c; + pc = a - c; + +#ifdef PNG_USE_ABS + pa = abs(p); + pb = abs(pc); + pc = abs(p + pc); +#else + pa = p < 0 ? -p : p; + pb = pc < 0 ? -pc : pc; + pc = (p + pc) < 0 ? -(p + pc) : p + pc; +#endif + + p = (pa <= pb && pa <=pc) ? a : (pb <= pc) ? b : c; + + v = *dp++ = (png_byte)(((int)*rp++ - p) & 0xff); + + sum += (v < 128) ? v : 256 - v; + + if (sum > lmins) /* We are already worse, don't continue. */ + break; + } + + return (sum); +} +#endif /* WRITE_FILTER */ + void /* PRIVATE */ png_write_find_filter(png_structrp png_ptr, png_row_infop row_info) { - png_bytep best_row; -#ifdef PNG_WRITE_FILTER_SUPPORTED - png_bytep prev_row, row_buf; - png_uint_32 mins, bpp; +#ifndef PNG_WRITE_FILTER_SUPPORTED + png_write_filtered_row(png_ptr, png_ptr->row_buf, row_info->rowbytes+1); +#else png_byte filter_to_do = png_ptr->do_filter; + png_bytep row_buf; + png_bytep best_row; + png_uint_32 bpp; + png_size_t mins; png_size_t row_bytes = row_info->rowbytes; -#ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED - int num_p_filters = png_ptr->num_prev_filters; -#endif png_debug(1, "in png_write_find_filter"); -#ifndef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED - if (png_ptr->row_number == 0 && filter_to_do == PNG_ALL_FILTERS) - { - /* These will never be selected so we need not test them. */ - filter_to_do &= ~(PNG_FILTER_UP | PNG_FILTER_PAETH); - } -#endif - /* Find out how many bytes offset each pixel is */ bpp = (row_info->pixel_depth + 7) >> 3; - prev_row = png_ptr->prev_row; -#endif - best_row = png_ptr->row_buf; -#ifdef PNG_WRITE_FILTER_SUPPORTED - row_buf = best_row; - mins = PNG_MAXSUM; + row_buf = png_ptr->row_buf; + mins = PNG_SIZE_MAX - 256/* so we can detect potential overflow of the + running sum */; /* The prediction method we use is to find which method provides the * smallest value when summing the absolute values of the distances @@ -2383,57 +2522,37 @@ png_write_find_filter(png_structrp png_ptr, png_row_infop row_info) /* We don't need to test the 'no filter' case if this is the only filter * that has been chosen, as it doesn't actually do anything to the data. */ + best_row = png_ptr->row_buf; + + if ((filter_to_do & PNG_FILTER_NONE) != 0 && filter_to_do != PNG_FILTER_NONE) { png_bytep rp; - png_uint_32 sum = 0; + png_size_t sum = 0; png_size_t i; int v; - for (i = 0, rp = row_buf + 1; i < row_bytes; i++, rp++) + if (PNG_SIZE_MAX/128 <= row_bytes) { - v = *rp; - sum += (v < 128) ? v : 256 - v; - } + for (i = 0, rp = row_buf + 1; i < row_bytes; i++, rp++) + { + /* Check for overflow */ + if (sum > PNG_SIZE_MAX/128 - 256) + break; -#ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED - if (png_ptr->heuristic_method == PNG_FILTER_HEURISTIC_WEIGHTED) + v = *rp; + sum += (v < 128) ? v : 256 - v; + } + } + else /* Overflow is not possible */ { - png_uint_32 sumhi, sumlo; - int j; - sumlo = sum & PNG_LOMASK; - sumhi = (sum >> PNG_HISHIFT) & PNG_HIMASK; /* Gives us some footroom */ - - /* Reduce the sum if we match any of the previous rows */ - for (j = 0; j < num_p_filters; j++) + for (i = 0, rp = row_buf + 1; i < row_bytes; i++, rp++) { - if (png_ptr->prev_filters[j] == PNG_FILTER_VALUE_NONE) - { - sumlo = (sumlo * png_ptr->filter_weights[j]) >> - PNG_WEIGHT_SHIFT; - - sumhi = (sumhi * png_ptr->filter_weights[j]) >> - PNG_WEIGHT_SHIFT; - } + v = *rp; + sum += (v < 128) ? v : 256 - v; } - - /* Factor in the cost of this filter (this is here for completeness, - * but it makes no sense to have a "cost" for the NONE filter, as - * it has the minimum possible computational cost - none). - */ - sumlo = (sumlo * png_ptr->filter_costs[PNG_FILTER_VALUE_NONE]) >> - PNG_COST_SHIFT; - - sumhi = (sumhi * png_ptr->filter_costs[PNG_FILTER_VALUE_NONE]) >> - PNG_COST_SHIFT; - - if (sumhi > PNG_HIMASK) - sum = PNG_MAXSUM; - - else - sum = (sumhi << PNG_HISHIFT) + sumlo; } -#endif + mins = sum; } @@ -2441,553 +2560,110 @@ png_write_find_filter(png_structrp png_ptr, png_row_infop row_info) if (filter_to_do == PNG_FILTER_SUB) /* It's the only filter so no testing is needed */ { - png_bytep rp, lp, dp; - png_size_t i; - - for (i = 0, rp = row_buf + 1, dp = png_ptr->sub_row + 1; i < bpp; - i++, rp++, dp++) - { - *dp = *rp; - } - - for (lp = row_buf + 1; i < row_bytes; - i++, rp++, lp++, dp++) - { - *dp = (png_byte)((int)*rp - (int)*lp); - } - - best_row = png_ptr->sub_row; + (void) png_setup_sub_row(png_ptr, bpp, row_bytes, mins); + best_row = png_ptr->try_row; } else if ((filter_to_do & PNG_FILTER_SUB) != 0) { - png_bytep rp, dp, lp; - png_uint_32 sum = 0, lmins = mins; - png_size_t i; - int v; - -#ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED - /* We temporarily increase the "minimum sum" by the factor we - * would reduce the sum of this filter, so that we can do the - * early exit comparison without scaling the sum each time. - */ - if (png_ptr->heuristic_method == PNG_FILTER_HEURISTIC_WEIGHTED) - { - int j; - png_uint_32 lmhi, lmlo; - lmlo = lmins & PNG_LOMASK; - lmhi = (lmins >> PNG_HISHIFT) & PNG_HIMASK; - - for (j = 0; j < num_p_filters; j++) - { - if (png_ptr->prev_filters[j] == PNG_FILTER_VALUE_SUB) - { - lmlo = (lmlo * png_ptr->inv_filter_weights[j]) >> - PNG_WEIGHT_SHIFT; - - lmhi = (lmhi * png_ptr->inv_filter_weights[j]) >> - PNG_WEIGHT_SHIFT; - } - } - - lmlo = (lmlo * png_ptr->inv_filter_costs[PNG_FILTER_VALUE_SUB]) >> - PNG_COST_SHIFT; + png_size_t sum; + png_size_t lmins = mins; - lmhi = (lmhi * png_ptr->inv_filter_costs[PNG_FILTER_VALUE_SUB]) >> - PNG_COST_SHIFT; - - if (lmhi > PNG_HIMASK) - lmins = PNG_MAXSUM; - - else - lmins = (lmhi << PNG_HISHIFT) + lmlo; - } -#endif - - for (i = 0, rp = row_buf + 1, dp = png_ptr->sub_row + 1; i < bpp; - i++, rp++, dp++) - { - v = *dp = *rp; - - sum += (v < 128) ? v : 256 - v; - } - - for (lp = row_buf + 1; i < row_bytes; - i++, rp++, lp++, dp++) - { - v = *dp = (png_byte)((int)*rp - (int)*lp); - - sum += (v < 128) ? v : 256 - v; - - if (sum > lmins) /* We are already worse, don't continue. */ - break; - } - -#ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED - if (png_ptr->heuristic_method == PNG_FILTER_HEURISTIC_WEIGHTED) - { - int j; - png_uint_32 sumhi, sumlo; - sumlo = sum & PNG_LOMASK; - sumhi = (sum >> PNG_HISHIFT) & PNG_HIMASK; - - for (j = 0; j < num_p_filters; j++) - { - if (png_ptr->prev_filters[j] == PNG_FILTER_VALUE_SUB) - { - sumlo = (sumlo * png_ptr->inv_filter_weights[j]) >> - PNG_WEIGHT_SHIFT; - - sumhi = (sumhi * png_ptr->inv_filter_weights[j]) >> - PNG_WEIGHT_SHIFT; - } - } - - sumlo = (sumlo * png_ptr->inv_filter_costs[PNG_FILTER_VALUE_SUB]) >> - PNG_COST_SHIFT; - - sumhi = (sumhi * png_ptr->inv_filter_costs[PNG_FILTER_VALUE_SUB]) >> - PNG_COST_SHIFT; - - if (sumhi > PNG_HIMASK) - sum = PNG_MAXSUM; - - else - sum = (sumhi << PNG_HISHIFT) + sumlo; - } -#endif + sum = png_setup_sub_row(png_ptr, bpp, row_bytes, lmins); if (sum < mins) { mins = sum; - best_row = png_ptr->sub_row; + best_row = png_ptr->try_row; + if (png_ptr->tst_row != NULL) + { + png_ptr->try_row = png_ptr->tst_row; + png_ptr->tst_row = best_row; + } } } /* Up filter */ if (filter_to_do == PNG_FILTER_UP) { - png_bytep rp, dp, pp; - png_size_t i; - - for (i = 0, rp = row_buf + 1, dp = png_ptr->up_row + 1, - pp = prev_row + 1; i < row_bytes; - i++, rp++, pp++, dp++) - { - *dp = (png_byte)((int)*rp - (int)*pp); - } - - best_row = png_ptr->up_row; + (void) png_setup_up_row(png_ptr, row_bytes, mins); + best_row = png_ptr->try_row; } else if ((filter_to_do & PNG_FILTER_UP) != 0) { - png_bytep rp, dp, pp; - png_uint_32 sum = 0, lmins = mins; - png_size_t i; - int v; - - -#ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED - if (png_ptr->heuristic_method == PNG_FILTER_HEURISTIC_WEIGHTED) - { - int j; - png_uint_32 lmhi, lmlo; - lmlo = lmins & PNG_LOMASK; - lmhi = (lmins >> PNG_HISHIFT) & PNG_HIMASK; - - for (j = 0; j < num_p_filters; j++) - { - if (png_ptr->prev_filters[j] == PNG_FILTER_VALUE_UP) - { - lmlo = (lmlo * png_ptr->inv_filter_weights[j]) >> - PNG_WEIGHT_SHIFT; - - lmhi = (lmhi * png_ptr->inv_filter_weights[j]) >> - PNG_WEIGHT_SHIFT; - } - } - - lmlo = (lmlo * png_ptr->inv_filter_costs[PNG_FILTER_VALUE_UP]) >> - PNG_COST_SHIFT; + png_size_t sum; + png_size_t lmins = mins; - lmhi = (lmhi * png_ptr->inv_filter_costs[PNG_FILTER_VALUE_UP]) >> - PNG_COST_SHIFT; - - if (lmhi > PNG_HIMASK) - lmins = PNG_MAXSUM; - - else - lmins = (lmhi << PNG_HISHIFT) + lmlo; - } -#endif - - for (i = 0, rp = row_buf + 1, dp = png_ptr->up_row + 1, - pp = prev_row + 1; i < row_bytes; i++) - { - v = *dp++ = (png_byte)((int)*rp++ - (int)*pp++); - - sum += (v < 128) ? v : 256 - v; - - if (sum > lmins) /* We are already worse, don't continue. */ - break; - } - -#ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED - if (png_ptr->heuristic_method == PNG_FILTER_HEURISTIC_WEIGHTED) - { - int j; - png_uint_32 sumhi, sumlo; - sumlo = sum & PNG_LOMASK; - sumhi = (sum >> PNG_HISHIFT) & PNG_HIMASK; - - for (j = 0; j < num_p_filters; j++) - { - if (png_ptr->prev_filters[j] == PNG_FILTER_VALUE_UP) - { - sumlo = (sumlo * png_ptr->filter_weights[j]) >> - PNG_WEIGHT_SHIFT; - - sumhi = (sumhi * png_ptr->filter_weights[j]) >> - PNG_WEIGHT_SHIFT; - } - } - - sumlo = (sumlo * png_ptr->filter_costs[PNG_FILTER_VALUE_UP]) >> - PNG_COST_SHIFT; - - sumhi = (sumhi * png_ptr->filter_costs[PNG_FILTER_VALUE_UP]) >> - PNG_COST_SHIFT; - - if (sumhi > PNG_HIMASK) - sum = PNG_MAXSUM; - - else - sum = (sumhi << PNG_HISHIFT) + sumlo; - } -#endif + sum = png_setup_up_row(png_ptr, row_bytes, lmins); if (sum < mins) { mins = sum; - best_row = png_ptr->up_row; + best_row = png_ptr->try_row; + if (png_ptr->tst_row != NULL) + { + png_ptr->try_row = png_ptr->tst_row; + png_ptr->tst_row = best_row; + } } } /* Avg filter */ if (filter_to_do == PNG_FILTER_AVG) { - png_bytep rp, dp, pp, lp; - png_uint_32 i; - - for (i = 0, rp = row_buf + 1, dp = png_ptr->avg_row + 1, - pp = prev_row + 1; i < bpp; i++) - { - *dp++ = (png_byte)((int)*rp++ - ((int)*pp++ / 2)); - } - - for (lp = row_buf + 1; i < row_bytes; i++) - { - *dp++ = - (png_byte)((int)*rp++ - (((int)*pp++ + (int)*lp++) / 2)); - } - best_row = png_ptr->avg_row; + (void) png_setup_avg_row(png_ptr, bpp, row_bytes, mins); + best_row = png_ptr->try_row; } else if ((filter_to_do & PNG_FILTER_AVG) != 0) { - png_bytep rp, dp, pp, lp; - png_uint_32 sum = 0, lmins = mins; - png_size_t i; - int v; - -#ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED - if (png_ptr->heuristic_method == PNG_FILTER_HEURISTIC_WEIGHTED) - { - int j; - png_uint_32 lmhi, lmlo; - lmlo = lmins & PNG_LOMASK; - lmhi = (lmins >> PNG_HISHIFT) & PNG_HIMASK; - - for (j = 0; j < num_p_filters; j++) - { - if (png_ptr->prev_filters[j] == PNG_FILTER_VALUE_AVG) - { - lmlo = (lmlo * png_ptr->inv_filter_weights[j]) >> - PNG_WEIGHT_SHIFT; - - lmhi = (lmhi * png_ptr->inv_filter_weights[j]) >> - PNG_WEIGHT_SHIFT; - } - } - - lmlo = (lmlo * png_ptr->inv_filter_costs[PNG_FILTER_VALUE_AVG]) >> - PNG_COST_SHIFT; - - lmhi = (lmhi * png_ptr->inv_filter_costs[PNG_FILTER_VALUE_AVG]) >> - PNG_COST_SHIFT; - - if (lmhi > PNG_HIMASK) - lmins = PNG_MAXSUM; - - else - lmins = (lmhi << PNG_HISHIFT) + lmlo; - } -#endif - - for (i = 0, rp = row_buf + 1, dp = png_ptr->avg_row + 1, - pp = prev_row + 1; i < bpp; i++) - { - v = *dp++ = (png_byte)((int)*rp++ - ((int)*pp++ / 2)); - - sum += (v < 128) ? v : 256 - v; - } - - for (lp = row_buf + 1; i < row_bytes; i++) - { - v = *dp++ = - (png_byte)(((int)*rp++ - ((int)*pp++ + (int)*lp++) / 2)); - - sum += (v < 128) ? v : 256 - v; - - if (sum > lmins) /* We are already worse, don't continue. */ - break; - } - -#ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED - if (png_ptr->heuristic_method == PNG_FILTER_HEURISTIC_WEIGHTED) - { - int j; - png_uint_32 sumhi, sumlo; - sumlo = sum & PNG_LOMASK; - sumhi = (sum >> PNG_HISHIFT) & PNG_HIMASK; - - for (j = 0; j < num_p_filters; j++) - { - if (png_ptr->prev_filters[j] == PNG_FILTER_VALUE_NONE) - { - sumlo = (sumlo * png_ptr->filter_weights[j]) >> - PNG_WEIGHT_SHIFT; - - sumhi = (sumhi * png_ptr->filter_weights[j]) >> - PNG_WEIGHT_SHIFT; - } - } - - sumlo = (sumlo * png_ptr->filter_costs[PNG_FILTER_VALUE_AVG]) >> - PNG_COST_SHIFT; - - sumhi = (sumhi * png_ptr->filter_costs[PNG_FILTER_VALUE_AVG]) >> - PNG_COST_SHIFT; + png_size_t sum; + png_size_t lmins = mins; - if (sumhi > PNG_HIMASK) - sum = PNG_MAXSUM; - - else - sum = (sumhi << PNG_HISHIFT) + sumlo; - } -#endif + sum= png_setup_avg_row(png_ptr, bpp, row_bytes, lmins); if (sum < mins) { mins = sum; - best_row = png_ptr->avg_row; + best_row = png_ptr->try_row; + if (png_ptr->tst_row != NULL) + { + png_ptr->try_row = png_ptr->tst_row; + png_ptr->tst_row = best_row; + } } } /* Paeth filter */ if ((filter_to_do == PNG_FILTER_PAETH) != 0) { - png_bytep rp, dp, pp, cp, lp; - png_size_t i; - - for (i = 0, rp = row_buf + 1, dp = png_ptr->paeth_row + 1, - pp = prev_row + 1; i < bpp; i++) - { - *dp++ = (png_byte)((int)*rp++ - (int)*pp++); - } - - for (lp = row_buf + 1, cp = prev_row + 1; i < row_bytes; i++) - { - int a, b, c, pa, pb, pc, p; - - b = *pp++; - c = *cp++; - a = *lp++; - - p = b - c; - pc = a - c; - -#ifdef PNG_USE_ABS - pa = abs(p); - pb = abs(pc); - pc = abs(p + pc); -#else - pa = p < 0 ? -p : p; - pb = pc < 0 ? -pc : pc; - pc = (p + pc) < 0 ? -(p + pc) : p + pc; -#endif - - p = (pa <= pb && pa <=pc) ? a : (pb <= pc) ? b : c; - - *dp++ = (png_byte)((int)*rp++ - p); - } - best_row = png_ptr->paeth_row; + (void) png_setup_paeth_row(png_ptr, bpp, row_bytes, mins); + best_row = png_ptr->try_row; } else if ((filter_to_do & PNG_FILTER_PAETH) != 0) { - png_bytep rp, dp, pp, cp, lp; - png_uint_32 sum = 0, lmins = mins; - png_size_t i; - int v; - -#ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED - if (png_ptr->heuristic_method == PNG_FILTER_HEURISTIC_WEIGHTED) - { - int j; - png_uint_32 lmhi, lmlo; - lmlo = lmins & PNG_LOMASK; - lmhi = (lmins >> PNG_HISHIFT) & PNG_HIMASK; - - for (j = 0; j < num_p_filters; j++) - { - if (png_ptr->prev_filters[j] == PNG_FILTER_VALUE_PAETH) - { - lmlo = (lmlo * png_ptr->inv_filter_weights[j]) >> - PNG_WEIGHT_SHIFT; - - lmhi = (lmhi * png_ptr->inv_filter_weights[j]) >> - PNG_WEIGHT_SHIFT; - } - } - - lmlo = (lmlo * png_ptr->inv_filter_costs[PNG_FILTER_VALUE_PAETH]) >> - PNG_COST_SHIFT; - - lmhi = (lmhi * png_ptr->inv_filter_costs[PNG_FILTER_VALUE_PAETH]) >> - PNG_COST_SHIFT; - - if (lmhi > PNG_HIMASK) - lmins = PNG_MAXSUM; - - else - lmins = (lmhi << PNG_HISHIFT) + lmlo; - } -#endif - - for (i = 0, rp = row_buf + 1, dp = png_ptr->paeth_row + 1, - pp = prev_row + 1; i < bpp; i++) - { - v = *dp++ = (png_byte)((int)*rp++ - (int)*pp++); - - sum += (v < 128) ? v : 256 - v; - } - - for (lp = row_buf + 1, cp = prev_row + 1; i < row_bytes; i++) - { - int a, b, c, pa, pb, pc, p; + png_size_t sum; + png_size_t lmins = mins; - b = *pp++; - c = *cp++; - a = *lp++; - -#ifndef PNG_SLOW_PAETH - p = b - c; - pc = a - c; -#ifdef PNG_USE_ABS - pa = abs(p); - pb = abs(pc); - pc = abs(p + pc); -#else - pa = p < 0 ? -p : p; - pb = pc < 0 ? -pc : pc; - pc = (p + pc) < 0 ? -(p + pc) : p + pc; -#endif - p = (pa <= pb && pa <=pc) ? a : (pb <= pc) ? b : c; -#else /* SLOW_PAETH */ - p = a + b - c; - pa = abs(p - a); - pb = abs(p - b); - pc = abs(p - c); - - if (pa <= pb && pa <= pc) - p = a; - - else if (pb <= pc) - p = b; - - else - p = c; -#endif /* SLOW_PAETH */ + sum = png_setup_paeth_row(png_ptr, bpp, row_bytes, lmins); - v = *dp++ = (png_byte)((int)*rp++ - p); - - sum += (v < 128) ? v : 256 - v; - - if (sum > lmins) /* We are already worse, don't continue. */ - break; - } - -#ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED - if (png_ptr->heuristic_method == PNG_FILTER_HEURISTIC_WEIGHTED) + if (sum < mins) { - int j; - png_uint_32 sumhi, sumlo; - sumlo = sum & PNG_LOMASK; - sumhi = (sum >> PNG_HISHIFT) & PNG_HIMASK; - - for (j = 0; j < num_p_filters; j++) + mins = sum; + best_row = png_ptr->try_row; + if (png_ptr->tst_row != NULL) { - if (png_ptr->prev_filters[j] == PNG_FILTER_VALUE_PAETH) - { - sumlo = (sumlo * png_ptr->filter_weights[j]) >> - PNG_WEIGHT_SHIFT; - - sumhi = (sumhi * png_ptr->filter_weights[j]) >> - PNG_WEIGHT_SHIFT; - } + png_ptr->try_row = png_ptr->tst_row; + png_ptr->tst_row = best_row; } - - sumlo = (sumlo * png_ptr->filter_costs[PNG_FILTER_VALUE_PAETH]) >> - PNG_COST_SHIFT; - - sumhi = (sumhi * png_ptr->filter_costs[PNG_FILTER_VALUE_PAETH]) >> - PNG_COST_SHIFT; - - if (sumhi > PNG_HIMASK) - sum = PNG_MAXSUM; - - else - sum = (sumhi << PNG_HISHIFT) + sumlo; - } -#endif - - if (sum < mins) - { - best_row = png_ptr->paeth_row; } } -#endif /* WRITE_FILTER */ /* Do the actual writing of the filtered row data from the chosen filter. */ png_write_filtered_row(png_ptr, best_row, row_info->rowbytes+1); -#ifdef PNG_WRITE_FILTER_SUPPORTED -#ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED - /* Save the type of filter we picked this time for future calculations */ - if (png_ptr->num_prev_filters > 0) - { - int j; - - for (j = 1; j < num_p_filters; j++) - { - png_ptr->prev_filters[j] = png_ptr->prev_filters[j - 1]; - } - - png_ptr->prev_filters[j] = best_row[0]; - } -#endif #endif /* WRITE_FILTER */ } diff --git a/Build/source/libs/libpng/libpng-1.6.17/projects/owatcom/libpng.tgt b/Build/source/libs/libpng/libpng-1.6.18/projects/owatcom/libpng.tgt index 4a9622e68cf..4a9622e68cf 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/projects/owatcom/libpng.tgt +++ b/Build/source/libs/libpng/libpng-1.6.18/projects/owatcom/libpng.tgt diff --git a/Build/source/libs/libpng/libpng-1.6.17/projects/owatcom/libpng.wpj b/Build/source/libs/libpng/libpng-1.6.18/projects/owatcom/libpng.wpj index a70d95f96b3..a70d95f96b3 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/projects/owatcom/libpng.wpj +++ b/Build/source/libs/libpng/libpng-1.6.18/projects/owatcom/libpng.wpj diff --git a/Build/source/libs/libpng/libpng-1.6.17/projects/owatcom/pngconfig.mak b/Build/source/libs/libpng/libpng-1.6.18/projects/owatcom/pngconfig.mak index 0f988780513..0f988780513 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/projects/owatcom/pngconfig.mak +++ b/Build/source/libs/libpng/libpng-1.6.18/projects/owatcom/pngconfig.mak diff --git a/Build/source/libs/libpng/libpng-1.6.17/projects/owatcom/pngstest.tgt b/Build/source/libs/libpng/libpng-1.6.18/projects/owatcom/pngstest.tgt index f5d024518f1..f5d024518f1 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/projects/owatcom/pngstest.tgt +++ b/Build/source/libs/libpng/libpng-1.6.18/projects/owatcom/pngstest.tgt diff --git a/Build/source/libs/libpng/libpng-1.6.17/projects/owatcom/pngtest.tgt b/Build/source/libs/libpng/libpng-1.6.18/projects/owatcom/pngtest.tgt index 211f1a74886..211f1a74886 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/projects/owatcom/pngtest.tgt +++ b/Build/source/libs/libpng/libpng-1.6.18/projects/owatcom/pngtest.tgt diff --git a/Build/source/libs/libpng/libpng-1.6.17/projects/owatcom/pngvalid.tgt b/Build/source/libs/libpng/libpng-1.6.18/projects/owatcom/pngvalid.tgt index 1e78e75cb6c..1e78e75cb6c 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/projects/owatcom/pngvalid.tgt +++ b/Build/source/libs/libpng/libpng-1.6.18/projects/owatcom/pngvalid.tgt diff --git a/Build/source/libs/libpng/libpng-1.6.17/projects/visualc71/PRJ0041.mak b/Build/source/libs/libpng/libpng-1.6.18/projects/visualc71/PRJ0041.mak index c7a68b503e7..c7a68b503e7 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/projects/visualc71/PRJ0041.mak +++ b/Build/source/libs/libpng/libpng-1.6.18/projects/visualc71/PRJ0041.mak diff --git a/Build/source/libs/libpng/libpng-1.6.17/projects/visualc71/README.txt b/Build/source/libs/libpng/libpng-1.6.18/projects/visualc71/README.txt index 34565e4d005..34565e4d005 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/projects/visualc71/README.txt +++ b/Build/source/libs/libpng/libpng-1.6.18/projects/visualc71/README.txt diff --git a/Build/source/libs/libpng/libpng-1.6.17/projects/visualc71/README_zlib.txt b/Build/source/libs/libpng/libpng-1.6.18/projects/visualc71/README_zlib.txt index 81d11cbb577..81d11cbb577 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/projects/visualc71/README_zlib.txt +++ b/Build/source/libs/libpng/libpng-1.6.18/projects/visualc71/README_zlib.txt diff --git a/Build/source/libs/libpng/libpng-1.6.17/projects/visualc71/libpng.sln b/Build/source/libs/libpng/libpng-1.6.18/projects/visualc71/libpng.sln index eeb101f2e31..eeb101f2e31 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/projects/visualc71/libpng.sln +++ b/Build/source/libs/libpng/libpng-1.6.18/projects/visualc71/libpng.sln diff --git a/Build/source/libs/libpng/libpng-1.6.17/projects/visualc71/libpng.vcproj b/Build/source/libs/libpng/libpng-1.6.18/projects/visualc71/libpng.vcproj index 608ec4e6b4d..608ec4e6b4d 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/projects/visualc71/libpng.vcproj +++ b/Build/source/libs/libpng/libpng-1.6.18/projects/visualc71/libpng.vcproj diff --git a/Build/source/libs/libpng/libpng-1.6.17/projects/visualc71/pngtest.vcproj b/Build/source/libs/libpng/libpng-1.6.18/projects/visualc71/pngtest.vcproj index 3b48f1cf6f6..3b48f1cf6f6 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/projects/visualc71/pngtest.vcproj +++ b/Build/source/libs/libpng/libpng-1.6.18/projects/visualc71/pngtest.vcproj diff --git a/Build/source/libs/libpng/libpng-1.6.17/projects/visualc71/zlib.vcproj b/Build/source/libs/libpng/libpng-1.6.18/projects/visualc71/zlib.vcproj index eb218488dcf..eb218488dcf 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/projects/visualc71/zlib.vcproj +++ b/Build/source/libs/libpng/libpng-1.6.18/projects/visualc71/zlib.vcproj diff --git a/Build/source/libs/libpng/libpng-1.6.17/projects/vstudio/WARNING b/Build/source/libs/libpng/libpng-1.6.18/projects/vstudio/WARNING index da002c937df..da002c937df 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/projects/vstudio/WARNING +++ b/Build/source/libs/libpng/libpng-1.6.18/projects/vstudio/WARNING diff --git a/Build/source/libs/libpng/libpng-1.6.17/projects/vstudio/libpng/libpng.vcxproj b/Build/source/libs/libpng/libpng-1.6.18/projects/vstudio/libpng/libpng.vcxproj index de7fc3c4137..de7fc3c4137 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/projects/vstudio/libpng/libpng.vcxproj +++ b/Build/source/libs/libpng/libpng-1.6.18/projects/vstudio/libpng/libpng.vcxproj diff --git a/Build/source/libs/libpng/libpng-1.6.17/projects/vstudio/pnglibconf/pnglibconf.vcxproj b/Build/source/libs/libpng/libpng-1.6.18/projects/vstudio/pnglibconf/pnglibconf.vcxproj index e2a232cb631..e2a232cb631 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/projects/vstudio/pnglibconf/pnglibconf.vcxproj +++ b/Build/source/libs/libpng/libpng-1.6.18/projects/vstudio/pnglibconf/pnglibconf.vcxproj diff --git a/Build/source/libs/libpng/libpng-1.6.17/projects/vstudio/pngstest/pngstest.vcxproj b/Build/source/libs/libpng/libpng-1.6.18/projects/vstudio/pngstest/pngstest.vcxproj index 0d2980dd8aa..0d2980dd8aa 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/projects/vstudio/pngstest/pngstest.vcxproj +++ b/Build/source/libs/libpng/libpng-1.6.18/projects/vstudio/pngstest/pngstest.vcxproj diff --git a/Build/source/libs/libpng/libpng-1.6.17/projects/vstudio/pngtest/pngtest.vcxproj b/Build/source/libs/libpng/libpng-1.6.18/projects/vstudio/pngtest/pngtest.vcxproj index bf9266f7588..bf9266f7588 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/projects/vstudio/pngtest/pngtest.vcxproj +++ b/Build/source/libs/libpng/libpng-1.6.18/projects/vstudio/pngtest/pngtest.vcxproj diff --git a/Build/source/libs/libpng/libpng-1.6.17/projects/vstudio/pngunknown/pngunknown.vcxproj b/Build/source/libs/libpng/libpng-1.6.18/projects/vstudio/pngunknown/pngunknown.vcxproj index a30cc7a21a2..a30cc7a21a2 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/projects/vstudio/pngunknown/pngunknown.vcxproj +++ b/Build/source/libs/libpng/libpng-1.6.18/projects/vstudio/pngunknown/pngunknown.vcxproj diff --git a/Build/source/libs/libpng/libpng-1.6.17/projects/vstudio/pngvalid/pngvalid.vcxproj b/Build/source/libs/libpng/libpng-1.6.18/projects/vstudio/pngvalid/pngvalid.vcxproj index 07cf241193f..07cf241193f 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/projects/vstudio/pngvalid/pngvalid.vcxproj +++ b/Build/source/libs/libpng/libpng-1.6.18/projects/vstudio/pngvalid/pngvalid.vcxproj diff --git a/Build/source/libs/libpng/libpng-1.6.17/projects/vstudio/readme.txt b/Build/source/libs/libpng/libpng-1.6.18/projects/vstudio/readme.txt index a2521f2057b..096e86fb1dc 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/projects/vstudio/readme.txt +++ b/Build/source/libs/libpng/libpng-1.6.18/projects/vstudio/readme.txt @@ -1,7 +1,7 @@ VisualStudio instructions -libpng version 1.6.17 - March 26, 2015 +libpng version 1.6.18 - July 23, 2015 Copyright (c) 1998-2010 Glenn Randers-Pehrson diff --git a/Build/source/libs/libpng/libpng-1.6.17/projects/vstudio/vstudio.sln b/Build/source/libs/libpng/libpng-1.6.18/projects/vstudio/vstudio.sln index af0b1bab592..af0b1bab592 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/projects/vstudio/vstudio.sln +++ b/Build/source/libs/libpng/libpng-1.6.18/projects/vstudio/vstudio.sln diff --git a/Build/source/libs/libpng/libpng-1.6.17/projects/vstudio/zlib.props b/Build/source/libs/libpng/libpng-1.6.18/projects/vstudio/zlib.props index 5d6d69b7268..89c38f3e1ad 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/projects/vstudio/zlib.props +++ b/Build/source/libs/libpng/libpng-1.6.18/projects/vstudio/zlib.props @@ -2,7 +2,7 @@ <!-- * zlib.props - location of zlib source * - * libpng version 1.6.17 - March 26, 2015 + * libpng version 1.6.18 - July 23, 2015 * * Copyright (c) 1998-2011 Glenn Randers-Pehrson * diff --git a/Build/source/libs/libpng/libpng-1.6.17/projects/vstudio/zlib/zlib.vcxproj b/Build/source/libs/libpng/libpng-1.6.18/projects/vstudio/zlib/zlib.vcxproj index 6e5b94a61cc..6e5b94a61cc 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/projects/vstudio/zlib/zlib.vcxproj +++ b/Build/source/libs/libpng/libpng-1.6.18/projects/vstudio/zlib/zlib.vcxproj diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/README.txt b/Build/source/libs/libpng/libpng-1.6.18/scripts/README.txt index f6a9cf38c96..7d98b6629a4 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/README.txt +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/README.txt @@ -1,9 +1,9 @@ -Makefiles for libpng version 1.6.17 - March 26, 2015 +Makefiles for libpng version 1.6.18 - July 23, 2015 pnglibconf.h.prebuilt => Stores configuration settings makefile.linux => Linux/ELF makefile - (gcc, creates libpng16.so.16.1.6.17) + (gcc, creates libpng16.so.16.1.6.18) makefile.gcc => Generic makefile (gcc, creates static libpng.a) makefile.knr => Archaic UNIX Makefile that converts files with ansi2knr (Requires ansi2knr.c from @@ -33,12 +33,12 @@ pnglibconf.h.prebuilt => Stores configuration settings makefile.os2 => OS/2 Makefile (gcc and emx, requires libpng.def) makefile.sco => For SCO OSr5 ELF and Unixware 7 with Native cc makefile.sggcc => Silicon Graphics (gcc, - creates libpng16.so.16.1.6.17) + creates libpng16.so.16.1.6.18) makefile.sgi => Silicon Graphics IRIX makefile (cc, creates static lib) makefile.solaris => Solaris 2.X makefile (gcc, - creates libpng16.so.16.1.6.17) + creates libpng16.so.16.1.6.18) makefile.so9 => Solaris 9 makefile (gcc, - creates libpng16.so.16.1.6.17) + creates libpng16.so.16.1.6.18) makefile.std => Generic UNIX makefile (cc, creates static libpng.a) makefile.sunos => Sun makefile makefile.32sunu => Sun Ultra 32-bit makefile diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/SCOPTIONS.ppc b/Build/source/libs/libpng/libpng-1.6.18/scripts/SCOPTIONS.ppc index 2c3503e9eb2..2c3503e9eb2 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/SCOPTIONS.ppc +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/SCOPTIONS.ppc diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/checksym.awk b/Build/source/libs/libpng/libpng-1.6.18/scripts/checksym.awk index fe3af55e05e..fe3af55e05e 100755 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/checksym.awk +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/checksym.awk diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/def.c b/Build/source/libs/libpng/libpng-1.6.18/scripts/def.c index 9c88f774384..ad68d3b0c4c 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/def.c +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/def.c @@ -21,7 +21,7 @@ PNG_DFN "OS2 DESCRIPTION "PNG image compression library"" PNG_DFN "OS2 CODE PRELOAD MOVEABLE DISCARDABLE" PNG_DFN "" PNG_DFN "EXPORTS" -PNG_DFN ";Version 1.6.17" +PNG_DFN ";Version 1.6.18" #define PNG_EXPORTA(ordinal, type, name, args, attributes)\ PNG_DFN "@" SYMBOL_PREFIX "@@" name "@" diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/descrip.mms b/Build/source/libs/libpng/libpng-1.6.18/scripts/descrip.mms index 463c4251e7e..463c4251e7e 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/descrip.mms +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/descrip.mms diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/dfn.awk b/Build/source/libs/libpng/libpng-1.6.18/scripts/dfn.awk index 346b9db7d59..346b9db7d59 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/dfn.awk +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/dfn.awk diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/intprefix.c b/Build/source/libs/libpng/libpng-1.6.18/scripts/intprefix.c index 254f8e94b45..254f8e94b45 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/intprefix.c +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/intprefix.c diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/libpng-config-body.in b/Build/source/libs/libpng/libpng-1.6.18/scripts/libpng-config-body.in index b466432d546..b466432d546 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/libpng-config-body.in +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/libpng-config-body.in diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/libpng-config-head.in b/Build/source/libs/libpng/libpng-1.6.18/scripts/libpng-config-head.in index d19010df4c6..77fab38035f 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/libpng-config-head.in +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/libpng-config-head.in @@ -11,7 +11,7 @@ # Modeled after libxml-config. -version=1.6.17 +version=1.6.18 prefix="" libdir="" libs="" diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/libpng.pc.in b/Build/source/libs/libpng/libpng-1.6.18/scripts/libpng.pc.in index ce61a3e98ca..d4536c564a8 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/libpng.pc.in +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/libpng.pc.in @@ -5,6 +5,6 @@ includedir=@includedir@/libpng16 Name: libpng Description: Loads and saves PNG files -Version: 1.6.17 +Version: 1.6.18 Libs: -L${libdir} -lpng16 Cflags: -I${includedir} diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/libtool.m4 b/Build/source/libs/libpng/libpng-1.6.18/scripts/libtool.m4 index a3bc337b79a..a3bc337b79a 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/libtool.m4 +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/libtool.m4 diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/ltoptions.m4 b/Build/source/libs/libpng/libpng-1.6.18/scripts/ltoptions.m4 index 94b08297666..94b08297666 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/ltoptions.m4 +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/ltoptions.m4 diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/ltsugar.m4 b/Build/source/libs/libpng/libpng-1.6.18/scripts/ltsugar.m4 index 48bc9344a4d..48bc9344a4d 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/ltsugar.m4 +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/ltsugar.m4 diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/ltversion.m4 b/Build/source/libs/libpng/libpng-1.6.18/scripts/ltversion.m4 index fa04b52a3bf..fa04b52a3bf 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/ltversion.m4 +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/ltversion.m4 diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/lt~obsolete.m4 b/Build/source/libs/libpng/libpng-1.6.18/scripts/lt~obsolete.m4 index c6b26f88f6c..c6b26f88f6c 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/lt~obsolete.m4 +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/lt~obsolete.m4 diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/macro.lst b/Build/source/libs/libpng/libpng-1.6.18/scripts/macro.lst index 57124b76a01..57124b76a01 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/macro.lst +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/macro.lst diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.32sunu b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.32sunu index 7d4b7c53a07..7d4b7c53a07 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.32sunu +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.32sunu diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.64sunu b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.64sunu index 341fce969b9..341fce969b9 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.64sunu +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.64sunu diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.acorn b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.acorn index 00b8fb5b35c..00b8fb5b35c 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.acorn +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.acorn diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.aix b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.aix index 5f62d50afb9..5f62d50afb9 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.aix +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.aix diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.amiga b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.amiga index 16a4bd5d331..16a4bd5d331 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.amiga +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.amiga diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.atari b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.atari index b5dbd4934ac..b5dbd4934ac 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.atari +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.atari diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.bc32 b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.bc32 index bdbc4cb2f91..bdbc4cb2f91 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.bc32 +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.bc32 diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.beos b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.beos index 01346f190a5..01346f190a5 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.beos +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.beos diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.bor b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.bor index 6693772dbe6..6693772dbe6 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.bor +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.bor diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.cegcc b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.cegcc index cc56297cdc5..98ec5b4f9b8 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.cegcc +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.cegcc @@ -23,7 +23,7 @@ VERMAJ = 1 VERMIN = 6 -VERMIC = 17 +VERMIC = 18 VER = $(VERMAJ).$(VERMIN).$(VERMIC) NAME = libpng PACKAGE = $(NAME)-$(VER) diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.darwin b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.darwin index be3f92c54b4..be3f92c54b4 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.darwin +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.darwin diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.dec b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.dec index 8566a0297b5..8566a0297b5 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.dec +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.dec diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.dj2 b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.dj2 index e59c432b44b..e59c432b44b 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.dj2 +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.dj2 diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.freebsd b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.freebsd index cad1a5aa873..cad1a5aa873 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.freebsd +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.freebsd diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.gcc b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.gcc index ba92d150931..ba92d150931 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.gcc +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.gcc diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.hp64 b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.hp64 index 5948be8ecf2..5948be8ecf2 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.hp64 +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.hp64 diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.hpgcc b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.hpgcc index 5c8791b1337..5c8791b1337 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.hpgcc +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.hpgcc diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.hpux b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.hpux index b07612dc7de..b07612dc7de 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.hpux +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.hpux diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.ibmc b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.ibmc index 89b11966b0d..89b11966b0d 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.ibmc +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.ibmc diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.intel b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.intel index 418726159d3..418726159d3 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.intel +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.intel diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.knr b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.knr index d8de064c4df..d8de064c4df 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.knr +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.knr diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.linux b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.linux index 86a397f4c54..20193af69e0 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.linux +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.linux @@ -10,7 +10,7 @@ # Library name: LIBNAME = libpng16 PNGMAJ = 16 -RELEASE = 17 +RELEASE = 18 # Shared library names: LIBSO=$(LIBNAME).so diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.mips b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.mips index 5633608c8b8..5633608c8b8 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.mips +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.mips diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.msc b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.msc index 539d62e94ee..539d62e94ee 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.msc +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.msc diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.msys b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.msys index 30595a08348..c16ec4039a5 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.msys +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.msys @@ -18,7 +18,7 @@ exec_prefix=$(prefix) # Library name: LIBNAME = libpng16 PNGMAJ = 16 -RELEASE = 17 +RELEASE = 18 # Shared library names: LIBSO=$(LIBNAME).dll diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.ne12bsd b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.ne12bsd index d5be81cb7db..cfcfcd3f2de 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.ne12bsd +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.ne12bsd @@ -17,7 +17,7 @@ INCSDIR=${LOCALBASE}/include/libpng16 LIB= png16 SHLIB_MAJOR= 0 -SHLIB_MINOR= 1.6.17 +SHLIB_MINOR= 1.6.18 SRCS= png.c pngset.c pngget.c pngrutil.c pngtrans.c pngwutil.c \ pngread.c pngrio.c pngwio.c pngwrite.c pngrtran.c \ pngwtran.c pngmem.c pngerror.c pngpread.c diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.netbsd b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.netbsd index 58c48844d5f..079f708f105 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.netbsd +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.netbsd @@ -17,7 +17,7 @@ INCSDIR=${LOCALBASE}/include LIB= png SHLIB_MAJOR= 16 -SHLIB_MINOR= 1.6.17 +SHLIB_MINOR= 1.6.18 SRCS= png.c pngset.c pngget.c pngrutil.c pngtrans.c pngwutil.c \ pngread.c pngrio.c pngwio.c pngwrite.c pngrtran.c \ pngwtran.c pngmem.c pngerror.c pngpread.c diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.openbsd b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.openbsd index 0ef62a4e4cb..360efd1051f 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.openbsd +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.openbsd @@ -11,7 +11,7 @@ LIBDIR= ${PREFIX}/lib MANDIR= ${PREFIX}/man/cat SHLIB_MAJOR= 16 -SHLIB_MINOR= 1.6.17 +SHLIB_MINOR= 1.6.18 LIB= png SRCS= png.c pngerror.c pngget.c pngmem.c pngpread.c \ diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.sco b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.sco index b9c7c402ba4..b9c7c402ba4 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.sco +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.sco diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.sggcc b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.sggcc index a0d051dbda8..a0d051dbda8 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.sggcc +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.sggcc diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.sgi b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.sgi index 7df09022208..7df09022208 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.sgi +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.sgi diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.so9 b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.so9 index ba9308c8a0e..ba9308c8a0e 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.so9 +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.so9 diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.solaris b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.solaris index 8a450d37157..8a450d37157 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.solaris +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.solaris diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.solaris-x86 b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.solaris-x86 index b6d24375d4d..b6d24375d4d 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.solaris-x86 +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.solaris-x86 diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.std b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.std index ee6a8683545..ee6a8683545 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.std +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.std diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.sunos b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.sunos index efe308c4781..efe308c4781 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.sunos +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.sunos diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.tc3 b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.tc3 index 1d015026cbc..1d015026cbc 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.tc3 +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.tc3 diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.vcwin32 b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.vcwin32 index 2bd143cc0ae..2bd143cc0ae 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/makefile.vcwin32 +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/makefile.vcwin32 diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/makevms.com b/Build/source/libs/libpng/libpng-1.6.18/scripts/makevms.com index f6c326103c2..f6c326103c2 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/makevms.com +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/makevms.com diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/options.awk b/Build/source/libs/libpng/libpng-1.6.18/scripts/options.awk index 81b82ff09c5..81b82ff09c5 100755 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/options.awk +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/options.awk diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/pnglibconf.dfa b/Build/source/libs/libpng/libpng-1.6.18/scripts/pnglibconf.dfa index e9a82f303ed..07293ae64ca 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/pnglibconf.dfa +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/pnglibconf.dfa @@ -222,7 +222,7 @@ option SET_OPTION disabled # with png_set_option # ARM_NEON_CHECK: (PNG_ARM_NEON == 1) compile a run-time check to see if Neon # extensions are supported. This is poorly supported and -# deprectated - use the png_set_option API. +# deprecated - use the png_set_option API. setting ARM_NEON_OPT option ARM_NEON_API disabled requires ALIGNED_MEMORY enables SET_OPTION, sets ARM_NEON_OPT 1 @@ -249,6 +249,17 @@ setting Z_DEFAULT_STRATEGY default @Z_FILTERED setting Z_DEFAULT_NOFILTER_STRATEGY default @Z_DEFAULT_STRATEGY setting ZLIB_VERNUM default @ZLIB_VERNUM +# Linkage of: +# +# API: libpng API functions +# CALLBACK: internal non-file-local callbacks +# FUNCTION: internal non-file-local functions +# DATA: internal non-file-local (const) data +setting LINKAGE_API default extern +setting LINKAGE_CALLBACK default extern +setting LINKAGE_FUNCTION default extern +setting LINKAGE_DATA default extern + setting TEXT_Z_DEFAULT_COMPRESSION default @Z_DEFAULT_COMPRESSION setting TEXT_Z_DEFAULT_STRATEGY default @Z_DEFAULT_STRATEGY diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/pnglibconf.h.prebuilt b/Build/source/libs/libpng/libpng-1.6.18/scripts/pnglibconf.h.prebuilt index b4ec3c31e8a..2719f0098d1 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/pnglibconf.h.prebuilt +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/pnglibconf.h.prebuilt @@ -1,8 +1,8 @@ -/* libpng 1.6.17 STANDARD API DEFINITION */ +/* libpng 1.6.18 STANDARD API DEFINITION */ /* pnglibconf.h - library build configuration */ -/* Libpng version 1.6.17 - March 26, 2015 */ +/* Libpng version 1.6.18 - July 23, 2015 */ /* Copyright (c) 1998-2014 Glenn Randers-Pehrson */ @@ -101,8 +101,6 @@ #define PNG_SAVE_UNKNOWN_CHUNKS_SUPPORTED #define PNG_SEQUENTIAL_READ_SUPPORTED #define PNG_SETJMP_SUPPORTED -#define PNG_SET_CHUNK_CACHE_LIMIT_SUPPORTED -#define PNG_SET_CHUNK_MALLOC_LIMIT_SUPPORTED #define PNG_SET_OPTION_SUPPORTED #define PNG_SET_UNKNOWN_CHUNKS_SUPPORTED #define PNG_SET_USER_LIMITS_SUPPORTED @@ -192,6 +190,10 @@ #define PNG_GAMMA_THRESHOLD_FIXED 5000 #define PNG_IDAT_READ_SIZE PNG_ZBUF_SIZE #define PNG_INFLATE_BUF_SIZE 1024 +#define PNG_LINKAGE_API extern +#define PNG_LINKAGE_CALLBACK extern +#define PNG_LINKAGE_DATA extern +#define PNG_LINKAGE_FUNCTION extern #define PNG_MAX_GAMMA_8 11 #define PNG_QUANTIZE_BLUE_BITS 5 #define PNG_QUANTIZE_GREEN_BITS 5 diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/pnglibconf.mak b/Build/source/libs/libpng/libpng-1.6.18/scripts/pnglibconf.mak index c125ca2c977..c125ca2c977 100755 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/pnglibconf.mak +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/pnglibconf.mak diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/pngwin.rc b/Build/source/libs/libpng/libpng-1.6.18/scripts/pngwin.rc index 9335cbbe03b..9335cbbe03b 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/pngwin.rc +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/pngwin.rc diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/prefix.c b/Build/source/libs/libpng/libpng-1.6.18/scripts/prefix.c index 8b604a09195..8b604a09195 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/prefix.c +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/prefix.c diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/smakefile.ppc b/Build/source/libs/libpng/libpng-1.6.18/scripts/smakefile.ppc index 2e7380b1f98..2e7380b1f98 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/smakefile.ppc +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/smakefile.ppc diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/sym.c b/Build/source/libs/libpng/libpng-1.6.18/scripts/sym.c index ea9e4c50705..ea9e4c50705 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/sym.c +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/sym.c diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/symbols.c b/Build/source/libs/libpng/libpng-1.6.18/scripts/symbols.c index 28b841d8b6e..28b841d8b6e 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/symbols.c +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/symbols.c diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/symbols.def b/Build/source/libs/libpng/libpng-1.6.18/scripts/symbols.def index 5bdcef20fe2..2ec46051424 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/symbols.def +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/symbols.def @@ -1,4 +1,4 @@ -;Version 1.6.17 +;Version 1.6.18 ;-------------------------------------------------------------- ; LIBPNG symbol list as a Win32 DEF file ; Contains all the symbols that can be exported from libpng diff --git a/Build/source/libs/libpng/libpng-1.6.17/scripts/vers.c b/Build/source/libs/libpng/libpng-1.6.18/scripts/vers.c index de7319716f3..de7319716f3 100644 --- a/Build/source/libs/libpng/libpng-1.6.17/scripts/vers.c +++ b/Build/source/libs/libpng/libpng-1.6.18/scripts/vers.c diff --git a/Build/source/libs/libpng/libpng-1.6.17/tests/pngimage-full b/Build/source/libs/libpng/libpng-1.6.18/tests/pngimage-full index f5eb9895eed..f5eb9895eed 100755 --- a/Build/source/libs/libpng/libpng-1.6.17/tests/pngimage-full +++ b/Build/source/libs/libpng/libpng-1.6.18/tests/pngimage-full diff --git a/Build/source/libs/libpng/libpng-1.6.17/tests/pngimage-quick b/Build/source/libs/libpng/libpng-1.6.18/tests/pngimage-quick index 2d4b5db225b..2d4b5db225b 100755 --- a/Build/source/libs/libpng/libpng-1.6.17/tests/pngimage-quick +++ b/Build/source/libs/libpng/libpng-1.6.18/tests/pngimage-quick diff --git a/Build/source/libs/libpng/libpng-1.6.17/tests/pngstest b/Build/source/libs/libpng/libpng-1.6.18/tests/pngstest index f5cbdbcae43..f5cbdbcae43 100755 --- a/Build/source/libs/libpng/libpng-1.6.17/tests/pngstest +++ b/Build/source/libs/libpng/libpng-1.6.18/tests/pngstest diff --git a/Build/source/libs/libpng/libpng-1.6.17/tests/pngstest-0g01 b/Build/source/libs/libpng/libpng-1.6.18/tests/pngstest-0g01 index 4a495ccb8f0..4a495ccb8f0 100755 --- a/Build/source/libs/libpng/libpng-1.6.17/tests/pngstest-0g01 +++ b/Build/source/libs/libpng/libpng-1.6.18/tests/pngstest-0g01 diff --git a/Build/source/libs/libpng/libpng-1.6.17/tests/pngstest-0g02 b/Build/source/libs/libpng/libpng-1.6.18/tests/pngstest-0g02 index 1a607c8e17a..1a607c8e17a 100755 --- a/Build/source/libs/libpng/libpng-1.6.17/tests/pngstest-0g02 +++ b/Build/source/libs/libpng/libpng-1.6.18/tests/pngstest-0g02 diff --git a/Build/source/libs/libpng/libpng-1.6.17/tests/pngstest-0g04 b/Build/source/libs/libpng/libpng-1.6.18/tests/pngstest-0g04 index 595ba01e333..595ba01e333 100755 --- a/Build/source/libs/libpng/libpng-1.6.17/tests/pngstest-0g04 +++ b/Build/source/libs/libpng/libpng-1.6.18/tests/pngstest-0g04 diff --git a/Build/source/libs/libpng/libpng-1.6.17/tests/pngstest-0g08 b/Build/source/libs/libpng/libpng-1.6.18/tests/pngstest-0g08 index 21a8b4bb4e0..21a8b4bb4e0 100755 --- a/Build/source/libs/libpng/libpng-1.6.17/tests/pngstest-0g08 +++ b/Build/source/libs/libpng/libpng-1.6.18/tests/pngstest-0g08 diff --git a/Build/source/libs/libpng/libpng-1.6.17/tests/pngstest-0g16 b/Build/source/libs/libpng/libpng-1.6.18/tests/pngstest-0g16 index 0104c37bdd5..0104c37bdd5 100755 --- a/Build/source/libs/libpng/libpng-1.6.17/tests/pngstest-0g16 +++ b/Build/source/libs/libpng/libpng-1.6.18/tests/pngstest-0g16 diff --git a/Build/source/libs/libpng/libpng-1.6.17/tests/pngstest-2c08 b/Build/source/libs/libpng/libpng-1.6.18/tests/pngstest-2c08 index 9e0de6f1e03..9e0de6f1e03 100755 --- a/Build/source/libs/libpng/libpng-1.6.17/tests/pngstest-2c08 +++ b/Build/source/libs/libpng/libpng-1.6.18/tests/pngstest-2c08 diff --git a/Build/source/libs/libpng/libpng-1.6.17/tests/pngstest-2c16 b/Build/source/libs/libpng/libpng-1.6.18/tests/pngstest-2c16 index c1b88b04ed6..c1b88b04ed6 100755 --- a/Build/source/libs/libpng/libpng-1.6.17/tests/pngstest-2c16 +++ b/Build/source/libs/libpng/libpng-1.6.18/tests/pngstest-2c16 diff --git a/Build/source/libs/libpng/libpng-1.6.17/tests/pngstest-3p01 b/Build/source/libs/libpng/libpng-1.6.18/tests/pngstest-3p01 index 6aeb8d06cf9..6aeb8d06cf9 100755 --- a/Build/source/libs/libpng/libpng-1.6.17/tests/pngstest-3p01 +++ b/Build/source/libs/libpng/libpng-1.6.18/tests/pngstest-3p01 diff --git a/Build/source/libs/libpng/libpng-1.6.17/tests/pngstest-3p02 b/Build/source/libs/libpng/libpng-1.6.18/tests/pngstest-3p02 index 770a75c0b10..770a75c0b10 100755 --- a/Build/source/libs/libpng/libpng-1.6.17/tests/pngstest-3p02 +++ b/Build/source/libs/libpng/libpng-1.6.18/tests/pngstest-3p02 diff --git a/Build/source/libs/libpng/libpng-1.6.17/tests/pngstest-3p04 b/Build/source/libs/libpng/libpng-1.6.18/tests/pngstest-3p04 index 957d6ae341e..957d6ae341e 100755 --- a/Build/source/libs/libpng/libpng-1.6.17/tests/pngstest-3p04 +++ b/Build/source/libs/libpng/libpng-1.6.18/tests/pngstest-3p04 diff --git a/Build/source/libs/libpng/libpng-1.6.17/tests/pngstest-3p08 b/Build/source/libs/libpng/libpng-1.6.18/tests/pngstest-3p08 index d0947afdef1..d0947afdef1 100755 --- a/Build/source/libs/libpng/libpng-1.6.17/tests/pngstest-3p08 +++ b/Build/source/libs/libpng/libpng-1.6.18/tests/pngstest-3p08 diff --git a/Build/source/libs/libpng/libpng-1.6.17/tests/pngstest-4a08 b/Build/source/libs/libpng/libpng-1.6.18/tests/pngstest-4a08 index 2fab57f01df..2fab57f01df 100755 --- a/Build/source/libs/libpng/libpng-1.6.17/tests/pngstest-4a08 +++ b/Build/source/libs/libpng/libpng-1.6.18/tests/pngstest-4a08 diff --git a/Build/source/libs/libpng/libpng-1.6.17/tests/pngstest-4a16 b/Build/source/libs/libpng/libpng-1.6.18/tests/pngstest-4a16 index e4ad5aa9adb..e4ad5aa9adb 100755 --- a/Build/source/libs/libpng/libpng-1.6.17/tests/pngstest-4a16 +++ b/Build/source/libs/libpng/libpng-1.6.18/tests/pngstest-4a16 diff --git a/Build/source/libs/libpng/libpng-1.6.17/tests/pngstest-6a08 b/Build/source/libs/libpng/libpng-1.6.18/tests/pngstest-6a08 index aa6c03c3d97..aa6c03c3d97 100755 --- a/Build/source/libs/libpng/libpng-1.6.17/tests/pngstest-6a08 +++ b/Build/source/libs/libpng/libpng-1.6.18/tests/pngstest-6a08 diff --git a/Build/source/libs/libpng/libpng-1.6.17/tests/pngstest-6a16 b/Build/source/libs/libpng/libpng-1.6.18/tests/pngstest-6a16 index 545b1b394bb..545b1b394bb 100755 --- a/Build/source/libs/libpng/libpng-1.6.17/tests/pngstest-6a16 +++ b/Build/source/libs/libpng/libpng-1.6.18/tests/pngstest-6a16 diff --git a/Build/source/libs/libpng/libpng-1.6.17/tests/pngstest-error b/Build/source/libs/libpng/libpng-1.6.18/tests/pngstest-error index ebf3a7b59ea..ebf3a7b59ea 100755 --- a/Build/source/libs/libpng/libpng-1.6.17/tests/pngstest-error +++ b/Build/source/libs/libpng/libpng-1.6.18/tests/pngstest-error diff --git a/Build/source/libs/libpng/libpng-1.6.17/tests/pngtest b/Build/source/libs/libpng/libpng-1.6.18/tests/pngtest index 813973b23ed..813973b23ed 100755 --- a/Build/source/libs/libpng/libpng-1.6.17/tests/pngtest +++ b/Build/source/libs/libpng/libpng-1.6.18/tests/pngtest diff --git a/Build/source/libs/libpng/libpng-1.6.17/tests/pngunknown-IDAT b/Build/source/libs/libpng/libpng-1.6.18/tests/pngunknown-IDAT index 71d915a9ca3..71d915a9ca3 100755 --- a/Build/source/libs/libpng/libpng-1.6.17/tests/pngunknown-IDAT +++ b/Build/source/libs/libpng/libpng-1.6.18/tests/pngunknown-IDAT diff --git a/Build/source/libs/libpng/libpng-1.6.17/tests/pngunknown-discard b/Build/source/libs/libpng/libpng-1.6.18/tests/pngunknown-discard index f1f02d4c7b1..f1f02d4c7b1 100755 --- a/Build/source/libs/libpng/libpng-1.6.17/tests/pngunknown-discard +++ b/Build/source/libs/libpng/libpng-1.6.18/tests/pngunknown-discard diff --git a/Build/source/libs/libpng/libpng-1.6.17/tests/pngunknown-if-safe b/Build/source/libs/libpng/libpng-1.6.18/tests/pngunknown-if-safe index 7c52824f83c..7c52824f83c 100755 --- a/Build/source/libs/libpng/libpng-1.6.17/tests/pngunknown-if-safe +++ b/Build/source/libs/libpng/libpng-1.6.18/tests/pngunknown-if-safe diff --git a/Build/source/libs/libpng/libpng-1.6.17/tests/pngunknown-sAPI b/Build/source/libs/libpng/libpng-1.6.18/tests/pngunknown-sAPI index e087ef25a7e..e087ef25a7e 100755 --- a/Build/source/libs/libpng/libpng-1.6.17/tests/pngunknown-sAPI +++ b/Build/source/libs/libpng/libpng-1.6.18/tests/pngunknown-sAPI diff --git a/Build/source/libs/libpng/libpng-1.6.17/tests/pngunknown-sTER b/Build/source/libs/libpng/libpng-1.6.18/tests/pngunknown-sTER index 1b945dc3476..1b945dc3476 100755 --- a/Build/source/libs/libpng/libpng-1.6.17/tests/pngunknown-sTER +++ b/Build/source/libs/libpng/libpng-1.6.18/tests/pngunknown-sTER diff --git a/Build/source/libs/libpng/libpng-1.6.17/tests/pngunknown-save b/Build/source/libs/libpng/libpng-1.6.18/tests/pngunknown-save index ae849308ce8..ae849308ce8 100755 --- a/Build/source/libs/libpng/libpng-1.6.17/tests/pngunknown-save +++ b/Build/source/libs/libpng/libpng-1.6.18/tests/pngunknown-save diff --git a/Build/source/libs/libpng/libpng-1.6.17/tests/pngunknown-vpAg b/Build/source/libs/libpng/libpng-1.6.18/tests/pngunknown-vpAg index 396c6e40d4e..396c6e40d4e 100755 --- a/Build/source/libs/libpng/libpng-1.6.17/tests/pngunknown-vpAg +++ b/Build/source/libs/libpng/libpng-1.6.18/tests/pngunknown-vpAg diff --git a/Build/source/libs/libpng/libpng-1.6.17/tests/pngvalid-gamma-16-to-8 b/Build/source/libs/libpng/libpng-1.6.18/tests/pngvalid-gamma-16-to-8 index b3223382950..b3223382950 100755 --- a/Build/source/libs/libpng/libpng-1.6.17/tests/pngvalid-gamma-16-to-8 +++ b/Build/source/libs/libpng/libpng-1.6.18/tests/pngvalid-gamma-16-to-8 diff --git a/Build/source/libs/libpng/libpng-1.6.17/tests/pngvalid-gamma-alpha-mode b/Build/source/libs/libpng/libpng-1.6.18/tests/pngvalid-gamma-alpha-mode index ed04fa511b8..ed04fa511b8 100755 --- a/Build/source/libs/libpng/libpng-1.6.17/tests/pngvalid-gamma-alpha-mode +++ b/Build/source/libs/libpng/libpng-1.6.18/tests/pngvalid-gamma-alpha-mode diff --git a/Build/source/libs/libpng/libpng-1.6.17/tests/pngvalid-gamma-background b/Build/source/libs/libpng/libpng-1.6.18/tests/pngvalid-gamma-background index 658e5fe4def..658e5fe4def 100755 --- a/Build/source/libs/libpng/libpng-1.6.17/tests/pngvalid-gamma-background +++ b/Build/source/libs/libpng/libpng-1.6.18/tests/pngvalid-gamma-background diff --git a/Build/source/libs/libpng/libpng-1.6.17/tests/pngvalid-gamma-expand16-alpha-mode b/Build/source/libs/libpng/libpng-1.6.18/tests/pngvalid-gamma-expand16-alpha-mode index bdda566a06b..bdda566a06b 100755 --- a/Build/source/libs/libpng/libpng-1.6.17/tests/pngvalid-gamma-expand16-alpha-mode +++ b/Build/source/libs/libpng/libpng-1.6.18/tests/pngvalid-gamma-expand16-alpha-mode diff --git a/Build/source/libs/libpng/libpng-1.6.17/tests/pngvalid-gamma-expand16-background b/Build/source/libs/libpng/libpng-1.6.18/tests/pngvalid-gamma-expand16-background index f993c21aebb..f993c21aebb 100755 --- a/Build/source/libs/libpng/libpng-1.6.17/tests/pngvalid-gamma-expand16-background +++ b/Build/source/libs/libpng/libpng-1.6.18/tests/pngvalid-gamma-expand16-background diff --git a/Build/source/libs/libpng/libpng-1.6.17/tests/pngvalid-gamma-expand16-transform b/Build/source/libs/libpng/libpng-1.6.18/tests/pngvalid-gamma-expand16-transform index f462534e854..f462534e854 100755 --- a/Build/source/libs/libpng/libpng-1.6.17/tests/pngvalid-gamma-expand16-transform +++ b/Build/source/libs/libpng/libpng-1.6.18/tests/pngvalid-gamma-expand16-transform diff --git a/Build/source/libs/libpng/libpng-1.6.17/tests/pngvalid-gamma-sbit b/Build/source/libs/libpng/libpng-1.6.18/tests/pngvalid-gamma-sbit index aa82fe04fea..aa82fe04fea 100755 --- a/Build/source/libs/libpng/libpng-1.6.17/tests/pngvalid-gamma-sbit +++ b/Build/source/libs/libpng/libpng-1.6.18/tests/pngvalid-gamma-sbit diff --git a/Build/source/libs/libpng/libpng-1.6.17/tests/pngvalid-gamma-threshold b/Build/source/libs/libpng/libpng-1.6.18/tests/pngvalid-gamma-threshold index 2cfca914677..2cfca914677 100755 --- a/Build/source/libs/libpng/libpng-1.6.17/tests/pngvalid-gamma-threshold +++ b/Build/source/libs/libpng/libpng-1.6.18/tests/pngvalid-gamma-threshold diff --git a/Build/source/libs/libpng/libpng-1.6.17/tests/pngvalid-gamma-transform b/Build/source/libs/libpng/libpng-1.6.18/tests/pngvalid-gamma-transform index a71ab4d5ec7..a71ab4d5ec7 100755 --- a/Build/source/libs/libpng/libpng-1.6.17/tests/pngvalid-gamma-transform +++ b/Build/source/libs/libpng/libpng-1.6.18/tests/pngvalid-gamma-transform diff --git a/Build/source/libs/libpng/libpng-1.6.17/tests/pngvalid-progressive-interlace-size b/Build/source/libs/libpng/libpng-1.6.18/tests/pngvalid-progressive-interlace-size index a31b2835570..a31b2835570 100755 --- a/Build/source/libs/libpng/libpng-1.6.17/tests/pngvalid-progressive-interlace-size +++ b/Build/source/libs/libpng/libpng-1.6.18/tests/pngvalid-progressive-interlace-size diff --git a/Build/source/libs/libpng/libpng-1.6.17/tests/pngvalid-progressive-interlace-standard b/Build/source/libs/libpng/libpng-1.6.18/tests/pngvalid-progressive-interlace-standard index 59042eb1720..59042eb1720 100755 --- a/Build/source/libs/libpng/libpng-1.6.17/tests/pngvalid-progressive-interlace-standard +++ b/Build/source/libs/libpng/libpng-1.6.18/tests/pngvalid-progressive-interlace-standard diff --git a/Build/source/libs/libpng/libpng-1.6.17/tests/pngvalid-progressive-interlace-transform b/Build/source/libs/libpng/libpng-1.6.18/tests/pngvalid-progressive-interlace-transform index edf9a8a79ee..edf9a8a79ee 100755 --- a/Build/source/libs/libpng/libpng-1.6.17/tests/pngvalid-progressive-interlace-transform +++ b/Build/source/libs/libpng/libpng-1.6.18/tests/pngvalid-progressive-interlace-transform diff --git a/Build/source/libs/libpng/libpng-1.6.17/tests/pngvalid-progressive-standard b/Build/source/libs/libpng/libpng-1.6.18/tests/pngvalid-progressive-standard index aa1b4b4db3a..aa1b4b4db3a 100755 --- a/Build/source/libs/libpng/libpng-1.6.17/tests/pngvalid-progressive-standard +++ b/Build/source/libs/libpng/libpng-1.6.18/tests/pngvalid-progressive-standard diff --git a/Build/source/libs/libpng/libpng-1.6.17/tests/pngvalid-standard b/Build/source/libs/libpng/libpng-1.6.18/tests/pngvalid-standard index aa1b4b4db3a..aa1b4b4db3a 100755 --- a/Build/source/libs/libpng/libpng-1.6.17/tests/pngvalid-standard +++ b/Build/source/libs/libpng/libpng-1.6.18/tests/pngvalid-standard diff --git a/Build/source/libs/libpng/version.ac b/Build/source/libs/libpng/version.ac index 68baa19fee4..c0c8326516d 100644 --- a/Build/source/libs/libpng/version.ac +++ b/Build/source/libs/libpng/version.ac @@ -8,4 +8,4 @@ dnl dnl -------------------------------------------------------- dnl dnl m4-include this file to define the current libpng version -m4_define([libpng_version], [1.6.17]) +m4_define([libpng_version], [1.6.18]) |