mirror of
https://git.code.sf.net/p/libpng/code.git
synced 2025-07-10 18:04:09 +02:00
Compare commits
4 Commits
v1.0.13
...
v1.2.0beta
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b182893c04 | ||
|
|
8b6a889881 | ||
|
|
3097f618f2 | ||
|
|
1fd5fb33c2 |
56
ANNOUNCE
56
ANNOUNCE
@@ -1,49 +1,23 @@
|
||||
|
||||
Libpng 1.0.13 - April 15, 2002
|
||||
Libpng 1.2.0beta4 - June 23, 2001
|
||||
|
||||
This is a public release of libpng, intended for use in production codes.
|
||||
|
||||
Changes since the last public release (1.2.1):
|
||||
Changes since the last public release (1.0.12):
|
||||
|
||||
Fixed a bug with reading the length of iCCP profiles (Larry Reeves).
|
||||
Revised makefile.linux, makefile.gcmmx, and others to generate
|
||||
libpng.a, libpngNN.so, libpng.so.NN, and libpngNN/png.h
|
||||
Revised makefile.darwin to remove "-undefined suppress" option.
|
||||
Added checks for gamma and chromaticity values over 21474.83, which exceed
|
||||
the limit for PNG unsigned 32-bit integers when encoded.
|
||||
Revised calls to png_create_read_struct() and png_create_write_struct()
|
||||
for simpler debugging.
|
||||
Revised png_zalloc() so zlib handles errors (uses PNG_FLAG_MALLOC_NULL_MEM_OK)
|
||||
Check chunk_length and idat_size for invalid (over PNG_MAX_UINT) lengths.
|
||||
Check for invalid image dimensions in png_get_IHDR.
|
||||
Added install-shared and install-static targets to all makefiles that make
|
||||
shared libraries.
|
||||
Always do gamma compensation when image is partially transparent.
|
||||
Modified shared-library makefiles to install pkgconfig/libpngNN.pc.
|
||||
Export (with PNGAPI) png_zalloc, png_zfree, and png_handle_as_unknown
|
||||
Removed unused png_write_destroy_info prototype from png.h
|
||||
Eliminated incorrect use of width_mmx from pnggccrd.c in pixel_bytes == 8 case
|
||||
Stopped a double free of palette, hist, and trans when not using free_me.
|
||||
Added makefile.32sunu for Sun Ultra 32 and makefile.64sunu for Sun Ultra 64.
|
||||
Compute background.gray and background_1.gray even when color_type is RGB
|
||||
in case image gets reduced to gray later (Jason Summers).
|
||||
Added PNG_1_0_X macro which can be used to build a 1.0.x-compatible library.
|
||||
Added missing PNGAPI to several function definitions.
|
||||
Check for invalid bit_depth or color_type in png_get_IHDR(), and
|
||||
check for missing PLTE or IHDR in png_push_read_chunk() (Matthias Clasen).
|
||||
Revised iTXt support to accept NULL for lang and lang_key.
|
||||
Compute gamma for color components of background even when color_type is gray.
|
||||
Revised makefiles to put png.h and pngconf.h only in $prefix/include/libpngNN
|
||||
Revised makefiles to make symlink to libpng.so.NN in addition to libpngNN.so
|
||||
Prevent png_zalloc() from trying to memset memory that it failed to acquire.
|
||||
Add typecasts of PNG_MAX_UINT in pngset_cHRM_fixed() (Matt Holgate).
|
||||
Ensure that the right function (user or default) is used to free the
|
||||
png_struct after an error in png_create_read_struct_2().
|
||||
Save the ebx register in pnggccrd.c (Sami Farin)
|
||||
Add "mem_ptr = png_ptr->mem_ptr" in png_destroy_write_struct() (Paul Gardner).
|
||||
Updated makefiles to put headers in include/libpng and remove old include/*.h.
|
||||
Revised description of png_set_filter() in libpng.3/libpng.txt.
|
||||
Revised makefile.netbsd and added makefile.neNNbsd and makefile.freebsd
|
||||
Enabled PNG_MNG_FEATURES_SUPPORTED and enabled PNG_ASSEMBLER_CODE_SUPPORTED
|
||||
by default.
|
||||
Added runtime selection of MMX features.
|
||||
Added png_set_strip_error_numbers function and related macros.
|
||||
Enabled user memory function by default.
|
||||
Increased png_mng_features flag from png_byte to png_uint_32.
|
||||
Bumped shared-library (so-number) and dll-number to 3.
|
||||
Updated contrib/gregbook
|
||||
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.
|
||||
Updated example.c
|
||||
Revised prototypes for png_debug_malloc and png_debug_free in pngtest.c
|
||||
|
||||
Send comments/corrections/commendations to
|
||||
png-implement@ccrc.wustl.edu or to randeg@alum.rpi.edu
|
||||
|
||||
109
CHANGES
109
CHANGES
@@ -733,11 +733,10 @@ version 1.0.6j [May 3, 2000]
|
||||
version 1.0.7beta11 [May 7, 2000]
|
||||
Removed the new PNG_CREATED_READ_STRUCT and PNG_CREATED_WRITE_STRUCT modes
|
||||
which are no longer used.
|
||||
Eliminated the three new members of png_text when PNG_LEGACY_SUPPORTED is
|
||||
defined or when neither PNG_READ_iTXt_SUPPORTED nor PNG_WRITE_iTXT_SUPPORTED
|
||||
is defined.
|
||||
Made PNG_NO_READ|WRITE_iTXt the default setting, to avoid memory
|
||||
overrun when old applications fill the info_ptr->text structure directly.
|
||||
Eliminated the three new members of png_text when PNG_NO_iTXt_SUPPORTED
|
||||
or PNG_LEGACY_SUPPORTED is defined.
|
||||
Made PNG_NO_ITXT_SUPPORTED the default setting, to avoid memory overrun
|
||||
when old applications fill the info_ptr->text structure directly.
|
||||
Added PNGAPI macro, and added it to the definitions of all exported functions.
|
||||
Relocated version macro definitions ahead of the includes of zlib.h and
|
||||
pngconf.h in png.h.
|
||||
@@ -968,106 +967,6 @@ version 1.2.0beta4 [June 23, 2001]
|
||||
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
|
||||
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.
|
||||
Added tests to prevent pngwutil.c from writing a bKGD or tRNS chunk with
|
||||
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
|
||||
version 1.2.0 [September 1, 2001]
|
||||
Changed a png_warning() to png_debug() in pnggccrd.c
|
||||
Fixed contrib/gregbook/rpng-x.c, rpng2-x.c to avoid crash with XFreeGC().
|
||||
version 1.2.1beta1 [October 19, 2001]
|
||||
Revised makefile.std in contrib/pngminus
|
||||
Include background_1 in png_struct regardless of gamma support.
|
||||
Revised makefile.netbsd and makefile.macosx, added makefile.darwin.
|
||||
Revised example.c to provide more details about using row_callback().
|
||||
version 1.2.1beta2 [October 25, 2001]
|
||||
Added type cast to each NULL appearing in a function call, except for
|
||||
WINCE functions.
|
||||
Added makefile.so9.
|
||||
version 1.2.1beta3 [October 27, 2001]
|
||||
Removed type casts from all NULLs.
|
||||
Simplified png_create_struct_2().
|
||||
version 1.2.1beta4 [November 7, 2001]
|
||||
Revised png_create_info_struct() and png_creat_struct_2().
|
||||
Added error message if png_write_info() was omitted.
|
||||
Type cast NULLs appearing in function calls when _NO_PROTO or
|
||||
PNG_TYPECAST_NULL is defined.
|
||||
version 1.2.1rc1 [November 24, 2001]
|
||||
Type cast NULLs appearing in function calls except when PNG_NO_TYPECAST_NULL
|
||||
is defined.
|
||||
Changed typecast of "size" argument to png_size_t in pngmem.c calls to
|
||||
the user malloc_fn, to agree with the prototype in png.h
|
||||
Added a pop/push operation to pnggccrd.c, to preserve Eflag (Maxim Sobolev)
|
||||
Updated makefile.sgi to recognize LIBPATH and INCPATH.
|
||||
Updated various makefiles so "make clean" does not remove previous major
|
||||
version of the shared library.
|
||||
version 1.2.1rc2 [December 4, 2001]
|
||||
Added a pop/push operation to pngvcrd.c, to preserve Eflag.
|
||||
Always allocate 256-entry internal palette, hist, and trans arrays, to
|
||||
avoid out-of-bounds memory reference caused by invalid PNG datastreams.
|
||||
Added a check for prefix_length > data_length in iCCP chunk handler.
|
||||
version 1.2.1 [December 7, 2001]
|
||||
None.
|
||||
version 1.2.2beta1 [February 22, 2002]
|
||||
Fixed a bug with reading the length of iCCP profiles (Larry Reeves).
|
||||
Revised makefile.linux, makefile.gcmmx, and makefile.sgi to generate
|
||||
libpng.a, libpng12.so (not libpng.so.3), and libpng12/png.h
|
||||
Revised makefile.darwin to remove "-undefined suppress" option.
|
||||
Added checks for gamma and chromaticity values over 21474.83, which exceed
|
||||
the limit for PNG unsigned 32-bit integers when encoded.
|
||||
Revised calls to png_create_read_struct() and png_create_write_struct()
|
||||
for simpler debugging.
|
||||
Revised png_zalloc() so zlib handles errors (uses PNG_FLAG_MALLOC_NULL_MEM_OK)
|
||||
version 1.2.2beta2 [February 23, 2002]
|
||||
Check chunk_length and idat_size for invalid (over PNG_MAX_UINT) lengths.
|
||||
Check for invalid image dimensions in png_get_IHDR.
|
||||
Added missing "fi;" in the install target of the SGI makefiles.
|
||||
Added install-static to all makefiles that make shared libraries.
|
||||
Always do gamma compensation when image is partially transparent.
|
||||
version 1.2.2beta3 [March 7, 2002]
|
||||
Compute background.gray and background_1.gray even when color_type is RGB
|
||||
in case image gets reduced to gray later.
|
||||
Modified shared-library makefiles to install pkgconfig/libpngNN.pc.
|
||||
Export (with PNGAPI) png_zalloc, png_zfree, and png_handle_as_unknown
|
||||
Removed unused png_write_destroy_info prototype from png.h
|
||||
Eliminated incorrect use of width_mmx from pnggccrd.c in pixel_bytes == 8 case
|
||||
Added install-shared target to all makefiles that make shared libraries.
|
||||
Stopped a double free of palette, hist, and trans when not using free_me.
|
||||
Added makefile.32sunu for Sun Ultra 32 and makefile.64sunu for Sun Ultra 64.
|
||||
version 1.2.2beta4 [March 8, 2002]
|
||||
Compute background.gray and background_1.gray even when color_type is RGB
|
||||
in case image gets reduced to gray later (Jason Summers).
|
||||
Relocated a misplaced /bin/rm in the "install-shared" makefile targets
|
||||
Added PNG_1_0_X macro which can be used to build a 1.0.x-compatible library.
|
||||
version 1.2.2beta5 [March 26, 2002]
|
||||
Added missing PNGAPI to several function definitions.
|
||||
Check for invalid bit_depth or color_type in png_get_IHDR(), and
|
||||
check for missing PLTE or IHDR in png_push_read_chunk() (Matthias Clasen).
|
||||
Revised iTXt support to accept NULL for lang and lang_key.
|
||||
Compute gamma for color components of background even when color_type is gray.
|
||||
Changed "()" to "{}" in scripts/libpng.pc.in.
|
||||
Revised makefiles to put png.h and pngconf.h only in $prefix/include/libpngNN
|
||||
Revised makefiles to make symlink to libpng.so.NN in addition to libpngNN.so
|
||||
version 1.2.2beta6 [March 31, 2002]
|
||||
version 1.0.13beta1 [March 31, 2002]
|
||||
Prevent png_zalloc() from trying to memset memory that it failed to acquire.
|
||||
Add typecasts of PNG_MAX_UINT in pngset_cHRM_fixed() (Matt Holgate).
|
||||
Ensure that the right function (user or default) is used to free the
|
||||
png_struct after an error in png_create_read_struct_2().
|
||||
version 1.2.2rc1 [April 7, 2002]
|
||||
version 1.0.13rc1 [April 7, 2002]
|
||||
Save the ebx register in pnggccrd.c (Sami Farin)
|
||||
Add "mem_ptr = png_ptr->mem_ptr" in png_destroy_write_struct() (Paul Gardner).
|
||||
Updated makefiles to put headers in include/libpng and remove old include/*.h.
|
||||
version 1.0.13 [April 15, 2002]
|
||||
Revised description of png_set_filter() in libpng.3/libpng.txt.
|
||||
Revised makefile.netbsd and added makefile.neNNbsd and makefile.freebsd
|
||||
|
||||
Send comments/corrections/commendations to
|
||||
png-implement@ccrc.wustl.edu or to randeg@alum.rpi.edu
|
||||
|
||||
17
INSTALL
17
INSTALL
@@ -1,5 +1,5 @@
|
||||
|
||||
Installing libpng version 1.0.13 - April 15, 2002
|
||||
Installing libpng version 1.2.0beta4 - June 23, 2001
|
||||
|
||||
Before installing libpng, you must first install zlib. zlib
|
||||
can usually be found wherever you got libpng. zlib can be
|
||||
@@ -10,7 +10,7 @@ zlib.h and zconf.h include files that correspond to the
|
||||
version of zlib that's installed.
|
||||
|
||||
You can rename the directories that you downloaded (they
|
||||
might be called "libpng-1.0.13" or "lpng109" and "zlib-1.1.3"
|
||||
might be called "libpng-1.2.0beta4" or "lpng109" and "zlib-1.1.3"
|
||||
or "zlib113") so that you have directories called "zlib" and "libpng".
|
||||
|
||||
Your directory structure should look like this:
|
||||
@@ -64,8 +64,8 @@ The files that are presently available in the scripts directory
|
||||
include
|
||||
|
||||
makefile.std => Generic UNIX makefile (cc, creates static libpng.a)
|
||||
makefile.linux => Linux/ELF makefile (gcc, creates libpng10.so.0.1.0.13)
|
||||
makefile.gcmmx => Linux/ELF makefile (gcc, creates libpng10.so.0.1.0.13,
|
||||
makefile.linux => Linux/ELF makefile (gcc, creates libpng.so.2.1.2.0beta4)
|
||||
makefile.gcmmx => Linux/ELF makefile (gcc, creates libpng.so.2.1.2.0beta4,
|
||||
uses assembler code tuned for Intel MMX platform)
|
||||
makefile.gcc => Generic makefile (gcc, creates static libpng.a)
|
||||
makefile.knr => Archaic UNIX Makefile that converts files with
|
||||
@@ -73,7 +73,6 @@ include
|
||||
ftp://ftp.cs.wisc.edu/ghost)
|
||||
makefile.aix => AIX makefile
|
||||
makefile.cygwin => Cygwin/gcc makefile
|
||||
makefile.darwin => Darwin makefile
|
||||
makefile.dec => DEC Alpha UNIX makefile
|
||||
makefile.hpgcc => HPUX makefile using gcc
|
||||
makefile.hpux => HPUX (10.20 and 11.00) makefile
|
||||
@@ -82,14 +81,10 @@ include
|
||||
libpng.icc => Project file for IBM VisualAge/C++ version 4.0 or later
|
||||
makefile.macosx => MACOS X Makefile
|
||||
makefile.netbsd => NetBSD/cc makefile, uses PNGGCCRD
|
||||
makefile.openbsd => OpenBSD makefile
|
||||
makefile.sgi => Silicon Graphics IRIX makefile (cc, creates static lib)
|
||||
makefile.sggcc => Silicon Graphics (gcc, creates libpng10.so.0.1.0.13)
|
||||
makefile.sggcc => Silicon Graphics (gcc, creates libpng.so.2.1.2.0beta4)
|
||||
makefile.sunos => Sun makefile
|
||||
makefile.solaris => Solaris 2.X makefile (gcc, creates libpng10.so.0.1.0.13)
|
||||
makefile.so9 => Solaris 9 makefile (gcc, creates libpng10.so.0.1.0.13)
|
||||
makefile.32sunu => Sun Ultra 32-bit makefile
|
||||
makefile.64sunu => Sun Ultra 64-bit makefile
|
||||
makefile.solaris => Solaris 2.X makefile (gcc, creates libpng.so.2.1.2.0beta4)
|
||||
makefile.sco => For SCO OSr5 ELF and Unixware 7 with Native cc
|
||||
makefile.mips => MIPS makefile
|
||||
makefile.acorn => Acorn makefile
|
||||
|
||||
5
KNOWNBUG
5
KNOWNBUG
@@ -1,9 +1,8 @@
|
||||
|
||||
Known bugs in libpng version 1.0.13
|
||||
Known bugs in libpng-1.2.0
|
||||
|
||||
1. April 22, 2001: pnggccrd.c has been reported to crash on NetBSD when
|
||||
reading interlaced PNG files, when assembler code is enabled.
|
||||
|
||||
STATUS: Under investigation. The change to pnggccrd.c in libpng-1.2.1
|
||||
fixed a problem under FreeBSD but not the problem with NetBSD.
|
||||
STATUS: Under investigation.
|
||||
|
||||
|
||||
6
LICENSE
6
LICENSE
@@ -8,8 +8,8 @@ COPYRIGHT NOTICE, DISCLAIMER, and LICENSE:
|
||||
If you modify libpng you may insert additional notices immediately following
|
||||
this sentence.
|
||||
|
||||
libpng versions 1.0.7, July 1, 2000, through 1.0.13, April 15, 2002, are
|
||||
Copyright (c) 2000-2002 Glenn Randers-Pehrson
|
||||
libpng versions 1.0.7, July 1, 2000, through 1.2.0beta4, June 23, 2001, are
|
||||
Copyright (c) 2000 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
|
||||
|
||||
@@ -99,4 +99,4 @@ certification mark of the Open Source Initiative.
|
||||
|
||||
Glenn Randers-Pehrson
|
||||
randeg@alum.rpi.edu
|
||||
April 15, 2002
|
||||
June 23, 2001
|
||||
|
||||
16
README
16
README
@@ -1,4 +1,4 @@
|
||||
README for libpng 1.0.13 - April 15, 2002 (shared library 2.1)
|
||||
README for libpng 1.2.0beta4 - June 23, 2001 (shared library 2.1)
|
||||
See the note about version numbers near the top of png.h
|
||||
|
||||
See INSTALL for instructions on how to install libpng.
|
||||
@@ -187,9 +187,9 @@ Files in this distribution:
|
||||
descrip.mms => VMS makefile for MMS or MMK
|
||||
makefile.std => Generic UNIX makefile (cc, creates static libpng.a)
|
||||
makefile.linux => Linux/ELF makefile
|
||||
(gcc, creates libpng10.so.0.1.0.13)
|
||||
(gcc, creates libpng.so.2.1.2.0beta4)
|
||||
makefile.gcmmx => Linux/ELF makefile (gcc, creates
|
||||
libpng10.so.0.1.0.13, uses assembler code
|
||||
libpng.so.2.1.2.0beta4, uses assembler code
|
||||
tuned for Intel MMX platform)
|
||||
makefile.gcc => Generic makefile (gcc, creates static libpng.a)
|
||||
makefile.knr => Archaic UNIX Makefile that converts files with
|
||||
@@ -197,7 +197,6 @@ Files in this distribution:
|
||||
ftp://ftp.cs.wisc.edu/ghost)
|
||||
makefile.aix => AIX makefile
|
||||
makefile.cygwin => Cygwin/gcc makefile
|
||||
makefile.darwin => Darwin makefile
|
||||
makefile.dec => DEC Alpha UNIX makefile
|
||||
makefile.hpgcc => HPUX makefile using gcc
|
||||
makefile.hpux => HPUX (10.20 and 11.00) makefile
|
||||
@@ -206,16 +205,11 @@ Files in this distribution:
|
||||
libpng.icc => Project file, IBM VisualAge/C++ 4.0 or later
|
||||
makefile.macosx => MACOS X Makefile
|
||||
makefile.netbsd => NetBSD/cc makefile, uses PNGGCCRD
|
||||
makefile.openbsd => OpenBSD makefile
|
||||
makefile.sgi => Silicon Graphics IRIX (cc, creates static lib)
|
||||
makefile.sggcc => Silicon Graphics (gcc, creates libpng10.so.0.1.0.13)
|
||||
makefile.sggcc => Silicon Graphics (gcc, creates libpng.so.2.1.2.0beta4)
|
||||
makefile.sunos => Sun makefile
|
||||
makefile.solaris => Solaris 2.X makefile
|
||||
(gcc, creates libpng10.so.0.1.0.13)
|
||||
makefile.so9 => Solaris 9 makefile
|
||||
(gcc, creates libpng10.so.0.1.0.13)
|
||||
makefile.32sunu => Sun Ultra 32-bit makefile
|
||||
makefile.64sunu => Sun Ultra 64-bit makefile
|
||||
(gcc, creates libpng.so.2.1.2.0beta4)
|
||||
makefile.sco => For SCO OSr5 ELF and Unixware 7 with Native cc
|
||||
makefile.mips => MIPS makefile
|
||||
makefile.acorn => Acorn makefile
|
||||
|
||||
4
Y2KINFO
4
Y2KINFO
@@ -1,13 +1,13 @@
|
||||
Y2K compliance in libpng:
|
||||
=========================
|
||||
|
||||
April 15, 2002
|
||||
June 23, 2001
|
||||
|
||||
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.0.13 are Y2K compliant. It is my belief that earlier
|
||||
upward through 1.2.0beta4 are Y2K compliant. It is my belief that earlier
|
||||
versions were also Y2K compliant.
|
||||
|
||||
Libpng only has three year fields. One is a 2-byte unsigned integer
|
||||
|
||||
2
configure
vendored
2
configure
vendored
@@ -1,5 +1,5 @@
|
||||
echo "
|
||||
There is no \"configure\" script for Libpng-1.0.13. Instead, please
|
||||
There is no \"configure\" script for Libpng-1.2.0beta4. Instead, please
|
||||
copy the appropriate makefile for your system from the \"scripts\"
|
||||
directory. Read the INSTALL file for more details.
|
||||
"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---------------------------------------------------------------------------
|
||||
|
||||
Copyright (c) 1998-2001 Greg Roelofs. All rights reserved.
|
||||
Copyright (c) 1998-2000 Greg Roelofs. All rights reserved.
|
||||
|
||||
This software is provided "as is," without warranty of any kind,
|
||||
express or implied. In no event shall the author or contributors
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Sample makefile for rpng-x / rpng2-x / wpng for SGI using cc and make.
|
||||
# Greg Roelofs
|
||||
# Last modified: 7 March 2002
|
||||
# Last modified: 16 January 1000
|
||||
#
|
||||
# The programs built by this makefile are described in the book,
|
||||
# "PNG: The Definitive Guide," by Greg Roelofs (O'Reilly and
|
||||
@@ -23,9 +23,9 @@
|
||||
|
||||
# macros --------------------------------------------------------------------
|
||||
|
||||
PNGINC = -I/usr/local/include/libpng10
|
||||
PNGLIB = -L/usr/local/lib -lpng10 # dynamically linked against libpng
|
||||
#PNGLIB = /usr/local/lib/libpng10.a # statically linked against libpng
|
||||
PNGINC = -I/usr/local/include
|
||||
PNGLIB = -L/usr/local/lib -lpng # dynamically linked against libpng
|
||||
#PNGLIB = /usr/local/lib/libpng.a # statically linked against libpng
|
||||
# or:
|
||||
#PNGINC = -I../..
|
||||
#PNGLIB = -L../.. -lpng
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Sample makefile for rpng-x / rpng2-x / wpng using gcc and make.
|
||||
# Greg Roelofs
|
||||
# Last modified: 7 March 2002
|
||||
# Last modified: 7 February 2001
|
||||
#
|
||||
# The programs built by this makefile are described in the book,
|
||||
# "PNG: The Definitive Guide," by Greg Roelofs (O'Reilly and
|
||||
@@ -23,9 +23,9 @@
|
||||
|
||||
# macros --------------------------------------------------------------------
|
||||
|
||||
PNGINC = -I/usr/local/include/libpng10
|
||||
#PNGLIB = -L/usr/local/lib -lpng10 # dynamically linked against libpng
|
||||
PNGLIB = /usr/local/lib/libpng10.a # statically linked against libpng
|
||||
PNGINC = -I/usr/local/include
|
||||
#PNGLIB = -L/usr/local/lib -lpng # dynamically linked against libpng
|
||||
PNGLIB = /usr/local/lib/libpng.a # statically linked against libpng
|
||||
# or:
|
||||
#PNGINC = -I../libpng
|
||||
#PNGLIB = -L../libpng -lpng
|
||||
|
||||
@@ -44,10 +44,10 @@ Files:
|
||||
|
||||
toucan.png transparent PNG for testing (by Stefan Schneider)
|
||||
|
||||
Note that, although the programs are designed to be functional, their
|
||||
primary purpose is to illustrate how to use libpng to add PNG support to
|
||||
other programs. As such, their user interfaces are crude and definitely
|
||||
are not intended for everyday use.
|
||||
Note that the programs are designed to be functional, but their primary
|
||||
purpose is to illustrate how to use libpng to add PNG support to other
|
||||
programs. As such, their user interfaces are crude and definitely not
|
||||
intended for everyday use.
|
||||
|
||||
Please see http://www.libpng.org/pub/png/pngbook.html for further infor-
|
||||
mation and links to the latest version of the source code, and Chapters
|
||||
@@ -55,7 +55,7 @@ mation and links to the latest version of the source code, and Chapters
|
||||
|
||||
Greg Roelofs
|
||||
newt@pobox.com
|
||||
30 June 2001
|
||||
30 May 2001
|
||||
|
||||
|
||||
BUILD INSTRUCTIONS
|
||||
@@ -131,7 +131,7 @@ BUILD INSTRUCTIONS
|
||||
current folder. Like the Unix versions, the two windowed programs
|
||||
(rpng and rpng2) now display a usage screen in a console window when
|
||||
invoked without command-line arguments; this is new behavior as of
|
||||
the June 2001 release. Note that the programs use the Unix-style "-"
|
||||
the May 2001 release. Note that the programs use the Unix-style "-"
|
||||
character to specify options, instead of the more common DOS/Windows
|
||||
"/" character. (For example: "rpng2-win -bgpat 4 foo.png", not
|
||||
"rpng2-win /bgpat 4 foo.png")
|
||||
|
||||
53
contrib/gregbook/README.w32
Normal file
53
contrib/gregbook/README.w32
Normal file
@@ -0,0 +1,53 @@
|
||||
See the main README file for basic instructions on compiling and running
|
||||
the programs. See http://www.libpng.org/pub/png/pngbook.html for further
|
||||
information and links to the source code, and Chapters 13-15 of the book
|
||||
for detailed discussion of the three programs.
|
||||
|
||||
Since the two viewers, rpng and rpng2, are both designed to write infor-
|
||||
mation to the console (i.e., a DOS-window command line) while displaying
|
||||
the image in a graphical window--and since I haven't yet figured out how
|
||||
to do that under Windows--here are the usage screens for the two programs:
|
||||
|
||||
|
||||
rpng-win 1.02 of 19 March 2000: Simple PNG Viewer for Windows
|
||||
Compiled with libpng 1.0.5; using libpng 1.0.5.
|
||||
Compiled with zlib 1.1.3; using zlib 1.1.3.
|
||||
|
||||
Usage: rpng-win [-gamma exp] [-bgcolor bg] file.png
|
||||
exp transfer-function exponent (``gamma'') of the display
|
||||
system in floating-point format (e.g., ``2.2''); equal
|
||||
to the product of the lookup-table exponent (varies)
|
||||
and the CRT exponent (usually 2.2); must be positive
|
||||
bg desired background color in 7-character hex RGB format
|
||||
(e.g., ``#ff7f00'' for orange: same as HTML colors);
|
||||
used with transparent images
|
||||
|
||||
Press Q, Esc or mouse button 1 after image is displayed to quit.
|
||||
|
||||
|
||||
rpng2-win 1.04 of 19 March 2000: Progressive PNG Viewer for Windows
|
||||
Compiled with libpng 1.0.5; using libpng 1.0.5.
|
||||
Compiled with zlib 1.1.3; using zlib 1.1.3.
|
||||
|
||||
Usage: rpng2-win [-gamma exp] [-bgcolor bg | -bgpat pat] [-timing] file.png
|
||||
|
||||
exp transfer-function exponent (``gamma'') of the display
|
||||
system in floating-point format (e.g., ``2.2''); equal
|
||||
to the product of the lookup-table exponent (varies)
|
||||
and the CRT exponent (usually 2.2); must be positive
|
||||
bg desired background color in 7-character hex RGB format
|
||||
(e.g., ``#ff7f00'' for orange: same as HTML colors);
|
||||
used with transparent images; overrides -bgpat
|
||||
pat desired background pattern number (1-16); used with
|
||||
transparent images; overrides -bgcolor
|
||||
-timing enables delay for every block read, to simulate modem
|
||||
download of image (~36 Kbps)
|
||||
|
||||
Press Q, Esc or mouse button 1 after image is displayed to quit.
|
||||
|
||||
|
||||
The usage screen for the third (non-windowed) program, wpng, can be seen
|
||||
simply by invoking it without any parameters (``wpng'').
|
||||
|
||||
Greg Roelofs
|
||||
19 March 2000
|
||||
@@ -22,7 +22,6 @@
|
||||
- 1.11: added extra set of parentheses to png_jmpbuf() macro; fixed
|
||||
command-line parsing bug
|
||||
- 1.12: fixed small X memory leak (thanks to Francois Petitjean)
|
||||
- 1.13: fixed XFreeGC() crash bug
|
||||
|
||||
---------------------------------------------------------------------------
|
||||
|
||||
@@ -53,7 +52,7 @@
|
||||
|
||||
#define PROGNAME "rpng-x"
|
||||
#define LONGNAME "Simple PNG Viewer for X"
|
||||
#define VERSION "1.13 of 16 August 2001"
|
||||
#define VERSION "1.12 of 28 May 2001"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
@@ -119,7 +118,6 @@ static Colormap colormap;
|
||||
static int have_nondefault_visual = FALSE;
|
||||
static int have_colormap = FALSE;
|
||||
static int have_window = FALSE;
|
||||
static int have_gc = FALSE;
|
||||
/*
|
||||
ulg numcolors=0, pixels[256];
|
||||
ush reds[256], greens[256], blues[256];
|
||||
@@ -558,7 +556,6 @@ static int rpng_x_create_window(void)
|
||||
XMapWindow(display, window);
|
||||
|
||||
gc = XCreateGC(display, window, 0, &gcvalues);
|
||||
have_gc = TRUE;
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
Fill window with the specified background color.
|
||||
@@ -828,8 +825,7 @@ static void rpng_x_cleanup(void)
|
||||
ximage = NULL;
|
||||
}
|
||||
|
||||
if (have_gc)
|
||||
XFreeGC(display, gc);
|
||||
XFreeGC(display, gc);
|
||||
|
||||
if (have_window)
|
||||
XDestroyWindow(display, window);
|
||||
|
||||
@@ -26,7 +26,6 @@
|
||||
fixed command-line parsing bug
|
||||
- 1.10: enabled "message window"/console (thanks to David Geldreich)
|
||||
- 1.20: added runtime MMX-enabling/disabling and new -mmx* options
|
||||
- 1.21: made minor tweak to usage screen to fit within 25-line console
|
||||
|
||||
---------------------------------------------------------------------------
|
||||
|
||||
@@ -57,7 +56,7 @@
|
||||
|
||||
#define PROGNAME "rpng2-win"
|
||||
#define LONGNAME "Progressive PNG Viewer for Windows"
|
||||
#define VERSION "1.21 of 29 June 2001"
|
||||
#define VERSION "1.20 of 28 May 2001"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
@@ -452,13 +451,12 @@ int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, PSTR cmd, int showmode)
|
||||
"\t\t combining rows, and expanding interlacing, respectively\n"
|
||||
#endif
|
||||
"\nPress Q, Esc or mouse button 1 after image is displayed to quit.\n"
|
||||
"Press Q or Esc to quit this usage screen. ",
|
||||
PROGNAME,
|
||||
"Press Q or Esc to quit this usage screen.\n"
|
||||
"\n", PROGNAME,
|
||||
#if (defined(__i386__) || defined(_M_IX86))
|
||||
strlen(PROGNAME), " ",
|
||||
#endif
|
||||
strlen(PROGNAME), " ", default_display_exponent, num_bgpat);
|
||||
fflush(stderr);
|
||||
do
|
||||
ch = _getch();
|
||||
while (ch != 'q' && ch != 'Q' && ch != 0x1B);
|
||||
@@ -468,7 +466,6 @@ int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, PSTR cmd, int showmode)
|
||||
fprintf(stderr,
|
||||
"\n [console window: closing this window will terminate %s]\n\n",
|
||||
PROGNAME);
|
||||
fflush(stderr);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -27,7 +27,6 @@
|
||||
- 1.12: added -pause option for demos and testing
|
||||
- 1.20: added runtime MMX-enabling/disabling and new -mmx* options
|
||||
- 1.21: fixed small X memory leak (thanks to Francois Petitjean)
|
||||
- 1.22: fixed XFreeGC() crash bug
|
||||
|
||||
---------------------------------------------------------------------------
|
||||
|
||||
@@ -58,7 +57,7 @@
|
||||
|
||||
#define PROGNAME "rpng2-x"
|
||||
#define LONGNAME "Progressive PNG Viewer for X"
|
||||
#define VERSION "1.22 of 16 August 2001"
|
||||
#define VERSION "1.21 of 30 May 2001"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
@@ -229,7 +228,6 @@ static Colormap colormap;
|
||||
static int have_nondefault_visual = FALSE;
|
||||
static int have_colormap = FALSE;
|
||||
static int have_window = FALSE;
|
||||
static int have_gc = FALSE;
|
||||
|
||||
|
||||
|
||||
@@ -761,7 +759,6 @@ static int rpng2_x_create_window(void)
|
||||
XMapWindow(display, window);
|
||||
|
||||
gc = XCreateGC(display, window, 0, &gcvalues);
|
||||
have_gc = TRUE;
|
||||
|
||||
/*---------------------------------------------------------------------------
|
||||
Allocate memory for the X- and display-specific version of the image.
|
||||
@@ -1377,8 +1374,7 @@ static void rpng2_x_cleanup(void)
|
||||
ximage = NULL;
|
||||
}
|
||||
|
||||
if (have_gc)
|
||||
XFreeGC(display, gc);
|
||||
XFreeGC(display, gc);
|
||||
|
||||
if (have_window)
|
||||
XDestroyWindow(display, window);
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 13 KiB |
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 /nologo /subsystem:console /machine:I386
|
||||
# ADD LINK32 ..\..\projects\msvc\win32\libpng\dll\libpng10.lib /nologo /subsystem:console /machine:I386
|
||||
# ADD LINK32 ..\..\projects\msvc\win32\libpng\dll\libpng3.lib /nologo /subsystem:console /machine:I386
|
||||
# Begin Special Build Tool
|
||||
OutDir=.\dll
|
||||
SOURCE="$(InputPath)"
|
||||
@@ -84,7 +84,7 @@ BSC32=bscmake.exe
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
|
||||
# ADD LINK32 ..\..\projects\msvc\win32\libpng\dll_dbg\libpng10d.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
|
||||
# ADD LINK32 ..\..\projects\msvc\win32\libpng\dll_dbg\libpng3d.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
|
||||
# Begin Special Build Tool
|
||||
OutDir=.\dll_dbg
|
||||
SOURCE="$(InputPath)"
|
||||
@@ -114,7 +114,7 @@ BSC32=bscmake.exe
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 /nologo /subsystem:console /machine:I386
|
||||
# ADD LINK32 ..\..\projects\msvc\win32\libpng\dll_asm\libpng10a.lib /nologo /subsystem:console /machine:I386
|
||||
# ADD LINK32 ..\..\projects\msvc\win32\libpng\dll_asm\libpng3a.lib /nologo /subsystem:console /machine:I386
|
||||
# Begin Special Build Tool
|
||||
OutDir=.\dll_asm
|
||||
SOURCE="$(InputPath)"
|
||||
@@ -144,7 +144,7 @@ BSC32=bscmake.exe
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
|
||||
# ADD LINK32 ..\..\projects\msvc\win32\libpng\dll_dbga\libpng10b.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
|
||||
# ADD LINK32 ..\..\projects\msvc\win32\libpng\dll_dbga\libpng3b.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
|
||||
# Begin Special Build Tool
|
||||
OutDir=.\dll_dbga
|
||||
SOURCE="$(InputPath)"
|
||||
|
||||
@@ -1,31 +1,26 @@
|
||||
# Makefile for PngMinus (png2pnm and pnm2png)
|
||||
# Linux / Unix
|
||||
|
||||
#CC=cc
|
||||
CC=gcc
|
||||
LD=$(CC)
|
||||
CC=cc -O
|
||||
LD=cc -O
|
||||
#CC=gcc -O
|
||||
#LD=gcc -O
|
||||
LB=ar
|
||||
RM=rm
|
||||
CP=cp
|
||||
|
||||
RM=rm -f
|
||||
PNGPATH = /usr/local
|
||||
PNGINC = $(PNGPATH)/include
|
||||
#PNGLIB = $(PNGPATH)/lib -lpng
|
||||
PNGLIB = $(PNGPATH)/lib/libpng.a
|
||||
|
||||
#PNGPATH = /usr/local
|
||||
#PNGINC = -I$(PNGPATH)/include/libpng10
|
||||
#PNGLIB = -L$(PNGPATH)/lib -lpng10
|
||||
#PNGLIBS = $(PNGPATH)/lib/libpng10.a
|
||||
PNGINC = -I../..
|
||||
PNGLIB = -L../.. -lpng
|
||||
PNGLIBS = ../../libpng.a
|
||||
ZPATH = /usr/local
|
||||
ZINC = $(ZPATH)/include
|
||||
#ZLIB = $(ZPATH)/lib -lz
|
||||
ZLIB = $(ZPATH)/lib/libz.a
|
||||
|
||||
#ZPATH = /usr/local
|
||||
#ZINC = -I$(ZPATH)/include
|
||||
#ZLIB = -L$(ZPATH)/lib -lz
|
||||
#ZLIBS = $(ZPATH)/lib/libz.a
|
||||
ZINC = -I../../../zlib
|
||||
ZLIB = -L../../../zlib -lz
|
||||
ZLIBS = ../../../zlib/libz.a
|
||||
|
||||
CFLAGS=-O3 $(PNGINC) $(ZINC)
|
||||
LDFLAGS=$(PNGLIB) $(ZLIB)
|
||||
LDFLAGSS=$(PNGLIBS) $(ZLIBS)
|
||||
CCFLAGS=-I$(PNGINC) -I$(ZINC)
|
||||
LDFLAGS=-L$(PNGLIB) -L$(ZLIB)
|
||||
C=.c
|
||||
O=.o
|
||||
L=.a
|
||||
@@ -33,33 +28,25 @@ E=
|
||||
|
||||
# dependencies
|
||||
|
||||
#all: png2pnm$(E) pnm2png$(E)
|
||||
all: png2pnm$(E) pnm2png$(E) png2pnm-static$(E) pnm2png-static$(E)
|
||||
all: png2pnm$(E) pnm2png$(E)
|
||||
|
||||
png2pnm$(O): png2pnm$(C)
|
||||
$(CC) -c $(CFLAGS) png2pnm$(C)
|
||||
$(CC) -c $(CCFLAGS) png2pnm$(C)
|
||||
|
||||
png2pnm$(E): png2pnm$(O)
|
||||
$(LD) -o png2pnm$(E) png2pnm$(O) $(LDFLAGS) -lm
|
||||
|
||||
png2pnm-static$(E): png2pnm$(O)
|
||||
$(LD) -o png2pnm-static$(E) png2pnm$(O) $(LDFLAGSS) -lm
|
||||
$(LD) -o png2pnm$(E) png2pnm$(O) $(LDFLAGS) -lpng -lz -lm
|
||||
|
||||
pnm2png$(O): pnm2png$(C)
|
||||
$(CC) -c $(CFLAGS) pnm2png$(C)
|
||||
$(CC) -c $(CCFLAGS) pnm2png$(C)
|
||||
|
||||
pnm2png$(E): pnm2png$(O)
|
||||
$(LD) -o pnm2png$(E) pnm2png$(O) $(LDFLAGS) -lm
|
||||
|
||||
pnm2png-static$(E): pnm2png$(O)
|
||||
$(LD) -o pnm2png-static$(E) pnm2png$(O) $(LDFLAGSS) -lm
|
||||
$(LD) -o pnm2png$(E) pnm2png$(O) $(LDFLAGS) -lpng -lz -lm
|
||||
|
||||
clean:
|
||||
$(RM) png2pnm$(O)
|
||||
$(RM) pnm2png$(O)
|
||||
$(RM) png2pnm$(E)
|
||||
$(RM) pnm2png$(E)
|
||||
$(RM) png2pnm-static$(E)
|
||||
$(RM) pnm2png-static$(E)
|
||||
|
||||
# End of makefile for png2pnm / pnm2png
|
||||
|
||||
|
||||
0
contrib/pngminus/png2pnm.sh
Normal file → Executable file
0
contrib/pngminus/png2pnm.sh
Normal file → Executable file
0
contrib/pngminus/pngminus.sh
Normal file → Executable file
0
contrib/pngminus/pngminus.sh
Normal file → Executable file
0
contrib/pngminus/pnm2png.sh
Normal file → Executable file
0
contrib/pngminus/pnm2png.sh
Normal file → Executable file
@@ -59,8 +59,8 @@ BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 libpng10.lib zlibd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386 /libpath:"libpng" /libpath:"zlib"
|
||||
# ADD LINK32 libpng10.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386 /libpath:"..\..\projects\msvc\win32\libpng\dll"
|
||||
# ADD BASE LINK32 libpng3.lib zlibd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386 /libpath:"libpng" /libpath:"zlib"
|
||||
# ADD LINK32 libpng3.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386 /libpath:"..\..\projects\msvc\win32\libpng\dll"
|
||||
# Begin Special Build Tool
|
||||
OutDir=.\dll
|
||||
SOURCE="$(InputPath)"
|
||||
@@ -92,9 +92,9 @@ BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 libpng10.lib zlibd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libc" /pdbtype:sept /libpath:"libpng" /libpath:"zlib"
|
||||
# ADD BASE LINK32 libpng3.lib zlibd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libc" /pdbtype:sept /libpath:"libpng" /libpath:"zlib"
|
||||
# SUBTRACT BASE LINK32 /nodefaultlib
|
||||
# ADD LINK32 libpng10d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libc" /pdbtype:sept /libpath:"..\..\projects\msvc\win32\libpng\dll_dbg"
|
||||
# ADD LINK32 libpng3d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libc" /pdbtype:sept /libpath:"..\..\projects\msvc\win32\libpng\dll_dbg"
|
||||
# SUBTRACT LINK32 /nodefaultlib
|
||||
# Begin Special Build Tool
|
||||
OutDir=.\dll_dbg
|
||||
@@ -128,7 +128,7 @@ BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 libpng10.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386 /libpath:"..\..\projects\msvc\win32\libpng\dll"
|
||||
# ADD BASE LINK32 libpng3.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386 /libpath:"..\..\projects\msvc\win32\libpng\dll"
|
||||
# ADD LINK32 libpng.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386 /libpath:"..\..\projects\msvc\win32\libpng\lib"
|
||||
# Begin Special Build Tool
|
||||
OutDir=.\lib
|
||||
@@ -161,7 +161,7 @@ BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 libpng10d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libc" /pdbtype:sept /libpath:"..\..\projects\msvc\win32\libpng\dll_dbg"
|
||||
# ADD BASE LINK32 libpng3d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libc" /pdbtype:sept /libpath:"..\..\projects\msvc\win32\libpng\dll_dbg"
|
||||
# SUBTRACT BASE LINK32 /nodefaultlib
|
||||
# ADD LINK32 libpng.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libc" /pdbtype:sept /libpath:"..\..\projects\msvc\win32\libpng\lib_dbg"
|
||||
# SUBTRACT LINK32 /nodefaultlib
|
||||
|
||||
78
example.c
78
example.c
@@ -114,7 +114,7 @@ void read_png(FILE *fp, unsigned int sig_read) /* file is already open */
|
||||
if (info_ptr == NULL)
|
||||
{
|
||||
fclose(fp);
|
||||
png_destroy_read_struct(&png_ptr, png_infopp_NULL, png_infopp_NULL);
|
||||
png_destroy_read_struct(&png_ptr, (png_infopp)NULL, (png_infopp)NULL);
|
||||
return (ERROR);
|
||||
}
|
||||
|
||||
@@ -126,7 +126,7 @@ void read_png(FILE *fp, unsigned int sig_read) /* file is already open */
|
||||
if (setjmp(png_jmpbuf(png_ptr)))
|
||||
{
|
||||
/* Free all of the memory associated with the png_ptr and info_ptr */
|
||||
png_destroy_read_struct(&png_ptr, &info_ptr, png_infopp_NULL);
|
||||
png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL);
|
||||
fclose(fp);
|
||||
/* If we get here, we had a problem reading the file */
|
||||
return (ERROR);
|
||||
@@ -157,7 +157,7 @@ void read_png(FILE *fp, unsigned int sig_read) /* file is already open */
|
||||
* adjustment), then you can read the entire image (including
|
||||
* pixels) into the info structure with this call:
|
||||
*/
|
||||
png_read_png(png_ptr, info_ptr, png_transforms, png_voidp_NULL);
|
||||
png_read_png(png_ptr, info_ptr, png_transforms, NULL);
|
||||
#else
|
||||
/* OK, you're doing it the hard way, with the lower-level functions */
|
||||
|
||||
@@ -167,7 +167,7 @@ void read_png(FILE *fp, unsigned int sig_read) /* file is already open */
|
||||
png_read_info(png_ptr, info_ptr);
|
||||
|
||||
png_get_IHDR(png_ptr, info_ptr, &width, &height, &bit_depth, &color_type,
|
||||
&interlace_type, int_p_NULL, int_p_NULL);
|
||||
&interlace_type, NULL, NULL);
|
||||
|
||||
/**** Set up the data transformations you want. Note that these are all
|
||||
**** optional. Only call them if you want/need them. Many of the
|
||||
@@ -277,7 +277,7 @@ void read_png(FILE *fp, unsigned int sig_read) /* file is already open */
|
||||
png_color std_color_cube[MAX_SCREEN_COLORS];
|
||||
|
||||
png_set_dither(png_ptr, std_color_cube, MAX_SCREEN_COLORS,
|
||||
MAX_SCREEN_COLORS, png_uint_16p_NULL, 0);
|
||||
MAX_SCREEN_COLORS, NULL, 0);
|
||||
}
|
||||
/* This reduces the image to the palette supplied in the file */
|
||||
else if (png_get_PLTE(png_ptr, info_ptr, &palette, &num_palette))
|
||||
@@ -354,18 +354,16 @@ void read_png(FILE *fp, unsigned int sig_read) /* file is already open */
|
||||
#ifdef single /* Read the image a single row at a time */
|
||||
for (y = 0; y < height; y++)
|
||||
{
|
||||
png_read_rows(png_ptr, &row_pointers[y], png_bytepp_NULL, 1);
|
||||
png_read_rows(png_ptr, &row_pointers[y], NULL, 1);
|
||||
}
|
||||
|
||||
#else no_single /* Read the image several rows at a time */
|
||||
for (y = 0; y < height; y += number_of_rows)
|
||||
{
|
||||
#ifdef sparkle /* Read the image using the "sparkle" effect. */
|
||||
png_read_rows(png_ptr, &row_pointers[y], png_bytepp_NULL,
|
||||
number_of_rows);
|
||||
png_read_rows(png_ptr, &row_pointers[y], NULL, number_of_rows);
|
||||
#else no_sparkle /* Read the image using the "rectangle" effect */
|
||||
png_read_rows(png_ptr, png_bytepp_NULL, &row_pointers[y],
|
||||
number_of_rows);
|
||||
png_read_rows(png_ptr, NULL, &row_pointers[y], number_of_rows);
|
||||
#endif no_sparkle /* use only one of these two methods */
|
||||
}
|
||||
|
||||
@@ -382,7 +380,7 @@ void read_png(FILE *fp, unsigned int sig_read) /* file is already open */
|
||||
/* At this point you have read the entire image */
|
||||
|
||||
/* clean up after the read, and free any memory allocated - REQUIRED */
|
||||
png_destroy_read_struct(&png_ptr, &info_ptr, png_infopp_NULL);
|
||||
png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL);
|
||||
|
||||
/* close the file */
|
||||
fclose(fp);
|
||||
@@ -415,13 +413,13 @@ initialize_png_reader(png_structp *png_ptr, png_infop *info_ptr)
|
||||
|
||||
if (*info_ptr == NULL)
|
||||
{
|
||||
png_destroy_read_struct(png_ptr, info_ptr, png_infopp_NULL);
|
||||
png_destroy_read_struct(png_ptr, info_ptr, (png_infopp)NULL);
|
||||
return (ERROR);
|
||||
}
|
||||
|
||||
if (setjmp(png_jmpbuf((*png_ptr))))
|
||||
{
|
||||
png_destroy_read_struct(png_ptr, info_ptr, png_infopp_NULL);
|
||||
png_destroy_read_struct(png_ptr, info_ptr, (png_infopp)NULL);
|
||||
return (ERROR);
|
||||
}
|
||||
|
||||
@@ -450,7 +448,7 @@ process_data(png_structp *png_ptr, png_infop *info_ptr,
|
||||
if (setjmp(png_jmpbuf((*png_ptr))))
|
||||
{
|
||||
/* Free the png_ptr and info_ptr memory on error */
|
||||
png_destroy_read_struct(png_ptr, info_ptr, png_infopp_NULL);
|
||||
png_destroy_read_struct(png_ptr, info_ptr, (png_infopp)NULL);
|
||||
return (ERROR);
|
||||
}
|
||||
|
||||
@@ -482,47 +480,21 @@ info_callback(png_structp png_ptr, png_infop info)
|
||||
row_callback(png_structp png_ptr, png_bytep new_row,
|
||||
png_uint_32 row_num, int pass)
|
||||
{
|
||||
/*
|
||||
* This function is called for every row in the image. If the
|
||||
* image is interlaced, and you turned on the interlace handler,
|
||||
/* this function is called for every row in the image. If the
|
||||
* image is interlacing, and you turned on the interlace handler,
|
||||
* this function will be called for every row in every pass.
|
||||
*
|
||||
* In this function you will receive a pointer to new row data from
|
||||
* libpng called new_row that is to replace a corresponding row (of
|
||||
* the same data format) in a buffer allocated by your application.
|
||||
*
|
||||
* The new row data pointer new_row may be NULL, indicating there is
|
||||
* no new data to be replaced (in cases of interlace loading).
|
||||
*
|
||||
* If new_row is not NULL then you need to call
|
||||
* png_progressive_combine_row() to replace the corresponding row as
|
||||
* shown below:
|
||||
*/
|
||||
/* Check if row_num is in bounds. */
|
||||
if((row_num >= 0) && (row_num < height))
|
||||
{
|
||||
/* Get pointer to corresponding row in our
|
||||
* PNG read buffer.
|
||||
*/
|
||||
png_bytep old_row = ((png_bytep *)our_data)[row_num];
|
||||
|
||||
/* If both rows are allocated then copy the new row
|
||||
* data to the corresponding row data.
|
||||
*/
|
||||
if((old_row != NULL) && (new_row != NULL))
|
||||
png_progressive_combine_row(png_ptr, old_row, new_row);
|
||||
}
|
||||
/*
|
||||
* Some of these rows will not be changed from the previous pass.
|
||||
* When the row is not changed, the new_row variable will be NULL.
|
||||
* The rows and passes are called in order, so you don't really
|
||||
* need the row_num and pass, but I'm supplying them because it
|
||||
* may make your life easier.
|
||||
*
|
||||
* For the non-NULL rows of interlaced images, you must call
|
||||
* png_progressive_combine_row() passing in the new row and the
|
||||
* old row, as demonstrated above. You can call this function for
|
||||
* NULL rows (it will just return) and for non-interlaced images
|
||||
* (it just does the png_memcpy for you) if it will make the code
|
||||
* easier. Thus, you can just do this for all cases:
|
||||
* png_progressive_combine_row() passing in the row and the
|
||||
* old row. You can call this function for NULL rows (it will
|
||||
* just return) and for non-interlaced images (it just does the
|
||||
* png_memcpy for you) if it will make the code easier. Thus, you
|
||||
* can just do this for all cases:
|
||||
*/
|
||||
|
||||
png_progressive_combine_row(png_ptr, old_row, new_row);
|
||||
@@ -531,8 +503,8 @@ row_callback(png_structp png_ptr, png_bytep new_row,
|
||||
* that the first pass (pass == 0 really) will completely cover
|
||||
* the old row, so the rows do not have to be initialized. After
|
||||
* the first pass (and only for interlaced images), you will have
|
||||
* to pass the current row as new_row, and the function will combine
|
||||
* the old row and the new row.
|
||||
* to pass the current row, and the function will combine the
|
||||
* old row and the new row.
|
||||
*/
|
||||
}
|
||||
|
||||
@@ -582,7 +554,7 @@ void write_png(char *file_name /* , ... other image information ... */)
|
||||
if (info_ptr == NULL)
|
||||
{
|
||||
fclose(fp);
|
||||
png_destroy_write_struct(&png_ptr, png_infopp_NULL);
|
||||
png_destroy_write_struct(&png_ptr, (png_infopp)NULL);
|
||||
return (ERROR);
|
||||
}
|
||||
|
||||
@@ -614,7 +586,7 @@ void write_png(char *file_name /* , ... other image information ... */)
|
||||
* image info living info in the structure. You could "|" many
|
||||
* PNG_TRANSFORM flags into the png_transforms integer here.
|
||||
*/
|
||||
png_write_png(png_ptr, info_ptr, png_transforms, png_voidp_NULL);
|
||||
png_write_png(png_ptr, info_ptr, png_transforms, NULL);
|
||||
#else
|
||||
/* This is the hard way */
|
||||
|
||||
|
||||
252
libpng.3
252
libpng.3
@@ -1,6 +1,6 @@
|
||||
.TH LIBPNG 3 "April 15, 2002"
|
||||
.TH LIBPNG 3 "June 23, 2001"
|
||||
.SH NAME
|
||||
libpng \- Portable Network Graphics (PNG) Reference Library 1.0.13
|
||||
libpng \- Portable Network Graphics (PNG) Reference Library 1.2.0beta4
|
||||
.SH SYNOPSIS
|
||||
\fI\fB
|
||||
|
||||
@@ -100,6 +100,10 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.0.13
|
||||
|
||||
\fI\fB
|
||||
|
||||
\fBpng_uint_32 png_get_asm_flags (png_structp \fIpng_ptr\fP\fB);\fP
|
||||
|
||||
\fI\fB
|
||||
|
||||
\fBpng_byte png_get_bit_depth (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fIinfo_ptr\fP\fB);\fP
|
||||
|
||||
\fI\fB
|
||||
@@ -192,6 +196,18 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.0.13
|
||||
|
||||
\fI\fB
|
||||
|
||||
\fBpng_byte png_get_mmx_bitdepth_threshold (png_structp \fIpng_ptr\fP\fB);\fP
|
||||
|
||||
\fI\fB
|
||||
|
||||
\fBpng_uint_32 png_get_mmx_flagmask (int \fP\fIflag_select\fP\fB, int \fI*compilerID\fP\fB);\fP
|
||||
|
||||
\fI\fB
|
||||
|
||||
\fBpng_uint_32 png_get_mmx_rowbytes_threshold (png_structp \fIpng_ptr\fP\fB);\fP
|
||||
|
||||
\fI\fB
|
||||
|
||||
\fBpng_uint_32 png_get_oFFs (png_structp \fP\fIpng_ptr\fP\fB, png_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
|
||||
|
||||
\fI\fB
|
||||
@@ -302,10 +318,6 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.0.13
|
||||
|
||||
\fI\fB
|
||||
|
||||
\fBint png_handle_as_unknown (png_structp \fP\fIpng_ptr\fP\fB, png_bytep \fIchunk_name\fP\fB);\fP
|
||||
|
||||
\fI\fB
|
||||
|
||||
\fBvoid png_init_io (png_structp \fP\fIpng_ptr\fP\fB, FILE \fI*fp\fP\fB);\fP
|
||||
|
||||
\fI\fB
|
||||
@@ -342,6 +354,10 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.0.13
|
||||
|
||||
\fI\fB
|
||||
|
||||
\fBint png_mmx_support \fI(void\fP\fB);\fP
|
||||
|
||||
\fI\fB
|
||||
|
||||
\fBDEPRECATED: void png_permit_empty_plte (png_structp \fP\fIpng_ptr\fP\fB, int \fIempty_plte_permitted\fP\fB);\fP
|
||||
|
||||
\fI\fB
|
||||
@@ -394,6 +410,10 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.0.13
|
||||
|
||||
\fI\fB
|
||||
|
||||
\fBpng_set_asm_flags (png_structp \fP\fIpng_ptr\fP\fB, png_uint_32 \fIasm_flags\fP\fB);\fP
|
||||
|
||||
\fI\fB
|
||||
|
||||
\fBvoid png_set_background (png_structp \fP\fIpng_ptr\fP\fB, png_color_16p \fP\fIbackground_color\fP\fB, int \fP\fIbackground_gamma_code\fP\fB, int \fP\fIneed_expand\fP\fB, double \fIbackground_gamma\fP\fB);\fP
|
||||
|
||||
\fI\fB
|
||||
@@ -522,6 +542,10 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.0.13
|
||||
|
||||
\fI\fB
|
||||
|
||||
\fBpng_set_mmx_thresholds (png_structp \fP\fIpng_ptr\fP\fB, png_byte \fP\fImmx_bitdepth_threshold\fP\fB, png_uint_32 \fImmx_rowbytes_threshold\fP\fB);\fP
|
||||
|
||||
\fI\fB
|
||||
|
||||
\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
|
||||
|
||||
\fI\fB
|
||||
@@ -614,6 +638,12 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.0.13
|
||||
|
||||
\fI\fB
|
||||
|
||||
\fBvoid png_set_strip_error_numbers (png_structp \fIpng_ptr,
|
||||
|
||||
\fBpng_uint_32 \fIstrip_mode\fP\fB);\fP
|
||||
|
||||
\fI\fB
|
||||
|
||||
\fBvoid png_set_swap (png_structp \fIpng_ptr\fP\fB);\fP
|
||||
|
||||
\fI\fB
|
||||
@@ -702,6 +732,10 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.0.13
|
||||
|
||||
\fI\fB
|
||||
|
||||
\fBvoid png_write_destroy_info (png_infop \fIinfo_ptr\fP\fB);\fP
|
||||
|
||||
\fI\fB
|
||||
|
||||
\fBvoid png_write_end (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fIinfo_ptr\fP\fB);\fP
|
||||
|
||||
\fI\fB
|
||||
@@ -742,14 +776,6 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.0.13
|
||||
|
||||
\fI\fB
|
||||
|
||||
\fBvoidpf png_zalloc (voidpf \fP\fIpng_ptr\fP\fB, uInt \fP\fIitems\fP\fB, uInt \fIsize\fP\fB);\fP
|
||||
|
||||
\fI\fB
|
||||
|
||||
\fBvoid png_zfree (voidpf \fP\fIpng_ptr\fP\fB, voidpf \fIptr\fP\fB);\fP
|
||||
|
||||
\fI\fB
|
||||
|
||||
.SH DESCRIPTION
|
||||
The
|
||||
.I libpng
|
||||
@@ -761,10 +787,10 @@ Following is a copy of the libpng.txt file that accompanies libpng.
|
||||
.SH LIBPNG.TXT
|
||||
libpng.txt - A description on how to use and modify libpng
|
||||
|
||||
libpng version 1.0.13 - April 15, 2002
|
||||
libpng version 1.2.0beta4 - June 23, 2001
|
||||
Updated and distributed by Glenn Randers-Pehrson
|
||||
<randeg@alum.rpi.edu>
|
||||
Copyright (c) 1998-2002 Glenn Randers-Pehrson
|
||||
Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
||||
For conditions of distribution and use, see copyright
|
||||
notice in png.h.
|
||||
|
||||
@@ -839,9 +865,7 @@ Libpng is thread safe, provided the threads are using different
|
||||
instances of the structures. Each thread should have its own
|
||||
png_struct and png_info instances, and thus its own image.
|
||||
Libpng does not protect itself against two threads using the
|
||||
same instance of a structure. Note: thread safety may be defeated
|
||||
by use of some of the MMX assembler code in pnggccrd.c, which is only
|
||||
compiled when the user defines PNG_THREAD_UNSAFE_OK.
|
||||
same instance of a structure.
|
||||
|
||||
|
||||
.SH II. Structures
|
||||
@@ -1338,7 +1362,7 @@ into the info_ptr is returned for any complex types.
|
||||
after decompression, 0 for tEXt/zTXt
|
||||
text_ptr[i].lang - language of comment (empty
|
||||
string for unknown).
|
||||
text_ptr[i].lang_key - keyword in UTF-8
|
||||
text_ptr[i].translated_keyword - keyword in UTF-8
|
||||
(empty string for unknown).
|
||||
num_text - number of comments (same as
|
||||
num_comments; you can put NULL here
|
||||
@@ -1553,7 +1577,7 @@ higher possible bit depth (e.g. from 5 bits/sample in the range [0,31] to
|
||||
convert the PNG pixel data back to the original bit depth of the image.
|
||||
This call reduces the pixels back down to the original bit depth:
|
||||
|
||||
png_color_8p sig_bit;
|
||||
png_color_16p sig_bit;
|
||||
|
||||
if (png_get_sBIT(png_ptr, info_ptr, &sig_bit))
|
||||
png_set_shift(png_ptr, sig_bit);
|
||||
@@ -1565,18 +1589,17 @@ changes the storage of the pixels to blue, green, red:
|
||||
color_type == PNG_COLOR_TYPE_RGB_ALPHA)
|
||||
png_set_bgr(png_ptr);
|
||||
|
||||
PNG files store RGB pixels packed into 3 or 6 bytes. This code expands them
|
||||
into 4 or 8 bytes for windowing systems that need them in this format:
|
||||
PNG files store RGB pixels packed into 3 bytes. This code expands them
|
||||
into 4 bytes for windowing systems that need them in this format:
|
||||
|
||||
if (color_type == PNG_COLOR_TYPE_RGB)
|
||||
png_set_filler(png_ptr, filler, PNG_FILLER_BEFORE);
|
||||
if (bit_depth == 8 && color_type ==
|
||||
PNG_COLOR_TYPE_RGB) png_set_filler(png_ptr,
|
||||
filler, PNG_FILLER_BEFORE);
|
||||
|
||||
where "filler" is the 8 or 16-bit number to fill with, and the location is
|
||||
either PNG_FILLER_BEFORE or PNG_FILLER_AFTER, depending upon whether
|
||||
you want the filler before the RGB or after. This transformation
|
||||
does not affect images that already have full alpha channels. To add an
|
||||
opaque alpha channel, use filler=0xff or 0xffff and PNG_FILLER_AFTER which
|
||||
will generate RGBA pixels.
|
||||
does not affect images that already have full alpha channels.
|
||||
|
||||
If you are reading an image with an alpha channel, and you need the
|
||||
data as ARGB instead of the normal PNG format RGBA:
|
||||
@@ -1646,8 +1669,8 @@ which can be expressed with integers as
|
||||
The calculation is done in a linear colorspace, if the image gamma
|
||||
is known.
|
||||
|
||||
If you have a grayscale and you are using png_set_expand_depth(),
|
||||
png_set_expand(), or png_set_gray_to_rgb to change to truecolor or to
|
||||
If you have a grayscale and you are using png_set_expand_depth() or
|
||||
png_set_expand() to change to
|
||||
a higher bit-depth, you must either supply the background color as a gray
|
||||
value at the original file bit-depth (need_expand = 1) or else supply the
|
||||
background color as an RGB triplet at the final, expanded bit depth
|
||||
@@ -1766,13 +1789,7 @@ PNG files describe monochrome as black being zero and white being one.
|
||||
The following code will reverse this (make black be one and white be
|
||||
zero):
|
||||
|
||||
if (bit_depth == 1 && color_type == PNG_COLOR_TYPE_GRAY)
|
||||
png_set_invert_mono(png_ptr);
|
||||
|
||||
This function can also be used to invert grayscale and gray-alpha images:
|
||||
|
||||
if (color_type == PNG_COLOR_TYPE_GRAY ||
|
||||
color_type == PNG_COLOR_TYPE_GRAY_ALPHA)
|
||||
if (bit_depth == 1 && color_type == PNG_COLOR_GRAY)
|
||||
png_set_invert_mono(png_ptr);
|
||||
|
||||
PNG files store 16 bit pixels in network byte order (big-endian,
|
||||
@@ -3080,7 +3097,7 @@ This function also provides a void pointer that can be retrieved via
|
||||
Your replacement memory functions must have prototypes as follows:
|
||||
|
||||
png_voidp malloc_fn(png_structp png_ptr,
|
||||
png_size_t size);
|
||||
png_uint_32 size);
|
||||
void free_fn(png_structp png_ptr, png_voidp ptr);
|
||||
|
||||
Your malloc_fn() can return NULL in case of failure. The png_malloc()
|
||||
@@ -3246,10 +3263,6 @@ compression level by calling:
|
||||
Another useful one is to reduce the memory level used by the library.
|
||||
The memory level defaults to 8, but it can be lowered if you are
|
||||
short on memory (running DOS, for example, where you only have 640K).
|
||||
Note that the memory level does have an effect on compression; among
|
||||
other things, lower levels will result in sections of incompressible
|
||||
data being emitted in smaller stored blocks, with a correspondingly
|
||||
larger relative overhead of up to 15% in the worst case.
|
||||
|
||||
png_set_compression_mem_level(png_ptr, level);
|
||||
|
||||
@@ -3284,18 +3297,19 @@ to turn filtering on and off, respectively.
|
||||
Individual filter types are PNG_FILTER_NONE, PNG_FILTER_SUB,
|
||||
PNG_FILTER_UP, PNG_FILTER_AVG, PNG_FILTER_PAETH, which can be bitwise
|
||||
ORed together with '|' to specify one or more filters to use.
|
||||
These filters are described in more detail in the PNG specification.
|
||||
If you intend to change the filter type during the course of writing
|
||||
These filters are described in more detail in the PNG specification. If
|
||||
you intend to change the filter type during the course of writing
|
||||
the image, you should start with flags set for all of the filters
|
||||
you intend to use so that libpng can initialize its internal
|
||||
structures appropriately for all of the filter types. (Note that this
|
||||
means the first row must always be adaptively filtered, because libpng
|
||||
currently does not allocate the filter buffers until png_write_row()
|
||||
is called for the first time.)
|
||||
structures appropriately for all of the filter types.
|
||||
|
||||
filters = PNG_FILTER_NONE | PNG_FILTER_SUB
|
||||
PNG_FILTER_UP | PNG_FILTER_AVE |
|
||||
PNG_FILTER_PAETH | PNG_ALL_FILTERS;
|
||||
or
|
||||
filters = one of PNG_FILTER_VALUE_NONE,
|
||||
PNG_FILTER_VALUE_SUB, PNG_FILTER_VALUE_UP,
|
||||
PNG_FILTER_VALUE_AVE, PNG_FILTER_VALUE_PAETH
|
||||
|
||||
png_set_filter(png_ptr, PNG_FILTER_TYPE_BASE,
|
||||
filters);
|
||||
@@ -3307,16 +3321,16 @@ is called for the first time.)
|
||||
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.
|
||||
available filters. This is done in 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,
|
||||
png_set_filter_selection(png_ptr,
|
||||
PNG_FILTER_SELECTION_WEIGHTED, 3,
|
||||
weights, costs);
|
||||
|
||||
The weights are multiplying factors that indicate to libpng that the
|
||||
@@ -3416,7 +3430,106 @@ When PNG_DEBUG = 1, the macros are defined, but only png_debug statements
|
||||
having level = 0 will be printed. There aren't any such statements in
|
||||
this version of libpng, but if you insert some they will be printed.
|
||||
|
||||
.SH VI. MNG support
|
||||
.SH VI. Runtime optimization
|
||||
|
||||
A new feature in libpng 1.2.0 is the ability to dynamically switch between
|
||||
standard and optimized versions of some routines. Currently these are
|
||||
limited to three computationally intensive tasks when reading PNG files:
|
||||
decoding row filters, expanding interlacing, and combining interlaced or
|
||||
transparent row data with previous row data. Currently the optimized
|
||||
versions are available only for x86 (Intel, AMD, etc.) platforms with
|
||||
MMX support, though this may change in future versions. (For example,
|
||||
the non-MMX assembler optimizations for zlib might become similarly
|
||||
runtime-selectable in future releases, in which case libpng could be
|
||||
extended to support them. Alternatively, the compile-time choice of
|
||||
floating-point versus integer routines for gamma correction might become
|
||||
runtime-selectable.)
|
||||
|
||||
Because such optimizations tend to be very platform- and compiler-dependent,
|
||||
both in how they are written and in how they perform, the new runtime code
|
||||
in libpng has been written to allow programs to query, enable, and disable
|
||||
either specific optimizations or all such optimizations. For example, to
|
||||
enable all possible optimizations (bearing in mind that some "optimizations"
|
||||
may actually run more slowly in rare cases):
|
||||
|
||||
#if defined(PNG_LIBPNG_VER) && (PNG_LIBPNG_VER >= 10200)
|
||||
png_uint_32 mask, flags;
|
||||
|
||||
flags = png_get_asm_flags(png_ptr);
|
||||
mask = png_get_asm_flagmask(PNG_SELECT_READ | PNG_SELECT_WRITE);
|
||||
png_set_asm_flags(png_ptr, flags | mask);
|
||||
#endif
|
||||
|
||||
To enable only optimizations relevant to reading PNGs, use PNG_SELECT_READ
|
||||
by itself when calling png_get_asm_flagmask(); similarly for optimizing
|
||||
only writing. To disable all optimizations:
|
||||
|
||||
#if defined(PNG_LIBPNG_VER) && (PNG_LIBPNG_VER >= 10200)
|
||||
flags = png_get_asm_flags(png_ptr);
|
||||
mask = png_get_asm_flagmask(PNG_SELECT_READ | PNG_SELECT_WRITE);
|
||||
png_set_asm_flags(png_ptr, flags & ~mask);
|
||||
#endif
|
||||
|
||||
To enable or disable only MMX-related features, use png_get_mmx_flagmask()
|
||||
in place of png_get_asm_flagmask(). The mmx version takes one additional
|
||||
parameter:
|
||||
|
||||
#if defined(PNG_LIBPNG_VER) && (PNG_LIBPNG_VER >= 10200)
|
||||
int selection = PNG_SELECT_READ | PNG_SELECT_WRITE;
|
||||
int compilerID;
|
||||
|
||||
mask = png_get_mmx_flagmask(selection, &compilerID);
|
||||
#endif
|
||||
|
||||
On return, compilerID will indicate which version of the MMX assembler
|
||||
optimizations was compiled. Currently two flavors exist: Microsoft
|
||||
Visual C++ (compilerID == 1) and GNU C (a.k.a. gcc/gas, compilerID == 2).
|
||||
On non-x86 platforms or on systems compiled without MMX optimizations, a
|
||||
value of -1 is used.
|
||||
|
||||
Note that both png_get_asm_flagmask() and png_get_mmx_flagmask() return
|
||||
all valid, settable optimization bits for the version of the library that's
|
||||
currently in use. In the case of shared (dynamically linked) libraries,
|
||||
this may include optimizations that did not exist at the time the code was
|
||||
written and compiled. It is also possible, of course, to enable only known,
|
||||
specific optimizations; for example:
|
||||
|
||||
#if defined(PNG_LIBPNG_VER) && (PNG_LIBPNG_VER >= 10200)
|
||||
flags = PNG_ASM_FLAG_MMX_READ_COMBINE_ROW \
|
||||
| PNG_ASM_FLAG_MMX_READ_INTERLACE \
|
||||
| PNG_ASM_FLAG_MMX_READ_FILTER_SUB \
|
||||
| PNG_ASM_FLAG_MMX_READ_FILTER_UP \
|
||||
| PNG_ASM_FLAG_MMX_READ_FILTER_AVG \
|
||||
| PNG_ASM_FLAG_MMX_READ_FILTER_PAETH ;
|
||||
png_set_asm_flags(png_ptr, flags);
|
||||
#endif
|
||||
|
||||
This method would enable only the MMX read-optimizations available at the
|
||||
time of libpng 1.2.0's release, regardless of whether a later version of
|
||||
the DLL were actually being used. (Also note that these functions did not
|
||||
exist in versions older than 1.2.0, so any attempt to run a dynamically
|
||||
linked app on such an older version would fail.)
|
||||
|
||||
To determine whether the processor supports MMX instructions at all, use
|
||||
the png_mmx_support() function:
|
||||
|
||||
#if defined(PNG_LIBPNG_VER) && (PNG_LIBPNG_VER >= 10200)
|
||||
mmxsupport = png_mmx_support();
|
||||
#endif
|
||||
|
||||
It returns -1 if MMX support is not compiled into libpng, 0 if MMX code
|
||||
is compiled but MMX is not supported by the processor, or 1 if MMX support
|
||||
is fully available. Note that png_mmx_support(), png_get_mmx_flagmask(),
|
||||
and png_get_asm_flagmask() all may be called without allocating and ini-
|
||||
tializing any PNG structures (for example, as part of a usage screen or
|
||||
"about" box).
|
||||
|
||||
For more extensive examples of runtime querying, enabling and disabling
|
||||
of optimized features, see contrib/gregbook/readpng2.c in the libpng
|
||||
source-code distribution.
|
||||
|
||||
|
||||
.SH VII. MNG support
|
||||
|
||||
The MNG specification (available at http://www.libpng.org/pub/mng) allows
|
||||
certain extensions to PNG for PNG images that are embedded in MNG datastreams.
|
||||
@@ -3429,7 +3542,7 @@ png_permit_mng_features() function:
|
||||
PNG_FLAG_MNG_EMPTY_PLTE
|
||||
PNG_FLAG_MNG_FILTER_64
|
||||
PNG_ALL_MNG_FEATURES
|
||||
feature_set is a png_byte that is the logical AND of
|
||||
feature_set is a png_32_uint that is the logical AND of
|
||||
your mask with the set of MNG features that is
|
||||
supported by the version of libpng that you are using.
|
||||
|
||||
@@ -3441,7 +3554,7 @@ or any other MNG chunks; your application must provide its own support for
|
||||
them. You may wish to consider using libmng (available at
|
||||
http://www.libmng.com) instead.
|
||||
|
||||
.SH VII. Changes to Libpng from version 0.88
|
||||
.SH VIII. Changes to Libpng from version 0.88
|
||||
|
||||
It should be noted that versions of libpng later than 0.96 are not
|
||||
distributed by the original libpng author, Guy Schalnat, nor by
|
||||
@@ -3490,15 +3603,15 @@ application:
|
||||
|
||||
png_uint_32 application_vn = PNG_LIBPNG_VER;
|
||||
|
||||
.SH VII. Y2K Compliance in libpng
|
||||
.SH IX. Y2K Compliance in libpng
|
||||
|
||||
April 15, 2002
|
||||
June 23, 2001
|
||||
|
||||
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.0.13 are Y2K compliant. It is my belief that earlier
|
||||
upward through 1.2.0beta4 are Y2K compliant. It is my belief that earlier
|
||||
versions were also Y2K compliant.
|
||||
|
||||
Libpng only has three year fields. One is a 2-byte unsigned integer that
|
||||
@@ -3615,18 +3728,7 @@ the first widely used release:
|
||||
1.0.12 2 10012 2.1.0.12
|
||||
1.1.0a-f - 10100 2.1.1.0a-f abandoned
|
||||
1.2.0beta1-2 2 10200 2.1.2.0beta1-2
|
||||
1.2.0beta3-5 3 10200 3.1.2.0beta3-5
|
||||
1.2.0rc1 3 10200 3.1.2.0rc1
|
||||
1.2.0 3 10200 3.1.2.0
|
||||
1.2.1beta-4 3 10201 3.1.2.1beta1-4
|
||||
1.2.1rc1-2 3 10201 3.1.2.1rc1-2
|
||||
1.2.1 3 10201 3.1.2.1
|
||||
1.2.2beta1-6 12 10202 12.so.0.1.2.2beta1-6
|
||||
1.0.13beta1 10 10013 10.so.0.1.0.13beta1
|
||||
1.2.2rc1 12 10202 12.so.0.1.2.2rc1
|
||||
1.0.13rc1 10 10013 10.so.0.1.0.13rc1
|
||||
1.2.2 12 10202 12.so.0.1.2.2
|
||||
1.0.13 10 10013 10.so.0.1.0.13rc1
|
||||
1.2.0beta3-4 3 10200 3.1.2.0beta3-4
|
||||
|
||||
Henceforth the source version will match the shared-library minor
|
||||
and patch numbers; the shared-library major version number will be
|
||||
@@ -3684,7 +3786,7 @@ possible without all of you.
|
||||
|
||||
Thanks to Frank J. T. Wojcik for helping with the documentation.
|
||||
|
||||
Libpng version 1.0.13 - April 15, 2002:
|
||||
Libpng version 1.2.0beta4 - June 23, 2001:
|
||||
Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc.
|
||||
Currently maintained by Glenn Randers-Pehrson (randeg@alum.rpi.edu).
|
||||
|
||||
@@ -3701,8 +3803,8 @@ included in the libpng distribution, the latter shall prevail.)
|
||||
If you modify libpng you may insert additional notices immediately following
|
||||
this sentence.
|
||||
|
||||
libpng versions 1.0.7, July 1, 2000, through 1.0.13, April 15, 2002, are
|
||||
Copyright (c) 2000-2002 Glenn Randers-Pehrson, and are
|
||||
libpng versions 1.0.7, July 1, 2000, through 1.2.0beta4, June 23, 2001, are
|
||||
Copyright (c) 2000-2001 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
|
||||
|
||||
@@ -3793,7 +3895,7 @@ certification mark of the Open Source Initiative.
|
||||
|
||||
Glenn Randers-Pehrson
|
||||
randeg@alum.rpi.edu
|
||||
April 15, 2002
|
||||
June 23, 2001
|
||||
|
||||
.\" end of man page
|
||||
|
||||
|
||||
177
libpng.txt
177
libpng.txt
@@ -1,9 +1,9 @@
|
||||
libpng.txt - A description on how to use and modify libpng
|
||||
|
||||
libpng version 1.0.13 - April 15, 2002
|
||||
libpng version 1.2.0beta4 - June 23, 2001
|
||||
Updated and distributed by Glenn Randers-Pehrson
|
||||
<randeg@alum.rpi.edu>
|
||||
Copyright (c) 1998-2002 Glenn Randers-Pehrson
|
||||
Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
||||
For conditions of distribution and use, see copyright
|
||||
notice in png.h.
|
||||
|
||||
@@ -78,9 +78,7 @@ Libpng is thread safe, provided the threads are using different
|
||||
instances of the structures. Each thread should have its own
|
||||
png_struct and png_info instances, and thus its own image.
|
||||
Libpng does not protect itself against two threads using the
|
||||
same instance of a structure. Note: thread safety may be defeated
|
||||
by use of some of the MMX assembler code in pnggccrd.c, which is only
|
||||
compiled when the user defines PNG_THREAD_UNSAFE_OK.
|
||||
same instance of a structure.
|
||||
|
||||
|
||||
II. Structures
|
||||
@@ -577,7 +575,7 @@ into the info_ptr is returned for any complex types.
|
||||
after decompression, 0 for tEXt/zTXt
|
||||
text_ptr[i].lang - language of comment (empty
|
||||
string for unknown).
|
||||
text_ptr[i].lang_key - keyword in UTF-8
|
||||
text_ptr[i].translated_keyword - keyword in UTF-8
|
||||
(empty string for unknown).
|
||||
num_text - number of comments (same as
|
||||
num_comments; you can put NULL here
|
||||
@@ -792,7 +790,7 @@ higher possible bit depth (e.g. from 5 bits/sample in the range [0,31] to
|
||||
convert the PNG pixel data back to the original bit depth of the image.
|
||||
This call reduces the pixels back down to the original bit depth:
|
||||
|
||||
png_color_8p sig_bit;
|
||||
png_color_16p sig_bit;
|
||||
|
||||
if (png_get_sBIT(png_ptr, info_ptr, &sig_bit))
|
||||
png_set_shift(png_ptr, sig_bit);
|
||||
@@ -804,18 +802,17 @@ changes the storage of the pixels to blue, green, red:
|
||||
color_type == PNG_COLOR_TYPE_RGB_ALPHA)
|
||||
png_set_bgr(png_ptr);
|
||||
|
||||
PNG files store RGB pixels packed into 3 or 6 bytes. This code expands them
|
||||
into 4 or 8 bytes for windowing systems that need them in this format:
|
||||
PNG files store RGB pixels packed into 3 bytes. This code expands them
|
||||
into 4 bytes for windowing systems that need them in this format:
|
||||
|
||||
if (color_type == PNG_COLOR_TYPE_RGB)
|
||||
png_set_filler(png_ptr, filler, PNG_FILLER_BEFORE);
|
||||
if (bit_depth == 8 && color_type ==
|
||||
PNG_COLOR_TYPE_RGB) png_set_filler(png_ptr,
|
||||
filler, PNG_FILLER_BEFORE);
|
||||
|
||||
where "filler" is the 8 or 16-bit number to fill with, and the location is
|
||||
either PNG_FILLER_BEFORE or PNG_FILLER_AFTER, depending upon whether
|
||||
you want the filler before the RGB or after. This transformation
|
||||
does not affect images that already have full alpha channels. To add an
|
||||
opaque alpha channel, use filler=0xff or 0xffff and PNG_FILLER_AFTER which
|
||||
will generate RGBA pixels.
|
||||
does not affect images that already have full alpha channels.
|
||||
|
||||
If you are reading an image with an alpha channel, and you need the
|
||||
data as ARGB instead of the normal PNG format RGBA:
|
||||
@@ -885,8 +882,8 @@ which can be expressed with integers as
|
||||
The calculation is done in a linear colorspace, if the image gamma
|
||||
is known.
|
||||
|
||||
If you have a grayscale and you are using png_set_expand_depth(),
|
||||
png_set_expand(), or png_set_gray_to_rgb to change to truecolor or to
|
||||
If you have a grayscale and you are using png_set_expand_depth() or
|
||||
png_set_expand() to change to
|
||||
a higher bit-depth, you must either supply the background color as a gray
|
||||
value at the original file bit-depth (need_expand = 1) or else supply the
|
||||
background color as an RGB triplet at the final, expanded bit depth
|
||||
@@ -1005,13 +1002,7 @@ PNG files describe monochrome as black being zero and white being one.
|
||||
The following code will reverse this (make black be one and white be
|
||||
zero):
|
||||
|
||||
if (bit_depth == 1 && color_type == PNG_COLOR_TYPE_GRAY)
|
||||
png_set_invert_mono(png_ptr);
|
||||
|
||||
This function can also be used to invert grayscale and gray-alpha images:
|
||||
|
||||
if (color_type == PNG_COLOR_TYPE_GRAY ||
|
||||
color_type == PNG_COLOR_TYPE_GRAY_ALPHA)
|
||||
if (bit_depth == 1 && color_type == PNG_COLOR_GRAY)
|
||||
png_set_invert_mono(png_ptr);
|
||||
|
||||
PNG files store 16 bit pixels in network byte order (big-endian,
|
||||
@@ -2319,7 +2310,7 @@ This function also provides a void pointer that can be retrieved via
|
||||
Your replacement memory functions must have prototypes as follows:
|
||||
|
||||
png_voidp malloc_fn(png_structp png_ptr,
|
||||
png_size_t size);
|
||||
png_uint_32 size);
|
||||
void free_fn(png_structp png_ptr, png_voidp ptr);
|
||||
|
||||
Your malloc_fn() can return NULL in case of failure. The png_malloc()
|
||||
@@ -2485,10 +2476,6 @@ compression level by calling:
|
||||
Another useful one is to reduce the memory level used by the library.
|
||||
The memory level defaults to 8, but it can be lowered if you are
|
||||
short on memory (running DOS, for example, where you only have 640K).
|
||||
Note that the memory level does have an effect on compression; among
|
||||
other things, lower levels will result in sections of incompressible
|
||||
data being emitted in smaller stored blocks, with a correspondingly
|
||||
larger relative overhead of up to 15% in the worst case.
|
||||
|
||||
png_set_compression_mem_level(png_ptr, level);
|
||||
|
||||
@@ -2523,18 +2510,19 @@ to turn filtering on and off, respectively.
|
||||
Individual filter types are PNG_FILTER_NONE, PNG_FILTER_SUB,
|
||||
PNG_FILTER_UP, PNG_FILTER_AVG, PNG_FILTER_PAETH, which can be bitwise
|
||||
ORed together with '|' to specify one or more filters to use.
|
||||
These filters are described in more detail in the PNG specification.
|
||||
If you intend to change the filter type during the course of writing
|
||||
These filters are described in more detail in the PNG specification. If
|
||||
you intend to change the filter type during the course of writing
|
||||
the image, you should start with flags set for all of the filters
|
||||
you intend to use so that libpng can initialize its internal
|
||||
structures appropriately for all of the filter types. (Note that this
|
||||
means the first row must always be adaptively filtered, because libpng
|
||||
currently does not allocate the filter buffers until png_write_row()
|
||||
is called for the first time.)
|
||||
structures appropriately for all of the filter types.
|
||||
|
||||
filters = PNG_FILTER_NONE | PNG_FILTER_SUB
|
||||
PNG_FILTER_UP | PNG_FILTER_AVE |
|
||||
PNG_FILTER_PAETH | PNG_ALL_FILTERS;
|
||||
or
|
||||
filters = one of PNG_FILTER_VALUE_NONE,
|
||||
PNG_FILTER_VALUE_SUB, PNG_FILTER_VALUE_UP,
|
||||
PNG_FILTER_VALUE_AVE, PNG_FILTER_VALUE_PAETH
|
||||
|
||||
png_set_filter(png_ptr, PNG_FILTER_TYPE_BASE,
|
||||
filters);
|
||||
@@ -2546,16 +2534,16 @@ is called for the first time.)
|
||||
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.
|
||||
available filters. This is done in 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,
|
||||
png_set_filter_selection(png_ptr,
|
||||
PNG_FILTER_SELECTION_WEIGHTED, 3,
|
||||
weights, costs);
|
||||
|
||||
The weights are multiplying factors that indicate to libpng that the
|
||||
@@ -2655,7 +2643,106 @@ When PNG_DEBUG = 1, the macros are defined, but only png_debug statements
|
||||
having level = 0 will be printed. There aren't any such statements in
|
||||
this version of libpng, but if you insert some they will be printed.
|
||||
|
||||
VI. MNG support
|
||||
VI. Runtime optimization
|
||||
|
||||
A new feature in libpng 1.2.0 is the ability to dynamically switch between
|
||||
standard and optimized versions of some routines. Currently these are
|
||||
limited to three computationally intensive tasks when reading PNG files:
|
||||
decoding row filters, expanding interlacing, and combining interlaced or
|
||||
transparent row data with previous row data. Currently the optimized
|
||||
versions are available only for x86 (Intel, AMD, etc.) platforms with
|
||||
MMX support, though this may change in future versions. (For example,
|
||||
the non-MMX assembler optimizations for zlib might become similarly
|
||||
runtime-selectable in future releases, in which case libpng could be
|
||||
extended to support them. Alternatively, the compile-time choice of
|
||||
floating-point versus integer routines for gamma correction might become
|
||||
runtime-selectable.)
|
||||
|
||||
Because such optimizations tend to be very platform- and compiler-dependent,
|
||||
both in how they are written and in how they perform, the new runtime code
|
||||
in libpng has been written to allow programs to query, enable, and disable
|
||||
either specific optimizations or all such optimizations. For example, to
|
||||
enable all possible optimizations (bearing in mind that some "optimizations"
|
||||
may actually run more slowly in rare cases):
|
||||
|
||||
#if defined(PNG_LIBPNG_VER) && (PNG_LIBPNG_VER >= 10200)
|
||||
png_uint_32 mask, flags;
|
||||
|
||||
flags = png_get_asm_flags(png_ptr);
|
||||
mask = png_get_asm_flagmask(PNG_SELECT_READ | PNG_SELECT_WRITE);
|
||||
png_set_asm_flags(png_ptr, flags | mask);
|
||||
#endif
|
||||
|
||||
To enable only optimizations relevant to reading PNGs, use PNG_SELECT_READ
|
||||
by itself when calling png_get_asm_flagmask(); similarly for optimizing
|
||||
only writing. To disable all optimizations:
|
||||
|
||||
#if defined(PNG_LIBPNG_VER) && (PNG_LIBPNG_VER >= 10200)
|
||||
flags = png_get_asm_flags(png_ptr);
|
||||
mask = png_get_asm_flagmask(PNG_SELECT_READ | PNG_SELECT_WRITE);
|
||||
png_set_asm_flags(png_ptr, flags & ~mask);
|
||||
#endif
|
||||
|
||||
To enable or disable only MMX-related features, use png_get_mmx_flagmask()
|
||||
in place of png_get_asm_flagmask(). The mmx version takes one additional
|
||||
parameter:
|
||||
|
||||
#if defined(PNG_LIBPNG_VER) && (PNG_LIBPNG_VER >= 10200)
|
||||
int selection = PNG_SELECT_READ | PNG_SELECT_WRITE;
|
||||
int compilerID;
|
||||
|
||||
mask = png_get_mmx_flagmask(selection, &compilerID);
|
||||
#endif
|
||||
|
||||
On return, compilerID will indicate which version of the MMX assembler
|
||||
optimizations was compiled. Currently two flavors exist: Microsoft
|
||||
Visual C++ (compilerID == 1) and GNU C (a.k.a. gcc/gas, compilerID == 2).
|
||||
On non-x86 platforms or on systems compiled without MMX optimizations, a
|
||||
value of -1 is used.
|
||||
|
||||
Note that both png_get_asm_flagmask() and png_get_mmx_flagmask() return
|
||||
all valid, settable optimization bits for the version of the library that's
|
||||
currently in use. In the case of shared (dynamically linked) libraries,
|
||||
this may include optimizations that did not exist at the time the code was
|
||||
written and compiled. It is also possible, of course, to enable only known,
|
||||
specific optimizations; for example:
|
||||
|
||||
#if defined(PNG_LIBPNG_VER) && (PNG_LIBPNG_VER >= 10200)
|
||||
flags = PNG_ASM_FLAG_MMX_READ_COMBINE_ROW \
|
||||
| PNG_ASM_FLAG_MMX_READ_INTERLACE \
|
||||
| PNG_ASM_FLAG_MMX_READ_FILTER_SUB \
|
||||
| PNG_ASM_FLAG_MMX_READ_FILTER_UP \
|
||||
| PNG_ASM_FLAG_MMX_READ_FILTER_AVG \
|
||||
| PNG_ASM_FLAG_MMX_READ_FILTER_PAETH ;
|
||||
png_set_asm_flags(png_ptr, flags);
|
||||
#endif
|
||||
|
||||
This method would enable only the MMX read-optimizations available at the
|
||||
time of libpng 1.2.0's release, regardless of whether a later version of
|
||||
the DLL were actually being used. (Also note that these functions did not
|
||||
exist in versions older than 1.2.0, so any attempt to run a dynamically
|
||||
linked app on such an older version would fail.)
|
||||
|
||||
To determine whether the processor supports MMX instructions at all, use
|
||||
the png_mmx_support() function:
|
||||
|
||||
#if defined(PNG_LIBPNG_VER) && (PNG_LIBPNG_VER >= 10200)
|
||||
mmxsupport = png_mmx_support();
|
||||
#endif
|
||||
|
||||
It returns -1 if MMX support is not compiled into libpng, 0 if MMX code
|
||||
is compiled but MMX is not supported by the processor, or 1 if MMX support
|
||||
is fully available. Note that png_mmx_support(), png_get_mmx_flagmask(),
|
||||
and png_get_asm_flagmask() all may be called without allocating and ini-
|
||||
tializing any PNG structures (for example, as part of a usage screen or
|
||||
"about" box).
|
||||
|
||||
For more extensive examples of runtime querying, enabling and disabling
|
||||
of optimized features, see contrib/gregbook/readpng2.c in the libpng
|
||||
source-code distribution.
|
||||
|
||||
|
||||
VII. MNG support
|
||||
|
||||
The MNG specification (available at http://www.libpng.org/pub/mng) allows
|
||||
certain extensions to PNG for PNG images that are embedded in MNG datastreams.
|
||||
@@ -2668,7 +2755,7 @@ png_permit_mng_features() function:
|
||||
PNG_FLAG_MNG_EMPTY_PLTE
|
||||
PNG_FLAG_MNG_FILTER_64
|
||||
PNG_ALL_MNG_FEATURES
|
||||
feature_set is a png_byte that is the logical AND of
|
||||
feature_set is a png_32_uint that is the logical AND of
|
||||
your mask with the set of MNG features that is
|
||||
supported by the version of libpng that you are using.
|
||||
|
||||
@@ -2680,7 +2767,7 @@ or any other MNG chunks; your application must provide its own support for
|
||||
them. You may wish to consider using libmng (available at
|
||||
http://www.libmng.com) instead.
|
||||
|
||||
VII. Changes to Libpng from version 0.88
|
||||
VIII. Changes to Libpng from version 0.88
|
||||
|
||||
It should be noted that versions of libpng later than 0.96 are not
|
||||
distributed by the original libpng author, Guy Schalnat, nor by
|
||||
@@ -2729,15 +2816,15 @@ application:
|
||||
|
||||
png_uint_32 application_vn = PNG_LIBPNG_VER;
|
||||
|
||||
VII. Y2K Compliance in libpng
|
||||
IX. Y2K Compliance in libpng
|
||||
|
||||
April 15, 2002
|
||||
June 23, 2001
|
||||
|
||||
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.0.13 are Y2K compliant. It is my belief that earlier
|
||||
upward through 1.2.0beta4 are Y2K compliant. It is my belief that earlier
|
||||
versions were also Y2K compliant.
|
||||
|
||||
Libpng only has three year fields. One is a 2-byte unsigned integer that
|
||||
|
||||
20
libpngpf.3
20
libpngpf.3
@@ -1,6 +1,6 @@
|
||||
.TH LIBPNGPF 3 "April 15, 2002"
|
||||
.TH LIBPNGPF 3 "June 23, 2001"
|
||||
.SH NAME
|
||||
libpng \- Portable Network Graphics (PNG) Reference Library 1.0.13
|
||||
libpng \- Portable Network Graphics (PNG) Reference Library 1.2.0beta4
|
||||
(private functions)
|
||||
.SH SYNOPSIS
|
||||
\fB#include <png.h>\fP
|
||||
@@ -191,6 +191,10 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.0.13
|
||||
|
||||
\fI\fB
|
||||
|
||||
\fBint png_handle_as_unknown (png_structp \fP\fIpng_ptr\fP\fB, png_bytep \fIchunk_name\fP\fB);\fP
|
||||
|
||||
\fI\fB
|
||||
|
||||
\fBvoid png_handle_bKGD (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, png_uint_32 \fIlength\fP\fB);\fP
|
||||
|
||||
\fI\fB
|
||||
@@ -279,6 +283,10 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.0.13
|
||||
|
||||
\fI\fB
|
||||
|
||||
\fBvoid png_init_mmx_flags (png_structp \fIpng_ptr\fP\fB);\fP
|
||||
|
||||
\fI\fB
|
||||
|
||||
\fBvoid png_init_read_transformations (png_structp \fIpng_ptr\fP\fB);\fP
|
||||
|
||||
\fI\fB
|
||||
@@ -527,6 +535,14 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.0.13
|
||||
|
||||
\fI\fB
|
||||
|
||||
\fBvoidpf png_zalloc (voidpf \fP\fIpng_ptr\fP\fB, uInt \fP\fIitems\fP\fB, uInt \fIsize\fP\fB);\fP
|
||||
|
||||
\fI\fB
|
||||
|
||||
\fBvoid png_zfree (voidpf \fP\fIpng_ptr\fP\fB, voidpf \fIptr\fP\fB);\fP
|
||||
|
||||
\fI\fB
|
||||
|
||||
.SH DESCRIPTION
|
||||
The functions listed above are used privately by libpng
|
||||
and are not recommended for use by applications. They are
|
||||
|
||||
2
png.5
2
png.5
@@ -1,4 +1,4 @@
|
||||
.TH PNG 5 "April 15, 2002"
|
||||
.TH PNG 5 "June 23, 2001"
|
||||
.SH NAME
|
||||
png \- Portable Network Graphics (PNG) format
|
||||
.SH DESCRIPTION
|
||||
|
||||
63
png.c
63
png.c
@@ -1,8 +1,8 @@
|
||||
|
||||
/* png.c - location for general purpose libpng functions
|
||||
*
|
||||
* libpng version 1.0.13 - April 15, 2002
|
||||
* Copyright (c) 1998-2002 Glenn Randers-Pehrson
|
||||
* libpng version 1.2.0beta4 - June 23, 2001
|
||||
* Copyright (c) 1998-2001 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.)
|
||||
*
|
||||
@@ -13,14 +13,14 @@
|
||||
#include "png.h"
|
||||
|
||||
/* Generate a compiler error if there is an old png.h in the search path. */
|
||||
typedef version_1_0_13 Your_png_h_is_not_version_1_0_13;
|
||||
typedef version_1_2_0beta4 Your_png_h_is_not_version_1_2_0beta4;
|
||||
|
||||
/* Version information for C files. This had better match the version
|
||||
* string defined in png.h. */
|
||||
|
||||
#ifdef PNG_USE_GLOBAL_ARRAYS
|
||||
/* png_libpng_ver was changed to a function in version 1.0.5c */
|
||||
const char png_libpng_ver[18] = "1.0.13";
|
||||
const char png_libpng_ver[18] = "1.2.0beta4";
|
||||
|
||||
/* png_sig was changed to a function in version 1.0.5c */
|
||||
/* Place to hold the signature string for a PNG file. */
|
||||
@@ -135,22 +135,13 @@ png_check_sig(png_bytep sig, int num)
|
||||
}
|
||||
|
||||
/* Function to allocate memory for zlib and clear it to 0. */
|
||||
voidpf PNGAPI
|
||||
voidpf /* PRIVATE */
|
||||
png_zalloc(voidpf png_ptr, uInt items, uInt size)
|
||||
{
|
||||
png_uint_32 num_bytes = (png_uint_32)items * size;
|
||||
png_voidp ptr;
|
||||
png_structp p=png_ptr;
|
||||
png_uint_32 save_flags=p->flags;
|
||||
|
||||
p->flags|=PNG_FLAG_MALLOC_NULL_MEM_OK;
|
||||
ptr = (png_voidp)png_malloc((png_structp)png_ptr, num_bytes);
|
||||
p->flags=save_flags;
|
||||
png_voidp ptr = (png_voidp)png_malloc((png_structp)png_ptr, num_bytes);
|
||||
|
||||
#ifndef PNG_NO_ZALLOC_ZERO
|
||||
if (ptr == NULL)
|
||||
return ((voidpf)ptr);
|
||||
|
||||
if (num_bytes > (png_uint_32)0x8000L)
|
||||
{
|
||||
png_memset(ptr, 0, (png_size_t)0x8000L);
|
||||
@@ -166,7 +157,7 @@ png_zalloc(voidpf png_ptr, uInt items, uInt size)
|
||||
}
|
||||
|
||||
/* function to free memory for zlib */
|
||||
void PNGAPI
|
||||
void /* PRIVATE */
|
||||
png_zfree(voidpf png_ptr, voidpf ptr)
|
||||
{
|
||||
png_free((png_structp)png_ptr, (png_voidp)ptr);
|
||||
@@ -221,13 +212,14 @@ png_create_info_struct(png_structp png_ptr)
|
||||
png_debug(1, "in png_create_info_struct\n");
|
||||
if(png_ptr == NULL) return (NULL);
|
||||
#ifdef PNG_USER_MEM_SUPPORTED
|
||||
info_ptr = (png_infop)png_create_struct_2(PNG_STRUCT_INFO,
|
||||
png_ptr->malloc_fn, png_ptr->mem_ptr);
|
||||
if ((info_ptr = (png_infop)png_create_struct_2(PNG_STRUCT_INFO,
|
||||
png_ptr->malloc_fn, png_ptr->mem_ptr)) != NULL)
|
||||
#else
|
||||
info_ptr = (png_infop)png_create_struct(PNG_STRUCT_INFO);
|
||||
if ((info_ptr = (png_infop)png_create_struct(PNG_STRUCT_INFO)) != NULL)
|
||||
#endif
|
||||
if (info_ptr != NULL)
|
||||
{
|
||||
png_info_init_3(&info_ptr, sizeof(png_info));
|
||||
}
|
||||
|
||||
return (info_ptr);
|
||||
}
|
||||
@@ -256,7 +248,7 @@ png_destroy_info_struct(png_structp png_ptr, png_infopp info_ptr_ptr)
|
||||
#else
|
||||
png_destroy_struct((png_voidp)info_ptr);
|
||||
#endif
|
||||
*info_ptr_ptr = NULL;
|
||||
*info_ptr_ptr = (png_infop)NULL;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -354,9 +346,6 @@ if ((mask & PNG_FREE_TRNS) && (png_ptr->flags & PNG_FLAG_FREE_TRNS))
|
||||
{
|
||||
png_free(png_ptr, info_ptr->trans);
|
||||
info_ptr->valid &= ~PNG_INFO_tRNS;
|
||||
#ifndef PNG_FREE_ME_SUPPORTED
|
||||
png_ptr->flags &= ~PNG_FLAG_FREE_TRNS;
|
||||
#endif
|
||||
info_ptr->trans = NULL;
|
||||
}
|
||||
#endif
|
||||
@@ -500,9 +489,6 @@ if ((mask & PNG_FREE_HIST) && (png_ptr->flags & PNG_FLAG_FREE_HIST))
|
||||
png_free(png_ptr, info_ptr->hist);
|
||||
info_ptr->hist = NULL;
|
||||
info_ptr->valid &= ~PNG_INFO_hIST;
|
||||
#ifndef PNG_FREE_ME_SUPPORTED
|
||||
png_ptr->flags &= ~PNG_FLAG_FREE_HIST;
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -516,9 +502,6 @@ if ((mask & PNG_FREE_PLTE) && (png_ptr->flags & PNG_FLAG_FREE_PLTE))
|
||||
png_zfree(png_ptr, info_ptr->palette);
|
||||
info_ptr->palette = NULL;
|
||||
info_ptr->valid &= ~PNG_INFO_PLTE;
|
||||
#ifndef PNG_FREE_ME_SUPPORTED
|
||||
png_ptr->flags &= ~PNG_FLAG_FREE_PLTE;
|
||||
#endif
|
||||
info_ptr->num_palette = 0;
|
||||
}
|
||||
|
||||
@@ -568,7 +551,7 @@ png_info_destroy(png_structp png_ptr, png_infop info_ptr)
|
||||
if (png_ptr->num_chunk_list)
|
||||
{
|
||||
png_free(png_ptr, png_ptr->chunk_list);
|
||||
png_ptr->chunk_list=NULL;
|
||||
png_ptr->chunk_list=(png_bytep)NULL;
|
||||
png_ptr->num_chunk_list=0;
|
||||
}
|
||||
#endif
|
||||
@@ -663,10 +646,10 @@ png_charp PNGAPI
|
||||
png_get_copyright(png_structp png_ptr)
|
||||
{
|
||||
if (png_ptr != NULL || png_ptr == NULL) /* silence compiler warning */
|
||||
return ((png_charp) "\n libpng version 1.0.13 - April 15, 2002\n\
|
||||
Copyright (c) 1998-2002 Glenn Randers-Pehrson\n\
|
||||
Copyright (c) 1996-1997 Andreas Dilger\n\
|
||||
Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.\n");
|
||||
return ((png_charp) "\n libpng version 1.2.0beta4 - June 23, 2001\n\
|
||||
Copyright (c) 1998-2001 Glenn Randers-Pehrson\n\
|
||||
Copyright (c) 1996, 1997 Andreas Dilger\n\
|
||||
Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.\n");
|
||||
return ((png_charp) "");
|
||||
}
|
||||
|
||||
@@ -681,8 +664,8 @@ png_get_libpng_ver(png_structp png_ptr)
|
||||
{
|
||||
/* Version of *.c files used when building libpng */
|
||||
if(png_ptr != NULL) /* silence compiler warning about unused png_ptr */
|
||||
return((png_charp) "1.0.13");
|
||||
return((png_charp) "1.0.13");
|
||||
return((png_charp) "1.2.0beta4");
|
||||
return((png_charp) "1.2.0beta4");
|
||||
}
|
||||
|
||||
png_charp PNGAPI
|
||||
@@ -704,7 +687,7 @@ png_get_header_version(png_structp png_ptr)
|
||||
}
|
||||
|
||||
#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED
|
||||
int PNGAPI
|
||||
int /* PRIVATE */
|
||||
png_handle_as_unknown(png_structp png_ptr, png_bytep chunk_name)
|
||||
{
|
||||
/* check chunk_name and return "keep" value if it's on the list, else 0 */
|
||||
@@ -732,11 +715,10 @@ png_uint_32 PNGAPI
|
||||
png_access_version_number(void)
|
||||
{
|
||||
/* Version of *.c files used when building libpng */
|
||||
return((png_uint_32) 10013L);
|
||||
return((png_uint_32) 10200L);
|
||||
}
|
||||
|
||||
|
||||
#if !defined(PNG_1_0_X)
|
||||
#if defined(PNG_ASSEMBLER_CODE_SUPPORTED)
|
||||
/* GRR: could add this: && defined(PNG_MMX_CODE_SUPPORTED) */
|
||||
/* this INTERNAL function was added to libpng 1.2.0 */
|
||||
@@ -794,4 +776,3 @@ png_mmx_support(void)
|
||||
return -1;
|
||||
}
|
||||
#endif
|
||||
#endif /* PNG_1_0_X */
|
||||
|
||||
134
png.h
134
png.h
@@ -1,15 +1,15 @@
|
||||
|
||||
/* png.h - header file for PNG reference library
|
||||
*
|
||||
* libpng version 1.0.13 - April 15, 2002
|
||||
* Copyright (c) 1998-2002 Glenn Randers-Pehrson
|
||||
* libpng version 1.2.0beta4 - June 23, 2001
|
||||
* Copyright (c) 1998-2001 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.)
|
||||
*
|
||||
* 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.0.13 - April 15, 2002: Glenn
|
||||
* libpng versions 0.97, January 1998, through 1.2.0beta4 - June 23, 2001: Glenn
|
||||
* See also "Contributing Authors", below.
|
||||
*
|
||||
* Note about libpng version numbers:
|
||||
@@ -75,18 +75,7 @@
|
||||
* 1.0.12 2 10012 2.1.0.12
|
||||
* 1.1.0a-f - 10100 2.1.1.0a-f (branch abandoned)
|
||||
* 1.2.0beta1-2 2 10200 2.1.2.0beta1-2
|
||||
* 1.2.0beta3-5 3 10200 3.1.2.0beta3-5
|
||||
* 1.2.0rc1 3 10200 3.1.2.0rc1
|
||||
* 1.2.0 3 10200 3.1.2.0
|
||||
* 1.2.1beta1-4 3 10201 3.1.2.1beta1-4
|
||||
* 1.2.1rc1-2 3 10201 3.1.2.1rc1-2
|
||||
* 1.2.1 3 10201 3.1.2.1
|
||||
* 1.2.2beta1-6 12 10202 12.so.0.1.2.2beta1-6
|
||||
* 1.0.13beta1 10 10013 10.so.0.1.0.13beta1
|
||||
* 1.2.2rc1 12 10202 12.so.0.1.2.2rc1
|
||||
* 1.0.13rc1 10 10013 10.so.0.1.0.13rc1
|
||||
* 1.2.2 12 10202 12.so.0.1.2.2
|
||||
* 1.0.13 10 10013 10.so.0.1.0.13
|
||||
* 1.2.0beta3-4 3 10200 3.1.2.0beta3-4
|
||||
*
|
||||
* Henceforth the source version will match the shared-library major
|
||||
* and minor numbers; the shared-library major version number will be
|
||||
@@ -116,8 +105,8 @@
|
||||
* If you modify libpng you may insert additional notices immediately following
|
||||
* this sentence.
|
||||
*
|
||||
* libpng versions 1.0.7, July 1, 2000, through 1.0.13, April 15, 2002, are
|
||||
* Copyright (c) 2000-2001 Glenn Randers-Pehrson, and are
|
||||
* libpng versions 1.0.7, July 1, 2000, through 1.2.0beta4, June 23, 2001, are
|
||||
* Copyright (c) 2000, 2001 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
|
||||
*
|
||||
@@ -221,13 +210,13 @@
|
||||
* Y2K compliance in libpng:
|
||||
* =========================
|
||||
*
|
||||
* April 15, 2002
|
||||
* June 23, 2001
|
||||
*
|
||||
* 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.0.13 are Y2K compliant. It is my belief that earlier
|
||||
* upward through 1.2.0beta4 are Y2K compliant. It is my belief that earlier
|
||||
* versions were also Y2K compliant.
|
||||
*
|
||||
* Libpng only has three year fields. One is a 2-byte unsigned integer
|
||||
@@ -283,19 +272,19 @@
|
||||
*/
|
||||
|
||||
/* Version information for png.h - this should match the version in png.c */
|
||||
#define PNG_LIBPNG_VER_STRING "1.0.13"
|
||||
#define PNG_LIBPNG_VER_STRING "1.2.0beta4"
|
||||
|
||||
#define PNG_LIBPNG_VER_SONUM 0
|
||||
#define PNG_LIBPNG_VER_SONUM 3
|
||||
#define PNG_LIBPNG_VER_DLLNUM %DLLNUM%
|
||||
|
||||
/* These should match the first 3 components of PNG_LIBPNG_VER_STRING: */
|
||||
#define PNG_LIBPNG_VER_MAJOR 1
|
||||
#define PNG_LIBPNG_VER_MINOR 0
|
||||
#define PNG_LIBPNG_VER_RELEASE 13
|
||||
#define PNG_LIBPNG_VER_MINOR 2
|
||||
#define PNG_LIBPNG_VER_RELEASE 0
|
||||
/* This should match the numeric part of the final component of
|
||||
* PNG_LIBPNG_VER_STRING, omitting any leading zero: */
|
||||
|
||||
#define PNG_LIBPNG_VER_BUILD 0
|
||||
#define PNG_LIBPNG_VER_BUILD 4
|
||||
|
||||
#define PNG_LIBPNG_BUILD_ALPHA 1
|
||||
#define PNG_LIBPNG_BUILD_BETA 2
|
||||
@@ -303,14 +292,14 @@
|
||||
#define PNG_LIBPNG_BUILD_STABLE 4
|
||||
#define PNG_LIBPNG_BUILD_TYPEMASK 7
|
||||
#define PNG_LIBPNG_BUILD_PATCH 8 /* Can be OR'ed with STABLE only */
|
||||
#define PNG_LIBPNG_BUILD_TYPE 4
|
||||
#define PNG_LIBPNG_BUILD_TYPE 2
|
||||
|
||||
/* Careful here. At one time, Guy wanted to use 082, but that would be octal.
|
||||
* We must not include leading zeros.
|
||||
* Versions 0.7 through 1.0.0 were in the range 0 to 100 here (only
|
||||
* 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 10013 /* 1.0.13 */
|
||||
#define PNG_LIBPNG_VER 10200 /* 1.2.0 */
|
||||
|
||||
#ifndef PNG_VERSION_INFO_ONLY
|
||||
|
||||
@@ -331,40 +320,6 @@ extern "C" {
|
||||
* which applications aren't expected to use directly.
|
||||
*/
|
||||
|
||||
#ifndef PNG_NO_TYPECAST_NULL
|
||||
#define int_p_NULL (int *)NULL
|
||||
#define png_bytep_NULL (png_bytep)NULL
|
||||
#define png_bytepp_NULL (png_bytepp)NULL
|
||||
#define png_doublep_NULL (png_doublep)NULL
|
||||
#define png_error_ptr_NULL (png_error_ptr)NULL
|
||||
#define png_flush_ptr_NULL (png_flush_ptr)NULL
|
||||
#define png_free_ptr_NULL (png_free_ptr)NULL
|
||||
#define png_infopp_NULL (png_infopp)NULL
|
||||
#define png_malloc_ptr_NULL (png_malloc_ptr)NULL
|
||||
#define png_read_status_ptr_NULL (png_read_status_ptr)NULL
|
||||
#define png_rw_ptr_NULL (png_rw_ptr)NULL
|
||||
#define png_structp_NULL (png_structp)NULL
|
||||
#define png_uint_16p_NULL (png_uint_16p)NULL
|
||||
#define png_voidp_NULL (png_voidp)NULL
|
||||
#define png_write_status_ptr_NULL (png_write_status_ptr)NULL
|
||||
#else
|
||||
#define int_p_NULL NULL
|
||||
#define png_bytep_NULL NULL
|
||||
#define png_bytepp_NULL NULL
|
||||
#define png_doublep_NULL NULL
|
||||
#define png_error_ptr_NULL NULL
|
||||
#define png_flush_ptr_NULL NULL
|
||||
#define png_free_ptr_NULL NULL
|
||||
#define png_infopp_NULL NULL
|
||||
#define png_malloc_ptr_NULL NULL
|
||||
#define png_read_status_ptr_NULL NULL
|
||||
#define png_rw_ptr_NULL NULL
|
||||
#define png_structp_NULL NULL
|
||||
#define png_uint_16p_NULL NULL
|
||||
#define png_voidp_NULL NULL
|
||||
#define png_write_status_ptr_NULL NULL
|
||||
#endif
|
||||
|
||||
/* variables declared in png.c - only it needs to define PNG_NO_EXTERN */
|
||||
#if !defined(PNG_NO_EXTERN) || defined(PNG_ALWAYS_EXTERN)
|
||||
/* Version information for C files, stored in png.c. This had better match
|
||||
@@ -1089,9 +1044,9 @@ struct png_struct_def
|
||||
float background_gamma;
|
||||
# endif
|
||||
png_color_16 background; /* background color in screen gamma space */
|
||||
#if defined(PNG_READ_GAMMA_SUPPORTED)
|
||||
png_color_16 background_1; /* background normalized to gamma 1.0 */
|
||||
#endif
|
||||
# if defined(PNG_READ_GAMMA_SUPPORTED)
|
||||
png_color_16 background_1; /* background normalized to gamma 1.0 */
|
||||
# endif /* PNG_READ_GAMMA && PNG_bKGD_SUPPORTED */
|
||||
#endif /* PNG_bKGD_SUPPORTED */
|
||||
|
||||
#if defined(PNG_WRITE_FLUSH_SUPPORTED)
|
||||
@@ -1221,11 +1176,7 @@ struct png_struct_def
|
||||
defined(PNG_READ_EMPTY_PLTE_SUPPORTED) || \
|
||||
defined(PNG_WRITE_EMPTY_PLTE_SUPPORTED)
|
||||
/* changed from png_byte to png_uint_32 at version 1.2.0 */
|
||||
#ifdef PNG_1_0_X
|
||||
png_byte mng_features_permitted;
|
||||
#else
|
||||
png_uint_32 mng_features_permitted;
|
||||
#endif /* PNG_1_0_X */
|
||||
#endif
|
||||
|
||||
/* New member added in libpng-1.0.7 */
|
||||
@@ -1238,13 +1189,13 @@ struct png_struct_def
|
||||
png_byte filter_type;
|
||||
#endif
|
||||
|
||||
#if defined(PNG_1_0_X) || (defined(PNG_DEBUG) && defined(PNG_USE_PNGGCCRD))
|
||||
#if defined(PNG_DEBUG) && defined(PNG_USE_PNGGCCRD)
|
||||
/* New member added in libpng-1.0.10, ifdef'ed out in 1.2.0 */
|
||||
png_uint_32 row_buf_size;
|
||||
#endif
|
||||
|
||||
/* New members added in libpng-1.2.0 */
|
||||
#if !defined(PNG_1_0_X) && defined(PNG_ASSEMBLER_CODE_SUPPORTED)
|
||||
#if defined(PNG_ASSEMBLER_CODE_SUPPORTED)
|
||||
png_byte mmx_bitdepth_threshold;
|
||||
png_uint_32 mmx_rowbytes_threshold;
|
||||
png_uint_32 asm_flags;
|
||||
@@ -1257,15 +1208,13 @@ struct png_struct_def
|
||||
png_free_ptr free_fn; /* function for freeing memory */
|
||||
#endif
|
||||
|
||||
png_bytep big_row_buf; /* buffer to save current (unfiltered) row */
|
||||
|
||||
};
|
||||
|
||||
|
||||
/* This prevents a compiler error in png.c if png.c and png.h are both at
|
||||
version 1.0.13
|
||||
/* This prevents a compiler error in png_get_copyright() in png.c if png.c
|
||||
and png.h are both at version 1.2.0beta4
|
||||
*/
|
||||
typedef png_structp version_1_0_13;
|
||||
typedef png_structp version_1_2_0beta4;
|
||||
|
||||
typedef png_struct FAR * FAR * png_structpp;
|
||||
|
||||
@@ -1573,6 +1522,9 @@ extern void png_read_destroy PNGARG((png_structp png_ptr, png_infop info_ptr,
|
||||
extern PNG_EXPORT(void,png_destroy_write_struct)
|
||||
PNGARG((png_structpp png_ptr_ptr, png_infopp info_ptr_ptr));
|
||||
|
||||
/* free any memory used in info_ptr struct (old method - NOT DLL EXPORTED) */
|
||||
extern void png_write_destroy_info PNGARG((png_infop info_ptr));
|
||||
|
||||
/* free any memory used in png_ptr struct (old method - NOT DLL EXPORTED) */
|
||||
extern void png_write_destroy PNGARG((png_structp png_ptr));
|
||||
|
||||
@@ -1817,13 +1769,6 @@ extern PNG_EXPORT(png_voidp,png_malloc) PNGARG((png_structp png_ptr,
|
||||
/* frees a pointer allocated by png_malloc() */
|
||||
extern PNG_EXPORT(void,png_free) PNGARG((png_structp png_ptr, png_voidp ptr));
|
||||
|
||||
/* Function to allocate memory for zlib. */
|
||||
extern PNG_EXPORT(voidpf,png_zalloc) PNGARG((voidpf png_ptr, uInt items,
|
||||
uInt size));
|
||||
|
||||
/* Function to free memory for zlib */
|
||||
extern PNG_EXPORT(void,png_zfree) PNGARG((voidpf png_ptr, voidpf ptr));
|
||||
|
||||
/* Free data that was allocated internally */
|
||||
extern PNG_EXPORT(void,png_free_data) PNGARG((png_structp png_ptr,
|
||||
png_infop info_ptr, png_uint_32 free_me, int num));
|
||||
@@ -2231,10 +2176,6 @@ extern PNG_EXPORT(void, png_set_unknown_chunk_location)
|
||||
extern PNG_EXPORT(png_uint_32,png_get_unknown_chunks) PNGARG((png_structp
|
||||
png_ptr, png_infop info_ptr, png_unknown_chunkpp entries));
|
||||
#endif
|
||||
#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED
|
||||
PNG_EXPORT(int,png_handle_as_unknown) PNGARG((png_structp png_ptr, png_bytep
|
||||
chunk_name));
|
||||
#endif
|
||||
|
||||
/* Png_free_data() will turn off the "valid" flag for anything it frees.
|
||||
If you need to turn it off for a chunk that your application has freed,
|
||||
@@ -2346,7 +2287,6 @@ extern PNG_EXPORT(png_uint_32,png_permit_mng_features) PNGARG((png_structp
|
||||
#define PNG_SELECT_WRITE 2
|
||||
|
||||
|
||||
#if !defined(PNG_1_0_X)
|
||||
/* pngget.c */
|
||||
extern PNG_EXPORT(png_uint_32,png_get_mmx_flagmask)
|
||||
PNGARG((int flag_select, int *compilerID));
|
||||
@@ -2376,10 +2316,8 @@ extern PNG_EXPORT(void,png_set_mmx_thresholds)
|
||||
PNGARG((png_structp png_ptr, png_byte mmx_bitdepth_threshold,
|
||||
png_uint_32 mmx_rowbytes_threshold));
|
||||
|
||||
#endif /* PNG_1_0_X */
|
||||
#endif /* PNG_ASSEMBLER_CODE_SUPPORTED */
|
||||
|
||||
#if !defined(PNG_1_0_X)
|
||||
/* png.c, pnggccrd.c, or pngvcrd.c */
|
||||
extern PNG_EXPORT(int,png_mmx_support) PNGARG((void));
|
||||
|
||||
@@ -2389,12 +2327,11 @@ extern PNG_EXPORT(int,png_mmx_support) PNGARG((void));
|
||||
extern PNG_EXPORT(void,png_set_strip_error_numbers) PNGARG((png_structp
|
||||
png_ptr, png_uint_32 strip_mode));
|
||||
#endif
|
||||
#endif /* PNG_1_0_X */
|
||||
|
||||
/* Maintainer: Put new public prototypes here ^, in libpng.3, and project defs */
|
||||
|
||||
#define PNG_HEADER_VERSION_STRING \
|
||||
" libpng version 1.0.13 - April 15, 2002 (header)\n"
|
||||
" libpng version 1.2.0beta4 - June 23, 2001 (header)\n"
|
||||
|
||||
#ifdef PNG_READ_COMPOSITE_NODIV_SUPPORTED
|
||||
/* With these routines we avoid an integer divide, which will be slower on
|
||||
@@ -2519,7 +2456,6 @@ extern PNG_EXPORT(void,png_set_strip_error_numbers) PNGARG((png_structp
|
||||
#define PNG_FLAG_LIBRARY_MISMATCH 0x20000L
|
||||
#define PNG_FLAG_STRIP_ERROR_NUMBERS 0x40000L
|
||||
#define PNG_FLAG_STRIP_ERROR_TEXT 0x80000L
|
||||
#define PNG_FLAG_MALLOC_NULL_MEM_OK 0x100000L
|
||||
|
||||
/* For use in png_set_keep_unknown, png_handle_as_unknown */
|
||||
#define HANDLE_CHUNK_AS_DEFAULT 0
|
||||
@@ -2663,6 +2599,12 @@ PNG_EXTERN void png_destroy_struct_2 PNGARG((png_voidp struct_ptr,
|
||||
PNG_EXTERN void png_info_destroy PNGARG((png_structp png_ptr,
|
||||
png_infop info_ptr));
|
||||
|
||||
/* Function to allocate memory for zlib. */
|
||||
PNG_EXTERN voidpf png_zalloc PNGARG((voidpf png_ptr, uInt items, uInt size));
|
||||
|
||||
/* Function to free memory for zlib */
|
||||
PNG_EXTERN void png_zfree PNGARG((voidpf png_ptr, voidpf ptr));
|
||||
|
||||
/* Reset the CRC variable */
|
||||
PNG_EXTERN void png_reset_crc PNGARG((png_structp png_ptr));
|
||||
|
||||
@@ -3002,17 +2944,12 @@ PNG_EXTERN void png_do_shift PNGARG((png_row_infop row_info, png_bytep row,
|
||||
#endif
|
||||
|
||||
#if defined(PNG_READ_BACKGROUND_SUPPORTED)
|
||||
#if defined(PNG_READ_GAMMA_SUPPORTED)
|
||||
PNG_EXTERN void png_do_background PNGARG((png_row_infop row_info, png_bytep row,
|
||||
png_color_16p trans_values, png_color_16p background,
|
||||
png_color_16p background_1,
|
||||
png_bytep gamma_table, png_bytep gamma_from_1, png_bytep gamma_to_1,
|
||||
png_uint_16pp gamma_16, png_uint_16pp gamma_16_from_1,
|
||||
png_uint_16pp gamma_16_to_1, int gamma_shift));
|
||||
#else
|
||||
PNG_EXTERN void png_do_background PNGARG((png_row_infop row_info, png_bytep row,
|
||||
png_color_16p trans_values, png_color_16p background));
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(PNG_READ_GAMMA_SUPPORTED)
|
||||
@@ -3125,6 +3062,11 @@ PNG_EXTERN void png_handle_zTXt PNGARG((png_structp png_ptr, png_infop info_ptr,
|
||||
png_uint_32 length));
|
||||
#endif
|
||||
|
||||
#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED
|
||||
PNG_EXTERN int png_handle_as_unknown PNGARG((png_structp png_ptr, png_bytep
|
||||
chunk_name));
|
||||
#endif
|
||||
|
||||
PNG_EXTERN void png_handle_unknown PNGARG((png_structp png_ptr,
|
||||
png_infop info_ptr, png_uint_32 length));
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/* pngasmrd.h - assembler version of utilities to read a PNG file
|
||||
*
|
||||
* libpng 1.0.13 - April 15, 2002
|
||||
* libpng 1.2.0beta4 - June 23, 2001
|
||||
* For conditions of distribution and use, see copyright notice in png.h
|
||||
* Copyright (c) 2002 Glenn Randers-Pehrson
|
||||
* Copyright (c) 2001 Glenn Randers-Pehrson
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
37
pngconf.h
37
pngconf.h
@@ -1,8 +1,8 @@
|
||||
/* pngconf.h - machine configurable file for libpng
|
||||
*
|
||||
* libpng 1.0.13 - April 15, 2002
|
||||
* libpng 1.2.0beta4 - June 23, 2001
|
||||
* For conditions of distribution and use, see copyright notice in png.h
|
||||
* Copyright (c) 1998-2002 Glenn Randers-Pehrson
|
||||
* Copyright (c) 1998-2001 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.)
|
||||
*/
|
||||
@@ -16,8 +16,6 @@
|
||||
#ifndef PNGCONF_H
|
||||
#define PNGCONF_H
|
||||
|
||||
#define PNG_1_0_X
|
||||
|
||||
/* This is the size of the compression buffer, and thus the size of
|
||||
* an IDAT chunk. Make this whatever size you feel is best for your
|
||||
* machine. One of these will be allocated per png_struct. When this
|
||||
@@ -49,7 +47,7 @@
|
||||
|
||||
/* Enabled by default in 1.2.0. You can disable this if you don't need to
|
||||
support PNGs that are embedded in MNG datastreams */
|
||||
#if !defined(PNG_1_0_X) && !defined(PNG_NO_MNG_FEATURES)
|
||||
#ifndef PNG_NO_MNG_FEATURES
|
||||
# ifndef PNG_MNG_FEATURES_SUPPORTED
|
||||
# define PNG_MNG_FEATURES_SUPPORTED
|
||||
# endif
|
||||
@@ -204,9 +202,6 @@
|
||||
|
||||
#ifdef _NO_PROTO
|
||||
# define PNGARG(arglist) ()
|
||||
# ifndef PNG_TYPECAST_NULL
|
||||
# define PNG_TYPECAST_NULL
|
||||
# endif
|
||||
#else
|
||||
# define PNGARG(arglist) arglist
|
||||
#endif /* _NO_PROTO */
|
||||
@@ -404,10 +399,10 @@
|
||||
*/
|
||||
|
||||
#ifndef PNG_iTXt_SUPPORTED
|
||||
# if !defined(PNG_READ_iTXt_SUPPORTED) && !defined(PNG_NO_READ_iTXt)
|
||||
# ifndef PNG_READ_iTXt_SUPPORTED
|
||||
# define PNG_NO_READ_iTXt
|
||||
# endif
|
||||
# if !defined(PNG_WRITE_iTXt_SUPPORTED) && !defined(PNG_NO_WRITE_iTXt)
|
||||
# ifndef PNG_WRITE_iTXt_SUPPORTED
|
||||
# define PNG_NO_WRITE_iTXt
|
||||
# endif
|
||||
#endif
|
||||
@@ -593,11 +588,9 @@
|
||||
# define PNG_WRITE_WEIGHTED_FILTER_SUPPORTED
|
||||
#endif
|
||||
|
||||
#ifndef PNG_1_0_X
|
||||
#ifndef PNG_NO_ERROR_NUMBERS
|
||||
#define PNG_ERROR_NUMBERS_SUPPORTED
|
||||
#endif
|
||||
#endif /* PNG_1_0_X */
|
||||
|
||||
#ifndef PNG_NO_WRITE_FLUSH
|
||||
# define PNG_WRITE_FLUSH_SUPPORTED
|
||||
@@ -645,17 +638,9 @@
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* If you are sure that you don't need thread safety and you are compiling
|
||||
with PNG_USE_PNGCCRD for an MMX application, you can define this for
|
||||
faster execution. See pnggccrd.c.
|
||||
#define PNG_THREAD_UNSAFE_OK
|
||||
*/
|
||||
|
||||
#if !defined(PNG_1_0_X)
|
||||
#if !defined(PNG_NO_USER_MEM) && !defined(PNG_USER_MEM_SUPPORTED)
|
||||
# define PNG_USER_MEM_SUPPORTED
|
||||
#endif
|
||||
#endif /* PNG_1_0_X */
|
||||
|
||||
/* These are currently experimental features, define them if you want */
|
||||
|
||||
@@ -735,12 +720,8 @@
|
||||
# define PNG_iCCP_SUPPORTED
|
||||
#endif
|
||||
#ifndef PNG_NO_READ_iTXt
|
||||
# ifndef PNG_READ_iTXt_SUPPORTED
|
||||
# define PNG_READ_iTXt_SUPPORTED
|
||||
# endif
|
||||
# ifndef PNG_iTXt_SUPPORTED
|
||||
# define PNG_iTXt_SUPPORTED
|
||||
# endif
|
||||
# define PNG_READ_iTXt_SUPPORTED
|
||||
# define PNG_iTXt_SUPPORTED
|
||||
#endif
|
||||
#ifndef PNG_NO_READ_oFFs
|
||||
# define PNG_READ_oFFs_SUPPORTED
|
||||
@@ -855,9 +836,7 @@
|
||||
# endif
|
||||
#endif
|
||||
#ifndef PNG_NO_WRITE_iTXt
|
||||
# ifndef PNG_WRITE_iTXt_SUPPORTED
|
||||
# define PNG_WRITE_iTXt_SUPPORTED
|
||||
# endif
|
||||
# define PNG_WRITE_iTXt_SUPPORTED
|
||||
# ifndef PNG_iTXt_SUPPORTED
|
||||
# define PNG_iTXt_SUPPORTED
|
||||
# endif
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
|
||||
/* pngerror.c - stub functions for i/o and memory allocation
|
||||
*
|
||||
* libpng 1.0.13 - April 15, 2002
|
||||
* libpng 1.2.0beta4 - June 23, 2001
|
||||
* For conditions of distribution and use, see copyright notice in png.h
|
||||
* Copyright (c) 1998-2002 Glenn Randers-Pehrson
|
||||
* Copyright (c) 1998-2001 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.)
|
||||
*
|
||||
@@ -277,7 +277,7 @@ png_get_error_ptr(png_structp png_ptr)
|
||||
|
||||
|
||||
#ifdef PNG_ERROR_NUMBERS_SUPPORTED
|
||||
void PNGAPI
|
||||
void
|
||||
png_set_strip_error_numbers(png_structp png_ptr, png_uint_32 strip_mode)
|
||||
{
|
||||
if(png_ptr != NULL)
|
||||
@@ -287,3 +287,4 @@ png_set_strip_error_numbers(png_structp png_ptr, png_uint_32 strip_mode)
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
411
pnggccrd.c
411
pnggccrd.c
@@ -6,9 +6,9 @@
|
||||
* and http://www.intel.com/drg/pentiumII/appnotes/923/923.htm
|
||||
* for Intel's performance analysis of the MMX vs. non-MMX code.
|
||||
*
|
||||
* libpng version 1.0.13 - April 15, 2002
|
||||
* libpng version 1.2.0beta4 - June 23, 2001
|
||||
* For conditions of distribution and use, see copyright notice in png.h
|
||||
* Copyright (c) 1998-2002 Glenn Randers-Pehrson
|
||||
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
||||
* Copyright (c) 1998, Intel Corporation
|
||||
*
|
||||
* Based on MSVC code contributed by Nirav Chhatrapati, Intel Corp., 1998.
|
||||
@@ -220,9 +220,6 @@
|
||||
* 20010310:
|
||||
* - fixed buffer-overrun bug in png_combine_row() C code (non-MMX)
|
||||
*
|
||||
* 20020304:
|
||||
* - eliminated incorrect use of width_mmx in pixel_bytes == 8 case
|
||||
*
|
||||
* STILL TO DO:
|
||||
* - test png_do_read_interlace() 64-bit case (pixel_bytes == 8)
|
||||
* - write MMX code for 48-bit case (pixel_bytes == 6)
|
||||
@@ -255,6 +252,7 @@ static const int FARDATA png_pass_width[7] = {8, 4, 4, 2, 2, 1, 1};
|
||||
* so define them without: */
|
||||
#if defined(__DJGPP__) || defined(WIN32) || defined(__CYGWIN__)
|
||||
# define _mmx_supported mmx_supported
|
||||
# define _unmask unmask
|
||||
# define _const4 const4
|
||||
# define _const6 const6
|
||||
# define _mask8_0 mask8_0
|
||||
@@ -273,6 +271,9 @@ static const int FARDATA png_pass_width[7] = {8, 4, 4, 2, 2, 1, 1};
|
||||
# define _mask48_2 mask48_2
|
||||
# define _mask48_1 mask48_1
|
||||
# define _mask48_0 mask48_0
|
||||
# define _FullLength FullLength
|
||||
# define _MMXLength MMXLength
|
||||
# define _dif dif
|
||||
# define _LBCarryMask LBCarryMask
|
||||
# define _HBClearMask HBClearMask
|
||||
# define _ActiveMask ActiveMask
|
||||
@@ -280,16 +281,10 @@ static const int FARDATA png_pass_width[7] = {8, 4, 4, 2, 2, 1, 1};
|
||||
# define _ActiveMaskEnd ActiveMaskEnd
|
||||
# define _ShiftBpp ShiftBpp
|
||||
# define _ShiftRem ShiftRem
|
||||
#ifdef PNG_THREAD_UNSAFE_OK
|
||||
# define _unmask unmask
|
||||
# define _FullLength FullLength
|
||||
# define _MMXLength MMXLength
|
||||
# define _dif dif
|
||||
# define _patemp patemp
|
||||
# define _pbtemp pbtemp
|
||||
# define _pctemp pctemp
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
/* These constants are used in the inlined MMX assembly code.
|
||||
@@ -301,9 +296,7 @@ static const int FARDATA png_pass_width[7] = {8, 4, 4, 2, 2, 1, 1};
|
||||
* "more than 10 operands in `asm'" errors when %ebx is used to preload unmask
|
||||
* in the non-PIC case, so we'll just use the global unconditionally now.
|
||||
*/
|
||||
#ifdef PNG_THREAD_UNSAFE_OK
|
||||
static int _unmask;
|
||||
#endif
|
||||
|
||||
static unsigned long long _mask8_0 = 0x0102040810204080LL;
|
||||
|
||||
@@ -332,29 +325,24 @@ static unsigned long long _const6 = 0x00000000000000FFLL;
|
||||
|
||||
// These are used in the row-filter routines and should/would be local
|
||||
// variables if not for gcc addressing limitations.
|
||||
// WARNING: Their presence probably defeats the thread safety of libpng.
|
||||
|
||||
#ifdef PNG_THREAD_UNSAFE_OK
|
||||
static png_uint_32 _FullLength;
|
||||
static png_uint_32 _MMXLength;
|
||||
static int _dif;
|
||||
static int _patemp; // temp variables for Paeth routine
|
||||
static int _pbtemp;
|
||||
static int _pctemp;
|
||||
#endif
|
||||
|
||||
void /* PRIVATE */
|
||||
static void /* PRIVATE */
|
||||
png_squelch_warnings(void)
|
||||
{
|
||||
#ifdef PNG_THREAD_UNSAFE_OK
|
||||
_dif = _dif;
|
||||
_patemp = _patemp;
|
||||
_pbtemp = _pbtemp;
|
||||
_pctemp = _pctemp;
|
||||
_MMXLength = _MMXLength;
|
||||
#endif
|
||||
_const4 = _const4;
|
||||
_const6 = _const6;
|
||||
_MMXLength = _MMXLength;
|
||||
_mask8_0 = _mask8_0;
|
||||
_mask16_1 = _mask16_1;
|
||||
_mask16_0 = _mask16_0;
|
||||
@@ -599,13 +587,9 @@ png_combine_row(png_structp png_ptr, png_bytep row, int mask)
|
||||
png_bytep srcptr;
|
||||
png_bytep dstptr;
|
||||
|
||||
#if defined(PNG_ASSEMBLER_CODE_SUPPORTED) && defined(PNG_THREAD_UNSAFE_OK)
|
||||
#if !defined(PNG_1_0_X)
|
||||
#if defined(PNG_ASSEMBLER_CODE_SUPPORTED)
|
||||
if ((png_ptr->asm_flags & PNG_ASM_FLAG_MMX_READ_COMBINE_ROW)
|
||||
/* && _mmx_supported */ )
|
||||
#else
|
||||
if (_mmx_supported)
|
||||
#endif
|
||||
{
|
||||
png_uint_32 len;
|
||||
int diff;
|
||||
@@ -737,13 +721,9 @@ png_combine_row(png_structp png_ptr, png_bytep row, int mask)
|
||||
png_bytep srcptr;
|
||||
png_bytep dstptr;
|
||||
|
||||
#if defined(PNG_ASSEMBLER_CODE_SUPPORTED) && defined(PNG_THREAD_UNSAFE_OK)
|
||||
#if !defined(PNG_1_0_X)
|
||||
#if defined(PNG_ASSEMBLER_CODE_SUPPORTED)
|
||||
if ((png_ptr->asm_flags & PNG_ASM_FLAG_MMX_READ_COMBINE_ROW)
|
||||
/* && _mmx_supported */ )
|
||||
#else
|
||||
if (_mmx_supported)
|
||||
#endif
|
||||
{
|
||||
png_uint_32 len;
|
||||
int diff;
|
||||
@@ -890,13 +870,9 @@ png_combine_row(png_structp png_ptr, png_bytep row, int mask)
|
||||
png_bytep srcptr;
|
||||
png_bytep dstptr;
|
||||
|
||||
#if defined(PNG_ASSEMBLER_CODE_SUPPORTED) && defined(PNG_THREAD_UNSAFE_OK)
|
||||
#if !defined(PNG_1_0_X)
|
||||
#if defined(PNG_ASSEMBLER_CODE_SUPPORTED)
|
||||
if ((png_ptr->asm_flags & PNG_ASM_FLAG_MMX_READ_COMBINE_ROW)
|
||||
/* && _mmx_supported */ )
|
||||
#else
|
||||
if (_mmx_supported)
|
||||
#endif
|
||||
{
|
||||
png_uint_32 len;
|
||||
int diff;
|
||||
@@ -1058,13 +1034,9 @@ png_combine_row(png_structp png_ptr, png_bytep row, int mask)
|
||||
png_bytep srcptr;
|
||||
png_bytep dstptr;
|
||||
|
||||
#if defined(PNG_ASSEMBLER_CODE_SUPPORTED) && defined(PNG_THREAD_UNSAFE_OK)
|
||||
#if !defined(PNG_1_0_X)
|
||||
#if defined(PNG_ASSEMBLER_CODE_SUPPORTED)
|
||||
if ((png_ptr->asm_flags & PNG_ASM_FLAG_MMX_READ_COMBINE_ROW)
|
||||
/* && _mmx_supported */ )
|
||||
#else
|
||||
if (_mmx_supported)
|
||||
#endif
|
||||
{
|
||||
png_uint_32 len;
|
||||
int diff;
|
||||
@@ -1233,13 +1205,9 @@ png_combine_row(png_structp png_ptr, png_bytep row, int mask)
|
||||
png_bytep srcptr;
|
||||
png_bytep dstptr;
|
||||
|
||||
#if defined(PNG_ASSEMBLER_CODE_SUPPORTED) && defined(PNG_THREAD_UNSAFE_OK)
|
||||
#if !defined(PNG_1_0_X)
|
||||
#if defined(PNG_ASSEMBLER_CODE_SUPPORTED)
|
||||
if ((png_ptr->asm_flags & PNG_ASM_FLAG_MMX_READ_COMBINE_ROW)
|
||||
/* && _mmx_supported */ )
|
||||
#else
|
||||
if (_mmx_supported)
|
||||
#endif
|
||||
{
|
||||
png_uint_32 len;
|
||||
int diff;
|
||||
@@ -1463,7 +1431,10 @@ png_combine_row(png_structp png_ptr, png_bytep row, int mask)
|
||||
default: /* png_ptr->row_info.pixel_depth != 1,2,4,8,16,24,32,48,64 */
|
||||
{
|
||||
/* this should never happen */
|
||||
png_warning(png_ptr, "Invalid row_info.pixel_depth in pnggccrd");
|
||||
fprintf(stderr,
|
||||
"libpng internal error: png_ptr->row_info.pixel_depth = %d\n",
|
||||
png_ptr->row_info.pixel_depth);
|
||||
fflush(stderr);
|
||||
break;
|
||||
}
|
||||
} /* end switch (png_ptr->row_info.pixel_depth) */
|
||||
@@ -1714,12 +1685,8 @@ png_do_read_interlace(png_structp png_ptr)
|
||||
/* New code by Nirav Chhatrapati - Intel Corporation */
|
||||
|
||||
#if defined(PNG_ASSEMBLER_CODE_SUPPORTED)
|
||||
#if !defined(PNG_1_0_X)
|
||||
if ((png_ptr->asm_flags & PNG_ASM_FLAG_MMX_READ_INTERLACE)
|
||||
/* && _mmx_supported */ )
|
||||
#else
|
||||
if (_mmx_supported)
|
||||
#endif
|
||||
{
|
||||
//--------------------------------------------------------------
|
||||
if (pixel_bytes == 3)
|
||||
@@ -2491,8 +2458,9 @@ png_do_read_interlace(png_structp png_ptr)
|
||||
{
|
||||
// source is 8-byte RRGGBBAA
|
||||
// dest is 32-byte RRGGBBAA RRGGBBAA RRGGBBAA RRGGBBAA
|
||||
// (recall that expansion is _in place_: sptr and dp
|
||||
// both point at locations within same row buffer)
|
||||
int width_mmx = ((width >> 1) << 1) ;
|
||||
width -= width_mmx;
|
||||
if (width_mmx)
|
||||
{
|
||||
int dummy_value_c; // fix 'forbidden register spilled'
|
||||
int dummy_value_S;
|
||||
@@ -2531,6 +2499,9 @@ png_do_read_interlace(png_structp png_ptr)
|
||||
{
|
||||
// source is 8-byte RRGGBBAA
|
||||
// dest is 16-byte RRGGBBAA RRGGBBAA
|
||||
int width_mmx = ((width >> 1) << 1) ;
|
||||
width -= width_mmx;
|
||||
if (width_mmx)
|
||||
{
|
||||
int dummy_value_c; // fix 'forbidden register spilled'
|
||||
int dummy_value_S;
|
||||
@@ -2660,12 +2631,12 @@ png_do_read_interlace(png_structp png_ptr)
|
||||
for (j = 0; j < png_pass_inc[pass]; j++)
|
||||
{
|
||||
#ifdef PNG_DEBUG
|
||||
if (dp < row || dp+3 > row+png_ptr->row_buf_size)
|
||||
{
|
||||
printf("dp out of bounds: row=%d, dp=%d, rp=%d\n",
|
||||
row, dp, row+png_ptr->row_buf_size);
|
||||
printf("row_buf=%d\n",png_ptr->row_buf_size);
|
||||
}
|
||||
if (dp < row || dp+3 > row+png_ptr->row_buf_size)
|
||||
{
|
||||
printf("dp out of bounds: row=%d, dp=%d, rp=%d\n",row, dp,
|
||||
row+png_ptr->row_buf_size);
|
||||
printf("row_buf=%d\n",png_ptr->row_buf_size);
|
||||
}
|
||||
#endif
|
||||
png_memcpy(dp, v, 4);
|
||||
dp -= 4;
|
||||
@@ -2749,7 +2720,6 @@ union uAll {
|
||||
_HBClearMask = {0x7f7f7f7f7f7f7f7fLL},
|
||||
_ActiveMask, _ActiveMask2, _ActiveMaskEnd, _ShiftBpp, _ShiftRem;
|
||||
|
||||
#ifdef PNG_THREAD_UNSAFE_OK
|
||||
//===========================================================================//
|
||||
// //
|
||||
// P N G _ R E A D _ F I L T E R _ R O W _ M M X _ A V G //
|
||||
@@ -2872,76 +2842,53 @@ png_read_filter_row_mmx_avg(png_row_infop row_info, png_bytep row,
|
||||
"avg_3lp: \n\t"
|
||||
"movq (%%edi,%%ecx,), %%mm0 \n\t" // load mm0 with Avg(x)
|
||||
"movq %%mm5, %%mm3 \n\t"
|
||||
"psrlq _ShiftRem, %%mm2 \n\t" // correct position Raw(x-bpp)
|
||||
// data
|
||||
"psrlq _ShiftRem, %%mm2 \n\t" // correct position Raw(x-bpp) data
|
||||
"movq (%%esi,%%ecx,), %%mm1 \n\t" // load mm1 with Prior(x)
|
||||
"movq %%mm7, %%mm6 \n\t"
|
||||
"pand %%mm1, %%mm3 \n\t" // get lsb for each prev_row byte
|
||||
"psrlq $1, %%mm1 \n\t" // divide prev_row bytes by 2
|
||||
"pand %%mm4, %%mm1 \n\t" // clear invalid bit 7 of each
|
||||
// byte
|
||||
"paddb %%mm1, %%mm0 \n\t" // add (Prev_row/2) to Avg for
|
||||
// each byte
|
||||
"pand %%mm4, %%mm1 \n\t" // clear invalid bit 7 of each byte
|
||||
"paddb %%mm1, %%mm0 \n\t" // add (Prev_row/2) to Avg for each byte
|
||||
// add 1st active group (Raw(x-bpp)/2) to average with LBCarry
|
||||
"movq %%mm3, %%mm1 \n\t" // now use mm1 for getting
|
||||
// LBCarrys
|
||||
"pand %%mm2, %%mm1 \n\t" // get LBCarrys for each byte
|
||||
// where both
|
||||
"movq %%mm3, %%mm1 \n\t" // now use mm1 for getting LBCarrys
|
||||
"pand %%mm2, %%mm1 \n\t" // get LBCarrys for each byte where both
|
||||
// lsb's were == 1 (only valid for active group)
|
||||
"psrlq $1, %%mm2 \n\t" // divide raw bytes by 2
|
||||
"pand %%mm4, %%mm2 \n\t" // clear invalid bit 7 of each
|
||||
// byte
|
||||
"paddb %%mm1, %%mm2 \n\t" // add LBCarrys to (Raw(x-bpp)/2)
|
||||
// for each byte
|
||||
"pand %%mm6, %%mm2 \n\t" // leave only Active Group 1
|
||||
// bytes to add to Avg
|
||||
"paddb %%mm2, %%mm0 \n\t" // add (Raw/2) + LBCarrys to
|
||||
// Avg for each Active
|
||||
"pand %%mm4, %%mm2 \n\t" // clear invalid bit 7 of each byte
|
||||
"paddb %%mm1, %%mm2 \n\t" // add LBCarrys to (Raw(x-bpp)/2) for each byte
|
||||
"pand %%mm6, %%mm2 \n\t" // leave only Active Group 1 bytes to add to Avg
|
||||
"paddb %%mm2, %%mm0 \n\t" // add (Raw/2) + LBCarrys to Avg for each Active
|
||||
// byte
|
||||
// add 2nd active group (Raw(x-bpp)/2) to average with _LBCarry
|
||||
"psllq _ShiftBpp, %%mm6 \n\t" // shift the mm6 mask to cover
|
||||
// bytes 3-5
|
||||
"psllq _ShiftBpp, %%mm6 \n\t" // shift the mm6 mask to cover bytes 3-5
|
||||
"movq %%mm0, %%mm2 \n\t" // mov updated Raws to mm2
|
||||
"psllq _ShiftBpp, %%mm2 \n\t" // shift data to pos. correctly
|
||||
"movq %%mm3, %%mm1 \n\t" // now use mm1 for getting
|
||||
// LBCarrys
|
||||
"pand %%mm2, %%mm1 \n\t" // get LBCarrys for each byte
|
||||
// where both
|
||||
"movq %%mm3, %%mm1 \n\t" // now use mm1 for getting LBCarrys
|
||||
"pand %%mm2, %%mm1 \n\t" // get LBCarrys for each byte where both
|
||||
// lsb's were == 1 (only valid for active group)
|
||||
"psrlq $1, %%mm2 \n\t" // divide raw bytes by 2
|
||||
"pand %%mm4, %%mm2 \n\t" // clear invalid bit 7 of each
|
||||
// byte
|
||||
"paddb %%mm1, %%mm2 \n\t" // add LBCarrys to (Raw(x-bpp)/2)
|
||||
// for each byte
|
||||
"pand %%mm6, %%mm2 \n\t" // leave only Active Group 2
|
||||
// bytes to add to Avg
|
||||
"paddb %%mm2, %%mm0 \n\t" // add (Raw/2) + LBCarrys to
|
||||
// Avg for each Active
|
||||
"pand %%mm4, %%mm2 \n\t" // clear invalid bit 7 of each byte
|
||||
"paddb %%mm1, %%mm2 \n\t" // add LBCarrys to (Raw(x-bpp)/2) for each byte
|
||||
"pand %%mm6, %%mm2 \n\t" // leave only Active Group 2 bytes to add to Avg
|
||||
"paddb %%mm2, %%mm0 \n\t" // add (Raw/2) + LBCarrys to Avg for each Active
|
||||
// byte
|
||||
|
||||
// add 3rd active group (Raw(x-bpp)/2) to average with _LBCarry
|
||||
"psllq _ShiftBpp, %%mm6 \n\t" // shift mm6 mask to cover last
|
||||
// two
|
||||
"psllq _ShiftBpp, %%mm6 \n\t" // shift mm6 mask to cover last two
|
||||
// bytes
|
||||
"movq %%mm0, %%mm2 \n\t" // mov updated Raws to mm2
|
||||
"psllq _ShiftBpp, %%mm2 \n\t" // shift data to pos. correctly
|
||||
// Data only needs to be shifted once here to
|
||||
// get the correct x-bpp offset.
|
||||
"movq %%mm3, %%mm1 \n\t" // now use mm1 for getting
|
||||
// LBCarrys
|
||||
"pand %%mm2, %%mm1 \n\t" // get LBCarrys for each byte
|
||||
// where both
|
||||
"movq %%mm3, %%mm1 \n\t" // now use mm1 for getting LBCarrys
|
||||
"pand %%mm2, %%mm1 \n\t" // get LBCarrys for each byte where both
|
||||
// lsb's were == 1 (only valid for active group)
|
||||
"psrlq $1, %%mm2 \n\t" // divide raw bytes by 2
|
||||
"pand %%mm4, %%mm2 \n\t" // clear invalid bit 7 of each
|
||||
// byte
|
||||
"paddb %%mm1, %%mm2 \n\t" // add LBCarrys to (Raw(x-bpp)/2)
|
||||
// for each byte
|
||||
"pand %%mm6, %%mm2 \n\t" // leave only Active Group 2
|
||||
// bytes to add to Avg
|
||||
"pand %%mm4, %%mm2 \n\t" // clear invalid bit 7 of each byte
|
||||
"paddb %%mm1, %%mm2 \n\t" // add LBCarrys to (Raw(x-bpp)/2) for each byte
|
||||
"pand %%mm6, %%mm2 \n\t" // leave only Active Group 2 bytes to add to Avg
|
||||
"addl $8, %%ecx \n\t"
|
||||
"paddb %%mm2, %%mm0 \n\t" // add (Raw/2) + LBCarrys to
|
||||
// Avg for each Active
|
||||
"paddb %%mm2, %%mm0 \n\t" // add (Raw/2) + LBCarrys to Avg for each Active
|
||||
// byte
|
||||
// now ready to write back to memory
|
||||
"movq %%mm0, -8(%%edi,%%ecx,) \n\t"
|
||||
@@ -2979,8 +2926,7 @@ png_read_filter_row_mmx_avg(png_row_infop row_info, png_bytep row,
|
||||
"movq _HBClearMask, %%mm4 \n\t"
|
||||
|
||||
// re-init address pointers and offset
|
||||
"movl _dif, %%ecx \n\t" // ecx: x = offset to
|
||||
// alignment boundary
|
||||
"movl _dif, %%ecx \n\t" // ecx: x = offset to alignment boundary
|
||||
|
||||
// load _ActiveMask and clear all bytes except for 1st active group
|
||||
"movq _ActiveMask, %%mm7 \n\t"
|
||||
@@ -2989,8 +2935,7 @@ png_read_filter_row_mmx_avg(png_row_infop row_info, png_bytep row,
|
||||
// preload "movl prev_row, %%esi \n\t" // esi: Prior(x)
|
||||
"movq %%mm7, %%mm6 \n\t"
|
||||
"movq _LBCarryMask, %%mm5 \n\t"
|
||||
"psllq _ShiftBpp, %%mm6 \n\t" // create mask for 2nd active
|
||||
// group
|
||||
"psllq _ShiftBpp, %%mm6 \n\t" // create mask for 2nd active group
|
||||
|
||||
// prime the pump: load the first Raw(x-bpp) data set
|
||||
"movq -8(%%edi,%%ecx,), %%mm2 \n\t" // load previous aligned 8 bytes
|
||||
@@ -3003,44 +2948,30 @@ png_read_filter_row_mmx_avg(png_row_infop row_info, png_bytep row,
|
||||
"movq %%mm5, %%mm3 \n\t"
|
||||
"pand %%mm1, %%mm3 \n\t" // get lsb for each prev_row byte
|
||||
"psrlq $1, %%mm1 \n\t" // divide prev_row bytes by 2
|
||||
"pand %%mm4, %%mm1 \n\t" // clear invalid bit 7 of each
|
||||
// byte
|
||||
"paddb %%mm1, %%mm0 \n\t" // add (Prev_row/2) to Avg for
|
||||
// each byte
|
||||
"pand %%mm4, %%mm1 \n\t" // clear invalid bit 7 of each byte
|
||||
"paddb %%mm1, %%mm0 \n\t" // add (Prev_row/2) to Avg for each byte
|
||||
// add 1st active group (Raw(x-bpp)/2) to average with _LBCarry
|
||||
"movq %%mm3, %%mm1 \n\t" // now use mm1 for getting
|
||||
// LBCarrys
|
||||
"pand %%mm2, %%mm1 \n\t" // get LBCarrys for each byte
|
||||
// where both
|
||||
"movq %%mm3, %%mm1 \n\t" // now use mm1 for getting LBCarrys
|
||||
"pand %%mm2, %%mm1 \n\t" // get LBCarrys for each byte where both
|
||||
// lsb's were == 1 (only valid for active group)
|
||||
"psrlq $1, %%mm2 \n\t" // divide raw bytes by 2
|
||||
"pand %%mm4, %%mm2 \n\t" // clear invalid bit 7 of each
|
||||
// byte
|
||||
"paddb %%mm1, %%mm2 \n\t" // add LBCarrys to (Raw(x-bpp)/2)
|
||||
// for each byte
|
||||
"pand %%mm7, %%mm2 \n\t" // leave only Active Group 1
|
||||
// bytes to add to Avg
|
||||
"paddb %%mm2, %%mm0 \n\t" // add (Raw/2) + LBCarrys to Avg
|
||||
// for each Active
|
||||
"pand %%mm4, %%mm2 \n\t" // clear invalid bit 7 of each byte
|
||||
"paddb %%mm1, %%mm2 \n\t" // add LBCarrys to (Raw(x-bpp)/2) for each byte
|
||||
"pand %%mm7, %%mm2 \n\t" // leave only Active Group 1 bytes to add to Avg
|
||||
"paddb %%mm2, %%mm0 \n\t" // add (Raw/2) + LBCarrys to Avg for each Active
|
||||
// byte
|
||||
// add 2nd active group (Raw(x-bpp)/2) to average with _LBCarry
|
||||
"movq %%mm0, %%mm2 \n\t" // mov updated Raws to mm2
|
||||
"psllq _ShiftBpp, %%mm2 \n\t" // shift data to pos. correctly
|
||||
"addl $8, %%ecx \n\t"
|
||||
"movq %%mm3, %%mm1 \n\t" // now use mm1 for getting
|
||||
// LBCarrys
|
||||
"pand %%mm2, %%mm1 \n\t" // get LBCarrys for each byte
|
||||
// where both
|
||||
"movq %%mm3, %%mm1 \n\t" // now use mm1 for getting LBCarrys
|
||||
"pand %%mm2, %%mm1 \n\t" // get LBCarrys for each byte where both
|
||||
// lsb's were == 1 (only valid for active group)
|
||||
"psrlq $1, %%mm2 \n\t" // divide raw bytes by 2
|
||||
"pand %%mm4, %%mm2 \n\t" // clear invalid bit 7 of each
|
||||
// byte
|
||||
"paddb %%mm1, %%mm2 \n\t" // add LBCarrys to (Raw(x-bpp)/2)
|
||||
// for each byte
|
||||
"pand %%mm6, %%mm2 \n\t" // leave only Active Group 2
|
||||
// bytes to add to Avg
|
||||
"paddb %%mm2, %%mm0 \n\t" // add (Raw/2) + LBCarrys to
|
||||
// Avg for each Active
|
||||
"pand %%mm4, %%mm2 \n\t" // clear invalid bit 7 of each byte
|
||||
"paddb %%mm1, %%mm2 \n\t" // add LBCarrys to (Raw(x-bpp)/2) for each byte
|
||||
"pand %%mm6, %%mm2 \n\t" // leave only Active Group 2 bytes to add to Avg
|
||||
"paddb %%mm2, %%mm0 \n\t" // add (Raw/2) + LBCarrys to Avg for each Active
|
||||
// byte
|
||||
"cmpl _MMXLength, %%ecx \n\t"
|
||||
// now ready to write back to memory
|
||||
@@ -3074,8 +3005,7 @@ png_read_filter_row_mmx_avg(png_row_infop row_info, png_bytep row,
|
||||
// load _ActiveMask
|
||||
"movq _ActiveMask, %%mm7 \n\t"
|
||||
// re-init address pointers and offset
|
||||
"movl _dif, %%ecx \n\t" // ecx: x = offset to alignment
|
||||
// boundary
|
||||
"movl _dif, %%ecx \n\t" // ecx: x = offset to alignment boundary
|
||||
"movq _LBCarryMask, %%mm5 \n\t"
|
||||
// preload "movl row, %%edi \n\t" // edi: Avg(x)
|
||||
"movq _HBClearMask, %%mm4 \n\t"
|
||||
@@ -3092,91 +3022,59 @@ png_read_filter_row_mmx_avg(png_row_infop row_info, png_bytep row,
|
||||
"movq %%mm5, %%mm3 \n\t"
|
||||
"pand %%mm1, %%mm3 \n\t" // get lsb for each prev_row byte
|
||||
"psrlq $1, %%mm1 \n\t" // divide prev_row bytes by 2
|
||||
"pand %%mm4, %%mm1 \n\t" // clear invalid bit 7 of each
|
||||
// byte
|
||||
"pand %%mm4, %%mm1 \n\t" // clear invalid bit 7 of each byte
|
||||
"movq %%mm7, %%mm6 \n\t"
|
||||
"paddb %%mm1, %%mm0 \n\t" // add (Prev_row/2) to Avg for
|
||||
// each byte
|
||||
"paddb %%mm1, %%mm0 \n\t" // add (Prev_row/2) to Avg for each byte
|
||||
|
||||
// add 1st active group (Raw(x-bpp)/2) to average with _LBCarry
|
||||
"movq %%mm3, %%mm1 \n\t" // now use mm1 for getting
|
||||
// LBCarrys
|
||||
"pand %%mm2, %%mm1 \n\t" // get LBCarrys for each byte
|
||||
// where both
|
||||
// lsb's were == 1 (only valid
|
||||
// for active group)
|
||||
"movq %%mm3, %%mm1 \n\t" // now use mm1 for getting LBCarrys
|
||||
"pand %%mm2, %%mm1 \n\t" // get LBCarrys for each byte where both
|
||||
// lsb's were == 1 (only valid for active group)
|
||||
"psrlq $1, %%mm2 \n\t" // divide raw bytes by 2
|
||||
"pand %%mm4, %%mm2 \n\t" // clear invalid bit 7 of each
|
||||
// byte
|
||||
"paddb %%mm1, %%mm2 \n\t" // add LBCarrys to (Raw(x-bpp)/2)
|
||||
// for each byte
|
||||
"pand %%mm6, %%mm2 \n\t" // leave only Active Group 1
|
||||
// bytes to add to Avg
|
||||
"paddb %%mm2, %%mm0 \n\t" // add (Raw/2) + LBCarrys to Avg
|
||||
// for each Active byte
|
||||
"pand %%mm4, %%mm2 \n\t" // clear invalid bit 7 of each byte
|
||||
"paddb %%mm1, %%mm2 \n\t" // add LBCarrys to (Raw(x-bpp)/2) for each byte
|
||||
"pand %%mm6, %%mm2 \n\t" // leave only Active Group 1 bytes to add to Avg
|
||||
"paddb %%mm2, %%mm0 \n\t" // add (Raw/2) + LBCarrys to Avg for each Active byte
|
||||
|
||||
// add 2nd active group (Raw(x-bpp)/2) to average with _LBCarry
|
||||
"psllq _ShiftBpp, %%mm6 \n\t" // shift the mm6 mask to cover
|
||||
// bytes 2 & 3
|
||||
"psllq _ShiftBpp, %%mm6 \n\t" // shift the mm6 mask to cover bytes 2 & 3
|
||||
"movq %%mm0, %%mm2 \n\t" // mov updated Raws to mm2
|
||||
"psllq _ShiftBpp, %%mm2 \n\t" // shift data to pos. correctly
|
||||
"movq %%mm3, %%mm1 \n\t" // now use mm1 for getting
|
||||
// LBCarrys
|
||||
"pand %%mm2, %%mm1 \n\t" // get LBCarrys for each byte
|
||||
// where both
|
||||
// lsb's were == 1 (only valid
|
||||
// for active group)
|
||||
"movq %%mm3, %%mm1 \n\t" // now use mm1 for getting LBCarrys
|
||||
"pand %%mm2, %%mm1 \n\t" // get LBCarrys for each byte where both
|
||||
// lsb's were == 1 (only valid for active group)
|
||||
"psrlq $1, %%mm2 \n\t" // divide raw bytes by 2
|
||||
"pand %%mm4, %%mm2 \n\t" // clear invalid bit 7 of each
|
||||
// byte
|
||||
"paddb %%mm1, %%mm2 \n\t" // add LBCarrys to (Raw(x-bpp)/2)
|
||||
// for each byte
|
||||
"pand %%mm6, %%mm2 \n\t" // leave only Active Group 2
|
||||
// bytes to add to Avg
|
||||
"paddb %%mm2, %%mm0 \n\t" // add (Raw/2) + LBCarrys to
|
||||
// Avg for each Active byte
|
||||
"pand %%mm4, %%mm2 \n\t" // clear invalid bit 7 of each byte
|
||||
"paddb %%mm1, %%mm2 \n\t" // add LBCarrys to (Raw(x-bpp)/2) for each byte
|
||||
"pand %%mm6, %%mm2 \n\t" // leave only Active Group 2 bytes to add to Avg
|
||||
"paddb %%mm2, %%mm0 \n\t" // add (Raw/2) + LBCarrys to Avg for each Active byte
|
||||
|
||||
// add 3rd active group (Raw(x-bpp)/2) to average with _LBCarry
|
||||
"psllq _ShiftBpp, %%mm6 \n\t" // shift the mm6 mask to cover
|
||||
// bytes 4 & 5
|
||||
"psllq _ShiftBpp, %%mm6 \n\t" // shift the mm6 mask to cover bytes 4 & 5
|
||||
"movq %%mm0, %%mm2 \n\t" // mov updated Raws to mm2
|
||||
"psllq _ShiftBpp, %%mm2 \n\t" // shift data to pos. correctly
|
||||
"movq %%mm3, %%mm1 \n\t" // now use mm1 for getting
|
||||
// LBCarrys
|
||||
"pand %%mm2, %%mm1 \n\t" // get LBCarrys for each byte
|
||||
// where both lsb's were == 1
|
||||
// (only valid for active group)
|
||||
"movq %%mm3, %%mm1 \n\t" // now use mm1 for getting LBCarrys
|
||||
"pand %%mm2, %%mm1 \n\t" // get LBCarrys for each byte where both
|
||||
// lsb's were == 1 (only valid for active group)
|
||||
"psrlq $1, %%mm2 \n\t" // divide raw bytes by 2
|
||||
"pand %%mm4, %%mm2 \n\t" // clear invalid bit 7 of each
|
||||
// byte
|
||||
"paddb %%mm1, %%mm2 \n\t" // add LBCarrys to (Raw(x-bpp)/2)
|
||||
// for each byte
|
||||
"pand %%mm6, %%mm2 \n\t" // leave only Active Group 2
|
||||
// bytes to add to Avg
|
||||
"paddb %%mm2, %%mm0 \n\t" // add (Raw/2) + LBCarrys to
|
||||
// Avg for each Active byte
|
||||
"pand %%mm4, %%mm2 \n\t" // clear invalid bit 7 of each byte
|
||||
"paddb %%mm1, %%mm2 \n\t" // add LBCarrys to (Raw(x-bpp)/2) for each byte
|
||||
"pand %%mm6, %%mm2 \n\t" // leave only Active Group 2 bytes to add to Avg
|
||||
"paddb %%mm2, %%mm0 \n\t" // add (Raw/2) + LBCarrys to Avg for each Active byte
|
||||
|
||||
// add 4th active group (Raw(x-bpp)/2) to average with _LBCarry
|
||||
"psllq _ShiftBpp, %%mm6 \n\t" // shift the mm6 mask to cover
|
||||
// bytes 6 & 7
|
||||
"psllq _ShiftBpp, %%mm6 \n\t" // shift the mm6 mask to cover bytes 6 & 7
|
||||
"movq %%mm0, %%mm2 \n\t" // mov updated Raws to mm2
|
||||
"psllq _ShiftBpp, %%mm2 \n\t" // shift data to pos. correctly
|
||||
"addl $8, %%ecx \n\t"
|
||||
"movq %%mm3, %%mm1 \n\t" // now use mm1 for getting
|
||||
// LBCarrys
|
||||
"pand %%mm2, %%mm1 \n\t" // get LBCarrys for each byte
|
||||
// where both
|
||||
// lsb's were == 1 (only valid
|
||||
// for active group)
|
||||
"movq %%mm3, %%mm1 \n\t" // now use mm1 for getting LBCarrys
|
||||
"pand %%mm2, %%mm1 \n\t" // get LBCarrys for each byte where both
|
||||
// lsb's were == 1 (only valid for active group)
|
||||
"psrlq $1, %%mm2 \n\t" // divide raw bytes by 2
|
||||
"pand %%mm4, %%mm2 \n\t" // clear invalid bit 7 of each
|
||||
// byte
|
||||
"paddb %%mm1, %%mm2 \n\t" // add LBCarrys to (Raw(x-bpp)/2)
|
||||
// for each byte
|
||||
"pand %%mm6, %%mm2 \n\t" // leave only Active Group 2
|
||||
// bytes to add to Avg
|
||||
"paddb %%mm2, %%mm0 \n\t" // add (Raw/2) + LBCarrys to
|
||||
// Avg for each Active byte
|
||||
"pand %%mm4, %%mm2 \n\t" // clear invalid bit 7 of each byte
|
||||
"paddb %%mm1, %%mm2 \n\t" // add LBCarrys to (Raw(x-bpp)/2) for each byte
|
||||
"pand %%mm6, %%mm2 \n\t" // leave only Active Group 2 bytes to add to Avg
|
||||
"paddb %%mm2, %%mm0 \n\t" // add (Raw/2) + LBCarrys to Avg for each Active byte
|
||||
|
||||
"cmpl _MMXLength, %%ecx \n\t"
|
||||
// now ready to write back to memory
|
||||
@@ -3207,8 +3105,7 @@ png_read_filter_row_mmx_avg(png_row_infop row_info, png_bytep row,
|
||||
#ifdef __PIC__
|
||||
"pushl %%ebx \n\t" // save Global Offset Table index
|
||||
#endif
|
||||
"movl _dif, %%ebx \n\t" // ebx: x = offset to alignment
|
||||
// boundary
|
||||
"movl _dif, %%ebx \n\t" // ebx: x = offset to alignment boundary
|
||||
// preload "movl row, %%edi \n\t" // edi: Avg(x)
|
||||
"cmpl _FullLength, %%ebx \n\t" // test if offset at end of array
|
||||
"jnb avg_1end \n\t"
|
||||
@@ -3227,8 +3124,7 @@ png_read_filter_row_mmx_avg(png_row_infop row_info, png_bytep row,
|
||||
"addw %%cx, %%ax \n\t"
|
||||
"incl %%ebx \n\t"
|
||||
"shrw %%ax \n\t" // divide by 2
|
||||
"addb -1(%%edi,%%ebx,), %%al \n\t" // add Avg(x); -1 to offset
|
||||
// inc ebx
|
||||
"addb -1(%%edi,%%ebx,), %%al \n\t" // add Avg(x); -1 to offset inc ebx
|
||||
"cmpl _FullLength, %%ebx \n\t" // check if at end of array
|
||||
"movb %%al, -1(%%edi,%%ebx,) \n\t" // write back Raw(x);
|
||||
// mov does not affect flags; -1 to offset inc ebx
|
||||
@@ -3307,18 +3203,15 @@ png_read_filter_row_mmx_avg(png_row_infop row_info, png_bytep row,
|
||||
default: // bpp greater than 8 (!= 1,2,3,4,[5],6,[7],8)
|
||||
{
|
||||
|
||||
#ifdef PNG_DEBUG
|
||||
// GRR: PRINT ERROR HERE: SHOULD NEVER BE REACHED
|
||||
png_debug(1,
|
||||
"Internal logic error in pnggccrd (png_read_filter_row_mmx_avg())\n");
|
||||
#endif
|
||||
fprintf(stderr,
|
||||
"libpng: internal logic error (png_read_filter_row_mmx_avg())\n");
|
||||
|
||||
#if 0
|
||||
__asm__ __volatile__ (
|
||||
"movq _LBCarryMask, %%mm5 \n\t"
|
||||
// re-init address pointers and offset
|
||||
"movl _dif, %%ebx \n\t" // ebx: x = offset to
|
||||
// alignment boundary
|
||||
"movl _dif, %%ebx \n\t" // ebx: x = offset to alignment boundary
|
||||
"movl row, %%edi \n\t" // edi: Avg(x)
|
||||
"movq _HBClearMask, %%mm4 \n\t"
|
||||
"movl %%edi, %%edx \n\t"
|
||||
@@ -3331,20 +3224,15 @@ png_read_filter_row_mmx_avg(png_row_infop row_info, png_bytep row,
|
||||
"pand %%mm1, %%mm3 \n\t" // get lsb for each prev_row byte
|
||||
"movq (%%edx,%%ebx,), %%mm2 \n\t"
|
||||
"psrlq $1, %%mm1 \n\t" // divide prev_row bytes by 2
|
||||
"pand %%mm2, %%mm3 \n\t" // get LBCarrys for each byte
|
||||
// where both lsb's were == 1
|
||||
"pand %%mm2, %%mm3 \n\t" // get LBCarrys for each byte where both
|
||||
// lsb's were == 1
|
||||
"psrlq $1, %%mm2 \n\t" // divide raw bytes by 2
|
||||
"pand %%mm4, %%mm1 \n\t" // clear invalid bit 7 of each
|
||||
// byte
|
||||
"paddb %%mm3, %%mm0 \n\t" // add LBCarrys to Avg for each
|
||||
// byte
|
||||
"pand %%mm4, %%mm2 \n\t" // clear invalid bit 7 of each
|
||||
// byte
|
||||
"paddb %%mm1, %%mm0 \n\t" // add (Prev_row/2) to Avg for
|
||||
// each byte
|
||||
"pand %%mm4, %%mm1 \n\t" // clear invalid bit 7 of each byte
|
||||
"paddb %%mm3, %%mm0 \n\t" // add LBCarrys to Avg for each byte
|
||||
"pand %%mm4, %%mm2 \n\t" // clear invalid bit 7 of each byte
|
||||
"paddb %%mm1, %%mm0 \n\t" // add (Prev_row/2) to Avg for each byte
|
||||
"addl $8, %%ebx \n\t"
|
||||
"paddb %%mm2, %%mm0 \n\t" // add (Raw/2) to Avg for each
|
||||
// byte
|
||||
"paddb %%mm2, %%mm0 \n\t" // add (Raw/2) to Avg for each byte
|
||||
"cmpl _MMXLength, %%ebx \n\t"
|
||||
"movq %%mm0, -8(%%edi,%%ebx,) \n\t"
|
||||
"jb avg_Alp \n\t"
|
||||
@@ -3413,11 +3301,10 @@ png_read_filter_row_mmx_avg(png_row_infop row_info, png_bytep row,
|
||||
);
|
||||
|
||||
} /* end png_read_filter_row_mmx_avg() */
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#ifdef PNG_THREAD_UNSAFE_OK
|
||||
|
||||
//===========================================================================//
|
||||
// //
|
||||
// P N G _ R E A D _ F I L T E R _ R O W _ M M X _ P A E T H //
|
||||
@@ -3463,11 +3350,9 @@ png_read_filter_row_mmx_paeth(png_row_infop row_info, png_bytep row,
|
||||
"movl %%edi, _dif \n\t" // take start of row
|
||||
"addl %%ebx, _dif \n\t" // add bpp
|
||||
"xorl %%ecx, %%ecx \n\t"
|
||||
"addl $0xf, _dif \n\t" // add 7 + 8 to incr past alignment
|
||||
// boundary
|
||||
"addl $0xf, _dif \n\t" // add 7 + 8 to incr past alignment boundary
|
||||
"andl $0xfffffff8, _dif \n\t" // mask to alignment boundary
|
||||
"subl %%edi, _dif \n\t" // subtract from start ==> value ebx
|
||||
// at alignment
|
||||
"subl %%edi, _dif \n\t" // subtract from start ==> value ebx at alignment
|
||||
"jz paeth_go \n\t"
|
||||
// fix alignment
|
||||
|
||||
@@ -3585,14 +3470,12 @@ png_read_filter_row_mmx_paeth(png_row_infop row_info, png_bytep row,
|
||||
// prime the pump: load the first Raw(x-bpp) data set
|
||||
"movq -8(%%edi,%%ecx,), %%mm1 \n\t"
|
||||
"paeth_3lp: \n\t"
|
||||
"psrlq _ShiftRem, %%mm1 \n\t" // shift last 3 bytes to 1st
|
||||
// 3 bytes
|
||||
"psrlq _ShiftRem, %%mm1 \n\t" // shift last 3 bytes to 1st 3 bytes
|
||||
"movq (%%esi,%%ecx,), %%mm2 \n\t" // load b=Prior(x)
|
||||
"punpcklbw %%mm0, %%mm1 \n\t" // unpack High bytes of a
|
||||
"movq -8(%%esi,%%ecx,), %%mm3 \n\t" // prep c=Prior(x-bpp) bytes
|
||||
"punpcklbw %%mm0, %%mm2 \n\t" // unpack High bytes of b
|
||||
"psrlq _ShiftRem, %%mm3 \n\t" // shift last 3 bytes to 1st
|
||||
// 3 bytes
|
||||
"psrlq _ShiftRem, %%mm3 \n\t" // shift last 3 bytes to 1st 3 bytes
|
||||
// pav = p - a = (a + b - c) - a = b - c
|
||||
"movq %%mm2, %%mm4 \n\t"
|
||||
"punpcklbw %%mm0, %%mm3 \n\t" // unpack High bytes of c
|
||||
@@ -3647,8 +3530,7 @@ png_read_filter_row_mmx_paeth(png_row_infop row_info, png_bytep row,
|
||||
"paddb (%%edi,%%ecx,), %%mm7 \n\t" // add Paeth predictor with Raw(x)
|
||||
"punpcklbw %%mm0, %%mm3 \n\t" // unpack High bytes of c
|
||||
"movq %%mm7, (%%edi,%%ecx,) \n\t" // write back updated value
|
||||
"movq %%mm7, %%mm1 \n\t" // now mm1 will be used as
|
||||
// Raw(x-bpp)
|
||||
"movq %%mm7, %%mm1 \n\t" // now mm1 will be used as Raw(x-bpp)
|
||||
// now do Paeth for 2nd set of bytes (3-5)
|
||||
"psrlq _ShiftBpp, %%mm2 \n\t" // load b=Prior(x) step 2
|
||||
"punpcklbw %%mm0, %%mm1 \n\t" // unpack High bytes of a
|
||||
@@ -3705,8 +3587,7 @@ png_read_filter_row_mmx_paeth(png_row_infop row_info, png_bytep row,
|
||||
"movq %%mm2, %%mm3 \n\t" // load c=Prior(x-bpp) step 1
|
||||
"pand _ActiveMask, %%mm7 \n\t"
|
||||
"punpckhbw %%mm0, %%mm2 \n\t" // unpack High bytes of b
|
||||
"psllq _ShiftBpp, %%mm7 \n\t" // shift bytes to 2nd group of
|
||||
// 3 bytes
|
||||
"psllq _ShiftBpp, %%mm7 \n\t" // shift bytes to 2nd group of 3 bytes
|
||||
// pav = p - a = (a + b - c) - a = b - c
|
||||
"movq %%mm2, %%mm4 \n\t"
|
||||
"paddb (%%edi,%%ecx,), %%mm7 \n\t" // add Paeth predictor with Raw(x)
|
||||
@@ -3766,8 +3647,7 @@ png_read_filter_row_mmx_paeth(png_row_infop row_info, png_bytep row,
|
||||
// step ecx to next set of 8 bytes and repeat loop til done
|
||||
"addl $8, %%ecx \n\t"
|
||||
"pand _ActiveMaskEnd, %%mm1 \n\t"
|
||||
"paddb -8(%%edi,%%ecx,), %%mm1 \n\t" // add Paeth predictor with
|
||||
// Raw(x)
|
||||
"paddb -8(%%edi,%%ecx,), %%mm1 \n\t" // add Paeth predictor with Raw(x)
|
||||
|
||||
"cmpl _MMXLength, %%ecx \n\t"
|
||||
"pxor %%mm0, %%mm0 \n\t" // pxor does not affect flags
|
||||
@@ -4467,12 +4347,10 @@ png_read_filter_row_mmx_paeth(png_row_infop row_info, png_bytep row,
|
||||
);
|
||||
|
||||
} /* end png_read_filter_row_mmx_paeth() */
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
#ifdef PNG_THREAD_UNSAFE_OK
|
||||
//===========================================================================//
|
||||
// //
|
||||
// P N G _ R E A D _ F I L T E R _ R O W _ M M X _ S U B //
|
||||
@@ -4891,7 +4769,6 @@ png_read_filter_row_mmx_sub(png_row_infop row_info, png_bytep row)
|
||||
);
|
||||
|
||||
} // end of png_read_filter_row_mmx_sub()
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
@@ -4918,9 +4795,6 @@ png_read_filter_row_mmx_up(png_row_infop row_info, png_bytep row,
|
||||
__asm__ __volatile__ (
|
||||
//pre "movl row, %%edi \n\t"
|
||||
// get # of bytes to alignment
|
||||
#ifdef __PIC__
|
||||
"pushl %%ebx \n\t"
|
||||
#endif
|
||||
"movl %%edi, %%ecx \n\t"
|
||||
"xorl %%ebx, %%ebx \n\t"
|
||||
"addl $0x7, %%ecx \n\t"
|
||||
@@ -5020,9 +4894,6 @@ png_read_filter_row_mmx_up(png_row_infop row_info, png_bytep row,
|
||||
|
||||
"up_end: \n\t"
|
||||
"EMMS \n\t" // conversion of filtered row complete
|
||||
#ifdef __PIC__
|
||||
"popl %%ebx \n\t"
|
||||
#endif
|
||||
|
||||
: "=d" (dummy_value_d), // 0 // output regs (dummy)
|
||||
"=S" (dummy_value_S), // 1
|
||||
@@ -5085,35 +4956,27 @@ png_read_filter_row(png_structp png_ptr, png_row_infop row_info, png_bytep
|
||||
case 0: sprintf(filnm, "none");
|
||||
break;
|
||||
case 1: sprintf(filnm, "sub-%s",
|
||||
#if defined(PNG_ASSEMBLER_CODE_SUPPORTED) && defined(PNG_THREAD_UNSAFE_OK)
|
||||
#if !defined(PNG_1_0_X)
|
||||
#ifdef PNG_ASSEMBLER_CODE_SUPPORTED
|
||||
(png_ptr->asm_flags & PNG_ASM_FLAG_MMX_READ_FILTER_SUB)? "MMX" :
|
||||
#endif
|
||||
#endif
|
||||
"x86");
|
||||
break;
|
||||
case 2: sprintf(filnm, "up-%s",
|
||||
#ifdef PNG_ASSEMBLER_CODE_SUPPORTED
|
||||
#if !defined(PNG_1_0_X)
|
||||
(png_ptr->asm_flags & PNG_ASM_FLAG_MMX_READ_FILTER_UP)? "MMX" :
|
||||
#endif
|
||||
#endif
|
||||
"x86");
|
||||
break;
|
||||
case 3: sprintf(filnm, "avg-%s",
|
||||
#if defined(PNG_ASSEMBLER_CODE_SUPPORTED) && defined(PNG_THREAD_UNSAFE_OK)
|
||||
#if !defined(PNG_1_0_X)
|
||||
#ifdef PNG_ASSEMBLER_CODE_SUPPORTED
|
||||
(png_ptr->asm_flags & PNG_ASM_FLAG_MMX_READ_FILTER_AVG)? "MMX" :
|
||||
#endif
|
||||
#endif
|
||||
"x86");
|
||||
break;
|
||||
case 4: sprintf(filnm, "Paeth-%s",
|
||||
#if defined(PNG_ASSEMBLER_CODE_SUPPORTED) && defined(PNG_THREAD_UNSAFE_OK)
|
||||
#if !defined(PNG_1_0_X)
|
||||
#ifdef PNG_ASSEMBLER_CODE_SUPPORTED
|
||||
(png_ptr->asm_flags & PNG_ASM_FLAG_MMX_READ_FILTER_PAETH)? "MMX":
|
||||
#endif
|
||||
#endif
|
||||
"x86");
|
||||
break;
|
||||
default: sprintf(filnm, "unknw");
|
||||
@@ -5132,12 +4995,8 @@ png_read_filter_row(png_structp png_ptr, png_row_infop row_info, png_bytep
|
||||
break;
|
||||
|
||||
case PNG_FILTER_VALUE_SUB:
|
||||
#if defined(PNG_ASSEMBLER_CODE_SUPPORTED) && defined(PNG_THREAD_UNSAFE_OK)
|
||||
#if !defined(PNG_1_0_X)
|
||||
#if defined(PNG_ASSEMBLER_CODE_SUPPORTED)
|
||||
if ((png_ptr->asm_flags & PNG_ASM_FLAG_MMX_READ_FILTER_SUB) &&
|
||||
#else
|
||||
if (
|
||||
#endif
|
||||
(row_info->pixel_depth >= png_ptr->mmx_bitdepth_threshold) &&
|
||||
(row_info->rowbytes >= png_ptr->mmx_rowbytes_threshold))
|
||||
{
|
||||
@@ -5162,11 +5021,7 @@ png_read_filter_row(png_structp png_ptr, png_row_infop row_info, png_bytep
|
||||
|
||||
case PNG_FILTER_VALUE_UP:
|
||||
#if defined(PNG_ASSEMBLER_CODE_SUPPORTED)
|
||||
#if !defined(PNG_1_0_X)
|
||||
if ((png_ptr->asm_flags & PNG_ASM_FLAG_MMX_READ_FILTER_UP) &&
|
||||
#else
|
||||
if (
|
||||
#endif
|
||||
(row_info->pixel_depth >= png_ptr->mmx_bitdepth_threshold) &&
|
||||
(row_info->rowbytes >= png_ptr->mmx_rowbytes_threshold))
|
||||
{
|
||||
@@ -5189,12 +5044,8 @@ png_read_filter_row(png_structp png_ptr, png_row_infop row_info, png_bytep
|
||||
break;
|
||||
|
||||
case PNG_FILTER_VALUE_AVG:
|
||||
#if defined(PNG_ASSEMBLER_CODE_SUPPORTED) && defined(PNG_THREAD_UNSAFE_OK)
|
||||
#if !defined(PNG_1_0_X)
|
||||
#if defined(PNG_ASSEMBLER_CODE_SUPPORTED)
|
||||
if ((png_ptr->asm_flags & PNG_ASM_FLAG_MMX_READ_FILTER_AVG) &&
|
||||
#else
|
||||
if (
|
||||
#endif
|
||||
(row_info->pixel_depth >= png_ptr->mmx_bitdepth_threshold) &&
|
||||
(row_info->rowbytes >= png_ptr->mmx_rowbytes_threshold))
|
||||
{
|
||||
@@ -5227,12 +5078,8 @@ png_read_filter_row(png_structp png_ptr, png_row_infop row_info, png_bytep
|
||||
break;
|
||||
|
||||
case PNG_FILTER_VALUE_PAETH:
|
||||
#if defined(PNG_ASSEMBLER_CODE_SUPPORTED) && defined(PNG_THREAD_UNSAFE_OK)
|
||||
#if !defined(PNG_1_0_X)
|
||||
#if defined(PNG_ASSEMBLER_CODE_SUPPORTED)
|
||||
if ((png_ptr->asm_flags & PNG_ASM_FLAG_MMX_READ_FILTER_PAETH) &&
|
||||
#else
|
||||
if (
|
||||
#endif
|
||||
(row_info->pixel_depth >= png_ptr->mmx_bitdepth_threshold) &&
|
||||
(row_info->rowbytes >= png_ptr->mmx_rowbytes_threshold))
|
||||
{
|
||||
@@ -5340,8 +5187,6 @@ png_mmx_support(void)
|
||||
"popfl \n\t" // restore modified value to Eflag reg
|
||||
"pushfl \n\t" // save Eflag to stack
|
||||
"popl %%eax \n\t" // get Eflag from stack
|
||||
"pushl %%ecx \n\t" // save original Eflag to stack
|
||||
"popfl \n\t" // restore original Eflag
|
||||
"xorl %%ecx, %%eax \n\t" // compare new Eflag with original Eflag
|
||||
"jz .NOT_SUPPORTED \n\t" // if same, CPUID instr. is not supported
|
||||
|
||||
|
||||
18
pngget.c
18
pngget.c
@@ -1,9 +1,9 @@
|
||||
|
||||
/* pngget.c - retrieval of values from info struct
|
||||
*
|
||||
* libpng 1.0.13 - April 15, 2002
|
||||
* libpng 1.2.0beta4 - June 23, 2001
|
||||
* For conditions of distribution and use, see copyright notice in png.h
|
||||
* Copyright (c) 1998-2002 Glenn Randers-Pehrson
|
||||
* Copyright (c) 1998-2001 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.)
|
||||
*/
|
||||
@@ -547,11 +547,7 @@ png_get_IHDR(png_structp png_ptr, png_infop info_ptr,
|
||||
*width = info_ptr->width;
|
||||
*height = info_ptr->height;
|
||||
*bit_depth = info_ptr->bit_depth;
|
||||
if (info_ptr->bit_depth < 1 || info_ptr->bit_depth > 16)
|
||||
png_error(png_ptr, "Invalid bit depth");
|
||||
*color_type = info_ptr->color_type;
|
||||
if (info_ptr->color_type > 6)
|
||||
png_error(png_ptr, "Invalid color type");
|
||||
if (compression_type != NULL)
|
||||
*compression_type = info_ptr->compression_type;
|
||||
if (filter_type != NULL)
|
||||
@@ -560,7 +556,9 @@ png_get_IHDR(png_structp png_ptr, png_infop info_ptr,
|
||||
*interlace_type = info_ptr->interlace_type;
|
||||
|
||||
/* check for potential overflow of rowbytes */
|
||||
if (*color_type & PNG_COLOR_MASK_COLOR)
|
||||
if (*color_type == PNG_COLOR_TYPE_PALETTE)
|
||||
channels = 1;
|
||||
else if (*color_type & PNG_COLOR_MASK_COLOR)
|
||||
channels = 3;
|
||||
else
|
||||
channels = 1;
|
||||
@@ -568,10 +566,6 @@ png_get_IHDR(png_structp png_ptr, png_infop info_ptr,
|
||||
channels++;
|
||||
pixel_depth = *bit_depth * channels;
|
||||
rowbytes_per_pixel = (pixel_depth + 7) >> 3;
|
||||
if (width == 0 || *width > PNG_MAX_UINT)
|
||||
png_error(png_ptr, "Invalid image width");
|
||||
if (height == 0 || *height > PNG_MAX_UINT)
|
||||
png_error(png_ptr, "Invalid image height");
|
||||
if ((*width > PNG_MAX_UINT/rowbytes_per_pixel))
|
||||
{
|
||||
png_warning(png_ptr,
|
||||
@@ -833,7 +827,6 @@ png_get_compression_buffer_size(png_structp png_ptr)
|
||||
}
|
||||
|
||||
|
||||
#ifndef PNG_1_0_X
|
||||
#ifdef PNG_ASSEMBLER_CODE_SUPPORTED
|
||||
/* this function was added to libpng 1.2.0 and should exist by default*/
|
||||
png_uint_32 PNGAPI
|
||||
@@ -922,4 +915,3 @@ png_get_mmx_rowbytes_threshold (png_structp png_ptr)
|
||||
return (png_uint_32)(png_ptr? png_ptr->mmx_rowbytes_threshold : 0L);
|
||||
}
|
||||
#endif /* PNG_ASSEMBLER_CODE_SUPPORTED */
|
||||
#endif /* PNG_1_0_X */
|
||||
|
||||
112
pngmem.c
112
pngmem.c
@@ -1,9 +1,9 @@
|
||||
|
||||
/* pngmem.c - stub functions for memory allocation
|
||||
*
|
||||
* libpng 1.0.13 - April 15, 2002
|
||||
* libpng 1.2.0beta4 - June 23, 2001
|
||||
* For conditions of distribution and use, see copyright notice in png.h
|
||||
* Copyright (c) 1998-2002 Glenn Randers-Pehrson
|
||||
* Copyright (c) 1998-2001 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.)
|
||||
*
|
||||
@@ -27,7 +27,7 @@ png_voidp /* PRIVATE */
|
||||
png_create_struct(int type)
|
||||
{
|
||||
#ifdef PNG_USER_MEM_SUPPORTED
|
||||
return (png_create_struct_2(type, png_malloc_ptr_NULL, png_voidp_NULL));
|
||||
return (png_create_struct_2(type, NULL, NULL));
|
||||
}
|
||||
|
||||
/* Alternate version of png_create_struct, for use with user-defined malloc. */
|
||||
@@ -43,30 +43,39 @@ png_create_struct_2(int type, png_malloc_ptr malloc_fn, png_voidp mem_ptr)
|
||||
else if (type == PNG_STRUCT_PNG)
|
||||
size = sizeof(png_struct);
|
||||
else
|
||||
return (png_get_copyright());
|
||||
return ((png_voidp)NULL);
|
||||
|
||||
#ifdef PNG_USER_MEM_SUPPORTED
|
||||
if(malloc_fn != NULL)
|
||||
{
|
||||
png_struct dummy_struct;
|
||||
png_structp png_ptr = &dummy_struct;
|
||||
png_ptr->mem_ptr=mem_ptr;
|
||||
struct_ptr = (*(malloc_fn))(png_ptr, (png_uint_32)size);
|
||||
if (mem_ptr != NULL)
|
||||
{
|
||||
png_struct dummy_struct;
|
||||
png_structp png_ptr = &dummy_struct;
|
||||
png_ptr->mem_ptr=mem_ptr;
|
||||
struct_ptr = (*(malloc_fn))(png_ptr, size);
|
||||
}
|
||||
else
|
||||
struct_ptr = (*(malloc_fn))(NULL, size);
|
||||
if (struct_ptr != NULL)
|
||||
png_memset(struct_ptr, 0, size);
|
||||
return (struct_ptr);
|
||||
}
|
||||
else
|
||||
#endif /* PNG_USER_MEM_SUPPORTED */
|
||||
struct_ptr = (png_voidp)farmalloc(size));
|
||||
if (struct_ptr != NULL)
|
||||
if ((struct_ptr = (png_voidp)farmalloc(size)) != NULL)
|
||||
{
|
||||
png_memset(struct_ptr, 0, size);
|
||||
}
|
||||
return (struct_ptr);
|
||||
}
|
||||
|
||||
|
||||
/* Free memory allocated by a png_create_struct() call */
|
||||
void /* PRIVATE */
|
||||
png_destroy_struct(png_voidp struct_ptr)
|
||||
{
|
||||
#ifdef PNG_USER_MEM_SUPPORTED
|
||||
png_destroy_struct_2(struct_ptr, png_free_ptr_NULL, png_voidp_NULL);
|
||||
png_destroy_struct_2(struct_ptr, (png_free_ptr)NULL, (png_voidp)NULL);
|
||||
}
|
||||
|
||||
/* Free memory allocated by a png_create_struct() call */
|
||||
@@ -117,13 +126,13 @@ png_malloc(png_structp png_ptr, png_uint_32 size)
|
||||
png_voidp ret;
|
||||
#endif
|
||||
if (png_ptr == NULL || size == 0)
|
||||
return (NULL);
|
||||
return ((png_voidp)NULL);
|
||||
|
||||
#ifdef PNG_USER_MEM_SUPPORTED
|
||||
if(png_ptr->malloc_fn != NULL)
|
||||
{
|
||||
ret = ((png_voidp)(*(png_ptr->malloc_fn))(png_ptr, (png_size_t)size));
|
||||
if (ret == NULL && (png_ptr->flags&PNG_FLAG_MALLOC_NULL_MEM_OK) == 0)
|
||||
ret = ((png_voidp)(*(png_ptr->malloc_fn))(png_ptr, size));
|
||||
if (ret == NULL)
|
||||
png_error(png_ptr, "Out of memory!");
|
||||
return (ret);
|
||||
}
|
||||
@@ -177,22 +186,12 @@ png_malloc_default(png_structp png_ptr, png_uint_32 size)
|
||||
|
||||
if (table == NULL)
|
||||
{
|
||||
if (png_ptr->flags&PNG_FLAG_MALLOC_NULL_MEM_OK) == 0)
|
||||
png_error(png_ptr, "Out Of Memory."); /* Note "O" and "M" */
|
||||
else
|
||||
png_warning(png_ptr, "Out Of Memory.");
|
||||
return (NULL);
|
||||
png_error(png_ptr, "Out Of Memory."); /* Note "O" and "M" */
|
||||
}
|
||||
|
||||
if ((png_size_t)table & 0xfff0)
|
||||
{
|
||||
if (png_ptr->flags&PNG_FLAG_MALLOC_NULL_MEM_OK) == 0)
|
||||
png_error(png_ptr,
|
||||
"Farmalloc didn't return normalized pointer");
|
||||
else
|
||||
png_warning(png_ptr,
|
||||
"Farmalloc didn't return normalized pointer");
|
||||
return (NULL);
|
||||
png_error(png_ptr, "Farmalloc didn't return normalized pointer");
|
||||
}
|
||||
|
||||
png_ptr->offset_table = table;
|
||||
@@ -201,11 +200,7 @@ png_malloc_default(png_structp png_ptr, png_uint_32 size)
|
||||
|
||||
if (png_ptr->offset_table_ptr == NULL)
|
||||
{
|
||||
if (png_ptr->flags&PNG_FLAG_MALLOC_NULL_MEM_OK) == 0)
|
||||
png_error(png_ptr, "Out Of memory."); /* Note "O" and "M" */
|
||||
else
|
||||
png_warning(png_ptr, "Out Of memory.");
|
||||
return (NULL);
|
||||
png_error(png_ptr, "Out Of memory.");
|
||||
}
|
||||
|
||||
hptr = (png_byte huge *)table;
|
||||
@@ -227,13 +222,7 @@ png_malloc_default(png_structp png_ptr, png_uint_32 size)
|
||||
}
|
||||
|
||||
if (png_ptr->offset_table_count >= png_ptr->offset_table_number)
|
||||
{
|
||||
if (png_ptr->flags&PNG_FLAG_MALLOC_NULL_MEM_OK) == 0)
|
||||
png_error(png_ptr, "Out of Memory."); /* Note "o" and "M" */
|
||||
else
|
||||
png_warning(png_ptr, "Out of Memory.");
|
||||
return (NULL);
|
||||
}
|
||||
png_error(png_ptr, "Out of Memory.");
|
||||
|
||||
ret = png_ptr->offset_table_ptr[png_ptr->offset_table_count++];
|
||||
}
|
||||
@@ -242,10 +231,7 @@ png_malloc_default(png_structp png_ptr, png_uint_32 size)
|
||||
|
||||
if (ret == NULL)
|
||||
{
|
||||
if (png_ptr->flags&PNG_FLAG_MALLOC_NULL_MEM_OK) == 0)
|
||||
png_error(png_ptr, "Out of memory."); /* Note "o" and "m" */
|
||||
else
|
||||
png_warning(png_ptr, "Out of memory."); /* Note "o" and "m" */
|
||||
png_error(png_ptr, "Out of memory."); /* Note "o" and "m" */
|
||||
}
|
||||
|
||||
return (ret);
|
||||
@@ -311,7 +297,7 @@ png_voidp /* PRIVATE */
|
||||
png_create_struct(int type)
|
||||
{
|
||||
#ifdef PNG_USER_MEM_SUPPORTED
|
||||
return (png_create_struct_2(type, png_malloc_ptr_NULL, png_voidp_NULL));
|
||||
return (png_create_struct_2(type, NULL, NULL));
|
||||
}
|
||||
|
||||
/* Allocate memory for a png_struct or a png_info. The malloc and
|
||||
@@ -329,15 +315,20 @@ png_create_struct_2(int type, png_malloc_ptr malloc_fn, png_voidp mem_ptr)
|
||||
else if (type == PNG_STRUCT_PNG)
|
||||
size = sizeof(png_struct);
|
||||
else
|
||||
return (NULL);
|
||||
return ((png_voidp)NULL);
|
||||
|
||||
#ifdef PNG_USER_MEM_SUPPORTED
|
||||
if(malloc_fn != NULL)
|
||||
{
|
||||
png_struct dummy_struct;
|
||||
png_structp png_ptr = &dummy_struct;
|
||||
png_ptr->mem_ptr=mem_ptr;
|
||||
struct_ptr = (*(malloc_fn))(png_ptr, size);
|
||||
if (mem_ptr != NULL)
|
||||
{
|
||||
png_struct dummy_struct;
|
||||
png_structp png_ptr = &dummy_struct;
|
||||
png_ptr->mem_ptr=mem_ptr;
|
||||
struct_ptr = (*(malloc_fn))(png_ptr, size);
|
||||
}
|
||||
else
|
||||
struct_ptr = (*(malloc_fn))(NULL, size);
|
||||
if (struct_ptr != NULL)
|
||||
png_memset(struct_ptr, 0, size);
|
||||
return (struct_ptr);
|
||||
@@ -366,7 +357,7 @@ void /* PRIVATE */
|
||||
png_destroy_struct(png_voidp struct_ptr)
|
||||
{
|
||||
#ifdef PNG_USER_MEM_SUPPORTED
|
||||
png_destroy_struct_2(struct_ptr, png_free_ptr_NULL, png_voidp_NULL);
|
||||
png_destroy_struct_2(struct_ptr, (png_free_ptr)NULL, (png_voidp)NULL);
|
||||
}
|
||||
|
||||
/* Free memory allocated by a png_create_struct() call */
|
||||
@@ -411,20 +402,20 @@ png_malloc(png_structp png_ptr, png_uint_32 size)
|
||||
{
|
||||
png_voidp ret;
|
||||
if (png_ptr == NULL || size == 0)
|
||||
return (NULL);
|
||||
return ((png_voidp)NULL);
|
||||
|
||||
#ifdef PNG_USER_MEM_SUPPORTED
|
||||
if(png_ptr->malloc_fn != NULL)
|
||||
{
|
||||
ret = ((png_voidp)(*(png_ptr->malloc_fn))(png_ptr, size));
|
||||
if (ret == NULL && (png_ptr->flags&PNG_FLAG_MALLOC_NULL_MEM_OK) == 0)
|
||||
if (ret == NULL)
|
||||
png_error(png_ptr, "Out of Memory!");
|
||||
return (ret);
|
||||
}
|
||||
else
|
||||
return (png_malloc_default(png_ptr, size));
|
||||
}
|
||||
png_voidp PNGAPI
|
||||
png_voidp /* PRIVATE */
|
||||
png_malloc_default(png_structp png_ptr, png_uint_32 size)
|
||||
{
|
||||
png_voidp ret;
|
||||
@@ -432,12 +423,7 @@ png_malloc_default(png_structp png_ptr, png_uint_32 size)
|
||||
|
||||
#ifdef PNG_MAX_MALLOC_64K
|
||||
if (size > (png_uint_32)65536L)
|
||||
{
|
||||
if(png_ptr->flags&PNG_FLAG_MALLOC_NULL_MEM_OK) == 0)
|
||||
png_error(png_ptr, "Cannot Allocate > 64K");
|
||||
else
|
||||
return NULL;
|
||||
}
|
||||
png_error(png_ptr, "Cannot Allocate > 64K");
|
||||
#endif
|
||||
|
||||
#if defined(__TURBOC__) && !defined(__FLAT__)
|
||||
@@ -450,7 +436,7 @@ png_malloc_default(png_structp png_ptr, png_uint_32 size)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
if (ret == NULL && (png_ptr->flags&PNG_FLAG_MALLOC_NULL_MEM_OK) == 0)
|
||||
if (ret == NULL)
|
||||
png_error(png_ptr, "Out of Memory");
|
||||
|
||||
return (ret);
|
||||
@@ -472,7 +458,7 @@ png_free(png_structp png_ptr, png_voidp ptr)
|
||||
}
|
||||
else png_free_default(png_ptr, ptr);
|
||||
}
|
||||
void PNGAPI
|
||||
void /* PRIVATE */
|
||||
png_free_default(png_structp png_ptr, png_voidp ptr)
|
||||
{
|
||||
if (png_ptr == NULL || ptr == NULL)
|
||||
@@ -493,7 +479,7 @@ png_free_default(png_structp png_ptr, png_voidp ptr)
|
||||
|
||||
#endif /* Not Borland DOS special memory handler */
|
||||
|
||||
png_voidp PNGAPI
|
||||
png_voidp /* PRIVATE */
|
||||
png_memcpy_check (png_structp png_ptr, png_voidp s1, png_voidp s2,
|
||||
png_uint_32 length)
|
||||
{
|
||||
@@ -506,7 +492,7 @@ png_memcpy_check (png_structp png_ptr, png_voidp s1, png_voidp s2,
|
||||
return(png_memcpy (s1, s2, size));
|
||||
}
|
||||
|
||||
png_voidp PNGAPI
|
||||
png_voidp /* PRIVATE */
|
||||
png_memset_check (png_structp png_ptr, png_voidp s1, int value,
|
||||
png_uint_32 length)
|
||||
{
|
||||
|
||||
44
pngpread.c
44
pngpread.c
@@ -1,9 +1,9 @@
|
||||
|
||||
/* pngpread.c - read a png file in push mode
|
||||
*
|
||||
* libpng 1.0.13 - April 15, 2002
|
||||
* libpng 1.2.0beta4 - June 23, 2001
|
||||
* For conditions of distribution and use, see copyright notice in png.h
|
||||
* Copyright (c) 1998-2002 Glenn Randers-Pehrson
|
||||
* Copyright (c) 1998-2001 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.)
|
||||
*/
|
||||
@@ -240,12 +240,6 @@ png_push_read_chunk(png_structp png_ptr, png_infop info_ptr)
|
||||
* header chunks, and we can start reading the image (or if this
|
||||
* is called after the image has been read - we have an error).
|
||||
*/
|
||||
if (!(png_ptr->mode & PNG_HAVE_IHDR))
|
||||
png_error(png_ptr, "Missing IHDR before IDAT");
|
||||
else if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE &&
|
||||
!(png_ptr->mode & PNG_HAVE_PLTE))
|
||||
png_error(png_ptr, "Missing PLTE before IDAT");
|
||||
|
||||
if (png_ptr->mode & PNG_HAVE_IDAT)
|
||||
{
|
||||
if (png_ptr->push_length == 0)
|
||||
@@ -798,7 +792,7 @@ png_push_process_row(png_structp png_ptr)
|
||||
{
|
||||
for (i = 0; i < 4 && png_ptr->pass == 2; i++)
|
||||
{
|
||||
png_push_have_row(png_ptr, png_bytep_NULL);
|
||||
png_push_have_row(png_ptr, NULL);
|
||||
png_read_push_finish_row(png_ptr);
|
||||
}
|
||||
}
|
||||
@@ -806,13 +800,13 @@ png_push_process_row(png_structp png_ptr)
|
||||
{
|
||||
for (i = 0; i < 2 && png_ptr->pass == 4; i++)
|
||||
{
|
||||
png_push_have_row(png_ptr, png_bytep_NULL);
|
||||
png_push_have_row(png_ptr, NULL);
|
||||
png_read_push_finish_row(png_ptr);
|
||||
}
|
||||
}
|
||||
if (png_ptr->pass == 6 && png_ptr->height <= 4)
|
||||
{
|
||||
png_push_have_row(png_ptr, png_bytep_NULL);
|
||||
png_push_have_row(png_ptr, NULL);
|
||||
png_read_push_finish_row(png_ptr);
|
||||
}
|
||||
break;
|
||||
@@ -829,7 +823,7 @@ png_push_process_row(png_structp png_ptr)
|
||||
{
|
||||
for (i = 0; i < 4 && png_ptr->pass == 2; i++)
|
||||
{
|
||||
png_push_have_row(png_ptr, png_bytep_NULL);
|
||||
png_push_have_row(png_ptr, NULL);
|
||||
png_read_push_finish_row(png_ptr);
|
||||
}
|
||||
}
|
||||
@@ -845,14 +839,14 @@ png_push_process_row(png_structp png_ptr)
|
||||
}
|
||||
for (i = 0; i < 4 && png_ptr->pass == 2; i++)
|
||||
{
|
||||
png_push_have_row(png_ptr, png_bytep_NULL);
|
||||
png_push_have_row(png_ptr, NULL);
|
||||
png_read_push_finish_row(png_ptr);
|
||||
}
|
||||
if (png_ptr->pass == 4) /* pass 3 might be empty */
|
||||
{
|
||||
for (i = 0; i < 2 && png_ptr->pass == 4; i++)
|
||||
{
|
||||
png_push_have_row(png_ptr, png_bytep_NULL);
|
||||
png_push_have_row(png_ptr, NULL);
|
||||
png_read_push_finish_row(png_ptr);
|
||||
}
|
||||
}
|
||||
@@ -870,7 +864,7 @@ png_push_process_row(png_structp png_ptr)
|
||||
{
|
||||
for (i = 0; i < 2 && png_ptr->pass == 4; i++)
|
||||
{
|
||||
png_push_have_row(png_ptr, png_bytep_NULL);
|
||||
png_push_have_row(png_ptr, NULL);
|
||||
png_read_push_finish_row(png_ptr);
|
||||
}
|
||||
}
|
||||
@@ -886,12 +880,12 @@ png_push_process_row(png_structp png_ptr)
|
||||
}
|
||||
for (i = 0; i < 2 && png_ptr->pass == 4; i++)
|
||||
{
|
||||
png_push_have_row(png_ptr, png_bytep_NULL);
|
||||
png_push_have_row(png_ptr, NULL);
|
||||
png_read_push_finish_row(png_ptr);
|
||||
}
|
||||
if (png_ptr->pass == 6) /* pass 5 might be empty */
|
||||
{
|
||||
png_push_have_row(png_ptr, png_bytep_NULL);
|
||||
png_push_have_row(png_ptr, NULL);
|
||||
png_read_push_finish_row(png_ptr);
|
||||
}
|
||||
break;
|
||||
@@ -906,7 +900,7 @@ png_push_process_row(png_structp png_ptr)
|
||||
}
|
||||
if (png_ptr->pass == 6) /* skip top generated row */
|
||||
{
|
||||
png_push_have_row(png_ptr, png_bytep_NULL);
|
||||
png_push_have_row(png_ptr, NULL);
|
||||
png_read_push_finish_row(png_ptr);
|
||||
}
|
||||
break;
|
||||
@@ -917,7 +911,7 @@ png_push_process_row(png_structp png_ptr)
|
||||
png_read_push_finish_row(png_ptr);
|
||||
if (png_ptr->pass != 6)
|
||||
break;
|
||||
png_push_have_row(png_ptr, png_bytep_NULL);
|
||||
png_push_have_row(png_ptr, NULL);
|
||||
png_read_push_finish_row(png_ptr);
|
||||
}
|
||||
}
|
||||
@@ -1078,8 +1072,8 @@ png_push_read_tEXt(png_structp png_ptr, png_infop info_ptr)
|
||||
text_ptr->compression = PNG_TEXT_COMPRESSION_NONE;
|
||||
text_ptr->key = key;
|
||||
#ifdef PNG_iTXt_SUPPORTED
|
||||
text_ptr->lang = NULL;
|
||||
text_ptr->lang_key = NULL;
|
||||
text_ptr->lang = (char *)NULL;
|
||||
text_ptr->lang_key = (char *)NULL;
|
||||
#endif
|
||||
text_ptr->text = text;
|
||||
|
||||
@@ -1263,8 +1257,8 @@ png_push_read_zTXt(png_structp png_ptr, png_infop info_ptr)
|
||||
text_ptr->compression = PNG_TEXT_COMPRESSION_zTXt;
|
||||
text_ptr->key = key;
|
||||
#ifdef PNG_iTXt_SUPPORTED
|
||||
text_ptr->lang = NULL;
|
||||
text_ptr->lang_key = NULL;
|
||||
text_ptr->lang = (char *)NULL;
|
||||
text_ptr->lang_key = (char *)NULL;
|
||||
#endif
|
||||
text_ptr->text = text;
|
||||
|
||||
@@ -1497,7 +1491,7 @@ png_set_progressive_read_fn(png_structp png_ptr, png_voidp progressive_ptr,
|
||||
png_ptr->row_fn = row_fn;
|
||||
png_ptr->end_fn = end_fn;
|
||||
|
||||
png_set_read_fn(png_ptr, progressive_ptr, (png_rw_ptr)png_push_fill_buffer);
|
||||
png_set_read_fn(png_ptr, progressive_ptr, png_push_fill_buffer);
|
||||
}
|
||||
|
||||
png_voidp PNGAPI
|
||||
@@ -1505,4 +1499,6 @@ png_get_progressive_ptr(png_structp png_ptr)
|
||||
{
|
||||
return png_ptr->io_ptr;
|
||||
}
|
||||
|
||||
#endif /* PNG_PROGRESSIVE_READ_SUPPORTED */
|
||||
|
||||
|
||||
72
pngread.c
72
pngread.c
@@ -1,9 +1,9 @@
|
||||
|
||||
/* pngread.c - read a PNG file
|
||||
*
|
||||
* libpng 1.0.13 - April 15, 2002
|
||||
* libpng 1.2.0beta4 - June 23, 2001
|
||||
* For conditions of distribution and use, see copyright notice in png.h
|
||||
* Copyright (c) 1998-2002 Glenn Randers-Pehrson
|
||||
* Copyright (c) 1998-2001 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.)
|
||||
*
|
||||
@@ -22,7 +22,7 @@ png_create_read_struct(png_const_charp user_png_ver, png_voidp error_ptr,
|
||||
|
||||
#ifdef PNG_USER_MEM_SUPPORTED
|
||||
return (png_create_read_struct_2(user_png_ver, error_ptr, error_fn,
|
||||
warn_fn, png_voidp_NULL, png_malloc_ptr_NULL, png_free_ptr_NULL));
|
||||
warn_fn, NULL, NULL, NULL));
|
||||
}
|
||||
|
||||
/* Alternate create PNG structure for reading, and allocate any memory needed. */
|
||||
@@ -45,19 +45,18 @@ png_create_read_struct_2(png_const_charp user_png_ver, png_voidp error_ptr,
|
||||
|
||||
png_debug(1, "in png_create_read_struct\n");
|
||||
#ifdef PNG_USER_MEM_SUPPORTED
|
||||
png_ptr = (png_structp)png_create_struct_2(PNG_STRUCT_PNG,
|
||||
(png_malloc_ptr)malloc_fn, (png_voidp)mem_ptr);
|
||||
if ((png_ptr = (png_structp)png_create_struct_2(PNG_STRUCT_PNG,
|
||||
(png_malloc_ptr)malloc_fn, (png_voidp)mem_ptr)) == NULL)
|
||||
#else
|
||||
png_ptr = (png_structp)png_create_struct(PNG_STRUCT_PNG);
|
||||
if ((png_ptr = (png_structp)png_create_struct(PNG_STRUCT_PNG)) == NULL)
|
||||
#endif
|
||||
if (png_ptr == NULL)
|
||||
return (NULL);
|
||||
{
|
||||
return (png_structp)NULL;
|
||||
}
|
||||
|
||||
#if !defined(PNG_1_0_X)
|
||||
#ifdef PNG_ASSEMBLER_CODE_SUPPORTED
|
||||
png_init_mmx_flags(png_ptr); /* 1.2.0 addition */
|
||||
#endif
|
||||
#endif /* PNG_1_0_X */
|
||||
|
||||
#ifdef PNG_SETJMP_SUPPORTED
|
||||
#ifdef USE_FAR_KEYWORD
|
||||
@@ -68,14 +67,8 @@ png_create_read_struct_2(png_const_charp user_png_ver, png_voidp error_ptr,
|
||||
{
|
||||
png_free(png_ptr, png_ptr->zbuf);
|
||||
png_ptr->zbuf=NULL;
|
||||
#ifdef PNG_USER_MEM_SUPPORTED
|
||||
png_destroy_struct_2((png_voidp)png_ptr,
|
||||
(png_free_ptr)free_fn,
|
||||
(png_voidp)mem_ptr);
|
||||
#else
|
||||
png_destroy_struct((png_voidp)png_ptr);
|
||||
#endif
|
||||
return (NULL);
|
||||
png_destroy_struct(png_ptr);
|
||||
return (png_structp)NULL;
|
||||
}
|
||||
#ifdef USE_FAR_KEYWORD
|
||||
png_memcpy(png_ptr->jmpbuf,jmpbuf,sizeof(jmp_buf));
|
||||
@@ -114,7 +107,7 @@ png_create_read_struct_2(png_const_charp user_png_ver, png_voidp error_ptr,
|
||||
user_png_ver);
|
||||
png_warning(png_ptr, msg);
|
||||
}
|
||||
sprintf(msg, "Application is running with png.c from libpng-%.20s",
|
||||
sprintf(msg, "Application is running with png.c from libpng-%.20s",
|
||||
png_libpng_ver);
|
||||
png_warning(png_ptr, msg);
|
||||
#endif
|
||||
@@ -146,7 +139,7 @@ png_create_read_struct_2(png_const_charp user_png_ver, png_voidp error_ptr,
|
||||
png_ptr->zstream.next_out = png_ptr->zbuf;
|
||||
png_ptr->zstream.avail_out = (uInt)png_ptr->zbuf_size;
|
||||
|
||||
png_set_read_fn(png_ptr, png_voidp_NULL, png_rw_ptr_NULL);
|
||||
png_set_read_fn(png_ptr, NULL, NULL);
|
||||
|
||||
return (png_ptr);
|
||||
}
|
||||
@@ -172,21 +165,21 @@ png_read_init_2(png_structp png_ptr, png_const_charp user_png_ver,
|
||||
if(sizeof(png_struct) > png_struct_size || sizeof(png_info) > png_info_size)
|
||||
{
|
||||
char msg[80];
|
||||
png_ptr->warning_fn=NULL;
|
||||
png_ptr->warning_fn=(png_error_ptr)NULL;
|
||||
if (user_png_ver)
|
||||
{
|
||||
sprintf(msg, "Application was compiled with png.h from libpng-%.20s",
|
||||
user_png_ver);
|
||||
png_warning(png_ptr, msg);
|
||||
}
|
||||
sprintf(msg, "Application is running with png.c from libpng-%.20s",
|
||||
sprintf(msg, "Application is running with png.c from libpng-%.20s",
|
||||
png_libpng_ver);
|
||||
png_warning(png_ptr, msg);
|
||||
}
|
||||
#endif
|
||||
if(sizeof(png_struct) > png_struct_size)
|
||||
{
|
||||
png_ptr->error_fn=NULL;
|
||||
png_ptr->error_fn=(png_error_ptr)NULL;
|
||||
#ifdef PNG_ERROR_NUMBERS_SUPPORTED
|
||||
png_ptr->flags=0;
|
||||
#endif
|
||||
@@ -195,7 +188,7 @@ png_read_init_2(png_structp png_ptr, png_const_charp user_png_ver,
|
||||
}
|
||||
if(sizeof(png_info) > png_info_size)
|
||||
{
|
||||
png_ptr->error_fn=NULL;
|
||||
png_ptr->error_fn=(png_error_ptr)NULL;
|
||||
#ifdef PNG_ERROR_NUMBERS_SUPPORTED
|
||||
png_ptr->flags=0;
|
||||
#endif
|
||||
@@ -224,7 +217,7 @@ png_read_init_3(png_structpp ptr_ptr, png_const_charp user_png_ver,
|
||||
#ifdef PNG_LEGACY_SUPPORTED
|
||||
png_ptr->flags |= PNG_FLAG_LIBRARY_MISMATCH;
|
||||
#else
|
||||
png_ptr->warning_fn=NULL;
|
||||
png_ptr->warning_fn=(png_error_ptr)NULL;
|
||||
png_warning(png_ptr,
|
||||
"Application uses deprecated png_read_init() and should be recompiled.");
|
||||
break;
|
||||
@@ -274,7 +267,7 @@ png_read_init_3(png_structpp ptr_ptr, png_const_charp user_png_ver,
|
||||
png_ptr->zstream.next_out = png_ptr->zbuf;
|
||||
png_ptr->zstream.avail_out = (uInt)png_ptr->zbuf_size;
|
||||
|
||||
png_set_read_fn(png_ptr, png_voidp_NULL, png_rw_ptr_NULL);
|
||||
png_set_read_fn(png_ptr, NULL, NULL);
|
||||
}
|
||||
|
||||
/* Read the information before the actual image data. This has been
|
||||
@@ -382,9 +375,6 @@ png_read_info(png_structp png_ptr, png_infop info_ptr)
|
||||
png_debug2(0, "Reading %s chunk, length=%lu.\n", png_ptr->chunk_name,
|
||||
length);
|
||||
|
||||
if (length > PNG_MAX_UINT)
|
||||
png_error(png_ptr, "Invalid chunk length.");
|
||||
|
||||
/* This should be a binary subdivision search or a hash for
|
||||
* matching the chunk name rather than a linear search.
|
||||
*/
|
||||
@@ -668,9 +658,6 @@ png_read_row(png_structp png_ptr, png_bytep row, png_bytep dsp_row)
|
||||
png_read_data(png_ptr, chunk_length, 4);
|
||||
png_ptr->idat_size = png_get_uint_32(chunk_length);
|
||||
|
||||
if (png_ptr->idat_size > PNG_MAX_UINT)
|
||||
png_error(png_ptr, "Invalid chunk length.");
|
||||
|
||||
png_reset_crc(png_ptr);
|
||||
png_crc_read(png_ptr, png_ptr->chunk_name, 4);
|
||||
if (png_memcmp(png_ptr->chunk_name, png_IDAT, 4))
|
||||
@@ -782,7 +769,7 @@ png_read_row(png_structp png_ptr, png_bytep row, png_bytep dsp_row)
|
||||
* not called png_set_interlace_handling(), the display_row buffer will
|
||||
* be ignored, so pass NULL to it.
|
||||
*
|
||||
* [*] png_handle_alpha() does not exist yet, as of libpng version 1.0.13
|
||||
* [*] png_handle_alpha() does not exist yet, as of libpng version 1.2.0beta4
|
||||
*/
|
||||
|
||||
void PNGAPI
|
||||
@@ -809,14 +796,14 @@ png_read_rows(png_structp png_ptr, png_bytepp row,
|
||||
for (i = 0; i < num_rows; i++)
|
||||
{
|
||||
png_bytep rptr = *rp;
|
||||
png_read_row(png_ptr, rptr, png_bytep_NULL);
|
||||
png_read_row(png_ptr, rptr, NULL);
|
||||
rp++;
|
||||
}
|
||||
else if(dp != NULL)
|
||||
for (i = 0; i < num_rows; i++)
|
||||
{
|
||||
png_bytep dptr = *dp;
|
||||
png_read_row(png_ptr, png_bytep_NULL, dptr);
|
||||
png_read_row(png_ptr, NULL, dptr);
|
||||
dp++;
|
||||
}
|
||||
}
|
||||
@@ -831,7 +818,7 @@ png_read_rows(png_structp png_ptr, png_bytepp row,
|
||||
* only call this function once. If you desire to have an image for
|
||||
* each pass of a interlaced image, use png_read_rows() instead.
|
||||
*
|
||||
* [*] png_handle_alpha() does not exist yet, as of libpng version 1.0.13
|
||||
* [*] png_handle_alpha() does not exist yet, as of libpng version 1.2.0beta4
|
||||
*/
|
||||
void PNGAPI
|
||||
png_read_image(png_structp png_ptr, png_bytepp image)
|
||||
@@ -861,7 +848,7 @@ png_read_image(png_structp png_ptr, png_bytepp image)
|
||||
rp = image;
|
||||
for (i = 0; i < image_height; i++)
|
||||
{
|
||||
png_read_row(png_ptr, *rp, png_bytep_NULL);
|
||||
png_read_row(png_ptr, *rp, NULL);
|
||||
rp++;
|
||||
}
|
||||
}
|
||||
@@ -949,9 +936,6 @@ png_read_end(png_structp png_ptr, png_infop info_ptr)
|
||||
|
||||
png_debug1(0, "Reading %s chunk.\n", png_ptr->chunk_name);
|
||||
|
||||
if (length > PNG_MAX_UINT)
|
||||
png_error(png_ptr, "Invalid chunk length.");
|
||||
|
||||
if (!png_memcmp(png_ptr->chunk_name, png_IHDR, 4))
|
||||
png_handle_IHDR(png_ptr, info_ptr, length);
|
||||
else if (!png_memcmp(png_ptr->chunk_name, png_IEND, 4))
|
||||
@@ -1097,7 +1081,7 @@ png_destroy_read_struct(png_structpp png_ptr_ptr, png_infopp info_ptr_ptr,
|
||||
#else
|
||||
png_destroy_struct((png_voidp)info_ptr);
|
||||
#endif
|
||||
*info_ptr_ptr = NULL;
|
||||
*info_ptr_ptr = (png_infop)NULL;
|
||||
}
|
||||
|
||||
if (end_info_ptr != NULL)
|
||||
@@ -1111,7 +1095,7 @@ png_destroy_read_struct(png_structpp png_ptr_ptr, png_infopp info_ptr_ptr,
|
||||
#else
|
||||
png_destroy_struct((png_voidp)end_info_ptr);
|
||||
#endif
|
||||
*end_info_ptr_ptr = NULL;
|
||||
*end_info_ptr_ptr = (png_infop)NULL;
|
||||
}
|
||||
|
||||
if (png_ptr != NULL)
|
||||
@@ -1122,7 +1106,7 @@ png_destroy_read_struct(png_structpp png_ptr_ptr, png_infopp info_ptr_ptr,
|
||||
#else
|
||||
png_destroy_struct((png_voidp)png_ptr);
|
||||
#endif
|
||||
*png_ptr_ptr = NULL;
|
||||
*png_ptr_ptr = (png_structp)NULL;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1149,7 +1133,7 @@ png_read_destroy(png_structp png_ptr, png_infop info_ptr, png_infop end_info_ptr
|
||||
png_info_destroy(png_ptr, end_info_ptr);
|
||||
|
||||
png_free(png_ptr, png_ptr->zbuf);
|
||||
png_free(png_ptr, png_ptr->big_row_buf);
|
||||
png_free(png_ptr, png_ptr->row_buf);
|
||||
png_free(png_ptr, png_ptr->prev_row);
|
||||
#if defined(PNG_READ_DITHER_SUPPORTED)
|
||||
png_free(png_ptr, png_ptr->palette_lookup);
|
||||
|
||||
7
pngrio.c
7
pngrio.c
@@ -1,9 +1,9 @@
|
||||
|
||||
/* pngrio.c - functions for data input
|
||||
*
|
||||
* libpng 1.0.13 - April 15, 2002
|
||||
* libpng 1.2.0beta4 - June 23, 2001
|
||||
* For conditions of distribution and use, see copyright notice in png.h
|
||||
* Copyright (c) 1998-2002 Glenn Randers-Pehrson
|
||||
* Copyright (c) 1998-2001 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.)
|
||||
*
|
||||
@@ -140,7 +140,7 @@ png_set_read_fn(png_structp png_ptr, png_voidp io_ptr,
|
||||
if (read_data_fn != NULL)
|
||||
png_ptr->read_data_fn = read_data_fn;
|
||||
else
|
||||
png_ptr->read_data_fn = (png_rw_ptr)png_default_read_data;
|
||||
png_ptr->read_data_fn = png_default_read_data;
|
||||
#else
|
||||
png_ptr->read_data_fn = read_data_fn;
|
||||
#endif
|
||||
@@ -159,3 +159,4 @@ png_set_read_fn(png_structp png_ptr, png_voidp io_ptr,
|
||||
png_ptr->output_flush_fn = NULL;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
121
pngrtran.c
121
pngrtran.c
@@ -1,9 +1,9 @@
|
||||
|
||||
/* pngrtran.c - transforms the data in a row for PNG readers
|
||||
*
|
||||
* libpng 1.0.13 - April 15, 2002
|
||||
* libpng 1.2.0beta4 - June 23, 2001
|
||||
* For conditions of distribution and use, see copyright notice in png.h
|
||||
* Copyright (c) 1998-2002 Glenn Randers-Pehrson
|
||||
* Copyright (c) 1998-2001 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.)
|
||||
*
|
||||
@@ -510,19 +510,13 @@ png_set_dither(png_structp png_ptr, png_colorp palette,
|
||||
* only do transformations on images where the file_gamma and screen_gamma
|
||||
* are not close reciprocals, otherwise it slows things down slightly, and
|
||||
* also needlessly introduces small errors.
|
||||
*
|
||||
* We will turn off gamma transformation later if no semitransparent entries
|
||||
* are present in the tRNS array for palette images. We can't do it here
|
||||
* because we don't necessarily have the tRNS chunk yet.
|
||||
*/
|
||||
void PNGAPI
|
||||
png_set_gamma(png_structp png_ptr, double scrn_gamma, double file_gamma)
|
||||
{
|
||||
png_debug(1, "in png_set_gamma\n");
|
||||
if ((fabs(scrn_gamma * file_gamma - 1.0) > PNG_GAMMA_THRESHOLD) ||
|
||||
(png_ptr->color_type & PNG_COLOR_MASK_ALPHA) ||
|
||||
(png_ptr->color_type == PNG_COLOR_TYPE_PALETTE))
|
||||
png_ptr->transformations |= PNG_GAMMA;
|
||||
if (fabs(scrn_gamma * file_gamma - 1.0) > PNG_GAMMA_THRESHOLD)
|
||||
png_ptr->transformations |= PNG_GAMMA;
|
||||
png_ptr->gamma = (float)file_gamma;
|
||||
png_ptr->screen_gamma = (float)scrn_gamma;
|
||||
}
|
||||
@@ -698,23 +692,23 @@ png_init_read_transformations(png_structp png_ptr)
|
||||
{
|
||||
case 1:
|
||||
png_ptr->background.gray *= (png_uint_16)0xff;
|
||||
png_ptr->background.red = png_ptr->background.green
|
||||
= png_ptr->background.blue = png_ptr->background.gray;
|
||||
png_ptr->background.red = png_ptr->background.green =
|
||||
png_ptr->background.blue = png_ptr->background.gray;
|
||||
break;
|
||||
case 2:
|
||||
png_ptr->background.gray *= (png_uint_16)0x55;
|
||||
png_ptr->background.red = png_ptr->background.green
|
||||
= png_ptr->background.blue = png_ptr->background.gray;
|
||||
png_ptr->background.red = png_ptr->background.green =
|
||||
png_ptr->background.blue = png_ptr->background.gray;
|
||||
break;
|
||||
case 4:
|
||||
png_ptr->background.gray *= (png_uint_16)0x11;
|
||||
png_ptr->background.red = png_ptr->background.green
|
||||
= png_ptr->background.blue = png_ptr->background.gray;
|
||||
png_ptr->background.red = png_ptr->background.green =
|
||||
png_ptr->background.blue = png_ptr->background.gray;
|
||||
break;
|
||||
case 8:
|
||||
case 16:
|
||||
png_ptr->background.red = png_ptr->background.green
|
||||
= png_ptr->background.blue = png_ptr->background.gray;
|
||||
png_ptr->background.red = png_ptr->background.green =
|
||||
png_ptr->background.blue = png_ptr->background.gray;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -748,26 +742,10 @@ png_init_read_transformations(png_structp png_ptr)
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(PNG_READ_BACKGROUND_SUPPORTED) && defined(PNG_READ_GAMMA_SUPPORTED)
|
||||
#if defined(PNG_READ_BACKGROUND_SUPPORTED)
|
||||
png_ptr->background_1 = png_ptr->background;
|
||||
#endif
|
||||
#if defined(PNG_READ_GAMMA_SUPPORTED) && defined(PNG_FLOATING_POINT_SUPPORTED)
|
||||
|
||||
if ((color_type == PNG_COLOR_TYPE_PALETTE && png_ptr->num_trans != 0)
|
||||
&& (fabs(png_ptr->screen_gamma * png_ptr->gamma - 1.0)
|
||||
< PNG_GAMMA_THRESHOLD))
|
||||
{
|
||||
int i,k;
|
||||
k=0;
|
||||
for (i=0; i<png_ptr->num_trans; i++)
|
||||
{
|
||||
if (png_ptr->trans[i] != 0 && png_ptr->trans[i] != 0xff)
|
||||
k=1; /* partial transparency is present */
|
||||
}
|
||||
if (k == 0)
|
||||
png_ptr->transformations &= (~PNG_GAMMA);
|
||||
}
|
||||
|
||||
if (png_ptr->transformations & (PNG_GAMMA | PNG_RGB_TO_GRAY))
|
||||
{
|
||||
png_build_gamma_table(png_ptr);
|
||||
@@ -776,8 +754,6 @@ png_init_read_transformations(png_structp png_ptr)
|
||||
{
|
||||
if (color_type == PNG_COLOR_TYPE_PALETTE)
|
||||
{
|
||||
/* could skip if no transparency and
|
||||
*/
|
||||
png_color back, back_1;
|
||||
png_colorp palette = png_ptr->palette;
|
||||
int num_palette = png_ptr->num_palette;
|
||||
@@ -897,16 +873,9 @@ png_init_read_transformations(png_structp png_ptr)
|
||||
break;
|
||||
}
|
||||
|
||||
png_ptr->background_1.gray = (png_uint_16)(pow(
|
||||
(double)png_ptr->background.gray / m, g) * m + .5);
|
||||
png_ptr->background.gray = (png_uint_16)(pow(
|
||||
(double)png_ptr->background.gray / m, gs) * m + .5);
|
||||
|
||||
if ((png_ptr->background.red != png_ptr->background.green) ||
|
||||
(png_ptr->background.red != png_ptr->background.blue) ||
|
||||
(png_ptr->background.red != png_ptr->background.gray))
|
||||
if (color_type & PNG_COLOR_MASK_COLOR)
|
||||
{
|
||||
/* RGB or RGBA with color background */
|
||||
/* RGB or RGBA */
|
||||
png_ptr->background_1.red = (png_uint_16)(pow(
|
||||
(double)png_ptr->background.red / m, g) * m + .5);
|
||||
png_ptr->background_1.green = (png_uint_16)(pow(
|
||||
@@ -922,17 +891,17 @@ png_init_read_transformations(png_structp png_ptr)
|
||||
}
|
||||
else
|
||||
{
|
||||
/* GRAY, GRAY ALPHA, RGB, or RGBA with gray background */
|
||||
png_ptr->background_1.red = png_ptr->background_1.green
|
||||
= png_ptr->background_1.blue = png_ptr->background_1.gray;
|
||||
png_ptr->background.red = png_ptr->background.green
|
||||
= png_ptr->background.blue = png_ptr->background.gray;
|
||||
/* GRAY or GRAY ALPHA */
|
||||
png_ptr->background_1.gray = (png_uint_16)(pow(
|
||||
(double)png_ptr->background.gray / m, g) * m + .5);
|
||||
png_ptr->background.gray = (png_uint_16)(pow(
|
||||
(double)png_ptr->background.gray / m, gs) * m + .5);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
/* transformation does not include PNG_BACKGROUND */
|
||||
#endif /* PNG_READ_BACKGROUND_SUPPORTED */
|
||||
#endif
|
||||
if (color_type == PNG_COLOR_TYPE_PALETTE)
|
||||
{
|
||||
png_colorp palette = png_ptr->palette;
|
||||
@@ -950,7 +919,7 @@ png_init_read_transformations(png_structp png_ptr)
|
||||
#if defined(PNG_READ_BACKGROUND_SUPPORTED)
|
||||
else
|
||||
#endif
|
||||
#endif /* PNG_READ_GAMMA_SUPPORTED && PNG_FLOATING_POINT_SUPPORTED */
|
||||
#endif
|
||||
#if defined(PNG_READ_BACKGROUND_SUPPORTED)
|
||||
/* No GAMMA transformation */
|
||||
if ((png_ptr->transformations & PNG_BACKGROUND) &&
|
||||
@@ -983,7 +952,7 @@ png_init_read_transformations(png_structp png_ptr)
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif /* PNG_READ_BACKGROUND_SUPPORTED */
|
||||
#endif
|
||||
|
||||
#if defined(PNG_READ_SHIFT_SUPPORTED)
|
||||
if ((png_ptr->transformations & PNG_SHIFT) &&
|
||||
@@ -1008,7 +977,7 @@ png_init_read_transformations(png_structp png_ptr)
|
||||
png_ptr->palette[i].blue >>= sb;
|
||||
}
|
||||
}
|
||||
#endif /* PNG_READ_SHIFT_SUPPORTED */
|
||||
#endif
|
||||
}
|
||||
#if !defined(PNG_READ_GAMMA_SUPPORTED) && !defined(PNG_READ_SHIFT_SUPPORTED) \
|
||||
&& !defined(PNG_READ_BACKGROUND_SUPPORTED)
|
||||
@@ -1258,15 +1227,12 @@ From Andreas Dilger e-mail to png-implement, 26 March 1998:
|
||||
((png_ptr->num_trans != 0 ) ||
|
||||
(png_ptr->color_type & PNG_COLOR_MASK_ALPHA)))
|
||||
png_do_background(&(png_ptr->row_info), png_ptr->row_buf + 1,
|
||||
&(png_ptr->trans_values), &(png_ptr->background)
|
||||
#if defined(PNG_READ_GAMMA_SUPPORTED)
|
||||
, &(png_ptr->background_1),
|
||||
&(png_ptr->trans_values), &(png_ptr->background),
|
||||
&(png_ptr->background_1),
|
||||
png_ptr->gamma_table, png_ptr->gamma_from_1,
|
||||
png_ptr->gamma_to_1, png_ptr->gamma_16_table,
|
||||
png_ptr->gamma_16_from_1, png_ptr->gamma_16_to_1,
|
||||
png_ptr->gamma_shift
|
||||
#endif
|
||||
);
|
||||
png_ptr->gamma_shift);
|
||||
#endif
|
||||
|
||||
#if defined(PNG_READ_GAMMA_SUPPORTED)
|
||||
@@ -2346,7 +2312,7 @@ png_do_rgb_to_gray(png_structp png_ptr, png_row_infop row_info, png_bytep row)
|
||||
* paletted. Most useful for gamma correction and simplification
|
||||
* of code.
|
||||
*/
|
||||
void PNGAPI
|
||||
void /* PRIVATE */
|
||||
png_build_grayscale_palette(int bit_depth, png_colorp palette)
|
||||
{
|
||||
int num_palette;
|
||||
@@ -2579,14 +2545,11 @@ png_correct_palette(png_structp png_ptr, png_colorp palette,
|
||||
*/
|
||||
void /* PRIVATE */
|
||||
png_do_background(png_row_infop row_info, png_bytep row,
|
||||
png_color_16p trans_values, png_color_16p background
|
||||
#if defined(PNG_READ_GAMMA_SUPPORTED)
|
||||
, png_color_16p background_1,
|
||||
png_color_16p trans_values, png_color_16p background,
|
||||
png_color_16p background_1,
|
||||
png_bytep gamma_table, png_bytep gamma_from_1, png_bytep gamma_to_1,
|
||||
png_uint_16pp gamma_16, png_uint_16pp gamma_16_from_1,
|
||||
png_uint_16pp gamma_16_to_1, int gamma_shift
|
||||
#endif
|
||||
)
|
||||
png_uint_16pp gamma_16_to_1, int gamma_shift)
|
||||
{
|
||||
png_bytep sp, dp;
|
||||
png_uint_32 i;
|
||||
@@ -2969,7 +2932,6 @@ png_do_background(png_row_infop row_info, png_bytep row,
|
||||
{
|
||||
*dp = *sp;
|
||||
}
|
||||
#if defined(PNG_READ_GAMMA_SUPPORTED)
|
||||
else if (a == 0)
|
||||
{
|
||||
*dp = (png_byte)background->gray;
|
||||
@@ -2978,9 +2940,6 @@ png_do_background(png_row_infop row_info, png_bytep row,
|
||||
{
|
||||
png_composite(*dp, *sp, a, background_1->gray);
|
||||
}
|
||||
#else
|
||||
*dp = (png_byte)background->gray;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3004,17 +2963,12 @@ png_do_background(png_row_infop row_info, png_bytep row,
|
||||
*dp = (png_byte)((v >> 8) & 0xff);
|
||||
*(dp + 1) = (png_byte)(v & 0xff);
|
||||
}
|
||||
#if defined(PNG_READ_GAMMA_SUPPORTED)
|
||||
else if (a == 0)
|
||||
#else
|
||||
else
|
||||
#endif
|
||||
{
|
||||
/* background is already in screen gamma */
|
||||
*dp = (png_byte)((background->gray >> 8) & 0xff);
|
||||
*(dp + 1) = (png_byte)(background->gray & 0xff);
|
||||
}
|
||||
#if defined(PNG_READ_GAMMA_SUPPORTED)
|
||||
else
|
||||
{
|
||||
png_uint_16 g, v, w;
|
||||
@@ -3025,7 +2979,6 @@ png_do_background(png_row_infop row_info, png_bytep row,
|
||||
*dp = (png_byte)((w >> 8) & 0xff);
|
||||
*(dp + 1) = (png_byte)(w & 0xff);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -3040,16 +2993,11 @@ png_do_background(png_row_infop row_info, png_bytep row,
|
||||
{
|
||||
png_memcpy(dp, sp, 2);
|
||||
}
|
||||
#if defined(PNG_READ_GAMMA_SUPPORTED)
|
||||
else if (a == 0)
|
||||
#else
|
||||
else
|
||||
#endif
|
||||
{
|
||||
*dp = (png_byte)((background->gray >> 8) & 0xff);
|
||||
*(dp + 1) = (png_byte)(background->gray & 0xff);
|
||||
}
|
||||
#if defined(PNG_READ_GAMMA_SUPPORTED)
|
||||
else
|
||||
{
|
||||
png_uint_16 g, v;
|
||||
@@ -3059,7 +3007,6 @@ png_do_background(png_row_infop row_info, png_bytep row,
|
||||
*dp = (png_byte)((v >> 8) & 0xff);
|
||||
*(dp + 1) = (png_byte)(v & 0xff);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3181,17 +3128,17 @@ png_do_background(png_row_infop row_info, png_bytep row,
|
||||
png_uint_16 v, w, x;
|
||||
|
||||
v = gamma_16_to_1[*(sp + 1) >> gamma_shift][*sp];
|
||||
png_composite_16(w, v, a, background_1->red);
|
||||
png_composite_16(w, v, a, background->red);
|
||||
x = gamma_16_from_1[((w&0xff) >> gamma_shift)][w >> 8];
|
||||
*dp = (png_byte)((x >> 8) & 0xff);
|
||||
*(dp + 1) = (png_byte)(x & 0xff);
|
||||
v = gamma_16_to_1[*(sp + 3) >> gamma_shift][*(sp + 2)];
|
||||
png_composite_16(w, v, a, background_1->green);
|
||||
png_composite_16(w, v, a, background->green);
|
||||
x = gamma_16_from_1[((w&0xff) >> gamma_shift)][w >> 8];
|
||||
*(dp + 2) = (png_byte)((x >> 8) & 0xff);
|
||||
*(dp + 3) = (png_byte)(x & 0xff);
|
||||
v = gamma_16_to_1[*(sp + 5) >> gamma_shift][*(sp + 4)];
|
||||
png_composite_16(w, v, a, background_1->blue);
|
||||
png_composite_16(w, v, a, background->blue);
|
||||
x = gamma_16_from_1[(w & 0xff) >> gamma_shift][w >> 8];
|
||||
*(dp + 4) = (png_byte)((x >> 8) & 0xff);
|
||||
*(dp + 5) = (png_byte)(x & 0xff);
|
||||
|
||||
73
pngrutil.c
73
pngrutil.c
@@ -1,9 +1,9 @@
|
||||
|
||||
/* pngrutil.c - utilities to read a PNG file
|
||||
*
|
||||
* libpng 1.0.13 - April 15, 2002
|
||||
* libpng 1.2.0beta4 - June 23, 2001
|
||||
* For conditions of distribution and use, see copyright notice in png.h
|
||||
* Copyright (c) 1998-2002 Glenn Randers-Pehrson
|
||||
* Copyright (c) 1998-2001 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.)
|
||||
*
|
||||
@@ -691,8 +691,6 @@ png_handle_cHRM(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
|
||||
png_fixed_point int_x_white, int_y_white, int_x_red, int_y_red, int_x_green,
|
||||
int_y_green, int_x_blue, int_y_blue;
|
||||
|
||||
png_uint_32 uint_x, uint_y;
|
||||
|
||||
png_debug(1, "in png_handle_cHRM\n");
|
||||
|
||||
if (!(png_ptr->mode & PNG_HAVE_IHDR))
|
||||
@@ -726,69 +724,60 @@ png_handle_cHRM(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
|
||||
}
|
||||
|
||||
png_crc_read(png_ptr, buf, 4);
|
||||
uint_x = png_get_uint_32(buf);
|
||||
int_x_white = (png_fixed_point)png_get_uint_32(buf);
|
||||
|
||||
png_crc_read(png_ptr, buf, 4);
|
||||
uint_y = png_get_uint_32(buf);
|
||||
int_y_white = (png_fixed_point)png_get_uint_32(buf);
|
||||
|
||||
if (uint_x > 80000L || uint_y > 80000L ||
|
||||
uint_x + uint_y > 100000L)
|
||||
if (int_x_white > 80000L || int_y_white > 80000L ||
|
||||
int_x_white + int_y_white > 100000L)
|
||||
{
|
||||
png_warning(png_ptr, "Invalid cHRM white point");
|
||||
png_crc_finish(png_ptr, 24);
|
||||
return;
|
||||
}
|
||||
int_x_white = (png_fixed_point)uint_x;
|
||||
int_y_white = (png_fixed_point)uint_y;
|
||||
|
||||
png_crc_read(png_ptr, buf, 4);
|
||||
uint_x = png_get_uint_32(buf);
|
||||
int_x_red = (png_fixed_point)png_get_uint_32(buf);
|
||||
|
||||
png_crc_read(png_ptr, buf, 4);
|
||||
uint_y = png_get_uint_32(buf);
|
||||
int_y_red = (png_fixed_point)png_get_uint_32(buf);
|
||||
|
||||
if (uint_x > 80000L || uint_y > 80000L ||
|
||||
uint_x + uint_y > 100000L)
|
||||
if (int_x_red > 80000L || int_y_red > 80000L ||
|
||||
int_x_red + int_y_red > 100000L)
|
||||
{
|
||||
png_warning(png_ptr, "Invalid cHRM red point");
|
||||
png_crc_finish(png_ptr, 16);
|
||||
return;
|
||||
}
|
||||
int_x_red = (png_fixed_point)uint_x;
|
||||
int_y_red = (png_fixed_point)uint_y;
|
||||
|
||||
png_crc_read(png_ptr, buf, 4);
|
||||
uint_x = png_get_uint_32(buf);
|
||||
int_x_green = (png_fixed_point)png_get_uint_32(buf);
|
||||
|
||||
png_crc_read(png_ptr, buf, 4);
|
||||
uint_y = png_get_uint_32(buf);
|
||||
int_y_green = (png_fixed_point)png_get_uint_32(buf);
|
||||
|
||||
if (uint_x > 80000L || uint_y > 80000L ||
|
||||
uint_x + uint_y > 100000L)
|
||||
if (int_x_green > 80000L || int_y_green > 80000L ||
|
||||
int_x_green + int_y_green > 100000L)
|
||||
{
|
||||
png_warning(png_ptr, "Invalid cHRM green point");
|
||||
png_crc_finish(png_ptr, 8);
|
||||
return;
|
||||
}
|
||||
int_x_green = (png_fixed_point)uint_x;
|
||||
int_y_green = (png_fixed_point)uint_y;
|
||||
|
||||
png_crc_read(png_ptr, buf, 4);
|
||||
uint_x = png_get_uint_32(buf);
|
||||
int_x_blue = (png_fixed_point)png_get_uint_32(buf);
|
||||
|
||||
png_crc_read(png_ptr, buf, 4);
|
||||
uint_y = png_get_uint_32(buf);
|
||||
int_y_blue = (png_fixed_point)png_get_uint_32(buf);
|
||||
|
||||
if (uint_x > 80000L || uint_y > 80000L ||
|
||||
uint_x + uint_y > 100000L)
|
||||
if (int_x_blue > 80000L || int_y_blue > 80000L ||
|
||||
int_x_blue + int_y_blue > 100000L)
|
||||
{
|
||||
png_warning(png_ptr, "Invalid cHRM blue point");
|
||||
png_crc_finish(png_ptr, 0);
|
||||
return;
|
||||
}
|
||||
int_x_blue = (png_fixed_point)uint_x;
|
||||
int_y_blue = (png_fixed_point)uint_y;
|
||||
|
||||
#ifdef PNG_FLOATING_POINT_SUPPORTED
|
||||
white_x = (float)int_x_white / (float)100000.0;
|
||||
white_y = (float)int_y_white / (float)100000.0;
|
||||
@@ -905,6 +894,17 @@ png_handle_sRGB(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
|
||||
# ifdef PNG_FLOATING_POINT_SUPPORTED
|
||||
igamma=(int)(info_ptr->gamma * 100000.);
|
||||
# endif
|
||||
#endif
|
||||
#if 0 && defined(PNG_cHRM_SUPPORTED) && !defined(PNG_FIXED_POINT_SUPPORTED)
|
||||
/* We need to define these here because they aren't in png.h */
|
||||
png_fixed_point int_x_white;
|
||||
png_fixed_point int_y_white;
|
||||
png_fixed_point int_x_red;
|
||||
png_fixed_point int_y_red;
|
||||
png_fixed_point int_x_green;
|
||||
png_fixed_point int_y_green;
|
||||
png_fixed_point int_x_blue;
|
||||
png_fixed_point int_y_blue;
|
||||
#endif
|
||||
if(igamma < 45000L || igamma > 46000L)
|
||||
{
|
||||
@@ -952,7 +952,6 @@ png_handle_iCCP(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
|
||||
{
|
||||
png_charp chunkdata;
|
||||
png_byte compression_type;
|
||||
png_bytep pC;
|
||||
png_charp profile;
|
||||
png_uint_32 skip = 0;
|
||||
png_uint_32 profile_size = 0;
|
||||
@@ -1030,7 +1029,7 @@ png_handle_iCCP(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
|
||||
|
||||
profile_length = data_length - prefix_length;
|
||||
|
||||
if ( prefix_length > data_length || profile_length < 4)
|
||||
if ( profile_length < 4)
|
||||
{
|
||||
png_free(png_ptr, chunkdata);
|
||||
png_warning(png_ptr, "Profile size field missing from iCCP chunk");
|
||||
@@ -1038,11 +1037,10 @@ png_handle_iCCP(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
|
||||
}
|
||||
|
||||
/* Check the profile_size recorded in the first 32 bits of the ICC profile */
|
||||
pC = (png_bytep)(chunkdata+prefix_length);
|
||||
profile_size = ((*(pC ))<<24) |
|
||||
((*(pC+1))<<16) |
|
||||
((*(pC+2))<< 8) |
|
||||
((*(pC+3)) );
|
||||
profile_size = ((*(chunkdata+prefix_length))<<24) |
|
||||
((*(chunkdata+prefix_length+1))<<16) |
|
||||
((*(chunkdata+prefix_length+2))<< 8) |
|
||||
((*(chunkdata+prefix_length+3)) );
|
||||
|
||||
if(profile_size < profile_length)
|
||||
profile_length = profile_size;
|
||||
@@ -2977,8 +2975,7 @@ defined(PNG_USER_TRANSFORM_PTR_SUPPORTED)
|
||||
if (row_bytes > (png_uint_32)65536L)
|
||||
png_error(png_ptr, "This image requires a row greater than 64KB");
|
||||
#endif
|
||||
png_ptr->big_row_buf = (png_bytep)png_malloc(png_ptr, row_bytes+64);
|
||||
png_ptr->row_buf = png_ptr->big_row_buf+32;
|
||||
png_ptr->row_buf = (png_bytep)png_malloc(png_ptr, row_bytes);
|
||||
#if defined(PNG_DEBUG) && defined(PNG_USE_PNGGCCRD)
|
||||
png_ptr->row_buf_size = row_bytes;
|
||||
#endif
|
||||
|
||||
119
pngset.c
119
pngset.c
@@ -1,9 +1,9 @@
|
||||
|
||||
/* pngset.c - storage of image information into info struct
|
||||
*
|
||||
* libpng 1.0.13 - April 15, 2002
|
||||
* libpng 1.2.0beta4 - June 23, 2001
|
||||
* For conditions of distribution and use, see copyright notice in png.h
|
||||
* Copyright (c) 1998-2002 Glenn Randers-Pehrson
|
||||
* Copyright (c) 1998-2001 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.)
|
||||
*
|
||||
@@ -40,25 +40,6 @@ png_set_cHRM(png_structp png_ptr, png_infop info_ptr,
|
||||
if (png_ptr == NULL || info_ptr == NULL)
|
||||
return;
|
||||
|
||||
if (white_x < 0.0 || white_y < 0.0 ||
|
||||
red_x < 0.0 || red_y < 0.0 ||
|
||||
green_x < 0.0 || green_y < 0.0 ||
|
||||
blue_x < 0.0 || blue_y < 0.0)
|
||||
{
|
||||
png_warning(png_ptr,
|
||||
"Ignoring attempt to set negative chromaticity value");
|
||||
return;
|
||||
}
|
||||
if (white_x > 21474.83 || white_y > 21474.83 ||
|
||||
red_x > 21474.83 || red_y > 21474.83 ||
|
||||
green_x > 21474.83 || green_y > 21474.83 ||
|
||||
blue_x > 21474.83 || blue_y > 21474.83)
|
||||
{
|
||||
png_warning(png_ptr,
|
||||
"Ignoring attempt to set chromaticity value exceeding 21474.83");
|
||||
return;
|
||||
}
|
||||
|
||||
info_ptr->x_white = (float)white_x;
|
||||
info_ptr->y_white = (float)white_y;
|
||||
info_ptr->x_red = (float)red_x;
|
||||
@@ -70,12 +51,12 @@ png_set_cHRM(png_structp png_ptr, png_infop info_ptr,
|
||||
#ifdef PNG_FIXED_POINT_SUPPORTED
|
||||
info_ptr->int_x_white = (png_fixed_point)(white_x*100000.+0.5);
|
||||
info_ptr->int_y_white = (png_fixed_point)(white_y*100000.+0.5);
|
||||
info_ptr->int_x_red = (png_fixed_point)( red_x*100000.+0.5);
|
||||
info_ptr->int_y_red = (png_fixed_point)( red_y*100000.+0.5);
|
||||
info_ptr->int_x_red = (png_fixed_point)(red_x*100000.+0.5);
|
||||
info_ptr->int_y_red = (png_fixed_point)(red_y*100000.+0.5);
|
||||
info_ptr->int_x_green = (png_fixed_point)(green_x*100000.+0.5);
|
||||
info_ptr->int_y_green = (png_fixed_point)(green_y*100000.+0.5);
|
||||
info_ptr->int_x_blue = (png_fixed_point)( blue_x*100000.+0.5);
|
||||
info_ptr->int_y_blue = (png_fixed_point)( blue_y*100000.+0.5);
|
||||
info_ptr->int_x_blue = (png_fixed_point)(blue_x*100000.+0.5);
|
||||
info_ptr->int_y_blue = (png_fixed_point)(blue_y*100000.+0.5);
|
||||
#endif
|
||||
info_ptr->valid |= PNG_INFO_cHRM;
|
||||
}
|
||||
@@ -91,24 +72,6 @@ png_set_cHRM_fixed(png_structp png_ptr, png_infop info_ptr,
|
||||
if (png_ptr == NULL || info_ptr == NULL)
|
||||
return;
|
||||
|
||||
if (white_x < 0 || white_y < 0 ||
|
||||
red_x < 0 || red_y < 0 ||
|
||||
green_x < 0 || green_y < 0 ||
|
||||
blue_x < 0 || blue_y < 0)
|
||||
{
|
||||
png_warning(png_ptr,
|
||||
"Ignoring attempt to set negative chromaticity value");
|
||||
return;
|
||||
}
|
||||
if (white_x > (double) PNG_MAX_UINT || white_y > (double) PNG_MAX_UINT ||
|
||||
red_x > (double) PNG_MAX_UINT || red_y > (double) PNG_MAX_UINT ||
|
||||
green_x > (double) PNG_MAX_UINT || green_y > (double) PNG_MAX_UINT ||
|
||||
blue_x > (double) PNG_MAX_UINT || blue_y > (double) PNG_MAX_UINT)
|
||||
{
|
||||
png_warning(png_ptr,
|
||||
"Ignoring attempt to set chromaticity value exceeding 21474.83");
|
||||
return;
|
||||
}
|
||||
info_ptr->int_x_white = white_x;
|
||||
info_ptr->int_y_white = white_y;
|
||||
info_ptr->int_x_red = red_x;
|
||||
@@ -120,12 +83,12 @@ png_set_cHRM_fixed(png_structp png_ptr, png_infop info_ptr,
|
||||
#ifdef PNG_FLOATING_POINT_SUPPORTED
|
||||
info_ptr->x_white = (float)(white_x/100000.);
|
||||
info_ptr->y_white = (float)(white_y/100000.);
|
||||
info_ptr->x_red = (float)( red_x/100000.);
|
||||
info_ptr->y_red = (float)( red_y/100000.);
|
||||
info_ptr->x_red = (float)(red_x/100000.);
|
||||
info_ptr->y_red = (float)(red_y/100000.);
|
||||
info_ptr->x_green = (float)(green_x/100000.);
|
||||
info_ptr->y_green = (float)(green_y/100000.);
|
||||
info_ptr->x_blue = (float)( blue_x/100000.);
|
||||
info_ptr->y_blue = (float)( blue_y/100000.);
|
||||
info_ptr->x_blue = (float)(blue_x/100000.);
|
||||
info_ptr->y_blue = (float)(blue_y/100000.);
|
||||
#endif
|
||||
info_ptr->valid |= PNG_INFO_cHRM;
|
||||
}
|
||||
@@ -137,25 +100,16 @@ png_set_cHRM_fixed(png_structp png_ptr, png_infop info_ptr,
|
||||
void PNGAPI
|
||||
png_set_gAMA(png_structp png_ptr, png_infop info_ptr, double file_gamma)
|
||||
{
|
||||
double gamma;
|
||||
png_debug1(1, "in %s storage function\n", "gAMA");
|
||||
if (png_ptr == NULL || info_ptr == NULL)
|
||||
return;
|
||||
|
||||
/* Check for overflow */
|
||||
if (file_gamma > 21474.83)
|
||||
{
|
||||
png_warning(png_ptr, "Limiting gamma to 21474.83");
|
||||
gamma=21474.83;
|
||||
}
|
||||
else
|
||||
gamma=file_gamma;
|
||||
info_ptr->gamma = (float)gamma;
|
||||
info_ptr->gamma = (float)file_gamma;
|
||||
#ifdef PNG_FIXED_POINT_SUPPORTED
|
||||
info_ptr->int_gamma = (int)(gamma*100000.+.5);
|
||||
info_ptr->int_gamma = (int)(file_gamma*100000.+.5);
|
||||
#endif
|
||||
info_ptr->valid |= PNG_INFO_gAMA;
|
||||
if(gamma == 0.0)
|
||||
if(file_gamma == 0.0)
|
||||
png_warning(png_ptr, "Setting gamma=0");
|
||||
}
|
||||
#endif
|
||||
@@ -163,35 +117,18 @@ void PNGAPI
|
||||
png_set_gAMA_fixed(png_structp png_ptr, png_infop info_ptr, png_fixed_point
|
||||
int_gamma)
|
||||
{
|
||||
png_fixed_point gamma;
|
||||
|
||||
png_debug1(1, "in %s storage function\n", "gAMA");
|
||||
if (png_ptr == NULL || info_ptr == NULL)
|
||||
return;
|
||||
|
||||
if (int_gamma > (png_fixed_point) PNG_MAX_UINT)
|
||||
{
|
||||
png_warning(png_ptr, "Limiting gamma to 21474.83");
|
||||
gamma=PNG_MAX_UINT;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (int_gamma < 0)
|
||||
{
|
||||
png_warning(png_ptr, "Setting negative gamma to zero");
|
||||
gamma=0;
|
||||
}
|
||||
else
|
||||
gamma=int_gamma;
|
||||
}
|
||||
#ifdef PNG_FLOATING_POINT_SUPPORTED
|
||||
info_ptr->gamma = (float)(gamma/100000.);
|
||||
info_ptr->gamma = (float)(int_gamma/100000.);
|
||||
#endif
|
||||
#ifdef PNG_FIXED_POINT_SUPPORTED
|
||||
info_ptr->int_gamma = gamma;
|
||||
info_ptr->int_gamma = int_gamma;
|
||||
#endif
|
||||
info_ptr->valid |= PNG_INFO_gAMA;
|
||||
if(gamma == 0)
|
||||
if(int_gamma == 0)
|
||||
png_warning(png_ptr, "Setting gamma=0");
|
||||
}
|
||||
#endif
|
||||
@@ -215,9 +152,8 @@ png_set_hIST(png_structp png_ptr, png_infop info_ptr, png_uint_16p hist)
|
||||
#ifdef PNG_FREE_ME_SUPPORTED
|
||||
png_free_data(png_ptr, info_ptr, PNG_FREE_HIST, 0);
|
||||
#endif
|
||||
/* Changed from info->num_palette to 256 in version 1.2.1 */
|
||||
png_ptr->hist = (png_uint_16p)png_malloc(png_ptr,
|
||||
(png_uint_32)(256 * sizeof (png_uint_16)));
|
||||
(png_uint_32)(info_ptr->num_palette * sizeof (png_uint_16)));
|
||||
|
||||
for (i = 0; i < info_ptr->num_palette; i++)
|
||||
png_ptr->hist[i] = hist[i];
|
||||
@@ -305,7 +241,9 @@ png_set_IHDR(png_structp png_ptr, png_infop info_ptr,
|
||||
info_ptr->compression_type = (png_byte)compression_type;
|
||||
info_ptr->filter_type = (png_byte)filter_type;
|
||||
info_ptr->interlace_type = (png_byte)interlace_type;
|
||||
if (info_ptr->color_type & PNG_COLOR_MASK_COLOR)
|
||||
if (info_ptr->color_type == PNG_COLOR_TYPE_PALETTE)
|
||||
info_ptr->channels = 1;
|
||||
else if (info_ptr->color_type & PNG_COLOR_MASK_COLOR)
|
||||
info_ptr->channels = 3;
|
||||
else
|
||||
info_ptr->channels = 1;
|
||||
@@ -472,12 +410,8 @@ png_set_PLTE(png_structp png_ptr, png_infop info_ptr,
|
||||
#ifdef PNG_FREE_ME_SUPPORTED
|
||||
png_free_data(png_ptr, info_ptr, PNG_FREE_PLTE, 0);
|
||||
#endif
|
||||
/* Changed in libpng-1.2.1 to allocate 256 instead of num_palette entries,
|
||||
in case of an invalid PNG file that has too-large sample values. */
|
||||
png_ptr->palette = (png_colorp)png_zalloc(png_ptr, (uInt)256,
|
||||
png_ptr->palette = (png_colorp)png_zalloc(png_ptr, (uInt)num_palette,
|
||||
sizeof (png_color));
|
||||
if (png_ptr->palette == NULL)
|
||||
png_error(png_ptr, "Unable to malloc palette");
|
||||
png_memcpy(png_ptr->palette, palette, num_palette * sizeof (png_color));
|
||||
info_ptr->palette = png_ptr->palette;
|
||||
info_ptr->num_palette = png_ptr->num_palette = (png_uint_16)num_palette;
|
||||
@@ -686,7 +620,7 @@ png_set_text(png_structp png_ptr, png_infop info_ptr, png_textp text_ptr,
|
||||
#ifdef PNG_iTXt_SUPPORTED
|
||||
{
|
||||
/* set iTXt data */
|
||||
if (text_ptr[i].lang != NULL)
|
||||
if (text_ptr[i].key != NULL)
|
||||
lang_len = png_strlen(text_ptr[i].lang);
|
||||
else
|
||||
lang_len = 0;
|
||||
@@ -742,8 +676,8 @@ png_set_text(png_structp png_ptr, png_infop info_ptr, png_textp text_ptr,
|
||||
#endif
|
||||
{
|
||||
#ifdef PNG_iTXt_SUPPORTED
|
||||
textp->lang=NULL;
|
||||
textp->lang_key=NULL;
|
||||
textp->lang=(png_charp)NULL;
|
||||
textp->lang_key=(png_charp)NULL;
|
||||
#endif
|
||||
textp->text=textp->key + key_len + 1;
|
||||
}
|
||||
@@ -806,9 +740,8 @@ png_set_tRNS(png_structp png_ptr, png_infop info_ptr,
|
||||
#ifdef PNG_FREE_ME_SUPPORTED
|
||||
png_free_data(png_ptr, info_ptr, PNG_FREE_TRNS, 0);
|
||||
#endif
|
||||
/* Changed from num_trans to 256 in version 1.2.1 */
|
||||
png_ptr->trans = info_ptr->trans = (png_bytep)png_malloc(png_ptr,
|
||||
(png_uint_32)256);
|
||||
(png_uint_32)num_trans);
|
||||
png_memcpy(info_ptr->trans, trans, (png_size_t)num_trans);
|
||||
#ifdef PNG_FREE_ME_SUPPORTED
|
||||
info_ptr->free_me |= PNG_FREE_TRNS;
|
||||
@@ -1040,7 +973,6 @@ png_set_invalid(png_structp png_ptr, png_infop info_ptr, int mask)
|
||||
}
|
||||
|
||||
|
||||
#ifndef PNG_1_0_X
|
||||
#ifdef PNG_ASSEMBLER_CODE_SUPPORTED
|
||||
/* this function was added to libpng 1.2.0 and should always exist by default */
|
||||
void PNGAPI
|
||||
@@ -1095,4 +1027,3 @@ png_set_mmx_thresholds (png_structp png_ptr,
|
||||
png_ptr->mmx_rowbytes_threshold = mmx_rowbytes_threshold;
|
||||
}
|
||||
#endif /* ?PNG_ASSEMBLER_CODE_SUPPORTED */
|
||||
#endif /* ?PNG_1_0_X */
|
||||
|
||||
42
pngtest.c
42
pngtest.c
@@ -1,9 +1,9 @@
|
||||
|
||||
/* pngtest.c - a simple test program to test libpng
|
||||
*
|
||||
* libpng 1.0.13 - April 15, 2002
|
||||
* libpng 1.2.0beta4 - June 23, 2001
|
||||
* For conditions of distribution and use, see copyright notice in png.h
|
||||
* Copyright (c) 1998-2002 Glenn Randers-Pehrson
|
||||
* Copyright (c) 1998-2001 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.)
|
||||
*
|
||||
@@ -481,13 +481,13 @@ png_debug_malloc(png_structp png_ptr, png_uint_32 size)
|
||||
png_debug_malloc directly, with png_ptr == NULL which is OK */
|
||||
|
||||
if (size == 0)
|
||||
return (NULL);
|
||||
return (png_voidp)(NULL);
|
||||
|
||||
/* This calls the library allocator twice, once to get the requested
|
||||
buffer and once to get a new free list entry. */
|
||||
{
|
||||
memory_infop pinfo = (memory_infop)png_malloc_default(png_ptr,
|
||||
(png_uint_32)sizeof *pinfo);
|
||||
sizeof *pinfo);
|
||||
pinfo->size = size;
|
||||
current_allocation += size;
|
||||
total_allocation += size;
|
||||
@@ -594,7 +594,7 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
|
||||
#endif
|
||||
char inbuf[256], outbuf[256];
|
||||
|
||||
row_buf = NULL;
|
||||
row_buf = (png_bytep)NULL;
|
||||
|
||||
#if defined(_WIN32_WCE)
|
||||
MultiByteToWideChar(CP_ACP, 0, inname, -1, path, MAX_PATH);
|
||||
@@ -621,12 +621,12 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
|
||||
|
||||
png_debug(0, "Allocating read and write structures\n");
|
||||
#ifdef PNG_USER_MEM_SUPPORTED
|
||||
read_ptr = png_create_read_struct_2(PNG_LIBPNG_VER_STRING, png_voidp_NULL,
|
||||
png_error_ptr_NULL, png_error_ptr_NULL, png_voidp_NULL,
|
||||
read_ptr = png_create_read_struct_2(PNG_LIBPNG_VER_STRING, (png_voidp)NULL,
|
||||
(png_error_ptr)NULL, (png_error_ptr)NULL, (png_voidp)NULL,
|
||||
(png_malloc_ptr)png_debug_malloc, (png_free_ptr)png_debug_free);
|
||||
#else
|
||||
read_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, png_voidp_NULL,
|
||||
png_error_ptr_NULL, png_error_ptr_NULL);
|
||||
read_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, (png_voidp)NULL,
|
||||
(png_error_ptr)NULL, (png_error_ptr)NULL);
|
||||
#endif
|
||||
#if defined(PNG_NO_STDIO)
|
||||
png_set_error_fn(read_ptr, (png_voidp)inname, pngtest_error,
|
||||
@@ -634,12 +634,12 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
|
||||
#endif
|
||||
#ifdef PNG_WRITE_SUPPORTED
|
||||
#ifdef PNG_USER_MEM_SUPPORTED
|
||||
write_ptr = png_create_write_struct_2(PNG_LIBPNG_VER_STRING, png_voidp_NULL,
|
||||
png_error_ptr_NULL, png_error_ptr_NULL, png_voidp_NULL,
|
||||
write_ptr = png_create_write_struct_2(PNG_LIBPNG_VER_STRING, (png_voidp)NULL,
|
||||
(png_error_ptr)NULL, (png_error_ptr)NULL, (png_voidp)NULL,
|
||||
(png_malloc_ptr)png_debug_malloc, (png_free_ptr)png_debug_free);
|
||||
#else
|
||||
write_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, png_voidp_NULL,
|
||||
png_error_ptr_NULL, png_error_ptr_NULL);
|
||||
write_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, (png_voidp)NULL,
|
||||
(png_error_ptr)NULL, (png_error_ptr)NULL);
|
||||
#endif
|
||||
#if defined(PNG_NO_STDIO)
|
||||
png_set_error_fn(write_ptr, (png_voidp)inname, pngtest_error,
|
||||
@@ -727,9 +727,9 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
|
||||
else
|
||||
{
|
||||
#ifdef PNG_WRITE_SUPPORTED
|
||||
png_set_write_status_fn(write_ptr, png_write_status_ptr_NULL);
|
||||
png_set_write_status_fn(write_ptr, NULL);
|
||||
#endif
|
||||
png_set_read_status_fn(read_ptr, png_read_status_ptr_NULL);
|
||||
png_set_read_status_fn(read_ptr, NULL);
|
||||
}
|
||||
|
||||
#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED)
|
||||
@@ -748,12 +748,10 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
|
||||
#define HANDLE_CHUNK_IF_SAFE 2
|
||||
#define HANDLE_CHUNK_ALWAYS 3
|
||||
#if defined(PNG_READ_UNKNOWN_CHUNKS_SUPPORTED)
|
||||
png_set_keep_unknown_chunks(read_ptr, HANDLE_CHUNK_ALWAYS,
|
||||
png_bytep_NULL, 0);
|
||||
png_set_keep_unknown_chunks(read_ptr, HANDLE_CHUNK_ALWAYS, NULL, 0);
|
||||
#endif
|
||||
#if defined(PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED)
|
||||
png_set_keep_unknown_chunks(write_ptr, HANDLE_CHUNK_IF_SAFE,
|
||||
png_bytep_NULL, 0);
|
||||
png_set_keep_unknown_chunks(write_ptr, HANDLE_CHUNK_IF_SAFE, NULL, 0);
|
||||
#endif
|
||||
|
||||
png_debug(0, "Reading info struct\n");
|
||||
@@ -1058,7 +1056,7 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
|
||||
png_debug2(0, "0x%08lx (%ld bytes)\n", (unsigned long)row_buf,
|
||||
png_get_rowbytes(read_ptr, read_info_ptr));
|
||||
#endif /* !SINGLE_ROWBUF_ALLOC */
|
||||
png_read_rows(read_ptr, (png_bytepp)&row_buf, png_bytepp_NULL, 1);
|
||||
png_read_rows(read_ptr, (png_bytepp)&row_buf, (png_bytepp)NULL, 1);
|
||||
|
||||
#ifdef PNG_WRITE_SUPPORTED
|
||||
#ifdef PNGTEST_TIMING
|
||||
@@ -1281,7 +1279,7 @@ main(int argc, char *argv[])
|
||||
fprintf(STDERR," pngtest (%lu):%s", (unsigned long)PNG_LIBPNG_VER,
|
||||
PNG_HEADER_VERSION_STRING);
|
||||
fprintf(STDERR," sizeof(png_struct)=%ld, sizeof(png_info)=%ld\n",
|
||||
(long)sizeof(png_struct), (long)sizeof(png_info));
|
||||
sizeof(png_struct), sizeof(png_info));
|
||||
|
||||
/* Do some consistency checking on the memory allocation settings, I'm
|
||||
not sure this matters, but it is nice to know, the first of these
|
||||
@@ -1512,4 +1510,4 @@ main(int argc, char *argv[])
|
||||
}
|
||||
|
||||
/* Generate a compiler error if there is an old png.h in the search path. */
|
||||
typedef version_1_0_13 your_png_h_is_not_version_1_0_13;
|
||||
typedef version_1_2_0beta4 your_png_h_is_not_version_1_2_0beta4;
|
||||
|
||||
41
pngtrans.c
41
pngtrans.c
@@ -1,9 +1,9 @@
|
||||
|
||||
/* pngtrans.c - transforms the data in a row (used by both readers and writers)
|
||||
*
|
||||
* libpng 1.0.13 - April 15, 2002
|
||||
* libpng 1.2.0beta4 - June 23, 2001
|
||||
* For conditions of distribution and use, see copyright notice in png.h
|
||||
* Copyright (c) 1998-2002 Glenn Randers-Pehrson
|
||||
* Copyright (c) 1998-2001 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.)
|
||||
*/
|
||||
@@ -153,14 +153,11 @@ void /* PRIVATE */
|
||||
png_do_invert(png_row_infop row_info, png_bytep row)
|
||||
{
|
||||
png_debug(1, "in png_do_invert\n");
|
||||
/* This test removed from libpng version 1.0.13 and 1.2.0:
|
||||
* if (row_info->bit_depth == 1 &&
|
||||
*/
|
||||
if (row_info->bit_depth == 1 &&
|
||||
#if defined(PNG_USELESS_TESTS_SUPPORTED)
|
||||
if (row == NULL || row_info == NULL)
|
||||
return;
|
||||
row != NULL && row_info != NULL &&
|
||||
#endif
|
||||
if (row_info->color_type == PNG_COLOR_TYPE_GRAY)
|
||||
row_info->color_type == PNG_COLOR_TYPE_GRAY)
|
||||
{
|
||||
png_bytep rp = row;
|
||||
png_uint_32 i;
|
||||
@@ -172,33 +169,6 @@ png_do_invert(png_row_infop row_info, png_bytep row)
|
||||
rp++;
|
||||
}
|
||||
}
|
||||
else if (row_info->color_type == PNG_COLOR_TYPE_GRAY_ALPHA &&
|
||||
row_info->bit_depth == 8)
|
||||
{
|
||||
png_bytep rp = row;
|
||||
png_uint_32 i;
|
||||
png_uint_32 istop = row_info->rowbytes;
|
||||
|
||||
for (i = 0; i < istop; i+=2)
|
||||
{
|
||||
*rp = (png_byte)(~(*rp));
|
||||
rp+=2;
|
||||
}
|
||||
}
|
||||
else if (row_info->color_type == PNG_COLOR_TYPE_GRAY_ALPHA &&
|
||||
row_info->bit_depth == 16)
|
||||
{
|
||||
png_bytep rp = row;
|
||||
png_uint_32 i;
|
||||
png_uint_32 istop = row_info->rowbytes;
|
||||
|
||||
for (i = 0; i < istop; i+=4)
|
||||
{
|
||||
*rp = (png_byte)(~(*rp));
|
||||
*(rp+1) = (png_byte)(~(*(rp+1)));
|
||||
rp+=4;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -638,3 +608,4 @@ png_get_user_transform_ptr(png_structp png_ptr)
|
||||
return (NULL);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
*
|
||||
* For Intel x86 CPU and Microsoft Visual C++ compiler
|
||||
*
|
||||
* libpng version 1.0.13 - April 15, 2002
|
||||
* libpng 1.2.0beta4 - June 23, 2001
|
||||
* For conditions of distribution and use, see copyright notice in png.h
|
||||
* Copyright (c) 1998-2002 Glenn Randers-Pehrson
|
||||
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
||||
* Copyright (c) 1998, Intel Corporation
|
||||
*
|
||||
* Contributed by Nirav Chhatrapati, Intel Corporation, 1998
|
||||
@@ -39,7 +39,6 @@ png_mmx_support(void)
|
||||
push ebx //CPUID will trash these
|
||||
push ecx
|
||||
push edx
|
||||
|
||||
pushfd //Save Eflag to stack
|
||||
pop eax //Get Eflag from stack into eax
|
||||
mov ecx, eax //Make another copy of Eflag in ecx
|
||||
@@ -49,8 +48,6 @@ png_mmx_support(void)
|
||||
popfd //Restored modified value back to Eflag reg
|
||||
pushfd //Save Eflag to stack
|
||||
pop eax //Get Eflag from stack
|
||||
push ecx // save original Eflag to stack
|
||||
popfd // restore original Eflag
|
||||
xor eax, ecx //Compare the new Eflag with the original Eflag
|
||||
jz NOT_SUPPORTED //If the same, CPUID instruction is not supported,
|
||||
//skip following instructions and jump to
|
||||
|
||||
8
pngwio.c
8
pngwio.c
@@ -1,9 +1,9 @@
|
||||
|
||||
/* pngwio.c - functions for data output
|
||||
*
|
||||
* libpng 1.0.13 - April 15, 2002
|
||||
* libpng 1.2.0beta4 - June 23, 2001
|
||||
* For conditions of distribution and use, see copyright notice in png.h
|
||||
* Copyright (c) 1998-2002 Glenn Randers-Pehrson
|
||||
* Copyright (c) 1998-2001 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.)
|
||||
*
|
||||
@@ -171,7 +171,7 @@ png_set_write_fn(png_structp png_ptr, png_voidp io_ptr,
|
||||
if (write_data_fn != NULL)
|
||||
png_ptr->write_data_fn = write_data_fn;
|
||||
else
|
||||
png_ptr->write_data_fn = (png_rw_ptr)png_default_write_data;
|
||||
png_ptr->write_data_fn = png_default_write_data;
|
||||
#else
|
||||
png_ptr->write_data_fn = write_data_fn;
|
||||
#endif
|
||||
@@ -181,7 +181,7 @@ png_set_write_fn(png_structp png_ptr, png_voidp io_ptr,
|
||||
if (output_flush_fn != NULL)
|
||||
png_ptr->output_flush_fn = output_flush_fn;
|
||||
else
|
||||
png_ptr->output_flush_fn = (png_flush_ptr)png_default_flush;
|
||||
png_ptr->output_flush_fn = png_default_flush;
|
||||
#else
|
||||
png_ptr->output_flush_fn = output_flush_fn;
|
||||
#endif
|
||||
|
||||
55
pngwrite.c
55
pngwrite.c
@@ -1,9 +1,9 @@
|
||||
|
||||
/* pngwrite.c - general routines to write a PNG file
|
||||
*
|
||||
* libpng 1.0.13 - April 15, 2002
|
||||
* libpng 1.2.0beta4 - June 23, 2001
|
||||
* For conditions of distribution and use, see copyright notice in png.h
|
||||
* Copyright (c) 1998-2002 Glenn Randers-Pehrson
|
||||
* Copyright (c) 1998-2001 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.)
|
||||
*/
|
||||
@@ -424,7 +424,7 @@ png_create_write_struct(png_const_charp user_png_ver, png_voidp error_ptr,
|
||||
{
|
||||
#ifdef PNG_USER_MEM_SUPPORTED
|
||||
return (png_create_write_struct_2(user_png_ver, error_ptr, error_fn,
|
||||
warn_fn, png_voidp_NULL, png_malloc_ptr_NULL, png_free_ptr_NULL));
|
||||
warn_fn, NULL, NULL, NULL));
|
||||
}
|
||||
|
||||
/* Alternate initialize png_ptr structure, and allocate any memory needed */
|
||||
@@ -443,19 +443,18 @@ png_create_write_struct_2(png_const_charp user_png_ver, png_voidp error_ptr,
|
||||
int i;
|
||||
png_debug(1, "in png_create_write_struct\n");
|
||||
#ifdef PNG_USER_MEM_SUPPORTED
|
||||
png_ptr = (png_structp)png_create_struct_2(PNG_STRUCT_PNG,
|
||||
(png_malloc_ptr)malloc_fn, (png_voidp)mem_ptr);
|
||||
if ((png_ptr = (png_structp)png_create_struct_2(PNG_STRUCT_PNG,
|
||||
(png_malloc_ptr)malloc_fn, (png_voidp)mem_ptr)) == NULL)
|
||||
#else
|
||||
png_ptr = (png_structp)png_create_struct(PNG_STRUCT_PNG);
|
||||
if ((png_ptr = (png_structp)png_create_struct(PNG_STRUCT_PNG)) == NULL)
|
||||
#endif /* PNG_USER_MEM_SUPPORTED */
|
||||
if (png_ptr == NULL)
|
||||
return (NULL);
|
||||
{
|
||||
return ((png_structp)NULL);
|
||||
}
|
||||
|
||||
#if !defined(PNG_1_0_X)
|
||||
#ifdef PNG_ASSEMBLER_CODE_SUPPORTED
|
||||
png_init_mmx_flags(png_ptr); /* 1.2.0 addition */
|
||||
#endif
|
||||
#endif /* PNG_1_0_X */
|
||||
|
||||
#ifdef PNG_SETJMP_SUPPORTED
|
||||
#ifdef USE_FAR_KEYWORD
|
||||
@@ -467,7 +466,7 @@ png_create_write_struct_2(png_const_charp user_png_ver, png_voidp error_ptr,
|
||||
png_free(png_ptr, png_ptr->zbuf);
|
||||
png_ptr->zbuf=NULL;
|
||||
png_destroy_struct(png_ptr);
|
||||
return (NULL);
|
||||
return ((png_structp)NULL);
|
||||
}
|
||||
#ifdef USE_FAR_KEYWORD
|
||||
png_memcpy(png_ptr->jmpbuf,jmpbuf,sizeof(jmp_buf));
|
||||
@@ -505,7 +504,7 @@ png_create_write_struct_2(png_const_charp user_png_ver, png_voidp error_ptr,
|
||||
user_png_ver);
|
||||
png_warning(png_ptr, msg);
|
||||
}
|
||||
sprintf(msg, "Application is running with png.c from libpng-%.20s",
|
||||
sprintf(msg, "Application is running with png.c from libpng-%.20s",
|
||||
png_libpng_ver);
|
||||
png_warning(png_ptr, msg);
|
||||
#endif
|
||||
@@ -522,12 +521,11 @@ png_create_write_struct_2(png_const_charp user_png_ver, png_voidp error_ptr,
|
||||
png_ptr->zbuf = (png_bytep)png_malloc(png_ptr,
|
||||
(png_uint_32)png_ptr->zbuf_size);
|
||||
|
||||
png_set_write_fn(png_ptr, png_voidp_NULL, png_rw_ptr_NULL,
|
||||
png_flush_ptr_NULL);
|
||||
png_set_write_fn(png_ptr, NULL, NULL, NULL);
|
||||
|
||||
#if defined(PNG_WRITE_WEIGHTED_FILTER_SUPPORTED)
|
||||
png_set_filter_heuristics(png_ptr, PNG_FILTER_HEURISTIC_DEFAULT,
|
||||
1, png_doublep_NULL, png_doublep_NULL);
|
||||
1, NULL, NULL);
|
||||
#endif
|
||||
|
||||
return ((png_structp)png_ptr);
|
||||
@@ -552,21 +550,21 @@ png_write_init_2(png_structp png_ptr, png_const_charp user_png_ver,
|
||||
if(sizeof(png_struct) > png_struct_size || sizeof(png_info) > png_info_size)
|
||||
{
|
||||
char msg[80];
|
||||
png_ptr->warning_fn=NULL;
|
||||
png_ptr->warning_fn=(png_error_ptr)NULL;
|
||||
if (user_png_ver)
|
||||
{
|
||||
sprintf(msg, "Application was compiled with png.h from libpng-%.20s",
|
||||
user_png_ver);
|
||||
png_warning(png_ptr, msg);
|
||||
}
|
||||
sprintf(msg, "Application is running with png.c from libpng-%.20s",
|
||||
sprintf(msg, "Application is running with png.c from libpng-%.20s",
|
||||
png_libpng_ver);
|
||||
png_warning(png_ptr, msg);
|
||||
}
|
||||
#endif
|
||||
if(sizeof(png_struct) > png_struct_size)
|
||||
{
|
||||
png_ptr->error_fn=NULL;
|
||||
png_ptr->error_fn=(png_error_ptr)NULL;
|
||||
#ifdef PNG_ERROR_NUMBERS_SUPPORTED
|
||||
png_ptr->flags=0;
|
||||
#endif
|
||||
@@ -575,7 +573,7 @@ png_write_init_2(png_structp png_ptr, png_const_charp user_png_ver,
|
||||
}
|
||||
if(sizeof(png_info) > png_info_size)
|
||||
{
|
||||
png_ptr->error_fn=NULL;
|
||||
png_ptr->error_fn=(png_error_ptr)NULL;
|
||||
#ifdef PNG_ERROR_NUMBERS_SUPPORTED
|
||||
png_ptr->flags=0;
|
||||
#endif
|
||||
@@ -602,7 +600,7 @@ png_write_init_3(png_structpp ptr_ptr, png_const_charp user_png_ver,
|
||||
#ifdef PNG_LEGACY_SUPPORTED
|
||||
png_ptr->flags |= PNG_FLAG_LIBRARY_MISMATCH;
|
||||
#else
|
||||
png_ptr->warning_fn=NULL;
|
||||
png_ptr->warning_fn=(png_error_ptr)NULL;
|
||||
png_warning(png_ptr,
|
||||
"Application uses deprecated png_write_init() and should be recompiled.");
|
||||
break;
|
||||
@@ -627,19 +625,16 @@ png_write_init_3(png_structpp ptr_ptr, png_const_charp user_png_ver,
|
||||
/* reset all variables to 0 */
|
||||
png_memset(png_ptr, 0, sizeof (png_struct));
|
||||
|
||||
#if !defined(PNG_1_0_X)
|
||||
#ifdef PNG_ASSEMBLER_CODE_SUPPORTED
|
||||
png_init_mmx_flags(png_ptr); /* 1.2.0 addition */
|
||||
#endif
|
||||
#endif /* PNG_1_0_X */
|
||||
|
||||
#ifdef PNG_SETJMP_SUPPORTED
|
||||
/* restore jump buffer */
|
||||
png_memcpy(png_ptr->jmpbuf, tmp_jmp, sizeof (jmp_buf));
|
||||
#endif
|
||||
|
||||
png_set_write_fn(png_ptr, png_voidp_NULL, png_rw_ptr_NULL,
|
||||
png_flush_ptr_NULL);
|
||||
png_set_write_fn(png_ptr, NULL, NULL, NULL);
|
||||
|
||||
/* initialize zbuf - compression buffer */
|
||||
png_ptr->zbuf_size = PNG_ZBUF_SIZE;
|
||||
@@ -648,7 +643,7 @@ png_write_init_3(png_structpp ptr_ptr, png_const_charp user_png_ver,
|
||||
|
||||
#if defined(PNG_WRITE_WEIGHTED_FILTER_SUPPORTED)
|
||||
png_set_filter_heuristics(png_ptr, PNG_FILTER_HEURISTIC_DEFAULT,
|
||||
1, png_doublep_NULL, png_doublep_NULL);
|
||||
1, NULL, NULL);
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -710,11 +705,6 @@ png_write_row(png_structp png_ptr, png_bytep row)
|
||||
/* initialize transformations and other stuff if first time */
|
||||
if (png_ptr->row_number == 0 && png_ptr->pass == 0)
|
||||
{
|
||||
/* make sure we wrote the header info */
|
||||
if (!(png_ptr->mode & PNG_WROTE_INFO_BEFORE_PLTE))
|
||||
png_error(png_ptr,
|
||||
"png_write_info was never called before png_write_row.");
|
||||
|
||||
/* check for transforms that have been set but were defined out */
|
||||
#if !defined(PNG_WRITE_INVERT_SUPPORTED) && defined(PNG_READ_INVERT_SUPPORTED)
|
||||
if (png_ptr->transformations & PNG_INVERT_MONO)
|
||||
@@ -953,7 +943,6 @@ png_destroy_write_struct(png_structpp png_ptr_ptr, png_infopp info_ptr_ptr)
|
||||
png_ptr = *png_ptr_ptr;
|
||||
#ifdef PNG_USER_MEM_SUPPORTED
|
||||
free_fn = png_ptr->free_fn;
|
||||
mem_ptr = png_ptr->mem_ptr;
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -979,7 +968,7 @@ png_destroy_write_struct(png_structpp png_ptr_ptr, png_infopp info_ptr_ptr)
|
||||
#else
|
||||
png_destroy_struct((png_voidp)info_ptr);
|
||||
#endif
|
||||
*info_ptr_ptr = NULL;
|
||||
*info_ptr_ptr = (png_infop)NULL;
|
||||
}
|
||||
|
||||
if (png_ptr != NULL)
|
||||
@@ -991,7 +980,7 @@ png_destroy_write_struct(png_structpp png_ptr_ptr, png_infopp info_ptr_ptr)
|
||||
#else
|
||||
png_destroy_struct((png_voidp)png_ptr);
|
||||
#endif
|
||||
*png_ptr_ptr = NULL;
|
||||
*png_ptr_ptr = (png_structp)NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
|
||||
/* pngwtran.c - transforms the data in a row for PNG writers
|
||||
*
|
||||
* libpng 1.0.13 - April 15, 2002
|
||||
* libpng 1.2.0beta4 - June 23, 2001
|
||||
* For conditions of distribution and use, see copyright notice in png.h
|
||||
* Copyright (c) 1998-2002 Glenn Randers-Pehrson
|
||||
* Copyright (c) 1998-2001 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.)
|
||||
*/
|
||||
|
||||
59
pngwutil.c
59
pngwutil.c
@@ -1,9 +1,9 @@
|
||||
|
||||
/* pngwutil.c - utilities to write a PNG file
|
||||
*
|
||||
* libpng 1.0.13 - April 15, 2002
|
||||
* libpng 1.2.0beta4 - June 23, 2001
|
||||
* For conditions of distribution and use, see copyright notice in png.h
|
||||
* Copyright (c) 1998-2002 Glenn Randers-Pehrson
|
||||
* Copyright (c) 1998-2001 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.)
|
||||
*/
|
||||
@@ -608,8 +608,7 @@ png_write_IEND(png_structp png_ptr)
|
||||
PNG_IEND;
|
||||
#endif
|
||||
png_debug(1, "in png_write_IEND\n");
|
||||
png_write_chunk(png_ptr, (png_bytep)png_IEND, png_bytep_NULL,
|
||||
(png_size_t)0);
|
||||
png_write_chunk(png_ptr, (png_bytep)png_IEND, NULL, (png_size_t)0);
|
||||
png_ptr->mode |= PNG_HAVE_IEND;
|
||||
}
|
||||
|
||||
@@ -997,12 +996,6 @@ png_write_tRNS(png_structp png_ptr, png_bytep trans, png_color_16p tran,
|
||||
else if (color_type == PNG_COLOR_TYPE_GRAY)
|
||||
{
|
||||
/* one 16 bit value */
|
||||
if(tran->gray >= (1 << png_ptr->bit_depth))
|
||||
{
|
||||
png_warning(png_ptr,
|
||||
"Ignoring attempt to write tRNS chunk out-of-range for bit_depth");
|
||||
return;
|
||||
}
|
||||
png_save_uint_16(buf, tran->gray);
|
||||
png_write_chunk(png_ptr, (png_bytep)png_tRNS, buf, (png_size_t)2);
|
||||
}
|
||||
@@ -1012,12 +1005,6 @@ png_write_tRNS(png_structp png_ptr, png_bytep trans, png_color_16p tran,
|
||||
png_save_uint_16(buf, tran->red);
|
||||
png_save_uint_16(buf + 2, tran->green);
|
||||
png_save_uint_16(buf + 4, tran->blue);
|
||||
if(png_ptr->bit_depth == 8 && (buf[0] | buf[2] | buf[4]))
|
||||
{
|
||||
png_warning(png_ptr,
|
||||
"Ignoring attempt to write 16-bit tRNS chunk when bit_depth is 8");
|
||||
return;
|
||||
}
|
||||
png_write_chunk(png_ptr, (png_bytep)png_tRNS, buf, (png_size_t)6);
|
||||
}
|
||||
else
|
||||
@@ -1058,22 +1045,10 @@ png_write_bKGD(png_structp png_ptr, png_color_16p back, int color_type)
|
||||
png_save_uint_16(buf, back->red);
|
||||
png_save_uint_16(buf + 2, back->green);
|
||||
png_save_uint_16(buf + 4, back->blue);
|
||||
if(png_ptr->bit_depth == 8 && (buf[0] | buf[2] | buf[4]))
|
||||
{
|
||||
png_warning(png_ptr,
|
||||
"Ignoring attempt to write 16-bit bKGD chunk when bit_depth is 8");
|
||||
return;
|
||||
}
|
||||
png_write_chunk(png_ptr, (png_bytep)png_bKGD, buf, (png_size_t)6);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(back->gray >= (1 << png_ptr->bit_depth))
|
||||
{
|
||||
png_warning(png_ptr,
|
||||
"Ignoring attempt to write bKGD chunk out-of-range for bit_depth");
|
||||
return;
|
||||
}
|
||||
png_save_uint_16(buf, back->gray);
|
||||
png_write_chunk(png_ptr, (png_bytep)png_bKGD, buf, (png_size_t)2);
|
||||
}
|
||||
@@ -1349,28 +1324,22 @@ png_write_iTXt(png_structp png_ptr, int compression, png_charp key,
|
||||
png_warning(png_ptr, "Empty keyword in iTXt chunk");
|
||||
return;
|
||||
}
|
||||
if (lang == NULL || (lang_len = png_check_keyword(png_ptr, lang, &new_lang))==0)
|
||||
if (lang == NULL || (lang_len = png_check_keyword(png_ptr, lang,
|
||||
&new_lang))==0)
|
||||
{
|
||||
png_warning(png_ptr, "Empty language field in iTXt chunk");
|
||||
new_lang = NULL;
|
||||
lang_len = 0;
|
||||
return;
|
||||
}
|
||||
lang_key_len = png_strlen(lang_key);
|
||||
text_len = png_strlen(text);
|
||||
|
||||
if (lang_key == NULL)
|
||||
lang_key_len = 0;
|
||||
else
|
||||
lang_key_len = png_strlen(lang_key);
|
||||
|
||||
if (text == NULL)
|
||||
if (text == NULL || *text == '\0')
|
||||
text_len = 0;
|
||||
else
|
||||
text_len = png_strlen(text);
|
||||
|
||||
/* compute the compressed data; do it now for the length */
|
||||
text_len = png_text_compress(png_ptr, text, text_len, compression-2,
|
||||
&comp);
|
||||
|
||||
|
||||
/* make sure we include the compression flag, the compression byte,
|
||||
* and the NULs after the key, lang, and lang_key parts */
|
||||
|
||||
@@ -1400,15 +1369,15 @@ png_write_iTXt(png_structp png_ptr, int compression, png_charp key,
|
||||
cbuf[1] = 0;
|
||||
png_write_chunk_data(png_ptr, cbuf, 2);
|
||||
|
||||
cbuf[0] = 0;
|
||||
png_write_chunk_data(png_ptr, (new_lang ? (png_bytep)new_lang : cbuf), lang_len + 1);
|
||||
png_write_chunk_data(png_ptr, (lang_key ? (png_bytep)lang_key : cbuf), lang_key_len + 1);
|
||||
png_write_chunk_data(png_ptr, (png_bytep)new_lang, lang_len + 1);
|
||||
png_write_chunk_data(png_ptr, (png_bytep)lang_key, lang_key_len+1);
|
||||
png_write_chunk_data(png_ptr, '\0', 1);
|
||||
|
||||
png_write_compressed_data_out(png_ptr, &comp);
|
||||
|
||||
png_write_chunk_end(png_ptr);
|
||||
png_free(png_ptr, new_key);
|
||||
if (new_lang)
|
||||
png_free(png_ptr, new_lang);
|
||||
png_free(png_ptr, new_lang);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
Microsoft Developer Studio Build File, Format Version 6.00 for
|
||||
libpng 1.0.13 (April 15, 2002) and zlib
|
||||
libpng 1.2.0beta4 (June 23, 2001) and zlib
|
||||
|
||||
Copyright (C) 2000 Simon-Pierre Cadieux
|
||||
For conditions of distribution and use, see copyright notice in png.h
|
||||
@@ -24,12 +24,12 @@ To build:
|
||||
This project will build the PNG Development Group's "official" versions of
|
||||
libpng and zlib libraries:
|
||||
|
||||
libpng10.dll (default version, currently C code only)
|
||||
libpng10.dll (C + Assembler version)
|
||||
libpng10.dll (C + Assembler debug version)
|
||||
libpng10.dll (C code debug version)
|
||||
libpng10[c,e-m].dll (reserved for official versions)
|
||||
libpng10[n-z].dll (available for private versions)
|
||||
libpng3.dll (default version, currently C code only)
|
||||
libpng3.dll (C + Assembler version)
|
||||
libpng3.dll (C + Assembler debug version)
|
||||
libpng3.dll (C code debug version)
|
||||
libpng3[c,e-m].dll (reserved for official versions)
|
||||
libpng3[n-z].dll (available for private versions)
|
||||
zlib.dll (default version, currently C code only)
|
||||
zlibd.dll (debug version)
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@ BSC32=bscmake.exe
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 /nologo /dll /machine:I386
|
||||
# ADD LINK32 /nologo /dll /machine:I386 /out:".\win32\libpng\dll\libpng10.dll"
|
||||
# ADD LINK32 /nologo /dll /machine:I386 /out:".\win32\libpng\dll\libpng3.dll"
|
||||
# SUBTRACT LINK32 /pdb:none
|
||||
|
||||
!ELSEIF "$(CFG)" == "libpng - Win32 DLL Debug"
|
||||
@@ -84,7 +84,7 @@ BSC32=bscmake.exe
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 /nologo /dll /debug /machine:I386 /pdbtype:sept
|
||||
# ADD LINK32 /nologo /dll /debug /machine:I386 /out:".\win32\libpng\dll_dbg\libpng10d.dll"
|
||||
# ADD LINK32 /nologo /dll /debug /machine:I386 /out:".\win32\libpng\dll_dbg\libpng3d.dll"
|
||||
|
||||
!ELSEIF "$(CFG)" == "libpng - Win32 DLL ASM"
|
||||
|
||||
@@ -111,7 +111,7 @@ BSC32=bscmake.exe
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 /nologo /dll /machine:I386
|
||||
# ADD LINK32 /nologo /dll /machine:I386 /out:".\win32\libpng\dll_asm\libpng10a.dll"
|
||||
# ADD LINK32 /nologo /dll /machine:I386 /out:".\win32\libpng\dll_asm\libpng3a.dll"
|
||||
# SUBTRACT LINK32 /pdb:none
|
||||
|
||||
!ELSEIF "$(CFG)" == "libpng - Win32 DLL Debug ASM"
|
||||
@@ -139,7 +139,7 @@ BSC32=bscmake.exe
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 /nologo /dll /debug /machine:I386 /pdbtype:sept
|
||||
# ADD LINK32 /nologo /dll /debug /machine:I386 /out:".\win32\libpng\dll_dbga\libpng10b.dll"
|
||||
# ADD LINK32 /nologo /dll /debug /machine:I386 /out:".\win32\libpng\dll_dbga\libpng3b.dll"
|
||||
|
||||
!ELSEIF "$(CFG)" == "libpng - Win32 LIB"
|
||||
|
||||
|
||||
@@ -81,7 +81,7 @@ BEGIN
|
||||
VALUE "FileDescription", "PNG image compression library\000"
|
||||
VALUE "FileVersion", PNG_LIBPNG_VER_STRING "\000"
|
||||
VALUE "InternalName", PNG_LIBPNG_DLLFNAME QUOTE(PNG_LIBPNG_VER_MAJOR) DLLFNAME_POSTFIX " (Windows 32 bit)\000"
|
||||
VALUE "LegalCopyright", "\251 1998-2002 Glenn Randers-Pehrson\000"
|
||||
VALUE "LegalCopyright", "\251 1998-2000 Glenn Randers-Pehrson\000"
|
||||
VALUE "OriginalFilename", PNG_LIBPNG_DLLFNAME QUOTE(PNG_LIBPNG_VER_MAJOR) DLLFNAME_POSTFIX ".DLL\000"
|
||||
#ifdef PRIVATEBUILD
|
||||
VALUE "PrivateBuild", PRIVATEBUILD
|
||||
|
||||
@@ -6,7 +6,7 @@ LIBRARY
|
||||
DESCRIPTION "PNG image compression library for Windows"
|
||||
|
||||
EXPORTS
|
||||
;Version 1.0.13
|
||||
;Version 1.2.0beta4
|
||||
png_build_grayscale_palette @1
|
||||
png_check_sig @2
|
||||
png_chunk_error @3
|
||||
@@ -193,28 +193,21 @@ EXPORTS
|
||||
png_destroy_struct @178
|
||||
; Added at version 1.2.0
|
||||
; For use with PNG_USER_MEM_SUPPORTED
|
||||
; png_destroy_struct_2 @179
|
||||
; png_create_read_struct_2 @180
|
||||
; png_create_write_struct_2 @181
|
||||
; png_malloc_default @182
|
||||
; png_free_default @183
|
||||
png_destroy_struct_2 @179
|
||||
png_create_read_struct_2 @180
|
||||
png_create_write_struct_2 @181
|
||||
png_malloc_default @182
|
||||
png_free_default @183
|
||||
; MNG features
|
||||
; png_permit_mng_features @184
|
||||
png_permit_mng_features @184
|
||||
; MMX support
|
||||
; png_mmx_support @185
|
||||
; png_get_mmx_flagmask @186
|
||||
; png_get_asm_flagmask @187
|
||||
; png_get_asm_flags @188
|
||||
; png_get_mmx_bitdepth_threshold @189
|
||||
; png_get_mmx_rowbytes_threshold @190
|
||||
; png_set_asm_flags @191
|
||||
; png_init_mmx_flags @192
|
||||
png_mmx_support @185
|
||||
png_get_mmx_flagmask @186
|
||||
png_get_asm_flagmask @187
|
||||
png_get_asm_flags @188
|
||||
png_get_mmx_bitdepth_threshold @189
|
||||
png_get_mmx_rowbytes_threshold @190
|
||||
png_set_asm_flags @191
|
||||
png_init_mmx_flags @192
|
||||
; Strip error numbers
|
||||
; png_set_strip_error_numbers @193
|
||||
; Added at version 1.2.2
|
||||
png_handle_as_unknown @179
|
||||
png_zalloc @180
|
||||
png_zfree @181
|
||||
; png_handle_as_unknown @194
|
||||
; png_zalloc @195
|
||||
; png_zfree @196
|
||||
png_set_strip_error_numbers @193
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
A set of project files is available for Netware. Get
|
||||
libpng-1.0.13-project-netware.zip from a libpng distribution
|
||||
libpng-1.2.0beta4-project-netware.zip from a libpng distribution
|
||||
site such as http://libpng.sourceforge.net
|
||||
|
||||
Put the zip file in this directory (projects) and then run
|
||||
"unzip -a libpng-1.0.13-project-netware.zip"
|
||||
"unzip -a libpng-1.2.0beta4-project-netware.zip"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
A set of project files is available for WinCE. Get
|
||||
libpng-1.0.13-project-wince.zip from a libpng distribution
|
||||
libpng-1.2.0beta4-project-wince.zip from a libpng distribution
|
||||
site such as http://libpng.sourceforge.net
|
||||
|
||||
Put the zip file in this directory (projects) and then run
|
||||
"unzip -a libpng-1.0.13-project-wince.zip"
|
||||
"unzip -a libpng-1.2.0beta4-project-wince.zip"
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
|
||||
prefix=@PREFIX@
|
||||
exec_prefix=${prefix}
|
||||
libdir=${exec_prefix}/lib
|
||||
includedir=${exec_prefix}/include
|
||||
|
||||
Name: libpng10
|
||||
Description: Loads and saves PNG files
|
||||
Version: 1.0.13
|
||||
Libs: -L${libdir} -lpng10
|
||||
Cflags: -I${includedir}/libpng10
|
||||
@@ -1,147 +0,0 @@
|
||||
# makefile for libpng on Solaris 2.x with gcc
|
||||
# Contributed by William L. Sebok, based on makefile.linux
|
||||
# Copyright (C) 2002 Glenn Randers-Pehrson
|
||||
# Copyright (C) 1998 Greg Roelofs
|
||||
# Copyright (C) 1996, 1997 Andreas Dilger
|
||||
# For conditions of distribution and use, see copyright notice in png.h
|
||||
|
||||
CC=cc
|
||||
SUN_CC_FLAGS=-fast -xtarget=ultra
|
||||
SUN_LD_FLAGS=-fast -xtarget=ultra
|
||||
|
||||
# where make install puts libpng.a, libpng10.so and libpng10/png.h
|
||||
prefix=/a
|
||||
|
||||
# Where the zlib library and include files are located
|
||||
# Changing these to ../zlib poses a security risk. If you want
|
||||
# to have zlib in an adjacent directory, specify the full path instead of "..".
|
||||
#ZLIBLIB=../zlib
|
||||
#ZLIBINC=../zlib
|
||||
|
||||
ZLIBLIB=/usr/lib
|
||||
ZLIBINC=/usr/include
|
||||
|
||||
WARNMORE=-Wwrite-strings -Wpointer-arith -Wshadow \
|
||||
-Wmissing-declarations -Wtraditional -Wcast-align \
|
||||
-Wstrict-prototypes -Wmissing-prototypes #-Wconversion
|
||||
CFLAGS=-I$(ZLIBINC) $(SUN_CC_FLAGS) \
|
||||
# $(WARNMORE) -g -DPNG_DEBUG=5
|
||||
LDFLAGS=-L. -R. $(SUN_LD_FLAGS) -L$(ZLIBLIB) -R$(ZLIBLIB) -lpng10 -lz -lm
|
||||
|
||||
#RANLIB=ranlib
|
||||
RANLIB=echo
|
||||
|
||||
LIBNAME=libpng10
|
||||
PNGMAJ = 0
|
||||
PNGMIN = 1.0.13
|
||||
PNGVER = $(PNGMAJ).$(PNGMIN)
|
||||
|
||||
INCPATH=$(prefix)/include
|
||||
LIBPATH=$(prefix)/lib
|
||||
|
||||
OBJS = png.o pngset.o pngget.o pngrutil.o pngtrans.o pngwutil.o \
|
||||
pngread.o pngrio.o pngwio.o pngwrite.o pngrtran.o \
|
||||
pngwtran.o pngmem.o pngerror.o pngpread.o
|
||||
|
||||
OBJSDLL = $(OBJS:.o=.pic.o)
|
||||
|
||||
.SUFFIXES: .c .o .pic.o
|
||||
|
||||
.c.pic.o:
|
||||
$(CC) -c $(CFLAGS) -KPIC -o $@ $*.c
|
||||
|
||||
all: libpng.a $(LIBNAME).so pngtest
|
||||
|
||||
libpng.a: $(OBJS)
|
||||
ar rc $@ $(OBJS)
|
||||
$(RANLIB) $@
|
||||
|
||||
$(LIBNAME).so: $(LIBNAME).so.$(PNGMAJ)
|
||||
ln -f -s $(LIBNAME).so.$(PNGMAJ) $(LIBNAME).so
|
||||
|
||||
$(LIBNAME).so.$(PNGMAJ): $(LIBNAME).so.$(PNGVER)
|
||||
ln -f -s $(LIBNAME).so.$(PNGVER) $(LIBNAME).so.$(PNGMAJ)
|
||||
|
||||
$(LIBNAME).so.$(PNGVER): $(OBJSDLL)
|
||||
@case "`type ld`" in *ucb*) \
|
||||
echo; \
|
||||
echo '## WARNING:'; \
|
||||
echo '## The commands "CC" and "LD" must NOT refer to /usr/ucb/cc'; \
|
||||
echo '## and /usr/ucb/ld. If they do, you need to adjust your PATH'; \
|
||||
echo '## environment variable to put /usr/ccs/bin ahead of /usr/ucb.'; \
|
||||
echo '## The environment variable LD_LIBRARY_PATH should not be set'; \
|
||||
echo '## at all. If it is, things are likely to break because of'; \
|
||||
echo '## the libucb dependency that is created.'; \
|
||||
echo; \
|
||||
;; \
|
||||
esac
|
||||
$(LD) -G -L$(ZLIBLIB) -R$(ZLIBLIB) -h $(LIBNAME).so.$(PNGMAJ) \
|
||||
-o $(LIBNAME).so.$(PNGVER) $(OBJSDLL) -lz
|
||||
|
||||
pngtest: pngtest.o $(LIBNAME).so
|
||||
$(CC) -o pngtest $(CFLAGS) pngtest.o $(LDFLAGS)
|
||||
|
||||
test: pngtest
|
||||
./pngtest
|
||||
|
||||
install-headers: png.h pngconf.h
|
||||
-@if [ ! -d $(INCPATH) ]; then mkdir $(INCPATH); fi
|
||||
-@if [ ! -d $(INCPATH)/$(LIBNAME) ]; then mkdir $(INCPATH)/$(LIBNAME); fi
|
||||
cp png.h pngconf.h $(INCPATH)/$(LIBNAME)
|
||||
chmod 644 $(INCPATH)/$(LIBNAME)/png.h $(INCPATH)/$(LIBNAME)/pngconf.h
|
||||
-@/bin/rm -f $(INCPATH)/png.h $(INCPATH)/pngconf.h
|
||||
-@/bin/rm $(INCPATH)/libpng
|
||||
ln -f -s $(INCPATH)/$(LIBNAME) $(INCPATH)/libpng
|
||||
|
||||
install-static: install-headers libpng.a
|
||||
-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
|
||||
cp libpng.a $(LIBPATH)/$(LIBNAME).a
|
||||
chmod 644 $(LIBPATH)/$(LIBNAME).a
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.a
|
||||
ln -f -s $(LIBPATH)/$(LIBNAME).a $(LIBPATH)/libpng.a
|
||||
|
||||
install-shared: install-headers $(LIBNAME).so.$(PNGVER)
|
||||
-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
|
||||
-@/bin/rm -f $(LIBPATH)/$(LIBNAME).so.$(PNGMAJ)* $(LIBPATH)/$(LIBNAME).so
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.so
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.so.2
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.so.2.*
|
||||
cp $(LIBNAME).so.$(PNGVER) $(LIBPATH)
|
||||
chmod 755 $(LIBPATH)/$(LIBNAME).so.$(PNGVER)
|
||||
(cd $(LIBPATH); \
|
||||
ln -f -s $(LIBNAME).so.$(PNGVER) libpng.so; \
|
||||
ln -f -s $(LIBNAME).so.$(PNGVER) libpng.so.2; \
|
||||
ln -f -s $(LIBNAME).so.$(PNGVER) libpng.so.2.$(PNGMIN); \
|
||||
ln -f -s $(LIBNAME).so.$(PNGVER) $(LIBNAME).so.$(PNGMAJ); \
|
||||
ln -f -s $(LIBNAME).so.$(PNGMAJ) $(LIBNAME).so)
|
||||
-@if [ ! -d $(LIBPATH)/pkgconfig ]; then mkdir $(LIBPATH)/pkgconfig; fi
|
||||
cat scripts/libpng.pc.in | sed -e s\!@PREFIX@!$(prefix)! > libpng.pc
|
||||
cp libpng.pc $(LIBPATH)/pkgconfig/libpng10.pc
|
||||
chmod 644 $(LIBPATH)/pkgconfig/libpng10.pc
|
||||
|
||||
clean:
|
||||
/bin/rm -f *.o libpng.a $(LIBNAME).so $(LIBNAME).so.$(PNGMAJ)* pngtest pngout.png
|
||||
|
||||
DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO
|
||||
writelock:
|
||||
chmod a-w *.[ch35] $(DOCS) scripts/*
|
||||
|
||||
# DO NOT DELETE THIS LINE -- make depend depends on it.
|
||||
|
||||
png.o png.pic.o: png.h pngconf.h
|
||||
pngerror.o pngerror.pic.o: png.h pngconf.h
|
||||
pngrio.o pngrio.pic.o: png.h pngconf.h
|
||||
pngwio.o pngwio.pic.o: png.h pngconf.h
|
||||
pngmem.o pngmem.pic.o: png.h pngconf.h
|
||||
pngset.o pngset.pic.o: png.h pngconf.h
|
||||
pngget.o pngget.pic.o: png.h pngconf.h
|
||||
pngread.o pngread.pic.o: png.h pngconf.h
|
||||
pngrtran.o pngrtran.pic.o: png.h pngconf.h
|
||||
pngrutil.o pngrutil.pic.o: png.h pngconf.h
|
||||
pngtrans.o pngtrans.pic.o: png.h pngconf.h
|
||||
pngwrite.o pngwrite.pic.o: png.h pngconf.h
|
||||
pngwtran.o pngwtran.pic.o: png.h pngconf.h
|
||||
pngwutil.o pngwutil.pic.o: png.h pngconf.h
|
||||
pngpread.o pngpread.pic.o: png.h pngconf.h
|
||||
|
||||
pngtest.o: png.h pngconf.h
|
||||
@@ -1,147 +0,0 @@
|
||||
# makefile for libpng on Solaris 2.x with gcc
|
||||
# Contributed by William L. Sebok, based on makefile.linux
|
||||
# Copyright (C) 2002 Glenn Randers-Pehrson
|
||||
# Copyright (C) 1998 Greg Roelofs
|
||||
# Copyright (C) 1996, 1997 Andreas Dilger
|
||||
# For conditions of distribution and use, see copyright notice in png.h
|
||||
|
||||
CC=cc
|
||||
SUN_CC_FLAGS=-fast -xtarget=ultra -xarch=v9
|
||||
SUN_LD_FLAGS=-fast -xtarget=ultra -xarch=v9
|
||||
|
||||
# where make install puts libpng.a, libpng10.so and libpng10/png.h
|
||||
prefix=/a
|
||||
|
||||
# Where the zlib library and include files are located
|
||||
# Changing these to ../zlib poses a security risk. If you want
|
||||
# to have zlib in an adjacent directory, specify the full path instead of "..".
|
||||
#ZLIBLIB=../zlib
|
||||
#ZLIBINC=../zlib
|
||||
|
||||
ZLIBLIB=/usr/lib
|
||||
ZLIBINC=/usr/include
|
||||
|
||||
WARNMORE=-Wwrite-strings -Wpointer-arith -Wshadow \
|
||||
-Wmissing-declarations -Wtraditional -Wcast-align \
|
||||
-Wstrict-prototypes -Wmissing-prototypes #-Wconversion
|
||||
CFLAGS=-I$(ZLIBINC) $(SUN_CC_FLAGS) \
|
||||
# $(WARNMORE) -g -DPNG_DEBUG=5
|
||||
LDFLAGS=-L. -R. $(SUN_LD_FLAGS) -L$(ZLIBLIB) -R$(ZLIBLIB) -lpng10 -lz -lm
|
||||
|
||||
#RANLIB=ranlib
|
||||
RANLIB=echo
|
||||
|
||||
LIBNAME=libpng10
|
||||
PNGMAJ = 0
|
||||
PNGMIN = 1.0.13
|
||||
PNGVER = $(PNGMAJ).$(PNGMIN)
|
||||
|
||||
INCPATH=$(prefix)/include
|
||||
LIBPATH=$(prefix)/lib
|
||||
|
||||
OBJS = png.o pngset.o pngget.o pngrutil.o pngtrans.o pngwutil.o \
|
||||
pngread.o pngrio.o pngwio.o pngwrite.o pngrtran.o \
|
||||
pngwtran.o pngmem.o pngerror.o pngpread.o
|
||||
|
||||
OBJSDLL = $(OBJS:.o=.pic.o)
|
||||
|
||||
.SUFFIXES: .c .o .pic.o
|
||||
|
||||
.c.pic.o:
|
||||
$(CC) -c $(CFLAGS) -KPIC -o $@ $*.c
|
||||
|
||||
all: libpng.a $(LIBNAME).so pngtest
|
||||
|
||||
libpng.a: $(OBJS)
|
||||
ar rc $@ $(OBJS)
|
||||
$(RANLIB) $@
|
||||
|
||||
$(LIBNAME).so: $(LIBNAME).so.$(PNGMAJ)
|
||||
ln -f -s $(LIBNAME).so.$(PNGMAJ) $(LIBNAME).so
|
||||
|
||||
$(LIBNAME).so.$(PNGMAJ): $(LIBNAME).so.$(PNGVER)
|
||||
ln -f -s $(LIBNAME).so.$(PNGVER) $(LIBNAME).so.$(PNGMAJ)
|
||||
|
||||
$(LIBNAME).so.$(PNGVER): $(OBJSDLL)
|
||||
@case "`type ld`" in *ucb*) \
|
||||
echo; \
|
||||
echo '## WARNING:'; \
|
||||
echo '## The commands "CC" and "LD" must NOT refer to /usr/ucb/cc'; \
|
||||
echo '## and /usr/ucb/ld. If they do, you need to adjust your PATH'; \
|
||||
echo '## environment variable to put /usr/ccs/bin ahead of /usr/ucb.'; \
|
||||
echo '## The environment variable LD_LIBRARY_PATH should not be set'; \
|
||||
echo '## at all. If it is, things are likely to break because of'; \
|
||||
echo '## the libucb dependency that is created.'; \
|
||||
echo; \
|
||||
;; \
|
||||
esac
|
||||
$(LD) -G -L$(ZLIBLIB) -R$(ZLIBLIB) -h $(LIBNAME).so.$(PNGMAJ) \
|
||||
-o $(LIBNAME).so.$(PNGVER) $(OBJSDLL) -lz
|
||||
|
||||
pngtest: pngtest.o $(LIBNAME).so
|
||||
$(CC) -o pngtest $(CFLAGS) pngtest.o $(LDFLAGS)
|
||||
|
||||
test: pngtest
|
||||
./pngtest
|
||||
|
||||
install-headers: png.h pngconf.h
|
||||
-@if [ ! -d $(INCPATH) ]; then mkdir $(INCPATH); fi
|
||||
-@if [ ! -d $(INCPATH)/$(LIBNAME) ]; then mkdir $(INCPATH)/$(LIBNAME); fi
|
||||
cp png.h pngconf.h $(INCPATH)/$(LIBNAME)
|
||||
chmod 644 $(INCPATH)/$(LIBNAME)/png.h $(INCPATH)/$(LIBNAME)/pngconf.h
|
||||
-@/bin/rm -f $(INCPATH)/png.h $(INCPATH)/pngconf.h
|
||||
-@/bin/rm $(INCPATH)/libpng
|
||||
ln -f -s $(INCPATH)/$(LIBNAME) $(INCPATH)/libpng
|
||||
|
||||
install-static: install-headers libpng.a
|
||||
-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
|
||||
cp libpng.a $(LIBPATH)/$(LIBNAME).a
|
||||
chmod 644 $(LIBPATH)/$(LIBNAME).a
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.a
|
||||
ln -f -s $(LIBPATH)/$(LIBNAME).a $(LIBPATH)/libpng.a
|
||||
|
||||
install-shared: install-headers $(LIBNAME).so.$(PNGVER)
|
||||
-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
|
||||
-@/bin/rm -f $(LIBPATH)/$(LIBNAME).so.$(PNGMAJ)* $(LIBPATH)/$(LIBNAME).so
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.so
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.so.2
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.so.2.*
|
||||
cp $(LIBNAME).so.$(PNGVER) $(LIBPATH)
|
||||
chmod 755 $(LIBPATH)/$(LIBNAME).so.$(PNGVER)
|
||||
(cd $(LIBPATH); \
|
||||
ln -sf $(LIBNAME).so.$(PNGVER) libpng.so; \
|
||||
ln -f -s $(LIBNAME).so.$(PNGVER) libpng.so.2; \
|
||||
ln -f -s $(LIBNAME).so.$(PNGVER) libpng.so.2.$(PNGMIN); \
|
||||
ln -f -s $(LIBNAME).so.$(PNGVER) $(LIBNAME).so.$(PNGMAJ); \
|
||||
ln -f -s $(LIBNAME).so.$(PNGMAJ) $(LIBNAME).so)
|
||||
-@if [ ! -d $(LIBPATH)/pkgconfig ]; then mkdir $(LIBPATH)/pkgconfig; fi
|
||||
cat scripts/libpng.pc.in | sed -e s\!@PREFIX@!$(prefix)! > libpng.pc
|
||||
cp libpng.pc $(LIBPATH)/pkgconfig/libpng10.pc
|
||||
chmod 644 $(LIBPATH)/pkgconfig/libpng10.pc
|
||||
|
||||
clean:
|
||||
/bin/rm -f *.o libpng.a $(LIBNAME).so $(LIBNAME).so.$(PNGMAJ)* pngtest pngout.png
|
||||
|
||||
DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO
|
||||
writelock:
|
||||
chmod a-w *.[ch35] $(DOCS) scripts/*
|
||||
|
||||
# DO NOT DELETE THIS LINE -- make depend depends on it.
|
||||
|
||||
png.o png.pic.o: png.h pngconf.h
|
||||
pngerror.o pngerror.pic.o: png.h pngconf.h
|
||||
pngrio.o pngrio.pic.o: png.h pngconf.h
|
||||
pngwio.o pngwio.pic.o: png.h pngconf.h
|
||||
pngmem.o pngmem.pic.o: png.h pngconf.h
|
||||
pngset.o pngset.pic.o: png.h pngconf.h
|
||||
pngget.o pngget.pic.o: png.h pngconf.h
|
||||
pngread.o pngread.pic.o: png.h pngconf.h
|
||||
pngrtran.o pngrtran.pic.o: png.h pngconf.h
|
||||
pngrutil.o pngrutil.pic.o: png.h pngconf.h
|
||||
pngtrans.o pngtrans.pic.o: png.h pngconf.h
|
||||
pngwrite.o pngwrite.pic.o: png.h pngconf.h
|
||||
pngwtran.o pngwtran.pic.o: png.h pngconf.h
|
||||
pngwutil.o pngwutil.pic.o: png.h pngconf.h
|
||||
pngpread.o pngpread.pic.o: png.h pngconf.h
|
||||
|
||||
pngtest.o: png.h pngconf.h
|
||||
@@ -15,10 +15,10 @@ AR = ar rcs
|
||||
RANLIB = ranlib
|
||||
RM = rm -f
|
||||
|
||||
# read libpng.txt or png.h to see why PNGMAJ is 0. You should not
|
||||
# read libpng.txt or png.h to see why PNGMAJ is 3. You should not
|
||||
# have to change it.
|
||||
PNGMAJ = 0
|
||||
PNGMIN = 1.0.13
|
||||
PNGMAJ = 3
|
||||
PNGMIN = 1.2.0beta4
|
||||
PNGVER = $(PNGMAJ).$(PNGMIN)
|
||||
|
||||
prefix=/usr/local
|
||||
@@ -57,16 +57,13 @@ pngtest$(E): pngtest$(O) libpng$(A)
|
||||
|
||||
install: libpng.a
|
||||
-@if [ ! -d $(INCPATH) ]; then mkdir $(INCPATH); fi
|
||||
-@if [ ! -d $(INCPATH)/libpng ]; then mkdir $(INCPATH)/libpng; fi
|
||||
-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
|
||||
-@rm $(INCPATH)/png.h
|
||||
-@rm $(INCPATH)/pngconf.h
|
||||
cp png.h pngconf.h $(INCPATH)/libpng
|
||||
chmod 644 $(INCPATH)/libpng/png.h $(INCPATH)/libpng/pngconf.h
|
||||
cp png.h pngconf.h $(INCPATH)
|
||||
chmod 644 $(INCPATH)/png.h $(INCPATH)/pngconf.h
|
||||
cp libpng.a $(LIBPATH)
|
||||
|
||||
clean:
|
||||
/bin/rm -f *.o libpng.a pngtest pngout.png
|
||||
/bin/rm -f *.o libpng.a libpng.so* pngtest pngout.png
|
||||
|
||||
png$(O): png.h pngconf.h
|
||||
pngerror$(O): png.h pngconf.h
|
||||
|
||||
@@ -26,11 +26,8 @@ pngtest.ttp: pngtest.o $(LBR)
|
||||
|
||||
install: libpng.a
|
||||
-@mkdir $(prefix)/include
|
||||
-@mkdir $(prefix)/include/libpng
|
||||
-@mkdir $(prefix)/lib
|
||||
-@rm -f $(prefix)/include/png.h
|
||||
-@rm -f $(prefix)/include/pngconf.h
|
||||
cp png.h $(prefix)/include/libpng
|
||||
cp pngconf.h $(prefix)/include/libpng
|
||||
chmod 644 $(prefix)/include/libpng/png.h
|
||||
chmod 644 $(prefix)/include/libpng/pngconf.h
|
||||
cp png.h $(prefix)/include
|
||||
cp pngconf.h $(prefix)/include
|
||||
chmod 644 $(prefix)/include/png.h
|
||||
chmod 644 $(prefix)/include/pngconf.h
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
# makefile for libpng on BeOS x86 ELF with gcc
|
||||
# modified from makefile.linux by Sander Stoks
|
||||
# Copyright (C) 2002 Glenn Randers-Pehrson
|
||||
# Copyright (C) 1999 Greg Roelofs
|
||||
# Copyright (C) 1996, 1997 Andreas Dilger
|
||||
# For conditions of distribution and use, see copyright notice in png.h
|
||||
@@ -11,10 +10,10 @@ CC=gcc
|
||||
ZLIBLIB=/usr/local/lib
|
||||
ZLIBINC=/usr/local/include
|
||||
|
||||
# read libpng.txt or png.h to see why PNGMAJ is 0. You should not
|
||||
# read libpng.txt or png.h to see why PNGMAJ is 3. You should not
|
||||
# have to change it.
|
||||
PNGMAJ = 0
|
||||
PNGMIN = 1.0.13
|
||||
PNGMAJ = 3
|
||||
PNGMIN = 1.2.0beta4
|
||||
PNGVER = $(PNGMAJ).$(PNGMIN)
|
||||
|
||||
ALIGN=
|
||||
@@ -30,16 +29,15 @@ WARNMORE=-Wwrite-strings -Wpointer-arith -Wshadow \
|
||||
CFLAGS=-I$(ZLIBINC) -Wall -O1 -funroll-loops \
|
||||
$(ALIGN) # $(WARNMORE) -g -DPNG_DEBUG=5
|
||||
# LDFLAGS=-L. -Wl,-rpath,. -L$(ZLIBLIB) -Wl,-rpath,$(ZLIBLIB) -lpng -lz -lm
|
||||
LDFLAGS=-L. -Wl,-soname=$(LIBNAME).so.$(PNGMAJ) -L$(ZLIBLIB) -lz -lm
|
||||
LDFLAGS=-L. -Wl,-soname=libpng.so.$(PNGMAJ) -L$(ZLIBLIB) -lz -lm
|
||||
|
||||
RANLIB=ranlib
|
||||
#RANLIB=echo
|
||||
|
||||
# where make install puts libpng.a, libpng10.so*, and png.h
|
||||
# where make install puts libpng.a, libpng.so*, and png.h
|
||||
prefix=/usr/local
|
||||
INCPATH=$(prefix)/include
|
||||
LIBPATH=$(prefix)/lib
|
||||
LIBNAME=libpng10
|
||||
|
||||
OBJS = png.o pngset.o pngget.o pngrutil.o pngtrans.o pngwutil.o \
|
||||
pngread.o pngrio.o pngwio.o pngwrite.o pngrtran.o \
|
||||
@@ -49,70 +47,42 @@ OBJSDLL = $(OBJS)
|
||||
|
||||
.SUFFIXES: .c .o
|
||||
|
||||
all: libpng.a $(LIBNAME).so pngtest
|
||||
all: libpng.a libpng.so pngtest
|
||||
|
||||
libpng.a: $(OBJS)
|
||||
ar rc $@ $(OBJS)
|
||||
$(RANLIB) $@
|
||||
|
||||
$(LIBNAME).so: $(LIBNAME).so.$(PNGMAJ)
|
||||
ln -sf $(LIBNAME).so.$(PNGMAJ) $(LIBNAME).so
|
||||
cp $(LIBNAME).so* /boot/home/config/lib
|
||||
libpng.so: libpng.so.$(PNGMAJ)
|
||||
ln -sf libpng.so.$(PNGMAJ) libpng.so
|
||||
cp libpng.so* /boot/home/config/lib
|
||||
|
||||
$(LIBNAME).so.$(PNGMAJ): $(LIBNAME).so.$(PNGVER)
|
||||
ln -sf $(LIBNAME).so.$(PNGVER) $(LIBNAME).so.$(PNGMAJ)
|
||||
libpng.so.$(PNGMAJ): libpng.so.$(PNGVER)
|
||||
ln -sf libpng.so.$(PNGVER) libpng.so.$(PNGMAJ)
|
||||
|
||||
$(LIBNAME).so.$(PNGVER): $(OBJSDLL)
|
||||
$(CC) -L$(ZLIBLIB) -lz -nostart -Wl,-soname,$(LIBNAME).so.$(PNGMAJ) -o
|
||||
$(LIBNAME).so.$(PNGVER) \
|
||||
libpng.so.$(PNGVER): $(OBJSDLL)
|
||||
$(CC) -L$(ZLIBLIB) -lz -nostart -Wl,-soname,libpng.so.$(PNGMAJ) -o
|
||||
libpng.so.$(PNGVER) \
|
||||
$(OBJSDLL)
|
||||
|
||||
pngtest: pngtest.o $(LIBNAME).so
|
||||
$(CC) -L$(ZLIBLIB) -lz -lpng10 -o pngtest pngtest.o
|
||||
pngtest: pngtest.o libpng.so
|
||||
$(CC) -L$(ZLIBLIB) -lz -lpng -o pngtest pngtest.o
|
||||
|
||||
test: pngtest
|
||||
./pngtest
|
||||
|
||||
install-headers: png.h pngconf.h
|
||||
-@if [ ! -d $(INCPATH) ]; then mkdir $(INCPATH); fi
|
||||
-@if [ ! -d $(INCPATH)/$(LIBNAME) ]; then mkdir $(INCPATH)/$(LIBNAME); fi
|
||||
cp png.h pngconf.h $(INCPATH)/$(LIBNAME)
|
||||
chmod 644 $(INCPATH)/$(LIBNAME)/png.h $(INCPATH)/$(LIBNAME)/pngconf.h
|
||||
-@/bin/rm -f $(INCPATH)/png.h $(INCPATH)/pngconf.h
|
||||
-@/bin/rm -f $(INCPATH)/libpng
|
||||
ln -sf $(INCPATH)/$(LIBNAME) $(INCPATH)/libpng
|
||||
|
||||
install-static: install-headers libpng.a
|
||||
-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
|
||||
cp libpng.a $(LIBPATH)/$(LIBNAME).a
|
||||
chmod 644 $(LIBPATH)/$(LIBNAME).a
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.a
|
||||
ln -sf $(LIBPATH)/$(LIBNAME).a $(LIBPATH)/libpng.a
|
||||
|
||||
install-shared: install-headers $(LIBNAME).so.$(PNGVER)
|
||||
-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
|
||||
-@/bin/rm -f $(LIBPATH)/$(LIBNAME).so.$(PNGMAJ)* $(LIBPATH)/$(LIBNAME).so
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.so
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.so.2
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.so.2.*
|
||||
cp $(LIBNAME).so.$(PNGVER) $(LIBPATH)
|
||||
chmod 755 $(LIBPATH)/$(LIBNAME).so.$(PNGVER)
|
||||
(cd $(LIBPATH); \
|
||||
ln -sf $(LIBNAME).so.$(PNGVER) libpng.so; \
|
||||
ln -sf $(LIBNAME).so.$(PNGVER) libpng.so.2; \
|
||||
ln -sf $(LIBNAME).so.$(PNGVER) libpng.so.2.$(PNGMIN); \
|
||||
ln -sf $(LIBNAME).so.$(PNGVER) $(LIBNAME).so.$(PNGMAJ); \
|
||||
ln -sf $(LIBNAME).so.$(PNGMAJ) $(LIBNAME).so)
|
||||
-@if [ ! -d $(LIBPATH)/pkgconfig ]; then mkdir $(LIBPATH)/pkgconfig; fi
|
||||
cat scripts/libpng.pc.in | sed -e s\!@PREFIX@!$(prefix)! > libpng.pc
|
||||
cp libpng.pc $(LIBPATH)/pkgconfig/libpng10.pc
|
||||
chmod 644 $(LIBPATH)/pkgconfig/libpng10.pc
|
||||
|
||||
install: install-static install-shared
|
||||
install: libpng.a libpng.so.$(PNGVER)
|
||||
-@mkdir $(INCPATH) $(LIBPATH)
|
||||
cp png.h pngconf.h $(INCPATH)
|
||||
chmod 644 $(INCPATH)/png.h $(INCPATH)/pngconf.h
|
||||
cp libpng.a libpng.so.$(PNGVER) $(LIBPATH)
|
||||
chmod 755 $(LIBPATH)/libpng.so.$(PNGVER)
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.so.$(PNGMAJ) $(LIBPATH)/libpng.so
|
||||
(cd $(LIBPATH); ln -sf libpng.so.$(PNGVER) libpng.so.$(PNGMAJ); \
|
||||
ln -sf libpng.so.$(PNGMAJ) libpng.so)
|
||||
|
||||
clean:
|
||||
/bin/rm -f *.o libpng.a $(LIBNAME).so $(LIBNAME).so.$(PNGMAJ)* \
|
||||
pngtest pngout.png
|
||||
/bin/rm -f *.o libpng.a libpng.so* pngtest pngout.png
|
||||
|
||||
# DO NOT DELETE THIS LINE -- make depend depends on it.
|
||||
|
||||
|
||||
@@ -12,10 +12,6 @@
|
||||
# $CFLAGS, and include pnggccrd.o in $OBJS, below.
|
||||
|
||||
CC=gcc
|
||||
ifdef MINGW
|
||||
MINGW_CCFLAGS=-mno-cygwin -I/usr/include/mingw
|
||||
MINGW_LDFLAGS=-mno-cygwin -L/usr/lib/mingw
|
||||
endif
|
||||
|
||||
# where "make install" puts libpng.a, libpng.so*, png.h, and pngconf.h
|
||||
prefix=/usr
|
||||
@@ -36,13 +32,15 @@ WARNMORE=-Wwrite-strings -Wpointer-arith -Wshadow \
|
||||
|
||||
#CFLAGS=-DPNG_USE_PNGGCCRD -I$(ZLIBINC) -Wall -O3 $(ALIGN) -funroll-loops \
|
||||
# -fomit-frame-pointer # $(WARNMORE) -g -DPNG_DEBUG=5
|
||||
CFLAGS=$(MINGW_CCFLAGS) -I$(ZLIBINC) -Wall -O3 $(ALIGN) -funroll-loops \
|
||||
CFLAGS=-I$(ZLIBINC) -Wall -O3 $(ALIGN) -funroll-loops \
|
||||
-fomit-frame-pointer
|
||||
|
||||
PNGMAJ = 0
|
||||
#PNGDLL = $10
|
||||
PNGMIN = 1.0.13
|
||||
PNGMIN_BASE = 1.0.13
|
||||
# read libpng.txt or png.h to see why PNGMAJ is 3. You should not
|
||||
# have to change it.
|
||||
PNGMAJ = 3
|
||||
#PNGDLL = $3
|
||||
PNGMIN = 1.2.0beta4
|
||||
PNGMIN_BASE = 1.2.0
|
||||
PNGVER = $(PNGMAJ).$(PNGMIN)
|
||||
|
||||
SHAREDLIB=cygpng$(PNGDLL).dll
|
||||
@@ -52,8 +50,8 @@ SHAREDDEF=libpng.def
|
||||
LIBS=$(SHAREDLIB) $(STATLIB)
|
||||
EXE=.exe
|
||||
|
||||
LDFLAGS=-L. $(MINGW_LDFLAGS) -L$(ZLIBLIB) -lpng -lz
|
||||
LDSFLAGS=-shared -L. $(MINGW_LDFLAGS) -Wl,--enable-auto-image-base
|
||||
LDFLAGS=-L. -L$(ZLIBLIB) -lpng -lz
|
||||
LDSHARED=gcc -shared -Wl,--enable-auto-image-base
|
||||
LDEXTRA=-Wl,--out-implib=$(IMPLIB) $(SHAREDDEF)
|
||||
|
||||
RANLIB=ranlib
|
||||
@@ -113,7 +111,7 @@ $(SHAREDDEF): projects/msvc/png32ms.def
|
||||
sed -e 's/\([^;]*\);/;/' > $@
|
||||
|
||||
$(SHAREDLIB): $(OBJSDLL) $(SHAREDDEF)
|
||||
$(CC) $(LDSFLAGS) -o $@ $(LDEXTRA) $(OBJSDLL) -L. -L$(ZLIBLIB) -lz
|
||||
$(LDSHARED) -o $@ $(LDEXTRA) $(OBJSDLL) -L. -L$(ZLIBLIB) -lz
|
||||
|
||||
pngtest$(EXE): pngtest.pic.o $(SHAREDLIB)
|
||||
$(CC) $(CFLAGS) $< $(LDFLAGS) -o $@
|
||||
@@ -148,10 +146,7 @@ install-shared: $(SHAREDLIB) install-headers install-docs install-man
|
||||
install -s -m 755 $(SHAREDLIB) $(BINPATH)
|
||||
|
||||
install-headers:
|
||||
-@if [ ! -d $(INCPATH)]; then mkdir -p $(INCPATH); fi
|
||||
-@if [ ! -d $(INCPATH)/libpng ]; then mkdir -p $(INCPATH)/libpng; fi
|
||||
-@rm -f ${INCPATH)/png.h
|
||||
-@rm -f ${INCPATH)/pngconf.h
|
||||
-@if [ ! -d $(INCPATH) ]; then mkdir -p $(INCPATH); fi
|
||||
install -m 644 png.h pngconf.h $(INCPATH)
|
||||
|
||||
install-docs:
|
||||
|
||||
@@ -1,134 +0,0 @@
|
||||
# makefile for libpng on Darwin / Mac OS X
|
||||
# Copyright (C) 2002 Glenn Randers-Pehrson
|
||||
# Copyright (C) 2001 Christoph Pfisterer
|
||||
# derived from makefile.linux:
|
||||
# Copyright (C) 1998, 1999 Greg Roelofs
|
||||
# Copyright (C) 1996, 1997 Andreas Dilger
|
||||
# For conditions of distribution and use, see copyright notice in png.h
|
||||
|
||||
# where "make install" puts libpng.a, libpng10.dylib, png.h and pngconf.h
|
||||
prefix=/usr/local
|
||||
|
||||
# Where the zlib library and include files are located
|
||||
#ZLIBLIB=/usr/local/lib
|
||||
#ZLIBINC=/usr/local/include
|
||||
ZLIBLIB=../zlib
|
||||
ZLIBINC=../zlib
|
||||
|
||||
CC=cc
|
||||
CFLAGS=-I$(ZLIBINC) -Wall -O3 -funroll-loops
|
||||
LDFLAGS=-L. -L$(ZLIBLIB) -lpng -lz
|
||||
|
||||
#RANLIB=echo
|
||||
RANLIB=ranlib
|
||||
|
||||
# read libpng.txt or png.h to see why PNGMAJ is 0. You should not
|
||||
# have to change it.
|
||||
PNGMAJ = 0
|
||||
PNGMIN = 1.0.13
|
||||
PNGVER = $(PNGMAJ).$(PNGMIN)
|
||||
LIBNAME = libpng10
|
||||
|
||||
INCPATH=$(prefix)/include
|
||||
LIBPATH=$(prefix)/lib
|
||||
|
||||
OBJS = png.o pngset.o pngget.o pngrutil.o pngtrans.o pngwutil.o \
|
||||
pngread.o pngrio.o pngwio.o pngwrite.o pngrtran.o \
|
||||
pngwtran.o pngmem.o pngerror.o pngpread.o
|
||||
|
||||
OBJSDLL = $(OBJS:.o=.pic.o)
|
||||
|
||||
.SUFFIXES: .c .o .pic.o
|
||||
|
||||
.c.pic.o:
|
||||
$(CC) -c $(CFLAGS) -fno-common -o $@ $*.c
|
||||
|
||||
all: libpng.a $(LIBNAME).dylib pngtest
|
||||
|
||||
libpng.a: $(OBJS)
|
||||
ar rc $@ $(OBJS)
|
||||
$(RANLIB) $@
|
||||
|
||||
$(LIBNAME).dylib: $(LIBNAME).$(PNGMAJ).dylib
|
||||
ln -sf $(LIBNAME).$(PNGMAJ).dylib $(LIBNAME).dylib
|
||||
|
||||
$(LIBNAME).$(PNGMAJ).dylib: $(LIBNAME).$(PNGVER).dylib
|
||||
ln -sf $(LIBNAME).$(PNGVER).dylib $(LIBNAME).$(PNGMAJ).dylib
|
||||
|
||||
$(LIBNAME).$(PNGVER).dylib: $(OBJSDLL)
|
||||
$(CC) -dynamiclib \
|
||||
-install_name $(LIBPATH)/$(LIBNAME).$(PNGMAJ).dylib \
|
||||
-current_version $(PNGMIN) -compatibility_version $(PNGMIN) \
|
||||
-o $(LIBNAME).$(PNGVER).dylib \
|
||||
$(OBJSDLL) -L$(ZLIBLIB) -lz
|
||||
|
||||
pngtest: pngtest.o $(LIBNAME).dylib
|
||||
$(CC) -o pngtest $(CFLAGS) pngtest.o $(LDFLAGS)
|
||||
|
||||
test: pngtest
|
||||
./pngtest
|
||||
|
||||
install-headers: png.h pngconf.h
|
||||
-@if [ ! -d $(INCPATH) ]; then mkdir $(INCPATH); fi
|
||||
-@if [ ! -d $(INCPATH)/$(LIBNAME) ]; then mkdir $(INCPATH)/$(LIBNAME); fi
|
||||
cp png.h pngconf.h $(INCPATH)/$(LIBNAME)
|
||||
chmod 644 $(INCPATH)/$(LIBNAME)/png.h $(INCPATH)/$(LIBNAME)/pngconf.h
|
||||
-@/bin/rm -f $(INCPATH)/png.h $(INCPATH)/pngconf.h
|
||||
-@/bin/rm -f $(INCPATH)/libpng
|
||||
ln -sf $(INCPATH)/$(LIBNAME) $(INCPATH)/libpng
|
||||
|
||||
install-static: install-headers libpng.a
|
||||
-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
|
||||
cp libpng.a $(LIBPATH)/$(LIBNAME).a
|
||||
chmod 644 $(LIBPATH)/$(LIBNAME).a
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.a
|
||||
ln -sf $(LIBPATH)/$(LIBNAME).a $(LIBPATH)/libpng.a
|
||||
|
||||
install-shared: install-headers $(LIBNAME).dylib
|
||||
-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
|
||||
-@/bin/rm -f $(LIBPATH)/$(LIBNAME).$(PNGMAJ)*.dylib
|
||||
-@/bin/rm -f $(LIBPATH)/$(LIBNAME).dylib
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.dylib
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.2.dylib
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.2.*.dylib
|
||||
cp $(LIBNAME).$(PNGVER).dylib $(LIBPATH)
|
||||
chmod 755 $(LIBPATH)/$(LIBNAME).$(PNGVER).dylib
|
||||
(cd $(LIBPATH); \
|
||||
ln -sf $(LIBNAME).$(PNGVER).dylib libpng.dylib; \
|
||||
ln -sf $(LIBNAME).$(PNGVER).dylib libpng.2.dylib; \
|
||||
ln -sf $(LIBNAME).$(PNGVER).dylib libpng.2.$(PNGMIN).dylib; \
|
||||
ln -sf $(LIBNAME).$(PNGVER).dylib $(LIBNAME).$(PNGMAJ).dylib; \
|
||||
ln -sf $(LIBNAME).$(PNGMAJ).dylib $(LIBNAME).dylib)
|
||||
-@if [ ! -d $(LIBPATH)/pkgconfig ]; then mkdir $(LIBPATH)/pkgconfig; fi
|
||||
cat scripts/libpng.pc.in | sed -e s\!@PREFIX@!$(prefix)! > libpng.pc
|
||||
cp libpng.pc $(LIBPATH)/pkgconfig/libpng10.pc
|
||||
chmod 644 $(LIBPATH)/pkgconfig/libpng10.pc
|
||||
|
||||
install: install-static install-shared
|
||||
|
||||
clean:
|
||||
rm -f *.o libpng.a $(LIBNAME).*dylib pngtest pngout.png
|
||||
|
||||
DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO
|
||||
writelock:
|
||||
chmod a-w *.[ch35] $(DOCS) scripts/*
|
||||
|
||||
# DO NOT DELETE THIS LINE -- make depend depends on it.
|
||||
|
||||
png.o png.pic.o: png.h pngconf.h
|
||||
pngerror.o pngerror.pic.o: png.h pngconf.h
|
||||
pngrio.o pngrio.pic.o: png.h pngconf.h
|
||||
pngwio.o pngwio.pic.o: png.h pngconf.h
|
||||
pngmem.o pngmem.pic.o: png.h pngconf.h
|
||||
pngset.o pngset.pic.o: png.h pngconf.h
|
||||
pngget.o pngget.pic.o: png.h pngconf.h
|
||||
pngread.o pngread.pic.o: png.h pngconf.h
|
||||
pngrtran.o pngrtran.pic.o: png.h pngconf.h
|
||||
pngrutil.o pngrutil.pic.o: png.h pngconf.h
|
||||
pngtrans.o pngtrans.pic.o: png.h pngconf.h
|
||||
pngwrite.o pngwrite.pic.o: png.h pngconf.h
|
||||
pngwtran.o pngwtran.pic.o: png.h pngconf.h
|
||||
pngwutil.o pngwutil.pic.o: png.h pngconf.h
|
||||
pngpread.o pngpread.pic.o: png.h pngconf.h
|
||||
|
||||
pngtest.o: png.h pngconf.h
|
||||
@@ -14,12 +14,11 @@ LIBPATH=$(prefix)/lib
|
||||
ZLIBLIB=../zlib
|
||||
ZLIBINC=../zlib
|
||||
|
||||
# read libpng.txt or png.h to see why PNGMAJ is 0. You should not
|
||||
# read libpng.txt or png.h to see why PNGMAJ is 3. You should not
|
||||
# have to change it.
|
||||
PNGMAJ = 0
|
||||
PNGMIN = 1.0.13
|
||||
PNGMAJ = 3
|
||||
PNGMIN = 1.2.0beta4
|
||||
PNGVER = $(PNGMAJ).$(PNGMIN)
|
||||
LIBNAME = libpng10
|
||||
|
||||
CC=cc
|
||||
CFLAGS=-std -w1 -I$(ZLIBINC) -O # -g -DPNG_DEBUG=1
|
||||
@@ -32,19 +31,19 @@ OBJS = png.o pngset.o pngget.o pngrutil.o pngtrans.o pngwutil.o \
|
||||
pngread.o pngrio.o pngwio.o pngwrite.o pngrtran.o \
|
||||
pngwtran.o pngmem.o pngerror.o pngpread.o
|
||||
|
||||
all: $(LIBNAME).so libpng.a pngtest
|
||||
all: libpng.so libpng.a pngtest
|
||||
|
||||
libpng.a: $(OBJS)
|
||||
ar rc $@ $(OBJS)
|
||||
$(RANLIB) $@
|
||||
|
||||
$(LIBNAME).so: $(LIBNAME).so.$(PNGMAJ)
|
||||
ln -f -s $(LIBNAME).so.$(PNGMAJ) $(LIBNAME).so
|
||||
libpng.so: libpng.so.$(PNGMAJ)
|
||||
ln -f -s libpng.so.$(PNGMAJ) libpng.so
|
||||
|
||||
$(LIBNAME).so.$(PNGMAJ): $(LIBNAME).so.$(PNGVER)
|
||||
ln -f -s $(LIBNAME).so.$(PNGVER) $(LIBNAME).so.$(PNGMAJ)
|
||||
libpng.so.$(PNGMAJ): libpng.so.$(PNGVER)
|
||||
ln -f -s libpng.so.$(PNGVER) libpng.so.$(PNGMAJ)
|
||||
|
||||
$(LIBNAME).so.$(PNGVER): $(OBJS)
|
||||
libpng.so.$(PNGVER): $(OBJS)
|
||||
$(CC) -shared -o $@ $(OBJS) -L$(ZLIBLIB) -lz -lm
|
||||
|
||||
pngtest: pngtest.o libpng.a
|
||||
@@ -53,45 +52,23 @@ pngtest: pngtest.o libpng.a
|
||||
test: pngtest
|
||||
./pngtest
|
||||
|
||||
install-headers: png.h pngconf.h
|
||||
-@if [ ! -d $(INCPATH) ]; then mkdir $(INCPATH); fi
|
||||
-@if [ ! -d $(INCPATH)/$(LIBNAME) ]; then mkdir $(INCPATH)/$(LIBNAME); fi
|
||||
cp png.h pngconf.h $(INCPATH)/$(LIBNAME)
|
||||
chmod 644 $(INCPATH)/$(LIBNAME)/png.h $(INCPATH)/$(LIBNAME)/pngconf.h
|
||||
-@/bin/rm -f $(INCPATH)/png.h $(INCPATH)/pngconf.h
|
||||
-@/bin/rm -f $(INCPATH)/libpng
|
||||
ln -sf $(INCPATH)/$(LIBNAME) $(INCPATH)/libpng
|
||||
|
||||
install-static: install-headers libpng.a
|
||||
-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
|
||||
cp libpng.a $(LIBPATH)/$(LIBNAME).a
|
||||
chmod 644 $(LIBPATH)/$(LIBNAME).a
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.a
|
||||
ln -sf $(LIBPATH)/$(LIBNAME).a $(LIBPATH)/libpng.a
|
||||
|
||||
install-shared: install-headers $(LIBNAME).so.$(PNGVER)
|
||||
-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
|
||||
-@/bin/rm -f $(LIBPATH)/$(LIBNAME).so.$(PNGMAJ)* $(LIBPATH)/$(LIBNAME).so
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.so
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.so.2
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.so.2.*
|
||||
cp $(LIBNAME).so.$(PNGVER) $(LIBPATH)
|
||||
chmod 755 $(LIBPATH)/$(LIBNAME).so.$(PNGVER)
|
||||
(cd $(LIBPATH); \
|
||||
ln -sf $(LIBNAME).so.$(PNGVER) libpng.so; \
|
||||
ln -sf $(LIBNAME).so.$(PNGVER) libpng.so.2; \
|
||||
ln -sf $(LIBNAME).so.$(PNGVER) libpng.so.2.$(PNGMIN); \
|
||||
ln -sf $(LIBNAME).so.$(PNGVER) $(LIBNAME).so.$(PNGMAJ); \
|
||||
ln -sf $(LIBNAME).so.$(PNGMAJ) $(LIBNAME).so)
|
||||
-@if [ ! -d $(LIBPATH)/pkgconfig ]; then mkdir $(LIBPATH)/pkgconfig; fi
|
||||
cat scripts/libpng.pc.in | sed -e s\!@PREFIX@!$(prefix)! > libpng.pc
|
||||
cp libpng.pc $(LIBPATH)/pkgconfig/libpng10.pc
|
||||
chmod 644 $(LIBPATH)/pkgconfig/libpng10.pc
|
||||
|
||||
install: install-static install-shared
|
||||
install: libpng.a libpng.so.$(PNGVER)
|
||||
-@mkdir $(INCPATH)
|
||||
-@mkdir $(LIBPATH)
|
||||
cp png.h $(INCPATH)
|
||||
cp pngconf.h $(INCPATH)
|
||||
chmod 644 $(INCPATH)/png.h
|
||||
chmod 644 $(INCPATH)/pngconf.h
|
||||
cp libpng.a $(LIBPATH)
|
||||
cp libpng.so.$(PNGVER) $(LIBPATH)
|
||||
chmod 644 $(LIBPATH)/libpng.a
|
||||
chmod 644 $(LIBPATH)/libpng.so.$(PNGVER)
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.so.$(PNGMAJ) $(LIBPATH)/libpng.so
|
||||
(cd $(LIBPATH); ln -f -s libpng.so.$(PNGVER) libpng.so.$(PNGMAJ); \
|
||||
ln -f -s libpng.so.$(PNGMAJ) libpng.so)
|
||||
|
||||
clean:
|
||||
/bin/rm -f *.o libpng.a $(LIBNAME).so $(LIBNAME).so.$(PNGMAJ)* pngtest pngout.png
|
||||
rm -f *.o libpng.a pngtest pngout.png libpng.so*
|
||||
|
||||
# DO NOT DELETE THIS LINE -- make depend depends on it.
|
||||
|
||||
|
||||
@@ -1,93 +0,0 @@
|
||||
# makefile for libpng under FreeBSD
|
||||
# Copyright (C) 2002 Glenn Randers-Pehrson and Andrey A. Chernov
|
||||
# Copyright (C) 1995 Guy Eric Schalnat, Group 42, Inc.
|
||||
# For conditions of distribution and use, see copyright notice in png.h
|
||||
|
||||
# where make install puts libpng.a and png.h
|
||||
prefix=/usr/local
|
||||
|
||||
PNGMAJ= 5
|
||||
.if (${OBJFORMAT} == "elf")
|
||||
PNGVER= $(PNGMAJ)
|
||||
.else
|
||||
PNGMIN= 0
|
||||
PNGVER= $(PNGMAJ).$(PNGMIN)
|
||||
.endif
|
||||
|
||||
CFLAGS+= -I. -DPNG_USE_PNGGCCRD
|
||||
.if (${MACHINE_ARCH} != "i386")
|
||||
CFLAGS+= -DPNG_NO_ASSEMBLER_CODE
|
||||
.endif
|
||||
LDFLAGS+=-L. -lpng -lz -lm -static
|
||||
|
||||
OBJS = png.o pngset.o pngget.o pngrutil.o pngtrans.o pngwutil.o \
|
||||
pngread.o pngrio.o pngwio.o pngwrite.o pngrtran.o \
|
||||
pngwtran.o pngmem.o pngerror.o pngpread.o pnggccrd.o
|
||||
|
||||
.SUFFIXES: .c .so .o
|
||||
|
||||
.c.so:
|
||||
${CC} ${CFLAGS} -fPIC -DPIC -o $@ -c $<
|
||||
|
||||
all: libpng.a libpng.so.${PNGVER} pngtest
|
||||
|
||||
libpng.a: $(OBJS)
|
||||
ar rc $@ $(OBJS)
|
||||
$(RANLIB) $@
|
||||
|
||||
libpng.so.${PNGVER}: $(OBJS:S/o$/so/g)
|
||||
.if (${OBJFORMAT} == "elf")
|
||||
${CC} -shared -Wl,-x,-soname,$@ -o $@ $(OBJS:S/o$/so/g) -lz -lm
|
||||
.else
|
||||
${CC} -shared -Wl,-x -o $@ $(OBJS:S/o$/so/g) -lz -lm
|
||||
.endif
|
||||
|
||||
pngtest: pngtest.o libpng.a
|
||||
$(CC) -o pngtest $(CFLAGS) pngtest.o $(LDFLAGS)
|
||||
|
||||
test: pngtest
|
||||
./pngtest
|
||||
|
||||
install: libpng.a libpng.so.${PNGVER}
|
||||
-@mkdir $(prefix)/include/libpng
|
||||
${INSTALL} -o ${INCOWN} -g ${INCGRP} -m ${INCMODE} \
|
||||
png.h pngconf.h $(prefix)/include/libpng
|
||||
ln -sf libpng/png.h $(prefix)/include/png.h
|
||||
ln -sf libpng/pngconf.h $(prefix)/include/pngconf.h
|
||||
${INSTALL} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
|
||||
libpng.a libpng.so.${PNGVER} $(prefix)/lib
|
||||
$(RANLIB) $(prefix)/lib/libpng.a
|
||||
ln -sf libpng.so.${PNGVER} $(prefix)/lib/libpng.so
|
||||
/sbin/ldconfig -R
|
||||
${INSTALL} -o ${MANOWN} -g ${MANGRP} -m ${MANMODE} \
|
||||
libpng.3 libpngpf.3 $(prefix)/man/man3
|
||||
${INSTALL} -o ${MANOWN} -g ${MANGRP} -m ${MANMODE} \
|
||||
png.5 $(prefix)/man/man5
|
||||
|
||||
clean:
|
||||
rm -f *.o libpng.a libpng.so libpng.so.${PNGVER} pngtest pngout.png
|
||||
|
||||
DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO
|
||||
writelock:
|
||||
chmod a-w *.[ch35] $(DOCS) scripts/*
|
||||
|
||||
# DO NOT DELETE THIS LINE -- make depend depends on it.
|
||||
|
||||
png.o: png.h pngconf.h
|
||||
pngerror.o: png.h pngconf.h
|
||||
pngrio.o: png.h pngconf.h
|
||||
pngwio.o: png.h pngconf.h
|
||||
pngmem.o: png.h pngconf.h
|
||||
pngset.o: png.h pngconf.h
|
||||
pngget.o: png.h pngconf.h
|
||||
pngread.o: png.h pngconf.h
|
||||
pngrtran.o: png.h pngconf.h
|
||||
pngrutil.o: png.h pngconf.h
|
||||
pngtest.o: png.h pngconf.h
|
||||
pngtrans.o: png.h pngconf.h
|
||||
pngwrite.o: png.h pngconf.h
|
||||
pngwtran.o: png.h pngconf.h
|
||||
pngwutil.o: png.h pngconf.h
|
||||
pngpread.o: png.h pngconf.h
|
||||
pnggccrd.o: png.h pngconf.h
|
||||
|
||||
@@ -1,27 +1,17 @@
|
||||
# makefile for libpng.a and libpng10.so on Linux ELF with gcc using MMX
|
||||
# assembler code
|
||||
# Copyright 2002 Greg Roelofs and Glenn Randers-Pehrson
|
||||
# Copyright 1998-2001 Greg Roelofs
|
||||
# makefile for libpng on Linux ELF with gcc using MMX assembler code
|
||||
# Copyright 1996-1997 Andreas Dilger
|
||||
# Copyright 1998-2001 Greg Roelofs
|
||||
# For conditions of distribution and use, see copyright notice in png.h
|
||||
|
||||
# CAUTION: Do not use this makefile with gcc versions 2.7.2.2 and earlier.
|
||||
|
||||
# WARNING: The assembler code in pnggccrd.c may not be thread safe.
|
||||
|
||||
# NOTE: When testing MMX performance on a multitasking system, make sure
|
||||
# there are no floating-point programs (e.g., SETI@Home) running in
|
||||
# the background! Context switches between MMX and FPU are expensive.
|
||||
|
||||
LIBNAME = libpng10
|
||||
PNGMAJ = 0
|
||||
PNGMIN = 1.0.13
|
||||
PNGVER = $(PNGMAJ).$(PNGMIN)
|
||||
|
||||
CC=gcc
|
||||
|
||||
# where "make install" puts libpng.a, libpng10/libpng10.so*,
|
||||
# $(LIBNAME)/png.h and $(LIBNAME)/pngconf.h
|
||||
# where "make install" puts libpng.a, libpng.so*, png.h, and pngconf.h
|
||||
prefix=/usr/local
|
||||
|
||||
# Where the zlib library and include files are located
|
||||
@@ -40,26 +30,30 @@ WARNMORE=-Wwrite-strings -Wpointer-arith -Wshadow \
|
||||
|
||||
# for pgcc version 2.95.1, -O3 is buggy; don't use it.
|
||||
|
||||
# Remove -DPNG_THREAD_UNSAFE_OK if you need thread safety
|
||||
### for generic gcc:
|
||||
CFLAGS=-DPNG_THREAD_UNSAFE_OK -DPNG_USE_PNGGCCRD -I$(ZLIBINC) -Wall \
|
||||
-O3 $(ALIGN) -funroll-loops \
|
||||
CFLAGS=-DPNG_USE_PNGGCCRD -I$(ZLIBINC) -Wall -O3 $(ALIGN) -funroll-loops \
|
||||
-fomit-frame-pointer # $(WARNMORE) -g -DPNG_DEBUG=5
|
||||
### for gcc 2.95.2 on 686:
|
||||
#CFLAGS=-DPNG_THREAD_UNSAFE_OK -DPNG_USE_PNGGCCRD -I$(ZLIBINC) -Wall -O3 \
|
||||
#CFLAGS=-DPNG_USE_PNGGCCRD -I$(ZLIBINC) -Wall -O3 \
|
||||
# -mcpu=i686 -malign-double -ffast-math -fstrict-aliasing \
|
||||
# $(ALIGN) -funroll-loops -funroll-all-loops -fomit-frame-pointer
|
||||
### for gcc 2.7.2.3 on 486 and up:
|
||||
#CFLAGS=-DPNG_THREAD_UNSAFE_OK -DPNG_USE_PNGGCCRD -I$(ZLIBINC) -Wall -O3 \
|
||||
#CFLAGS=-DPNG_USE_PNGGCCRD -I$(ZLIBINC) -Wall -O3 \
|
||||
# -m486 -malign-double -ffast-math \
|
||||
# $(ALIGN) -funroll-loops -funroll-all-loops -fomit-frame-pointer
|
||||
|
||||
LDFLAGS=-L. -Wl,-rpath,. -L$(ZLIBLIB) -Wl,-rpath,$(ZLIBLIB) -lpng10 -lz -lm
|
||||
LDFLAGS=-L. -Wl,-rpath,. -L$(ZLIBLIB) -Wl,-rpath,$(ZLIBLIB) -lpng -lz -lm
|
||||
LDFLAGS_A=-L$(ZLIBLIB) -Wl,-rpath,$(ZLIBLIB) libpng.a -lz -lm
|
||||
|
||||
RANLIB=ranlib
|
||||
#RANLIB=echo
|
||||
|
||||
# read libpng.txt or png.h to see why PNGMAJ is 3. You should not
|
||||
# have to change it.
|
||||
PNGMAJ = 3
|
||||
PNGMIN = 1.2.0beta4
|
||||
PNGVER = $(PNGMAJ).$(PNGMIN)
|
||||
|
||||
INCPATH=$(prefix)/include
|
||||
LIBPATH=$(prefix)/lib
|
||||
|
||||
@@ -74,84 +68,67 @@ OBJSDLL = $(OBJS:.o=.pic.o)
|
||||
.c.pic.o:
|
||||
$(CC) -c $(CFLAGS) -fPIC -o $@ $*.c
|
||||
|
||||
all: libpng.a $(LIBNAME).so pngtest pngtest-static
|
||||
all: libpng.a libpng.so pngtest pngtest-static
|
||||
|
||||
pnggccrd.o: pnggccrd.c png.h pngconf.h
|
||||
@echo ""
|
||||
@echo ' You can ignore the single "control reaches end of non-void function"'
|
||||
@echo ' warning and multiple "<variable> defined but not used" warnings:'
|
||||
@echo ""
|
||||
$(CC) -c $(CFLAGS) -o $@ $*.c
|
||||
@echo ""
|
||||
|
||||
pnggccrd.pic.o: pnggccrd.c png.h pngconf.h
|
||||
@echo ""
|
||||
@echo ' You can ignore the single "control reaches end of non-void function"'
|
||||
@echo ' warning and multiple "<variable> defined but not used" warnings:'
|
||||
@echo ""
|
||||
$(CC) -c $(CFLAGS) -fPIC -o $@ pnggccrd.c
|
||||
@echo ""
|
||||
|
||||
$(LIBNAME).a: $(OBJS)
|
||||
libpng.a: $(OBJS)
|
||||
ar rc $@ $(OBJS)
|
||||
$(RANLIB) $@
|
||||
|
||||
$(LIBNAME).so: $(LIBNAME).so.$(PNGMAJ)
|
||||
ln -sf $(LIBNAME).so.$(PNGMAJ) $(LIBNAME).so
|
||||
libpng.so: libpng.so.$(PNGMAJ)
|
||||
ln -sf libpng.so.$(PNGMAJ) libpng.so
|
||||
|
||||
$(LIBNAME).so.$(PNGMAJ): $(LIBNAME).so.$(PNGVER)
|
||||
ln -sf $(LIBNAME).so.$(PNGVER) $(LIBNAME).so.$(PNGMAJ)
|
||||
libpng.so.$(PNGMAJ): libpng.so.$(PNGVER)
|
||||
ln -sf libpng.so.$(PNGVER) libpng.so.$(PNGMAJ)
|
||||
|
||||
$(LIBNAME).so.$(PNGVER): $(OBJSDLL)
|
||||
$(CC) -shared -Wl,-soname,$(LIBNAME).so.$(PNGMAJ) -o $(LIBNAME).so.$(PNGVER) \
|
||||
libpng.so.$(PNGVER): $(OBJSDLL)
|
||||
$(CC) -shared -Wl,-soname,libpng.so.$(PNGMAJ) -o libpng.so.$(PNGVER) \
|
||||
$(OBJSDLL) -L$(ZLIBLIB) -lz -lm -lc
|
||||
|
||||
pngtest: pngtest.o $(LIBNAME).so
|
||||
pngtest: pngtest.o libpng.so
|
||||
$(CC) -o pngtest $(CFLAGS) pngtest.o $(LDFLAGS)
|
||||
|
||||
pngtest-static: pngtest.o $(LIBNAME).a
|
||||
pngtest-static: pngtest.o libpng.a
|
||||
$(CC) -o pngtest-static $(CFLAGS) pngtest.o $(LDFLAGS_A)
|
||||
|
||||
test: pngtest pngtest-static
|
||||
@echo ""
|
||||
@echo " Running pngtest dynamically linked with libpng10.so:"
|
||||
@echo " Testing dynamically linked version:"
|
||||
@echo ""
|
||||
./pngtest
|
||||
@echo ""
|
||||
@echo " Running pngtest statically linked with libpng.a:"
|
||||
@echo " Testing statically linked version:"
|
||||
@echo ""
|
||||
./pngtest-static
|
||||
|
||||
install-headers: png.h pngconf.h
|
||||
-@if [ ! -d $(INCPATH) ]; then mkdir $(INCPATH); fi
|
||||
-@if [ ! -d $(INCPATH)/$(LIBNAME) ]; then mkdir $(INCPATH)/$(LIBNAME); fi
|
||||
cp png.h pngconf.h $(INCPATH)/$(LIBNAME)
|
||||
chmod 644 $(INCPATH)/$(LIBNAME)/png.h $(INCPATH)/$(LIBNAME)/pngconf.h
|
||||
-@/bin/rm -f $(INCPATH)/png.h $(INCPATH)/pngconf.h
|
||||
-@/bin/rm -f $(INCPATH)/libpng
|
||||
ln -sf $(INCPATH)/$(LIBNAME) $(INCPATH)/libpng
|
||||
|
||||
install-static: install-headers libpng.a
|
||||
install: libpng.a libpng.so.$(PNGVER)
|
||||
-@if [ ! -d $(INCPATH) ]; then mkdir $(INCPATH); fi
|
||||
-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
|
||||
cp libpng.a $(LIBPATH)/$(LIBNAME).a
|
||||
chmod 644 $(LIBPATH)/$(LIBNAME).a
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.a
|
||||
ln -sf $(LIBPATH)/$(LIBNAME).a $(LIBPATH)/libpng.a
|
||||
|
||||
install-shared: install-headers $(LIBNAME).so.$(PNGVER)
|
||||
-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
|
||||
-@/bin/rm -f $(LIBPATH)/$(LIBNAME).so.$(PNGMAJ)* $(LIBPATH)/$(LIBNAME).so
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.so
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.so.2
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.so.2.*
|
||||
cp $(LIBNAME).so.$(PNGVER) $(LIBPATH)
|
||||
chmod 755 $(LIBPATH)/$(LIBNAME).so.$(PNGVER)
|
||||
(cd $(LIBPATH); \
|
||||
ln -sf $(LIBNAME).so.$(PNGVER) libpng.so; \
|
||||
ln -sf $(LIBNAME).so.$(PNGVER) libpng.so.2; \
|
||||
ln -sf $(LIBNAME).so.$(PNGVER) libpng.so.2.$(PNGMIN); \
|
||||
ln -sf $(LIBNAME).so.$(PNGVER) $(LIBNAME).so.$(PNGMAJ); \
|
||||
ln -sf $(LIBNAME).so.$(PNGMAJ) $(LIBNAME).so)
|
||||
-@if [ ! -d $(LIBPATH)/pkgconfig ]; then mkdir $(LIBPATH)/pkgconfig; fi
|
||||
cat scripts/libpng.pc.in | sed -e s\!@PREFIX@!$(prefix)! > libpng.pc
|
||||
cp libpng.pc $(LIBPATH)/pkgconfig/libpng10.pc
|
||||
chmod 644 $(LIBPATH)/pkgconfig/libpng10.pc
|
||||
|
||||
install: install-static install-shared
|
||||
cp png.h pngconf.h $(INCPATH)
|
||||
chmod 644 $(INCPATH)/png.h $(INCPATH)/pngconf.h
|
||||
cp libpng.a libpng.so.$(PNGVER) $(LIBPATH)
|
||||
chmod 755 $(LIBPATH)/libpng.so.$(PNGVER)
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.so.$(PNGMAJ) $(LIBPATH)/libpng.so
|
||||
(cd $(LIBPATH); ln -sf libpng.so.$(PNGVER) libpng.so.$(PNGMAJ); \
|
||||
ln -sf libpng.so.$(PNGMAJ) libpng.so)
|
||||
|
||||
clean:
|
||||
/bin/rm -f *.o libpng.a $(LIBNAME).so $(LIBNAME).so.$(PNGMAJ)* \
|
||||
pngtest pngout.png
|
||||
/bin/rm -f *.o libpng.a libpng.so* pngtest pngout.png
|
||||
|
||||
DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO
|
||||
writelock:
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
# makefile for libpng on HP-UX using GCC
|
||||
# Copyright (C) 2002, Glenn Randers-Pehrson
|
||||
# Copyright (C) 2001, Laurent faillie
|
||||
# Copyright (C) 1998, 1999 Greg Roelofs
|
||||
# Copyright (C) 1996, 1997 Andreas Dilger
|
||||
@@ -32,12 +31,11 @@ LDFLAGS=-L. -L$(ZLIBLIB) -lpng -lz -lm
|
||||
RANLIB=ranlib
|
||||
#RANLIB=echo
|
||||
|
||||
# read libpng.txt or png.h to see why PNGMAJ is 0. You should not
|
||||
# read libpng.txt or png.h to see why PNGMAJ is 3. You should not
|
||||
# have to change it.
|
||||
PNGMAJ = 0
|
||||
PNGMIN = 1.0.13
|
||||
PNGMAJ = 3
|
||||
PNGMIN = 1.2.0beta4
|
||||
PNGVER = $(PNGMAJ).$(PNGMIN)
|
||||
LIBNAME = libpng10
|
||||
|
||||
INCPATH=$(prefix)/include
|
||||
LIBPATH=$(prefix)/lib
|
||||
@@ -53,69 +51,41 @@ OBJSDLL = $(OBJS:.o=.pic.o)
|
||||
.c.pic.o:
|
||||
$(CC) -c $(CFLAGS) -fPIC -o $@ $*.c
|
||||
|
||||
all: libpng.a $(LIBNAME).sl pngtest
|
||||
all: libpng.a libpng.sl pngtest
|
||||
|
||||
libpng.a: $(OBJS)
|
||||
ar rc $@ $(OBJS)
|
||||
$(RANLIB) $@
|
||||
|
||||
$(LIBNAME).sl: $(LIBNAME).sl.$(PNGMAJ)
|
||||
ln -f -s $(LIBNAME).sl.$(PNGMAJ) $(LIBNAME).sl
|
||||
libpng.sl: libpng.sl.$(PNGMAJ)
|
||||
ln -f -s libpng.sl.$(PNGMAJ) libpng.sl
|
||||
|
||||
$(LIBNAME).sl.$(PNGMAJ): $(LIBNAME).sl.$(PNGVER)
|
||||
ln -f -s $(LIBNAME).sl.$(PNGVER) $(LIBNAME).sl.$(PNGMAJ)
|
||||
libpng.sl.$(PNGMAJ): libpng.sl.$(PNGVER)
|
||||
ln -f -s libpng.sl.$(PNGVER) libpng.sl.$(PNGMAJ)
|
||||
|
||||
$(LIBNAME).sl.$(PNGVER): $(OBJSDLL)
|
||||
libpng.sl.$(PNGVER): $(OBJSDLL)
|
||||
$(LD) -b -L$(ZLIBLIB) +s +b $(ZLIBLIB) \
|
||||
+h libpng.sl.$(PNGMAJ) -o libpng.sl.$(PNGVER) $(OBJSDLL) -lz
|
||||
|
||||
pngtest: pngtest.o $(LIBNAME).sl
|
||||
pngtest: pngtest.o libpng.sl
|
||||
$(CC) -o pngtest $(CFLAGS) pngtest.o $(LDFLAGS)
|
||||
|
||||
test: pngtest
|
||||
./pngtest
|
||||
|
||||
|
||||
install-headers: png.h pngconf.h
|
||||
-@if [ ! -d $(INCPATH) ]; then mkdir $(INCPATH); fi
|
||||
-@if [ ! -d $(INCPATH)/$(LIBNAME) ]; then mkdir $(INCPATH)/$(LIBNAME); fi
|
||||
cp png.h pngconf.h $(INCPATH)/$(LIBNAME)
|
||||
chmod 644 $(INCPATH)/$(LIBNAME)/png.h $(INCPATH)/$(LIBNAME)/pngconf.h
|
||||
-@/bin/rm -f $(INCPATH)/png.h $(INCPATH)/pngconf.h
|
||||
-@/bin/rm -f $(INCPATH)/libpng
|
||||
ln -sf $(INCPATH)/$(LIBNAME) $(INCPATH)/libpng
|
||||
|
||||
install-static: install-headers libpng.a
|
||||
install: libpng.a libpng.sl.$(PNGVER)
|
||||
-@if [ ! -d $(INCPATH) ]; then mkdir $(INCPATH); fi
|
||||
-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
|
||||
cp libpng.a $(LIBPATH)/$(LIBNAME).a
|
||||
chmod 644 $(LIBPATH)/$(LIBNAME).a
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.a
|
||||
ln -sf $(LIBPATH)/$(LIBNAME).a $(LIBPATH)/libpng.a
|
||||
|
||||
install-shared: install-headers $(LIBNAME).sl.$(PNGVER)
|
||||
-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
|
||||
-@/bin/rm -f $(LIBPATH)/$(LIBNAME).sl.$(PNGMAJ)* $(LIBPATH)/$(LIBNAME).sl
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.so
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.so.2
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.so.2.*
|
||||
cp $(LIBNAME).sl.$(PNGVER) $(LIBPATH)
|
||||
chmod 755 $(LIBPATH)/$(LIBNAME).sl.$(PNGVER)
|
||||
(cd $(LIBPATH); \
|
||||
ln -sf $(LIBNAME).so.$(PNGVER) libpng.so; \
|
||||
ln -sf $(LIBNAME).sl.$(PNGVER) libpng.sl.2; \
|
||||
ln -sf $(LIBNAME).sl.$(PNGVER) libpng.sl.2.$(PNGMIN); \
|
||||
ln -sf $(LIBNAME).sl.$(PNGVER) $(LIBNAME).sl.$(PNGMAJ); \
|
||||
ln -sf $(LIBNAME).sl.$(PNGMAJ) $(LIBNAME).sl)
|
||||
-@if [ ! -d $(LIBPATH)/pkgconfig ]; then mkdir $(LIBPATH)/pkgconfig; fi
|
||||
cat scripts/libpng.pc.in | sed -e s\!@PREFIX@!$(prefix)! > libpng.pc
|
||||
cp libpng.pc $(LIBPATH)/pkgconfig/libpng10.pc
|
||||
chmod 644 $(LIBPATH)/pkgconfig/libpng10.pc
|
||||
|
||||
install: install-static install-shared
|
||||
cp png.h pngconf.h $(INCPATH)
|
||||
chmod 644 $(INCPATH)/png.h $(INCPATH)/pngconf.h
|
||||
cp libpng.a libpng.sl.$(PNGVER) $(LIBPATH)
|
||||
chmod 755 $(LIBPATH)/libpng.sl.$(PNGVER)
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.sl.$(PNGMAJ) $(LIBPATH)/libpng.sl
|
||||
(cd $(LIBPATH); ln -sf libpng.sl.$(PNGVER) libpng.sl.$(PNGMAJ); \
|
||||
ln -sf libpng.sl.$(PNGMAJ) libpng.sl)
|
||||
|
||||
clean:
|
||||
/bin/rm -f *.o libpng.a $(SHAREDLIB).sl $(SHAREDLIB).sl.$(PNGMAJ)* \
|
||||
pngtest pngout.png
|
||||
/bin/rm -f *.o libpng.a libpng.sl* pngtest pngout.png
|
||||
|
||||
DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO
|
||||
writelock:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# makefile for libpng, HPUX (10.20 and 11.00)
|
||||
# Copyright (C) 1999-2002 Glenn Randers-Pehrson
|
||||
# Copyright (C) 1999, 2000 Glenn Randers-Pehrson
|
||||
# Copyright (C) 1995 Guy Eric Schalnat, Group 42
|
||||
# contributed by Jim Rice and updated by Chris Schleicher, Hewlett Packard
|
||||
# For conditions of distribution and use, see copyright notice in png.h
|
||||
@@ -16,17 +16,14 @@ LDFLAGS=-L. -L$(ZLIBLIB) -lpng -lz -lm
|
||||
|
||||
RANLIB=ranlib
|
||||
|
||||
# read libpng.txt or png.h to see why PNGMAJ is 0. You should not
|
||||
# read libpng.txt or png.h to see why PNGMAJ is 3. You should not
|
||||
# have to change it.
|
||||
PNGMAJ = 0
|
||||
PNGMIN = 1.0.13
|
||||
PNGMAJ = 3
|
||||
PNGMIN = 1.2.0beta4
|
||||
PNGVER = $(PNGMAJ).$(PNGMIN)
|
||||
LIBNAME = libpng10
|
||||
|
||||
# where make install puts libpng.a, libpng10.sl, and png.h
|
||||
# where make install puts libpng.a and png.h
|
||||
prefix=/opt/libpng
|
||||
LIBPATH=$prefix/lib
|
||||
INCPATH=$prefix/include
|
||||
|
||||
OBJS = png.o pngset.o pngget.o pngrutil.o pngtrans.o pngwutil.o \
|
||||
pngread.o pngrio.o pngwio.o pngwrite.o pngrtran.o \
|
||||
@@ -39,22 +36,21 @@ OBJSDLL = $(OBJS:.o=.pic.o)
|
||||
.c.pic.o:
|
||||
$(CC) -c $(CFLAGS) +z -o $@ $*.c
|
||||
|
||||
all: libpng.a $(LIBNAME).sl pngtest
|
||||
all: libpng.a libpng.sl pngtest
|
||||
|
||||
libpng.a: $(OBJS)
|
||||
ar rc $@ $(OBJS)
|
||||
$(RANLIB) $@
|
||||
|
||||
$(LIBNAME).sl: $(LIBNAME).sl.$(PNGMAJ)
|
||||
ln -sf $(LIBNAME).sl.$(PNGMAJ) $(LIBNAME).sl
|
||||
libpng.sl: libpng.sl.$(PNGMAJ)
|
||||
ln -f -s libpng.sl.$(PNGMAJ) libpng.sl
|
||||
|
||||
$(LIBNAME).sl.$(PNGMAJ): $(LIBNAME).sl.$(PNGVER)
|
||||
ln -sf $(LIBNAME).sl.$(PNGVER) $(LIBNAME).sl.$(PNGMAJ)
|
||||
libpng.sl.$(PNGMAJ): libpng.sl.$(PNGVER)
|
||||
ln -f -s libpng.sl.$(PNGVER) libpng.sl.$(PNGMAJ)
|
||||
|
||||
$(LIBNAME).sl.$(PNGVER): $(OBJSDLL)
|
||||
libpng.sl.$(PNGVER): $(OBJSDLL)
|
||||
$(LD) -b -L$(ZLIBLIB) +s +b $(ZLIBLIB) \
|
||||
+h $(LIBNAME).sl.$(PNGMAJ) -o $(LIBNAME).sl.$(PNGVER) \
|
||||
$(OBJSDLL) -lz
|
||||
+h libpng.sl.$(PNGMAJ) -o libpng.sl.$(PNGVER) $(OBJSDLL) -lz
|
||||
|
||||
pngtest: pngtest.o libpng.a
|
||||
$(CC) -o pngtest $(CCFLAGS) pngtest.o $(LDFLAGS)
|
||||
@@ -62,46 +58,21 @@ pngtest: pngtest.o libpng.a
|
||||
test: pngtest
|
||||
./pngtest
|
||||
|
||||
install-headers: png.h pngconf.h
|
||||
-@if [ ! -d $(INCPATH) ]; then mkdir $(INCPATH); fi
|
||||
-@if [ ! -d $(INCPATH)/$(LIBNAME) ]; then mkdir $(INCPATH)/$(LIBNAME); fi
|
||||
cp png.h pngconf.h $(INCPATH)/$(LIBNAME)
|
||||
chmod 644 $(INCPATH)/$(LIBNAME)/png.h $(INCPATH)/$(LIBNAME)/pngconf.h
|
||||
-@/bin/rm -f $(INCPATH)/png.h $(INCPATH)/pngconf.h
|
||||
-@/bin/rm -f $(INCPATH)/libpng
|
||||
ln -sf $(INCPATH)/$(LIBNAME) $(INCPATH)/libpng
|
||||
|
||||
install-static: install-headers libpng.a
|
||||
-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
|
||||
cp libpng.a $(LIBPATH)/$(LIBNAME).a
|
||||
chmod 644 $(LIBPATH)/$(LIBNAME).a
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.a
|
||||
ln -sf $(LIBPATH)/$(LIBNAME).a $(LIBPATH)/libpng.a
|
||||
|
||||
install-shared: install-headers $(LIBNAME).sl.$(PNGVER)
|
||||
-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
|
||||
-@/bin/rm -f $(LIBPATH)/$(LIBNAME).sl.$(PNGMAJ)* $(LIBPATH)/$(LIBNAME).sl
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.sl
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.sl.2
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.sl.2.*
|
||||
cp $(LIBNAME).sl.$(PNGVER) $(LIBPATH)
|
||||
chmod 755 $(LIBPATH)/$(LIBNAME).sl.$(PNGVER)
|
||||
(cd $(LIBPATH); \
|
||||
ln -sf $(LIBNAME).sl.$(PNGVER) libpng.sl; \
|
||||
ln -sf $(LIBNAME).sl.$(PNGVER) libpng.sl.2; \
|
||||
ln -sf $(LIBNAME).sl.$(PNGVER) libpng.sl.2.$(PNGMIN); \
|
||||
ln -sf $(LIBNAME).sl.$(PNGVER) $(LIBNAME).sl.$(PNGMAJ); \
|
||||
ln -sf $(LIBNAME).sl.$(PNGMAJ) $(LIBNAME).sl)
|
||||
-@if [ ! -d $(LIBPATH)/pkgconfig ]; then mkdir $(LIBPATH)/pkgconfig; fi
|
||||
cat scripts/libpng.pc.in | sed -e s\!@PREFIX@!$(prefix)! > libpng.pc
|
||||
cp libpng.pc $(LIBPATH)/pkgconfig/libpng10.pc
|
||||
chmod 644 $(LIBPATH)/pkgconfig/libpng10.pc
|
||||
|
||||
install: install-static install-shared
|
||||
install: libpng.a
|
||||
-@mkdir $(prefix)/include
|
||||
-@mkdir $(prefix)/lib
|
||||
cp png.h $(prefix)/include
|
||||
cp pngconf.h $(prefix)/include
|
||||
chmod 644 $(prefix)/include/png.h
|
||||
chmod 644 $(prefix)/include/pngconf.h
|
||||
cp libpng.a libpng.sl.$(PNGVER) $(prefix)/lib
|
||||
chmod 644 $(prefix)/lib/libpng.a
|
||||
chmod 755 $(prefix)/lib/libpng.sl.$(PNGVER)
|
||||
(cd $(prefix)/lib; ln -f -s libpng.sl.$(PNGVER) libpng.sl.$(PNGMAJ); \
|
||||
ln -f -s libpng.sl.$(PNGMAJ) libpng.sl)
|
||||
|
||||
clean:
|
||||
/bin/rm -f *.o libpng.a $(LIBNAME).sl $(LIBNAME).sl.$(PNGMAJ)* \
|
||||
pngtest pngout.png
|
||||
rm -f *.o libpng.a libpng.sl* pngtest pngout.png
|
||||
|
||||
DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO
|
||||
writelock:
|
||||
|
||||
@@ -47,14 +47,11 @@ test: pngtest
|
||||
|
||||
install: libpng.a
|
||||
-@mkdir $(prefix)/include
|
||||
-@mkdir $(prefix)/include/libpng
|
||||
-@mkdir $(prefix)/lib
|
||||
-@rm -f $(prefix)/include/png.h
|
||||
-@rm -f $(prefix)/include/pngconf.h
|
||||
cp png.h $(prefix)/include/libpng
|
||||
cp pngconf.h $(prefix)/include/libpng
|
||||
chmod 644 $(prefix)/include/libpng/png.h
|
||||
chmod 644 $(prefix)/include/libpng/pngconf.h
|
||||
cp png.h $(prefix)/include
|
||||
cp pngconf.h $(prefix)/include
|
||||
chmod 644 $(prefix)/include/png.h
|
||||
chmod 644 $(prefix)/include/pngconf.h
|
||||
cp libpng.a $(prefix)/lib
|
||||
chmod 644 $(prefix)/lib/libpng.a
|
||||
|
||||
|
||||
@@ -1,17 +1,11 @@
|
||||
# makefile for libpng.a and libpng10.so on Linux ELF with gcc
|
||||
# Copyright (C) 1998, 1999, 2002 Greg Roelofs and Glenn Randers-Pehrson
|
||||
# makefile for libpng on Linux ELF with gcc
|
||||
# Copyright (C) 1998, 1999 Greg Roelofs
|
||||
# Copyright (C) 1996, 1997 Andreas Dilger
|
||||
# For conditions of distribution and use, see copyright notice in png.h
|
||||
|
||||
LIBNAME = libpng10
|
||||
PNGMAJ = 0
|
||||
PNGMIN = 1.0.13
|
||||
PNGVER = $(PNGMAJ).$(PNGMIN)
|
||||
|
||||
CC=gcc
|
||||
|
||||
# where "make install" puts libpng.a, libpng10/libpng10.so*,
|
||||
# libpng10/png.h and libpng10/pngconf.h
|
||||
# where "make install" puts libpng.a, libpng.so*, png.h and pngconf.h
|
||||
prefix=/usr/local
|
||||
|
||||
# Where the zlib library and include files are located
|
||||
@@ -32,13 +26,17 @@ WARNMORE=-Wwrite-strings -Wpointer-arith -Wshadow \
|
||||
|
||||
CFLAGS=-I$(ZLIBINC) -Wall -O3 -funroll-loops \
|
||||
$(ALIGN) # $(WARNMORE) -g -DPNG_DEBUG=5
|
||||
|
||||
LDFLAGS=-L. -Wl,-rpath,. -L$(ZLIBLIB) -Wl,-rpath,$(ZLIBLIB) -lpng10 -lz -lm
|
||||
LDFLAGS_A=-L$(ZLIBLIB) -Wl,-rpath,$(ZLIBLIB) libpng.a -lz -lm
|
||||
LDFLAGS=-L. -Wl,-rpath,. -L$(ZLIBLIB) -Wl,-rpath,$(ZLIBLIB) -lpng -lz -lm
|
||||
|
||||
RANLIB=ranlib
|
||||
#RANLIB=echo
|
||||
|
||||
# read libpng.txt or png.h to see why PNGMAJ is 3. You should not
|
||||
# have to change it.
|
||||
PNGMAJ = 3
|
||||
PNGMIN = 1.2.0beta4
|
||||
PNGVER = $(PNGMAJ).$(PNGMIN)
|
||||
|
||||
INCPATH=$(prefix)/include
|
||||
LIBPATH=$(prefix)/lib
|
||||
|
||||
@@ -53,80 +51,41 @@ OBJSDLL = $(OBJS:.o=.pic.o)
|
||||
.c.pic.o:
|
||||
$(CC) -c $(CFLAGS) -fPIC -o $@ $*.c
|
||||
|
||||
all: libpng.a $(LIBNAME).so pngtest
|
||||
all: libpng.a libpng.so pngtest
|
||||
|
||||
libpng.a: $(OBJS)
|
||||
ar rc $@ $(OBJS)
|
||||
$(RANLIB) $@
|
||||
|
||||
$(LIBNAME).so: $(LIBNAME).so.$(PNGMAJ)
|
||||
ln -sf $(LIBNAME).so.$(PNGMAJ) $(LIBNAME).so
|
||||
libpng.so: libpng.so.$(PNGMAJ)
|
||||
ln -sf libpng.so.$(PNGMAJ) libpng.so
|
||||
|
||||
$(LIBNAME).so.$(PNGMAJ): $(LIBNAME).so.$(PNGVER)
|
||||
ln -sf $(LIBNAME).so.$(PNGVER) $(LIBNAME).so.$(PNGMAJ)
|
||||
libpng.so.$(PNGMAJ): libpng.so.$(PNGVER)
|
||||
ln -sf libpng.so.$(PNGVER) libpng.so.$(PNGMAJ)
|
||||
|
||||
$(LIBNAME).so.$(PNGVER): $(OBJSDLL)
|
||||
$(CC) -shared -Wl,-soname,$(LIBNAME).so.$(PNGMAJ) \
|
||||
-o $(LIBNAME).so.$(PNGVER) \
|
||||
$(OBJSDLL) -L$(ZLIBLIB) -lz -lm -lc
|
||||
libpng.so.$(PNGVER): $(OBJSDLL)
|
||||
$(CC) -shared -Wl,-soname,libpng.so.$(PNGMAJ) -o libpng.so.$(PNGVER) \
|
||||
$(OBJSDLL) -L$(ZLIBLIB) -lz -lm -lc
|
||||
|
||||
pngtest: pngtest.o $(LIBNAME).so
|
||||
pngtest: pngtest.o libpng.so
|
||||
$(CC) -o pngtest $(CFLAGS) pngtest.o $(LDFLAGS)
|
||||
|
||||
pngtest-static: pngtest.o $(LIBNAME).a
|
||||
$(CC) -o pngtest-static $(CFLAGS) pngtest.o $(LDFLAGS_A)
|
||||
|
||||
test: pngtest pngtest-static
|
||||
@echo ""
|
||||
@echo " Running pngtest dynamically linked with libpng10.so:"
|
||||
@echo ""
|
||||
test: pngtest
|
||||
./pngtest
|
||||
@echo ""
|
||||
@echo " Running pngtest statically linked with libpng.a:"
|
||||
@echo ""
|
||||
./pngtest-static
|
||||
|
||||
install-headers: png.h pngconf.h
|
||||
-@if [ ! -d $(INCPATH) ]; then mkdir $(INCPATH); fi
|
||||
-@if [ ! -d $(INCPATH)/$(LIBNAME) ]; then mkdir $(INCPATH)/$(LIBNAME); fi
|
||||
cp png.h pngconf.h $(INCPATH)/$(LIBNAME)
|
||||
chmod 644 $(INCPATH)/$(LIBNAME)/png.h $(INCPATH)/$(LIBNAME)/pngconf.h
|
||||
-@/bin/rm -f $(INCPATH)/png.h $(INCPATH)/pngconf.h
|
||||
-@/bin/rm -f $(INCPATH)/libpng
|
||||
ln -sf $(INCPATH)/$(LIBNAME) $(INCPATH)/libpng
|
||||
|
||||
install-static: install-headers libpng.a
|
||||
install: libpng.a libpng.so.$(PNGVER)
|
||||
-@if [ ! -d $(INCPATH) ]; then mkdir $(INCPATH); fi
|
||||
-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
|
||||
cp libpng.a $(LIBPATH)/$(LIBNAME).a
|
||||
chmod 644 $(LIBPATH)/$(LIBNAME).a
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.a
|
||||
ln -sf $(LIBPATH)/$(LIBNAME).a $(LIBPATH)/libpng.a
|
||||
|
||||
install-shared: install-headers $(LIBNAME).so.$(PNGVER)
|
||||
-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
|
||||
-@/bin/rm -f $(LIBPATH)/$(LIBNAME).so.$(PNGMAJ)* $(LIBPATH)/$(LIBNAME).so
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.so
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.so.2
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.so.2.*
|
||||
cp $(LIBNAME).so.$(PNGVER) $(LIBPATH)
|
||||
chmod 755 $(LIBPATH)/$(LIBNAME).so.$(PNGVER)
|
||||
(cd $(LIBPATH); \
|
||||
ln -sf $(LIBNAME).so.$(PNGVER) libpng.so; \
|
||||
ln -sf $(LIBNAME).so.$(PNGVER) libpng.so.2; \
|
||||
ln -sf $(LIBNAME).so.$(PNGVER) libpng.so.2.$(PNGMIN); \
|
||||
ln -sf $(LIBNAME).so.$(PNGVER) $(LIBNAME).so.$(PNGMAJ); \
|
||||
ln -sf $(LIBNAME).so.$(PNGMAJ) $(LIBNAME).so)
|
||||
-@if [ ! -d $(LIBPATH)/pkgconfig ]; then mkdir $(LIBPATH)/pkgconfig; fi
|
||||
cat scripts/libpng.pc.in | sed -e s\!@PREFIX@!$(prefix)! > libpng.pc
|
||||
cp libpng.pc $(LIBPATH)/pkgconfig/libpng10.pc
|
||||
chmod 644 $(LIBPATH)/pkgconfig/libpng10.pc
|
||||
|
||||
install: install-static install-shared
|
||||
|
||||
cp png.h pngconf.h $(INCPATH)
|
||||
chmod 644 $(INCPATH)/png.h $(INCPATH)/pngconf.h
|
||||
cp libpng.a libpng.so.$(PNGVER) $(LIBPATH)
|
||||
chmod 755 $(LIBPATH)/libpng.so.$(PNGVER)
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.so.$(PNGMAJ) $(LIBPATH)/libpng.so
|
||||
(cd $(LIBPATH); ln -sf libpng.so.$(PNGVER) libpng.so.$(PNGMAJ); \
|
||||
ln -sf libpng.so.$(PNGMAJ) libpng.so)
|
||||
|
||||
clean:
|
||||
/bin/rm -f *.o libpng.a $(LIBNAME).so $(LIBNAME).so.$(PNMAJ)* \
|
||||
pngtest pngout.png
|
||||
/bin/rm -f *.o libpng.a libpng.so* pngtest pngout.png
|
||||
|
||||
DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO
|
||||
writelock:
|
||||
|
||||
@@ -1,8 +1,5 @@
|
||||
# makefile for libpng, MACOS X
|
||||
# Copyright (C) 2002 Glenn Randers-Pehrson
|
||||
# Copyright (C) 1995 Guy Eric Schalnat, Group 42, Inc.
|
||||
# Modified by Karin Kosina <kyrah@sim.no> 20011010:
|
||||
# build shared library (*.dylib)
|
||||
# For conditions of distribution and use, see copyright notice in png.h
|
||||
|
||||
# where make install puts libpng.a and png.h
|
||||
@@ -15,17 +12,8 @@ ZLIBLIB=../zlib
|
||||
ZLIBINC=../zlib
|
||||
|
||||
CC=cc
|
||||
CFLAGS=-fno-common -I$(ZLIBINC) -O # -g -DPNG_DEBUG=5
|
||||
CFLAGS=-I$(ZLIBINC) -O # -g -DPNG_DEBUG=5
|
||||
LDFLAGS=-L. -L$(ZLIBLIB) -lpng -lz
|
||||
LDSHARED=cc -lz -dynamiclib -compatibility_version $(VER) -current_version $(VER)
|
||||
|
||||
PNGMAJ = 0
|
||||
PNGMIN = 1.0.13
|
||||
VER = $(PNGMAJ).$(PNGMIN)
|
||||
LIBNAME=libpng10
|
||||
SHAREDLIB_POSTFIX=dylib
|
||||
LIBPATH=$(prefix)/lib
|
||||
INCPATH=$(prefix)/include
|
||||
|
||||
#RANLIB=echo
|
||||
RANLIB=ranlib
|
||||
@@ -34,71 +22,30 @@ OBJS = png.o pngset.o pngget.o pngrutil.o pngtrans.o pngwutil.o \
|
||||
pngread.o pngrio.o pngwio.o pngwrite.o pngrtran.o \
|
||||
pngwtran.o pngmem.o pngerror.o pngpread.o
|
||||
|
||||
all: libpng.a pngtest shared
|
||||
|
||||
shared: $(LIBNAME).$(VER).$(SHAREDLIB_POSTFIX)
|
||||
all: libpng.a pngtest
|
||||
|
||||
libpng.a: $(OBJS)
|
||||
ar rc $@ $(OBJS)
|
||||
$(RANLIB) $@
|
||||
|
||||
$(LIBNAME).$(VER).$(SHAREDLIB_POSTFIX): $(OBJS)
|
||||
$(LDSHARED) -o $@ $(OBJS)
|
||||
|
||||
pngtest: pngtest.o libpng.a
|
||||
$(CC) -o pngtest $(CFLAGS) pngtest.o $(LDFLAGS)
|
||||
|
||||
test: pngtest
|
||||
./pngtest
|
||||
|
||||
|
||||
install-headers: png.h pngconf.h
|
||||
-@if [ ! -d $(INCPATH) ]; then mkdir $(INCPATH); fi
|
||||
-@if [ ! -d $(INCPATH)/$(LIBNAME) ]; then mkdir $(INCPATH)/$(LIBNAME); fi
|
||||
cp png.h pngconf.h $(INCPATH)/$(LIBNAME)
|
||||
chmod 644 $(INCPATH)/$(LIBNAME)/png.h $(INCPATH)/$(LIBNAME)/pngconf.h
|
||||
-@/bin/rm -f $(INCPATH)/png.h $(INCPATH)/pngconf.h
|
||||
-@/bin/rm -f $(INCPATH)/libpng
|
||||
ln -f -s $(INCPATH)/$(LIBNAME) $(INCPATH)/libpng
|
||||
|
||||
install-static: install-headers libpng.a
|
||||
-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
|
||||
cp libpng.a $(LIBPATH)/$(LIBNAME).a
|
||||
chmod 644 $(LIBPATH)/$(LIBNAME).a
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.a
|
||||
ln -f -s $(LIBPATH)/$(LIBNAME).a $(LIBPATH)/libpng.a
|
||||
|
||||
install-shared: install-headers $(LIBNAME).$(PNGVER).$(SHAREDLIB_POSTFIX)
|
||||
-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
|
||||
-@/bin/rm -f $(LIBPATH)/$(LIBNAME).$(PNGMAJ)*.$(SHAREDLIB_POSTFIX)
|
||||
-@/bin/rm -f $(LIBPATH)/$(LIBNAME).$(SHAREDLIB_POSTFIX)
|
||||
-@/bin/rm -f libpng.$(SHARED_POSTFIX)
|
||||
-@/bin/rm -f libpng.2.$(SHARED_POSTFIX)
|
||||
-@/bin/rm -f libpng.2.*.$(SHARED_POSTFIX)
|
||||
cp $(LIBNAME).$(PNGVER).$(SHAREDLIB_POSTFIX) $(LIBPATH)
|
||||
chmod 755 $(LIBPATH)/$(LIBNAME).$(PNGVER).$(SHAREDLIB_POSTFIX)
|
||||
(cd $(LIBPATH); \
|
||||
ln -f -s $(LIBNAME).$(PNGVER).$(SHARED_POSTFIX) ]
|
||||
libpng.$(SHARED_POSTFIX); \
|
||||
ln -f -s $(LIBNAME).$(PNGVER).$(SHARED_POSTFIX) ]
|
||||
libpng.2.$(SHARED_POSTFIX); \
|
||||
ln -f -s $(LIBNAME).$(PNGVER).$(SHARED_POSTFIX) ]
|
||||
libpng.2.$(PNGMIN).$(SHARED_POSTFIX); \
|
||||
ln -sf $(LIBNAME).$(PNGVER).$(SHAREDLIB_POSTFIX) \
|
||||
$(LIBNAME).$(PNGMAJ).$(SHAREDLIB_POSTFIX); \
|
||||
ln -sf $(LIBNAME).$(PNGMAJ).$(SHAREDLIB_POSTFIX) \
|
||||
$(LIBNAME).$(SHAREDLIB_POSTFIX))
|
||||
-@if [ ! -d $(LIBPATH)/pkgconfig ]; then mkdir $(LIBPATH)/pkgconfig; fi
|
||||
cat scripts/libpng.pc.in | sed -e s\!@PREFIX@!$(prefix)! > libpng.pc
|
||||
cp libpng.pc $(LIBPATH)/pkgconfig/libpng10.pc
|
||||
chmod 644 $(LIBPATH)/pkgconfig/libpng10.pc
|
||||
|
||||
install: install-shared
|
||||
install: libpng.a
|
||||
-@mkdir $(prefix)/include
|
||||
-@mkdir $(prefix)/lib
|
||||
cp png.h $(prefix)/include
|
||||
cp pngconf.h $(prefix)/include
|
||||
chmod 644 $(prefix)/include/png.h
|
||||
chmod 644 $(prefix)/include/pngconf.h
|
||||
cp libpng.a $(prefix)/lib
|
||||
chmod 644 $(prefix)/lib/libpng.a
|
||||
|
||||
clean:
|
||||
rm -f *.o libpng.a pngtest pngout.png \
|
||||
$(LIBNAME).$(VER).$(SHAREDLIB_POSTFIX) \
|
||||
$(LIBNAME).$(SHAREDLIB_POSTFIX)
|
||||
rm -f *.o libpng.a pngtest pngout.png
|
||||
|
||||
DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO
|
||||
writelock:
|
||||
|
||||
@@ -31,14 +31,11 @@ test: pngtest
|
||||
|
||||
install: libpng.a
|
||||
-@mkdir $(prefix)/include
|
||||
-@mkdir $(prefix)/include/libpng
|
||||
-@mkdir $(prefix)/lib
|
||||
-@rm -f $(prefix)/include/png.h
|
||||
-@rm -f $(prefix)/include/pngconf.h
|
||||
cp png.h $(prefix)/include/libpng
|
||||
cp pngconf.h $(prefix)/include/libpng
|
||||
chmod 644 $(prefix)/include/libpng/png.h
|
||||
chmod 644 $(prefix)/include/libpng/pngconf.h
|
||||
cp png.h $(prefix)/include
|
||||
cp pngconf.h $(prefix)/include
|
||||
chmod 644 $(prefix)/include/png.h
|
||||
chmod 644 $(prefix)/include/pngconf.h
|
||||
cp libpng.a $(prefix)/lib
|
||||
chmod 644 $(prefix)/lib/libpng.a
|
||||
|
||||
|
||||
@@ -1,44 +0,0 @@
|
||||
# makefile for libpng for NetBSD for the standard
|
||||
# make obj && make depend && make && make test
|
||||
# make includes && make install
|
||||
# Copyright (C) 2002 Patrick R.L. Welche
|
||||
# For conditions of distribution and use, see copyright notice in png.h
|
||||
|
||||
# You should also run makefile.netbsd
|
||||
|
||||
LOCALBASE?=/usr/local
|
||||
LIBDIR= ${LOCALBASE}/lib
|
||||
MANDIR= ${LOCALBASE}/man
|
||||
INCSDIR=${LOCALBASE}/include/libpng10
|
||||
|
||||
LIB= png10
|
||||
SHLIB_MAJOR= 0
|
||||
SHLIB_MINOR= 1.0.13
|
||||
SRCS= pnggccrd.c 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
|
||||
INCS= png.h pngconf.h
|
||||
MAN= libpng.3 libpngpf.3 png.5
|
||||
|
||||
CPPFLAGS+=-I${.CURDIR} -DPNG_USE_PNGGCCRD
|
||||
|
||||
# something like this for mmx assembler, but it core dumps for me at the moment
|
||||
# .if ${MACHINE_ARCH} == "i386"
|
||||
# CPPFLAGS+=-DPNG_THREAD_UNSAFE_OK
|
||||
# MKLINT= no
|
||||
# .else
|
||||
CPPFLAGS+=-DPNG_NO_ASSEMBLER_CODE
|
||||
# .endif
|
||||
|
||||
CLEANFILES+=pngtest.o pngtest
|
||||
|
||||
pngtest.o: pngtest.c
|
||||
${CC} -c ${CPPFLAGS} ${CFLAGS} ${.ALLSRC} -o ${.TARGET}
|
||||
|
||||
pngtest: pngtest.o libpng.a
|
||||
${CC} ${LDFLAGS} ${.ALLSRC} -o${.TARGET} -lz -lm
|
||||
|
||||
test: pngtest
|
||||
cd ${.CURDIR} && ${.OBJDIR}/pngtest
|
||||
|
||||
.include <bsd.lib.mk>
|
||||
@@ -1,33 +1,31 @@
|
||||
# makefile for libpng for NetBSD for the standard
|
||||
# make obj && make depend && make && make test
|
||||
# make includes && make install
|
||||
# Copyright (C) 2002 Patrick R.L. Welche
|
||||
# Copyright (C) 2001 Patrick R.L. Welche
|
||||
# For conditions of distribution and use, see copyright notice in png.h
|
||||
|
||||
# You should also run makefile.ne0bsd
|
||||
|
||||
LOCALBASE?=/usr/local
|
||||
LIBDIR= ${LOCALBASE}/lib
|
||||
MANDIR= ${LOCALBASE}/man
|
||||
INCSDIR=${LOCALBASE}/include/libpng
|
||||
INCSDIR=${LOCALBASE}/include
|
||||
|
||||
LIB= png
|
||||
SHLIB_MAJOR= 2
|
||||
SHLIB_MINOR= 1.0.13
|
||||
LIB=png
|
||||
SHLIB_MAJOR= 3
|
||||
SHLIB_MINOR= 1.2.0beta4
|
||||
SRCS= pnggccrd.c 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
|
||||
pngread.c pngrio.c pngwio.c pngwrite.c pngrtran.c \
|
||||
pngwtran.c pngmem.c pngerror.c pngpread.c
|
||||
INCS= png.h pngconf.h
|
||||
MAN= libpng.3 libpngpf.3 png.5
|
||||
|
||||
CPPFLAGS+=-I${.CURDIR} -DPNG_USE_PNGGCCRD
|
||||
|
||||
CPPFLAGS+=-DPNG_NO_ASSEMBLER_CODE
|
||||
# something like this for mmx assembler, but it core dumps for me at the moment
|
||||
# .if ${MACHINE_ARCH} == "i386"
|
||||
# CPPFLAGS+=-DPNG_THREAD_UNSAFE_OK
|
||||
# MKLINT= no
|
||||
# .else
|
||||
CPPFLAGS+=-DPNG_NO_ASSEMBLER_CODE
|
||||
# CPPFLAGS+=-DPNG_NO_ASSEMBLER_CODE
|
||||
# .endif
|
||||
|
||||
CLEANFILES+=pngtest.o pngtest
|
||||
|
||||
@@ -1,70 +0,0 @@
|
||||
# makefile for libpng
|
||||
# Copyright (C) 1995 Guy Eric Schalnat, Group 42, Inc.
|
||||
# For conditions of distribution and use, see copyright notice in png.h
|
||||
|
||||
PREFIX?= /usr/local
|
||||
LIBDIR= ${PREFIX}/lib
|
||||
MANDIR= ${PREFIX}/man/cat
|
||||
|
||||
SHLIB_MAJOR= 0
|
||||
SHLIB_MINOR= 1.0.13
|
||||
|
||||
LIB= png
|
||||
SRCS= png.c pngerror.c pnggccrd.c pngget.c pngmem.c pngpread.c \
|
||||
pngread.c pngrio.c pngrtran.c pngrutil.c pngset.c pngtrans.c \
|
||||
pngwio.c pngwrite.c pngwtran.c pngwutil.c
|
||||
|
||||
HDRS= png.h pngconf.h
|
||||
|
||||
CFLAGS+= -Wall
|
||||
CPPFLAGS+= -I${.CURDIR} -DPNG_NO_ASSEMBLER_CODE -DPNG_USE_PNGGCCRD
|
||||
|
||||
NOPROFILE= Yes
|
||||
|
||||
CLEANFILES+= pngtest.o pngtest
|
||||
|
||||
MAN= libpng.3 libpngpf.3 png.5
|
||||
DOCS= ANNOUNCE CHANGES LICENSE README libpng.txt
|
||||
|
||||
pngtest.o: pngtest.c
|
||||
${CC} ${CPPFLAGS} ${CFLAGS} -c ${.ALLSRC} -o ${.TARGET}
|
||||
|
||||
pngtest: pngtest.o
|
||||
${CC} ${LDFLAGS} ${.ALLSRC} -o ${.TARGET} -L${.OBJDIR} -lpng -lz -lm
|
||||
|
||||
test: pngtest
|
||||
cd ${.OBJDIR} && env \
|
||||
LD_LIBRARY_PATH="${.OBJDIR}" ${.OBJDIR}/pngtest
|
||||
|
||||
beforeinstall:
|
||||
if [ ! -d ${DESTDIR}${PREFIX}/include/libpng ]; then \
|
||||
${INSTALL} -d -o root -g wheel ${DESTDIR}${PREFIX}/include/libpng; \
|
||||
fi
|
||||
if [ ! -d ${DESTDIR}${LIBDIR} ]; then \
|
||||
${INSTALL} -d -o root -g wheel ${DESTDIR}${LIBDIR}; \
|
||||
fi
|
||||
if [ ! -d ${DESTDIR}${LIBDIR}/debug ]; then \
|
||||
${INSTALL} -d -o root -g wheel ${DESTDIR}${LIBDIR}/debug; \
|
||||
fi
|
||||
if [ ! -d ${DESTDIR}${MANDIR}3 ]; then \
|
||||
${INSTALL} -d -o root -g wheel ${DESTDIR}${MANDIR}3; \
|
||||
fi
|
||||
if [ ! -d ${DESTDIR}${MANDIR}5 ]; then \
|
||||
${INSTALL} -d -o root -g wheel ${DESTDIR}${MANDIR}5; \
|
||||
fi
|
||||
if [ ! -d ${DESTDIR}${PREFIX}/share/doc/png ]; then \
|
||||
${INSTALL} -d -o root -g wheel ${DESTDIR}${PREFIX}/share/doc/png; \
|
||||
fi
|
||||
|
||||
afterinstall:
|
||||
@rm -f ${DESTDIR}${LIBDIR}/libpng_pic.a
|
||||
@rm -f ${DESTDIR}${LIBDIR}/debug/libpng.a
|
||||
@rm -f ${DESTDIR}${PREFIX}/include/png.h
|
||||
@rm -f ${DESTDIR}${PREFIX}/include/pngconf.h
|
||||
@rmdir ${DESTDIR}${LIBDIR}/debug 2>/dev/null || true
|
||||
${INSTALL} ${INSTALL_COPY} -o ${SHAREOWN} -g ${SHAREGRP} \
|
||||
-m ${NONBINMODE} ${HDRS} ${DESTDIR}${PREFIX}/include/libpng
|
||||
${INSTALL} ${INSTALL_COPY} -o ${SHAREOWN} -g ${SHAREGRP} \
|
||||
-m ${NONBINMODE} ${DOCS} ${DESTDIR}${PREFIX}/share/doc/png
|
||||
|
||||
.include <bsd.lib.mk>
|
||||
@@ -22,14 +22,13 @@ LDFLAGS=-L. -L$(ZLIBLIB) -lpng -lz -lm
|
||||
#RANLIB=ranlib
|
||||
RANLIB=echo
|
||||
|
||||
# read libpng.txt or png.h to see why PNGMAJ is 0. You should not
|
||||
# read libpng.txt or png.h to see why PNGMAJ is 3. You should not
|
||||
# have to change it.
|
||||
PNGMAJ = 0
|
||||
PNGMIN = 1.0.13
|
||||
PNGMAJ = 3
|
||||
PNGMIN = 1.2.0beta4
|
||||
PNGVER = $(PNGMAJ).$(PNGMIN)
|
||||
LIBNAME = libpng10
|
||||
|
||||
INCPATH=$(prefix)/include/libpng
|
||||
INCPATH=$(prefix)/include
|
||||
LIBPATH=$(prefix)/lib
|
||||
|
||||
OBJS = png.o pngset.o pngget.o pngrutil.o pngtrans.o pngwutil.o \
|
||||
@@ -43,70 +42,40 @@ OBJSDLL = $(OBJS:.o=.pic.o)
|
||||
.c.pic.o:
|
||||
$(CC) -c $(CFLAGS) -KPIC -o $@ $*.c
|
||||
|
||||
all: libpng.a $(LIBNAME).so pngtest
|
||||
all: libpng.a libpng.so pngtest
|
||||
|
||||
libpng.a: $(OBJS)
|
||||
ar rc $@ $(OBJS)
|
||||
$(RANLIB) $@
|
||||
|
||||
$(LIBNAME).so: $(LIBNAME).so.$(PNGMAJ)
|
||||
ln -f -s $(LIBNAME).so.$(PNGMAJ) $(LIBNAME).so
|
||||
libpng.so: libpng.so.$(PNGMAJ)
|
||||
ln -f -s libpng.so.$(PNGMAJ) libpng.so
|
||||
|
||||
$(LIBNAME).so.$(PNGMAJ): $(LIBNAME).so.$(PNGVER)
|
||||
ln -f -s $(LIBNAME).so.$(PNGVER) $(LIBNAME).so.$(PNGMAJ)
|
||||
libpng.so.$(PNGMAJ): libpng.so.$(PNGVER)
|
||||
ln -f -s libpng.so.$(PNGVER) libpng.so.$(PNGMAJ)
|
||||
|
||||
$(LIBNAME).so.$(PNGVER): $(OBJSDLL)
|
||||
$(CC) -G -Wl,-h,$(LIBNAME).so.$(PNGMAJ) -o $(LIBNAME).so.$(PNGVER) \
|
||||
libpng.so.$(PNGVER): $(OBJSDLL)
|
||||
$(CC) -G -Wl,-h,libpng.so.$(PNGMAJ) -o libpng.so.$(PNGVER) \
|
||||
$(OBJSDLL)
|
||||
|
||||
pngtest: pngtest.o $(LIBNAME).so
|
||||
pngtest: pngtest.o libpng.so
|
||||
LD_RUN_PATH=.:$(ZLIBLIB) $(CC) -o pngtest $(CFLAGS) pngtest.o $(LDFLAGS)
|
||||
|
||||
test: pngtest
|
||||
./pngtest
|
||||
|
||||
|
||||
install-headers: png.h pngconf.h
|
||||
-@if [ ! -d $(INCPATH) ]; then mkdir $(INCPATH); fi
|
||||
-@if [ ! -d $(INCPATH)/$(LIBNAME) ]; then mkdir $(INCPATH)/$(LIBNAME); fi
|
||||
-@/bin/rm -f $(INCPATH)/png.h
|
||||
-@/bin/rm -f $(INCPATH)/pngconf.h
|
||||
cp png.h pngconf.h $(INCPATH)/$(LIBNAME)
|
||||
chmod 644 $(INCPATH)/$(LIBNAME)/png.h $(INCPATH)/$(LIBNAME)/pngconf.h
|
||||
-@/bin/rm -f $(INCPATH)/png.h $(INCPATH)/pngconf.h
|
||||
-@/bin/rm -f $(INCPATH)/libpng
|
||||
ln -f -s $(INCPATH)/$(LIBNAME) $(INCPATH)/libpng
|
||||
|
||||
install-static: install-headers libpng.a
|
||||
-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
|
||||
cp libpng.a $(LIBPATH)/$(LIBNAME).a
|
||||
chmod 644 $(LIBPATH)/$(LIBNAME).a
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.a
|
||||
ln -f -s $(LIBPATH)/$(LIBNAME).a $(LIBPATH)/libpng.a
|
||||
|
||||
install-shared: install-headers $(LIBNAME).so.$(PNGVER)
|
||||
-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
|
||||
-@/bin/rm -f $(LIBPATH)/$(LIBNAME).so.$(PNGMAJ)* $(LIBPATH)/$(LIBNAME).so
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.so
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.so.2
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.so.2.*
|
||||
cp $(LIBNAME).so.$(PNGVER) $(LIBPATH)
|
||||
chmod 755 $(LIBPATH)/$(LIBNAME).so.$(PNGVER)
|
||||
(cd $(LIBPATH); \
|
||||
ln -f -s $(LIBNAME).so.$(PNGVER) libpng.so; \
|
||||
ln -f -s $(LIBNAME).so.$(PNGVER) libpng.so.2; \
|
||||
ln -f -s $(LIBNAME).so.$(PNGVER) libpng.so.2.$(PNGMIN); \
|
||||
ln -f -s $(LIBNAME).so.$(PNGVER) $(LIBNAME).so.$(PNGMAJ); \
|
||||
ln -f -s $(LIBNAME).so.$(PNGMAJ) $(LIBNAME).so)
|
||||
-@if [ ! -d $(LIBPATH)/pkgconfig ]; then mkdir $(LIBPATH)/pkgconfig; fi
|
||||
cat scripts/libpng.pc.in | sed -e s\!@PREFIX@!$(prefix)! > libpng.pc
|
||||
cp libpng.pc $(LIBPATH)/pkgconfig/libpng10.pc
|
||||
chmod 644 $(LIBPATH)/pkgconfig/libpng10.pc
|
||||
|
||||
install: install-static install-shared
|
||||
install: libpng.a libpng.so.$(PNGVER)
|
||||
-@mkdir $(INCPATH) $(LIBPATH)
|
||||
cp png.h pngconf.h $(INCPATH)
|
||||
chmod 644 $(INCPATH)/png.h $(INCPATH)/pngconf.h
|
||||
cp libpng.a libpng.so.$(PNGVER) $(LIBPATH)
|
||||
chmod 755 $(LIBPATH)/libpng.so.$(PNGVER)
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.so.$(PNGMAJ) $(LIBPATH)/libpng.so
|
||||
(cd $(LIBPATH); ln -f -s libpng.so.$(PNGVER) libpng.so.$(PNGMAJ); \
|
||||
ln -f -s libpng.so.$(PNGMAJ) libpng.so)
|
||||
|
||||
clean:
|
||||
/bin/rm -f *.o libpng.a $(LIBNAME).so $(LIBNAME).so.$(PNGMAJ)* pngtest pngout.png
|
||||
/bin/rm -f *.o libpng.a libpng.so* pngtest pngout.png
|
||||
|
||||
DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO
|
||||
writelock:
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
# makefile for libpng, SGI IRIX with gcc
|
||||
# Copyright (C) 2002 Glenn Randers-Pehrson
|
||||
# Copyright (C) 1995 Guy Eric Schalnat, Group 42, Inc.
|
||||
# For conditions of distribution and use, see copyright notice in png.h
|
||||
|
||||
@@ -23,13 +22,12 @@ CFLAGS=$(ABI) -I$(ZLIBINC) -O2 $(WARNMORE) -fPIC -mabi=n32
|
||||
LDFLAGS=$(ABI) -L. -L$(ZLIBLIB) -lpng -lz -lm
|
||||
LDSHARED=CC $(ABI) -shared
|
||||
|
||||
PNGMAJ = 0
|
||||
PNGMIN = 1.0.13
|
||||
PNGVER = $(PNGMAJ).$(PNGMIN)
|
||||
VER=1.2.0beta4
|
||||
# See "man dso" for info about shared objects
|
||||
LIBS=libpng10.so.$(PNGMAJ).$(PNGVER)
|
||||
LIBNAME=libpng10
|
||||
LIBPATH=$(prefix)/lib32
|
||||
SONUM=3
|
||||
LIBS=libpng.so.$(SONUM).$(VER)
|
||||
SHAREDLIB=libpng.so
|
||||
libdir=$(prefix)/lib32
|
||||
|
||||
RANLIB=echo
|
||||
#RANLIB=ranlib
|
||||
@@ -38,17 +36,17 @@ OBJS = png.o pngset.o pngget.o pngrutil.o pngtrans.o pngwutil.o \
|
||||
pngread.o pngrio.o pngwio.o pngwrite.o pngrtran.o \
|
||||
pngwtran.o pngmem.o pngerror.o pngpread.o
|
||||
|
||||
all: libpng.a $(LIBNAME).so.$(PNGVER) pngtest
|
||||
all: libpng.a $(SHAREDLIB).$(VER) pngtest
|
||||
|
||||
libpng.a: $(OBJS)
|
||||
ar rc $@ $(OBJS)
|
||||
$(RANLIB) $@
|
||||
|
||||
$(LIBNAME).so.$(PNGVER): $(OBJS)
|
||||
$(SHAREDLIB).$(VER): $(OBJS)
|
||||
$(LDSHARED) -o $@ $(OBJS)
|
||||
rm -f $(LIBNAME).so $(LIBNAME).so.$(PNGMAJ)
|
||||
ln -s $@ $(LIBNAME).so
|
||||
ln -s $@ $(LIBNAME).so.$(PNGMAJ)
|
||||
rm -f $(SHAREDLIB) $(SHAREDLIB).$(SONUM)
|
||||
ln -s $@ $(SHAREDLIB)
|
||||
ln -s $@ $(SHAREDLIB).$(SONUM)
|
||||
|
||||
pngtest: pngtest.o libpng.a
|
||||
$(CC) -o pngtest $(CFLAGS) pngtest.o $(LDFLAGS)
|
||||
@@ -56,43 +54,22 @@ pngtest: pngtest.o libpng.a
|
||||
test: pngtest
|
||||
./pngtest
|
||||
|
||||
|
||||
install-headers: png.h pngconf.h
|
||||
-@if [ ! -d $(INCPATH) ]; then mkdir $(INCPATH); fi
|
||||
-@if [ ! -d $(INCPATH)/$(LIBNAME) ]; then mkdir $(INCPATH)/$(LIBNAME); fi
|
||||
cp png.h pngconf.h $(INCPATH)/$(LIBNAME)
|
||||
chmod 644 $(INCPATH)/$(LIBNAME)/png.h $(INCPATH)/$(LIBNAME)/pngconf.h
|
||||
-@/bin/rm -f $(INCPATH)/png.h $(INCPATH)/pngconf.h
|
||||
-@/bin/rm -f $(INCPATH)/libpng
|
||||
ln -f -s $(INCPATH)/$(LIBNAME) $(INCPATH)/libpng
|
||||
|
||||
install-static: install-headers libpng.a
|
||||
-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
|
||||
cp libpng.a $(LIBPATH)/$(LIBNAME).a
|
||||
chmod 644 $(LIBPATH)/$(LIBNAME).a
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.a
|
||||
ln -f -s $(LIBPATH)/$(LIBNAME).a $(LIBPATH)/libpng.a
|
||||
|
||||
install-shared: install-headers $(LIBNAME).so.$(PNGVER)
|
||||
-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
|
||||
-@/bin/rm -f $(LIBPATH)/$(LIBNAME).so.$(PNGMAJ)* $(LIBPATH)/$(LIBNAME).so
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.so
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.so.2
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.so.2.*
|
||||
cp $(LIBNAME).so.$(PNGVER) $(LIBPATH)
|
||||
chmod 755 $(LIBPATH)/$(LIBNAME).so.$(PNGVER)
|
||||
(cd $(LIBPATH); \
|
||||
ln -f -s $(LIBNAME).so.$(PNGVER) libpng.so; \
|
||||
ln -f -s $(LIBNAME).so.$(PNGVER) libpng.so.2; \
|
||||
ln -f -s $(LIBNAME).so.$(PNGVER) libpng.so.2.$(PNGMIN); \
|
||||
ln -f -s $(LIBNAME).so.$(PNGVER) $(LIBNAME).so.$(PNGMAJ); \
|
||||
ln -f -s $(LIBNAME).so.$(PNGMAJ) $(LIBNAME).so)
|
||||
-@if [ ! -d $(LIBPATH)/pkgconfig ]; then mkdir $(LIBPATH)/pkgconfig; fi
|
||||
cat scripts/libpng.pc.in | sed -e s\!@PREFIX@!$(prefix)! > libpng.pc
|
||||
cp libpng.pc $(LIBPATH)/pkgconfig/libpng10.pc
|
||||
chmod 644 $(LIBPATH)/pkgconfig/libpng10.pc
|
||||
|
||||
install: install-static install-shared
|
||||
install: libpng.a
|
||||
-@mkdir $(prefix)/include
|
||||
-@mkdir $(prefix)/lib
|
||||
cp png.h $(prefix)/include
|
||||
cp pngconf.h $(prefix)/include
|
||||
chmod 644 $(prefix)/include/png.h
|
||||
chmod 644 $(prefix)/include/pngconf.h
|
||||
cp libpng.a $(prefix)/lib
|
||||
chmod 644 $(prefix)/lib/libpng.a
|
||||
cp $(SHAREDLIB).$(VER) $(libdir); chmod 755 $(SHAREDLIB).$(VER)
|
||||
(cd $(libdir); if test -f $(SHAREDLIB).$(VER); then \
|
||||
rm -f $(SHAREDLIB) $(SHAREDLIB).$(SONUM); \
|
||||
ln -s $(SHAREDLIB).$(VER) $(SHAREDLIB); \
|
||||
ln -s $(SHAREDLIB).$(VER) $(SHAREDLIB).$(SONUM); \
|
||||
(ldconfig || true) >/dev/null 2>&1; \
|
||||
fi)
|
||||
|
||||
clean:
|
||||
rm -f *.o libpng.a pngtest pngout.png
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
# makefile for libpng.a and libpng10.so, SGI IRIX with 'cc'
|
||||
# Copyright (C) 2001-2002 Glenn Randers-Pehrson
|
||||
# makefile for libpng (.a and .so), SGI IRIX with 'cc'
|
||||
# Copyright (C) 2001 Glenn Randers-Pehrson
|
||||
# Copyright (C) 1995 Guy Eric Schalnat, Group 42, Inc.
|
||||
# For conditions of distribution and use, see copyright notice in png.h
|
||||
|
||||
# where make install puts libpng.a, libpng10.so and libpng10/png.h
|
||||
# where make install puts libpng.a and png.h
|
||||
prefix=/usr/local
|
||||
|
||||
# Where the zlib library and include files are located
|
||||
@@ -24,40 +24,36 @@ WARNMORE=-fullwarn
|
||||
# Note: -KPIC is the default anyhow
|
||||
#CFLAGS= $(ABI) -I$(ZLIBINC) -O $(WARNMORE) -KPIC -DPNG_USE_PNGGCCRD # -g -DPNG_DEBUG=5
|
||||
CFLAGS=$(ABI) -I$(ZLIBINC) -O $(WARNMORE) -DPNG_USE_PNGGCCRD -DPNG_NO_ASSEMBLER_CODE
|
||||
LDFLAGS_A=$(ABI) -L. -L$(ZLIBLIB) -lpng10 -lz -lm
|
||||
LDFLAGS=$(ABI) -L. -L$(ZLIBLIB) -lpng -lz -lm
|
||||
LDSHARED=cc $(ABI) -shared
|
||||
|
||||
VER=1.2.0beta4
|
||||
# See "man dso" for info about shared objects
|
||||
LIBNAME=libpng10
|
||||
PNGMAJ = 0
|
||||
PNGMIN = 1.0.13
|
||||
PNGVER = $(PNGMAJ).$(PNGMIN)
|
||||
SONUM=3
|
||||
SHAREDLIB=libpng.so
|
||||
libdir=$(prefix)
|
||||
#libdir=$(prefix)/lib32
|
||||
|
||||
RANLIB=echo
|
||||
#RANLIB=ranlib
|
||||
|
||||
INCPATH=$(prefix)/include
|
||||
LIBPATH=$(prefix)/lib
|
||||
#LIBPATH=$(prefix)/lib32
|
||||
|
||||
OBJS = pnggccrd.o png.o pngset.o pngget.o pngrutil.o pngtrans.o pngwutil.o \
|
||||
pngread.o pngrio.o pngwio.o pngwrite.o pngrtran.o \
|
||||
pngwtran.o pngmem.o pngerror.o pngpread.o
|
||||
|
||||
all: libpng.a pngtest shared
|
||||
|
||||
shared: $(LIBNAME).so.$(PNGMAJ).$(PNGVER)
|
||||
shared: $(SHAREDLIB).$(SONUM).$(VER)
|
||||
|
||||
libpng.a: $(OBJS)
|
||||
ar rc $@ $(OBJS)
|
||||
$(RANLIB) $@
|
||||
|
||||
$(LIBNAME).so.$(PNGVER): $(OBJS)
|
||||
$(SHAREDLIB).$(SONUM).$(VER): $(OBJS)
|
||||
$(LDSHARED) -o $@ $(OBJS)
|
||||
rm -f $(LIBNAME).so $(LIBNAME).so.$(PNGMAJ)
|
||||
ln -s $@ $(LIBNAME).so
|
||||
ln -s $@ $(LIBNAME).so.$(PNGMAJ)
|
||||
rm -f $(SHAREDLIB) $(SHAREDLIB).?
|
||||
ln -s $@ $(SHAREDLIB)
|
||||
ln -s $@ $(SHAREDLIB).$(SONUM)
|
||||
|
||||
pngtest: pngtest.o libpng.a
|
||||
$(CC) -o pngtest $(CFLAGS) pngtest.o $(LDFLAGS)
|
||||
@@ -65,46 +61,26 @@ pngtest: pngtest.o libpng.a
|
||||
test: pngtest
|
||||
./pngtest
|
||||
|
||||
install-headers: png.h pngconf.h
|
||||
-@if [ ! -d $(INCPATH) ]; then mkdir $(INCPATH); fi
|
||||
-@if [ ! -d $(INCPATH)/$(LIBNAME) ]; then mkdir $(INCPATH)/$(LIBNAME); fi
|
||||
cp png.h pngconf.h $(INCPATH)/$(LIBNAME)
|
||||
chmod 644 $(INCPATH)/$(LIBNAME)/png.h $(INCPATH)/$(LIBNAME)/pngconf.h
|
||||
-@/bin/rm -f $(INCPATH)/png.h $(INCPATH)/pngconf.h
|
||||
-@/bin/rm -f $(INCPATH)/libpng
|
||||
ln -f -s $(INCPATH)/$(LIBNAME) $(INCPATH)/libpng
|
||||
install: libpng.a
|
||||
-@mkdir $(prefix)/include
|
||||
-@mkdir $(prefix)/lib
|
||||
cp png.h $(prefix)/include
|
||||
cp pngconf.h $(prefix)/include
|
||||
chmod 644 $(prefix)/include/png.h
|
||||
chmod 644 $(prefix)/include/pngconf.h
|
||||
cp libpng.a $(prefix)/lib
|
||||
chmod 644 $(prefix)/lib/libpng.a
|
||||
|
||||
install-static: install-headers libpng.a
|
||||
-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
|
||||
cp libpng.a $(LIBPATH)/$(LIBNAME).a
|
||||
chmod 644 $(LIBPATH)/$(LIBNAME).a
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.a
|
||||
ln -f -s $(LIBPATH)/$(LIBNAME).a $(LIBPATH)/libpng.a
|
||||
|
||||
install-shared: install-headers $(LIBNAME).so.$(PNGVER)
|
||||
-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
|
||||
-@/bin/rm -f $(LIBPATH)/$(LIBNAME).so.$(PNGMAJ)* $(LIBPATH)/$(LIBNAME).so
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.so
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.so.2
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.so.2.*
|
||||
cp $(LIBNAME).so.$(PNGVER) $(LIBPATH)
|
||||
chmod 755 $(LIBPATH)/$(LIBNAME).so.$(PNGVER)
|
||||
(cd $(LIBPATH); \
|
||||
ln -f -s $(LIBNAME).so.$(PNGVER) libpng.so; \
|
||||
ln -f -s $(LIBNAME).so.$(PNGVER) libpng.so.2; \
|
||||
ln -f -s $(LIBNAME).so.$(PNGVER) libpng.so.2.$(PNGMIN); \
|
||||
ln -f -s $(LIBNAME).so.$(PNGVER) $(LIBNAME).so.$(PNGMAJ); \
|
||||
ln -f -s $(LIBNAME).so.$(PNGMAJ) $(LIBNAME).so)
|
||||
-@if [ ! -d $(LIBPATH)/pkgconfig ]; then mkdir $(LIBPATH)/pkgconfig; fi
|
||||
cat scripts/libpng.pc.in | sed -e s\!@PREFIX@!$(prefix)! > libpng.pc
|
||||
cp libpng.pc $(LIBPATH)/pkgconfig/libpng10.pc
|
||||
chmod 644 $(LIBPATH)/pkgconfig/libpng10.pc
|
||||
|
||||
install: install-static install-shared
|
||||
install-shared: $(SHAREDLIB).$(SONUM).$(VER)
|
||||
cp $(SHAREDLIB).$(SONUM).$(VER) $(libdir)
|
||||
chmod 755 $(SHAREDLIB).$(SONUM).$(VER)
|
||||
(cd $(libdir)
|
||||
rm -f $(SHAREDLIB) $(SHAREDLIB).$(SONUM)
|
||||
ln -s $(SHAREDLIB).$(SONUM).$(VER) $(SHAREDLIB).$(SONUM)
|
||||
ln -s $(SHAREDLIB).$(SONUM) $(SHAREDLIB))
|
||||
|
||||
clean:
|
||||
rm -f *.o libpng.a pngtest pngout.png $(LIBNAME).so \
|
||||
$(LIBNAME).so.$(PNGMAJ)*
|
||||
rm -f *.o libpng.a pngtest pngout.png $(SHAREDLIB).*
|
||||
|
||||
DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO
|
||||
writelock:
|
||||
|
||||
@@ -1,153 +0,0 @@
|
||||
# makefile for libpng on Solaris 9 (beta) with Forte cc
|
||||
# Updated by Chad Schrock for Solaris 9
|
||||
# Contributed by William L. Sebok, based on makefile.linux
|
||||
# Copyright (C) 1998-2001 Greg Roelofs
|
||||
# Copyright (C) 1996-1997 Andreas Dilger
|
||||
# For conditions of distribution and use, see copyright notice in png.h
|
||||
|
||||
# gcc 2.95 doesn't work.
|
||||
CC=cc
|
||||
|
||||
# Where make install puts libpng.a, libpng.so*, and png.h
|
||||
prefix=/usr/local
|
||||
|
||||
# Where the zlib library and include files are located
|
||||
# Changing these to ../zlib poses a security risk. If you want
|
||||
# to have zlib in an adjacent directory, specify the full path instead of "..".
|
||||
#ZLIBLIB=../zlib
|
||||
#ZLIBINC=../zlib
|
||||
#ZLIBLIB=/usr/local/lib
|
||||
#ZLIBINC=/usr/local/include
|
||||
#Use the preinstalled zlib that comes with Solaris 9:
|
||||
ZLIBLIB=/usr/lib
|
||||
ZLIBINC=/usr/include
|
||||
|
||||
#WARNMORE=-Wwrite-strings -Wpointer-arith -Wshadow \
|
||||
-Wmissing-declarations -Wtraditional -Wcast-align \
|
||||
-Wstrict-prototypes -Wmissing-prototypes #-Wconversion
|
||||
#CFLAGS=-I$(ZLIBINC) -Wall -O3 $(WARNMORE) -g -DPNG_DEBUG=5
|
||||
CFLAGS=-I$(ZLIBINC) -O3
|
||||
LDFLAGS=-L. -R. -L$(ZLIBLIB) -R$(ZLIBLIB) -lpng -lz -lm
|
||||
|
||||
#RANLIB=ranlib
|
||||
RANLIB=echo
|
||||
|
||||
# read libpng.txt or png.h to see why PNGMAJ is 0. You should not
|
||||
# have to change it.
|
||||
PNGMAJ = 0
|
||||
PNGMIN = 1.0.13
|
||||
PNGVER = $(PNGMAJ).$(PNGMIN)
|
||||
LIBNAME = libpng10
|
||||
|
||||
INCPATH=$(prefix)/include
|
||||
LIBPATH=$(prefix)/lib
|
||||
|
||||
OBJS = png.o pngset.o pngget.o pngrutil.o pngtrans.o pngwutil.o \
|
||||
pngread.o pngrio.o pngwio.o pngwrite.o pngrtran.o \
|
||||
pngwtran.o pngmem.o pngerror.o pngpread.o
|
||||
|
||||
OBJSDLL = $(OBJS:.o=.pic.o)
|
||||
|
||||
.SUFFIXES: .c .o .pic.o
|
||||
|
||||
.c.pic.o:
|
||||
$(CC) -c $(CFLAGS) -KPIC -o $@ $*.c
|
||||
|
||||
all: libpng.a $(LIBNAME).so pngtest
|
||||
|
||||
libpng.a: $(OBJS)
|
||||
ar rc $@ $(OBJS)
|
||||
$(RANLIB) $@
|
||||
|
||||
$(LIBNAME).so: $(LIBNAME).so.$(PNGMAJ)
|
||||
ln -f -s $(LIBNAME).so.$(PNGMAJ) $(LIBNAME).so
|
||||
|
||||
$(LIBNAME).so.$(PNGMAJ): $(LIBNAME).so.$(PNGVER)
|
||||
ln -f -s $(LIBNAME).so.$(PNGVER) $(LIBNAME).so.$(PNGMAJ)
|
||||
|
||||
$(LIBNAME).so.$(PNGVER): $(OBJSDLL)
|
||||
@case "`type ld`" in *ucb*) \
|
||||
echo; \
|
||||
echo '## WARNING:'; \
|
||||
echo '## The commands "CC" and "LD" must NOT refer to /usr/ucb/cc'; \
|
||||
echo '## and /usr/ucb/ld. If they do, you need to adjust your PATH'; \
|
||||
echo '## environment variable to put /usr/ccs/bin ahead of /usr/ucb.'; \
|
||||
echo '## The environment variable LD_LIBRARY_PATH should not be set'; \
|
||||
echo '## at all. If it is, things are likely to break because of'; \
|
||||
echo '## the libucb dependency that is created.'; \
|
||||
echo; \
|
||||
;; \
|
||||
esac
|
||||
$(LD) -G -L$(ZLIBLIB) -R$(ZLIBLIB) -h $(LIBNAME).so.$(PNGMAJ) \
|
||||
-o $(LIBNAME).so.$(PNGVER) $(OBJSDLL) -lz
|
||||
|
||||
pngtest: pngtest.o $(LIBNAME).so
|
||||
$(CC) -o pngtest $(CFLAGS) pngtest.o $(LDFLAGS)
|
||||
|
||||
test: pngtest
|
||||
./pngtest
|
||||
|
||||
install-headers: png.h pngconf.h
|
||||
-@if [ ! -d $(INCPATH) ]; then mkdir $(INCPATH); fi
|
||||
-@if [ ! -d $(INCPATH)/$(LIBNAME) ]; then mkdir $(INCPATH)/$(LIBNAME); fi
|
||||
cp png.h pngconf.h $(INCPATH)/$(LIBNAME)
|
||||
chmod 644 $(INCPATH)/$(LIBNAME)/png.h $(INCPATH)/$(LIBNAME)/pngconf.h
|
||||
-@/bin/rm -f $(INCPATH)/png.h $(INCPATH)/pngconf.h
|
||||
-@/bin/rm -f $(INCPATH)/libpng
|
||||
ln -f -s $(INCPATH)/$(LIBNAME) $(INCPATH)/libpng
|
||||
|
||||
install-static: install-headers libpng.a
|
||||
-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
|
||||
cp libpng.a $(LIBPATH)/$(LIBNAME).a
|
||||
chmod 644 $(LIBPATH)/$(LIBNAME).a
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.a
|
||||
ln -f -s $(LIBPATH)/$(LIBNAME).a $(LIBPATH)/libpng.a
|
||||
|
||||
install-shared: install-headers $(LIBNAME).so.$(PNGVER)
|
||||
-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
|
||||
-@/bin/rm -f $(LIBPATH)/$(LIBNAME).so.$(PNGMAJ)* $(LIBPATH)/$(LIBNAME).so
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.so
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.so.2
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.so.2.*
|
||||
cp $(LIBNAME).so.$(PNGVER) $(LIBPATH)
|
||||
chmod 755 $(LIBPATH)/$(LIBNAME).so.$(PNGVER)
|
||||
(cd $(LIBPATH); \
|
||||
ln -f -s $(LIBNAME).so.$(PNGVER) libpng.so; \
|
||||
ln -f -s $(LIBNAME).so.$(PNGVER) libpng.so.2; \
|
||||
ln -f -s $(LIBNAME).so.$(PNGVER) libpng.so.2.$(PNGMIN); \
|
||||
ln -f -s $(LIBNAME).so.$(PNGVER) $(LIBNAME).so.$(PNGMAJ); \
|
||||
ln -f -s $(LIBNAME).so.$(PNGMAJ) $(LIBNAME).so)
|
||||
-@if [ ! -d $(LIBPATH)/pkgconfig ]; then mkdir $(LIBPATH)/pkgconfig; fi
|
||||
cat scripts/libpng.pc.in | sed -e s\!@PREFIX@!$(prefix)! > libpng.pc
|
||||
cp libpng.pc $(LIBPATH)/pkgconfig/libpng10.pc
|
||||
chmod 644 $(LIBPATH)/pkgconfig/libpng10.pc
|
||||
|
||||
install: install-static install-shared
|
||||
|
||||
clean:
|
||||
/bin/rm -f *.o libpng.a $(LIBNAME).so $(LIBNAME).so.$(PNGMAJ)* \
|
||||
pngtest pngout.png
|
||||
|
||||
DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO
|
||||
writelock:
|
||||
chmod a-w *.[ch35] $(DOCS) scripts/*
|
||||
|
||||
# DO NOT DELETE THIS LINE -- make depend depends on it.
|
||||
|
||||
png.o png.pic.o: png.h pngconf.h
|
||||
pngerror.o pngerror.pic.o: png.h pngconf.h
|
||||
pngrio.o pngrio.pic.o: png.h pngconf.h
|
||||
pngwio.o pngwio.pic.o: png.h pngconf.h
|
||||
pngmem.o pngmem.pic.o: png.h pngconf.h
|
||||
pngset.o pngset.pic.o: png.h pngconf.h
|
||||
pngget.o pngget.pic.o: png.h pngconf.h
|
||||
pngread.o pngread.pic.o: png.h pngconf.h
|
||||
pngrtran.o pngrtran.pic.o: png.h pngconf.h
|
||||
pngrutil.o pngrutil.pic.o: png.h pngconf.h
|
||||
pngtrans.o pngtrans.pic.o: png.h pngconf.h
|
||||
pngwrite.o pngwrite.pic.o: png.h pngconf.h
|
||||
pngwtran.o pngwtran.pic.o: png.h pngconf.h
|
||||
pngwutil.o pngwutil.pic.o: png.h pngconf.h
|
||||
pngpread.o pngpread.pic.o: png.h pngconf.h
|
||||
|
||||
pngtest.o: png.h pngconf.h
|
||||
@@ -1,5 +1,4 @@
|
||||
# makefile for libpng on Solaris 2.x with gcc
|
||||
# Copyright (C) 2002 Glenn Randers-Pehrson
|
||||
# Contributed by William L. Sebok, based on makefile.linux
|
||||
# Copyright (C) 1998 Greg Roelofs
|
||||
# Copyright (C) 1996, 1997 Andreas Dilger
|
||||
@@ -7,7 +6,7 @@
|
||||
|
||||
CC=gcc
|
||||
|
||||
# Where make install puts libpng.a, libpng10.so*, and png.h
|
||||
# Where make install puts libpng.a, libpng.so*, and png.h
|
||||
prefix=/usr/local
|
||||
|
||||
# Where the zlib library and include files are located
|
||||
@@ -29,12 +28,11 @@ LDFLAGS=-L. -R. -L$(ZLIBLIB) -R$(ZLIBLIB) -lpng -lz -lm
|
||||
#RANLIB=ranlib
|
||||
RANLIB=echo
|
||||
|
||||
# read libpng.txt or png.h to see why PNGMAJ is 0. You should not
|
||||
# read libpng.txt or png.h to see why PNGMAJ is 3. You should not
|
||||
# have to change it.
|
||||
PNGMAJ = 0
|
||||
PNGMIN = 1.0.13
|
||||
PNGMAJ = 3
|
||||
PNGMIN = 1.2.0beta4
|
||||
PNGVER = $(PNGMAJ).$(PNGMIN)
|
||||
LIBNAME = libpng10
|
||||
|
||||
INCPATH=$(prefix)/include
|
||||
LIBPATH=$(prefix)/lib
|
||||
@@ -50,19 +48,19 @@ OBJSDLL = $(OBJS:.o=.pic.o)
|
||||
.c.pic.o:
|
||||
$(CC) -c $(CFLAGS) -fPIC -o $@ $*.c
|
||||
|
||||
all: libpng.a $(LIBNAME).so pngtest
|
||||
all: libpng.a libpng.so pngtest
|
||||
|
||||
libpng.a: $(OBJS)
|
||||
ar rc $@ $(OBJS)
|
||||
$(RANLIB) $@
|
||||
|
||||
$(LIBNAME).so: $(LIBNAME).so.$(PNGMAJ)
|
||||
ln -f -s $(LIBNAME).so.$(PNGMAJ) $(LIBNAME).so
|
||||
libpng.so: libpng.so.$(PNGMAJ)
|
||||
ln -f -s libpng.so.$(PNGMAJ) libpng.so
|
||||
|
||||
$(LIBNAME).so.$(PNGMAJ): $(LIBNAME).so.$(PNGVER)
|
||||
ln -f -s $(LIBNAME).so.$(PNGVER) $(LIBNAME).so.$(PNGMAJ)
|
||||
libpng.so.$(PNGMAJ): libpng.so.$(PNGVER)
|
||||
ln -f -s libpng.so.$(PNGVER) libpng.so.$(PNGMAJ)
|
||||
|
||||
$(LIBNAME).so.$(PNGVER): $(OBJSDLL)
|
||||
libpng.so.$(PNGVER): $(OBJSDLL)
|
||||
@case "`type ld`" in *ucb*) \
|
||||
echo; \
|
||||
echo '## WARNING:'; \
|
||||
@@ -75,55 +73,27 @@ $(LIBNAME).so.$(PNGVER): $(OBJSDLL)
|
||||
echo; \
|
||||
;; \
|
||||
esac
|
||||
$(LD) -G -L$(ZLIBLIB) -R$(ZLIBLIB) -h $(LIBNAME).so.$(PNGMAJ) \
|
||||
-o $(LIBNAME).so.$(PNGVER) $(OBJSDLL) -lz
|
||||
$(LD) -G -L$(ZLIBLIB) -R$(ZLIBLIB) -h libpng.so.$(PNGMAJ) \
|
||||
-o libpng.so.$(PNGVER) $(OBJSDLL) -lz
|
||||
|
||||
pngtest: pngtest.o $(LIBNAME).so
|
||||
pngtest: pngtest.o libpng.so
|
||||
$(CC) -o pngtest $(CFLAGS) pngtest.o $(LDFLAGS)
|
||||
|
||||
test: pngtest
|
||||
./pngtest
|
||||
|
||||
install-headers: png.h pngconf.h
|
||||
-@if [ ! -d $(INCPATH) ]; then mkdir $(INCPATH); fi
|
||||
-@if [ ! -d $(INCPATH)/$(LIBNAME) ]; then mkdir $(INCPATH)/$(LIBNAME); fi
|
||||
cp png.h pngconf.h $(INCPATH)/$(LIBNAME)
|
||||
chmod 644 $(INCPATH)/$(LIBNAME)/png.h $(INCPATH)/$(LIBNAME)/pngconf.h
|
||||
-@/bin/rm -f $(INCPATH)/png.h $(INCPATH)/pngconf.h
|
||||
-@/bin/rm -f $(INCPATH)/libpng
|
||||
ln -f -s $(INCPATH)/$(LIBNAME) $(INCPATH)/libpng
|
||||
|
||||
install-static: install-headers libpng.a
|
||||
-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
|
||||
cp libpng.a $(LIBPATH)/$(LIBNAME).a
|
||||
chmod 644 $(LIBPATH)/$(LIBNAME).a
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.a
|
||||
ln -f -s $(LIBPATH)/$(LIBNAME).a $(LIBPATH)/libpng.a
|
||||
|
||||
install-shared: install-headers $(LIBNAME).so.$(PNGVER)
|
||||
-@if [ ! -d $(LIBPATH) ]; then mkdir $(LIBPATH); fi
|
||||
-@/bin/rm -f $(LIBPATH)/$(LIBNAME).so.$(PNGMAJ)* $(LIBPATH)/$(LIBNAME).so
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.so
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.so.2
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.so.2.*
|
||||
cp $(LIBNAME).so.$(PNGVER) $(LIBPATH)
|
||||
chmod 755 $(LIBPATH)/$(LIBNAME).so.$(PNGVER)
|
||||
(cd $(LIBPATH); \
|
||||
ln -f -s $(LIBNAME).so.$(PNGVER) libpng.so; \
|
||||
ln -f -s $(LIBNAME).so.$(PNGVER) libpng.so.2; \
|
||||
ln -f -s $(LIBNAME).so.$(PNGVER) libpng.so.2.$(PNGMIN); \
|
||||
ln -f -s $(LIBNAME).so.$(PNGVER) $(LIBNAME).so; \
|
||||
ln -f -s $(LIBNAME).so.$(PNGVER) $(LIBNAME).so.$(PNGMAJ))
|
||||
-@if [ ! -d $(LIBPATH)/pkgconfig ]; then mkdir $(LIBPATH)/pkgconfig; fi
|
||||
cat scripts/libpng.pc.in | sed -e s\!@PREFIX@!$(prefix)! > libpng.pc
|
||||
cp libpng.pc $(LIBPATH)/pkgconfig/libpng10.pc
|
||||
chmod 644 $(LIBPATH)/pkgconfig/libpng10.pc
|
||||
|
||||
install: install-static install-shared
|
||||
install: libpng.a libpng.so.$(PNGVER)
|
||||
-@mkdir $(INCPATH) $(LIBPATH)
|
||||
cp png.h pngconf.h $(INCPATH)
|
||||
chmod 644 $(INCPATH)/png.h $(INCPATH)/pngconf.h
|
||||
cp libpng.a libpng.so.$(PNGVER) $(LIBPATH)
|
||||
chmod 755 $(LIBPATH)/libpng.so.$(PNGVER)
|
||||
-@/bin/rm -f $(LIBPATH)/libpng.so.$(PNGMAJ) $(LIBPATH)/libpng.so
|
||||
(cd $(LIBPATH); ln -f -s libpng.so.$(PNGVER) libpng.so.$(PNGMAJ); \
|
||||
ln -f -s libpng.so.$(PNGMAJ) libpng.so)
|
||||
|
||||
clean:
|
||||
/bin/rm -f *.o libpng.a $(LIBNAME).so $(LIBNAME).so.$(PNGMAJ)* \
|
||||
pngtest pngout.png
|
||||
/bin/rm -f *.o libpng.a libpng.so* pngtest pngout.png
|
||||
|
||||
DOCS = ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO
|
||||
writelock:
|
||||
|
||||
@@ -36,14 +36,11 @@ test: pngtest
|
||||
|
||||
install: libpng.a
|
||||
-@mkdir $(prefix)/include
|
||||
-@mkdir $(prefix)/include/libpng
|
||||
-@mkdir $(prefix)/lib
|
||||
-@rm -f $(prefix)/include/png.h
|
||||
-@rm -f $(prefix)/include/pngconf.h
|
||||
cp png.h $(prefix)/include/libpng
|
||||
cp pngconf.h $(prefix)/include/libpng
|
||||
chmod 644 $(prefix)/include/libpng/png.h
|
||||
chmod 644 $(prefix)/include/libpng/pngconf.h
|
||||
cp png.h $(prefix)/include
|
||||
cp pngconf.h $(prefix)/include
|
||||
chmod 644 $(prefix)/include/png.h
|
||||
chmod 644 $(prefix)/include/pngconf.h
|
||||
cp libpng.a $(prefix)/lib
|
||||
chmod 644 $(prefix)/lib/libpng.a
|
||||
|
||||
|
||||
@@ -40,14 +40,11 @@ test: pngtest
|
||||
|
||||
install: libpng.a
|
||||
-@mkdir $(prefix)/include
|
||||
-@mkdir $(prefix)/include/libpng
|
||||
-@mkdir $(prefix)/lib
|
||||
-@rm -f $(prefix)/include/png.h
|
||||
-@rm -f $(prefix)/include/pngconf.h
|
||||
cp png.h $(prefix)/include/libpng
|
||||
cp pngconf.h $(prefix)/include/libpng
|
||||
chmod 644 $(prefix)/include/libpng/png.h
|
||||
chmod 644 $(prefix)/include/libpng/pngconf.h
|
||||
cp png.h $(prefix)/include
|
||||
cp pngconf.h $(prefix)/include
|
||||
chmod 644 $(prefix)/include/png.h
|
||||
chmod 644 $(prefix)/include/pngconf.h
|
||||
cp libpng.a $(prefix)/lib
|
||||
chmod 644 $(prefix)/lib/libpng.a
|
||||
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
unit pngdef;
|
||||
|
||||
// Caution: this file has fallen out of date since version 1.0.5. Write to
|
||||
// png-implement@ccrc.wustl.edu or to randeg@alum.rpi.edu about volunteering
|
||||
// to it up to date.
|
||||
// png-implement@ccrc.wustl.edu or to randeg@alum.rpi.edu about bringing
|
||||
// it up to date.
|
||||
|
||||
interface
|
||||
|
||||
const
|
||||
PNG_LIBPNG_VER_STRING = '1.0.13';
|
||||
PNG_LIBPNG_VER = 10013;
|
||||
PNG_LIBPNG_VER_STRING = '1.2.0beta4';
|
||||
PNG_LIBPNG_VER = 10200;
|
||||
|
||||
type
|
||||
png_uint_32 = Cardinal;
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
; PNG.LIB module definition file for OS/2
|
||||
;----------------------------------------
|
||||
|
||||
; Version 1.0.13
|
||||
; Version 1.2.0beta4
|
||||
|
||||
LIBRARY PNG
|
||||
DESCRIPTION "PNG image compression library for OS/2"
|
||||
@@ -184,22 +184,20 @@ EXPORTS
|
||||
png_convert_to_rfc1123
|
||||
png_set_invalid
|
||||
|
||||
; Added at version 1.2.0:
|
||||
; png_mmx_support
|
||||
; png_permit_empty_plte
|
||||
;To be added at version 1.2.0
|
||||
; png_permit_mng_features
|
||||
; png_get_mmx_flagmask
|
||||
; png_get_asm_flagmask
|
||||
; png_get_asm_flags
|
||||
; png_get_mmx_bitdepth_threshold
|
||||
; png_get_mmx_rowbytes_threshold
|
||||
; png_set_asm_flags
|
||||
; png_init_mmx_flags
|
||||
|
||||
; Added at version 1.2.2:
|
||||
png_zalloc
|
||||
png_zfree
|
||||
png_handle_as_unknown
|
||||
; Added at version 1.2.0:
|
||||
png_mmx_support
|
||||
png_permit_empty_plte
|
||||
png_permit_mng_features
|
||||
png_get_mmx_flagmask
|
||||
png_get_asm_flagmask
|
||||
png_get_asm_flags
|
||||
png_get_mmx_bitdepth_threshold
|
||||
png_get_mmx_rowbytes_threshold
|
||||
png_set_asm_flags
|
||||
png_init_mmx_flags
|
||||
|
||||
; These are not present when libpng is compiled with PNG_NO_GLOBAL_ARRAYS
|
||||
png_libpng_ver
|
||||
|
||||
Reference in New Issue
Block a user