Imported from libpng-1.2.0rc1.tar
This commit is contained in:
parent
1ea0ff34fa
commit
1b8e567237
10
ANNOUNCE
10
ANNOUNCE
@ -1,5 +1,5 @@
|
||||
|
||||
Libpng 1.2.0beta5 - August 8, 2001
|
||||
Libpng 1.2.0rc1 - August 25, 2001
|
||||
|
||||
This is a public release of libpng, intended for use in production codes.
|
||||
|
||||
@ -12,19 +12,19 @@ Changes since the last public release (1.0.12):
|
||||
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
|
||||
Updated makefile.ibmc, makefile.gcmmx
|
||||
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
|
||||
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
|
||||
Replaced calls to fprintf(stderr,...) with png_warning() in pnggccrd.c
|
||||
Removed restriction that do_invert_mono only operate on 1-bit opaque files
|
||||
Replaced calls to fprintf(stderr,...) with png_warning() or png_debug()
|
||||
in pnggccrd.c
|
||||
Fixed contrib/gregbook/rpng-x.c, rpng2-x.c to avoid crash with XFreeGC().
|
||||
|
||||
Send comments/corrections/commendations to
|
||||
png-implement@ccrc.wustl.edu or to randeg@alum.rpi.edu
|
||||
|
3
CHANGES
3
CHANGES
@ -977,6 +977,9 @@ version 1.2.0beta5 [August 8, 2001]
|
||||
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.0rc1 [August 25, 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().
|
||||
|
||||
Send comments/corrections/commendations to
|
||||
png-implement@ccrc.wustl.edu or to randeg@alum.rpi.edu
|
||||
|
12
INSTALL
12
INSTALL
@ -1,5 +1,5 @@
|
||||
|
||||
Installing libpng version 1.2.0beta5 - August 8, 2001
|
||||
Installing libpng version 1.2.0rc1 - August 25, 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.2.0beta5" or "lpng109" and "zlib-1.1.3"
|
||||
might be called "libpng-1.2.0rc1" 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 libpng.so.2.1.2.0beta5)
|
||||
makefile.gcmmx => Linux/ELF makefile (gcc, creates libpng.so.2.1.2.0beta5,
|
||||
makefile.linux => Linux/ELF makefile (gcc, creates libpng.so.2.1.2.0rc1)
|
||||
makefile.gcmmx => Linux/ELF makefile (gcc, creates libpng.so.2.1.2.0rc1,
|
||||
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
|
||||
@ -82,9 +82,9 @@ include
|
||||
makefile.macosx => MACOS X Makefile
|
||||
makefile.netbsd => NetBSD/cc makefile, uses PNGGCCRD
|
||||
makefile.sgi => Silicon Graphics IRIX makefile (cc, creates static lib)
|
||||
makefile.sggcc => Silicon Graphics (gcc, creates libpng.so.2.1.2.0beta5)
|
||||
makefile.sggcc => Silicon Graphics (gcc, creates libpng.so.2.1.2.0rc1)
|
||||
makefile.sunos => Sun makefile
|
||||
makefile.solaris => Solaris 2.X makefile (gcc, creates libpng.so.2.1.2.0beta5)
|
||||
makefile.solaris => Solaris 2.X makefile (gcc, creates libpng.so.2.1.2.0rc1)
|
||||
makefile.sco => For SCO OSr5 ELF and Unixware 7 with Native cc
|
||||
makefile.mips => MIPS makefile
|
||||
makefile.acorn => Acorn makefile
|
||||
|
4
LICENSE
4
LICENSE
@ -8,7 +8,7 @@ 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.2.0beta5, August 8, 2001, are
|
||||
libpng versions 1.0.7, July 1, 2000, through 1.2.0rc1, August 25, 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
|
||||
August 8, 2001
|
||||
August 25, 2001
|
||||
|
10
README
10
README
@ -1,4 +1,4 @@
|
||||
README for libpng 1.2.0beta5 - August 8, 2001 (shared library 2.1)
|
||||
README for libpng 1.2.0rc1 - August 25, 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 libpng.so.2.1.2.0beta5)
|
||||
(gcc, creates libpng.so.2.1.2.0rc1)
|
||||
makefile.gcmmx => Linux/ELF makefile (gcc, creates
|
||||
libpng.so.2.1.2.0beta5, uses assembler code
|
||||
libpng.so.2.1.2.0rc1, 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
|
||||
@ -206,10 +206,10 @@ Files in this distribution:
|
||||
makefile.macosx => MACOS X Makefile
|
||||
makefile.netbsd => NetBSD/cc makefile, uses PNGGCCRD
|
||||
makefile.sgi => Silicon Graphics IRIX (cc, creates static lib)
|
||||
makefile.sggcc => Silicon Graphics (gcc, creates libpng.so.2.1.2.0beta5)
|
||||
makefile.sggcc => Silicon Graphics (gcc, creates libpng.so.2.1.2.0rc1)
|
||||
makefile.sunos => Sun makefile
|
||||
makefile.solaris => Solaris 2.X makefile
|
||||
(gcc, creates libpng.so.2.1.2.0beta5)
|
||||
(gcc, creates libpng.so.2.1.2.0rc1)
|
||||
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:
|
||||
=========================
|
||||
|
||||
August 8, 2001
|
||||
August 25, 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.2.0beta5 are Y2K compliant. It is my belief that earlier
|
||||
upward through 1.2.0rc1 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.2.0beta5. Instead, please
|
||||
There is no \"configure\" script for Libpng-1.2.0rc1. Instead, please
|
||||
copy the appropriate makefile for your system from the \"scripts\"
|
||||
directory. Read the INSTALL file for more details.
|
||||
"
|
||||
|
@ -22,6 +22,7 @@
|
||||
- 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
|
||||
|
||||
---------------------------------------------------------------------------
|
||||
|
||||
@ -52,7 +53,7 @@
|
||||
|
||||
#define PROGNAME "rpng-x"
|
||||
#define LONGNAME "Simple PNG Viewer for X"
|
||||
#define VERSION "1.12 of 28 May 2001"
|
||||
#define VERSION "1.13 of 16 August 2001"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
@ -118,6 +119,7 @@ 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];
|
||||
@ -556,6 +558,7 @@ 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.
|
||||
@ -825,6 +828,7 @@ static void rpng_x_cleanup(void)
|
||||
ximage = NULL;
|
||||
}
|
||||
|
||||
if (have_gc)
|
||||
XFreeGC(display, gc);
|
||||
|
||||
if (have_window)
|
||||
|
@ -27,6 +27,7 @@
|
||||
- 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
|
||||
|
||||
---------------------------------------------------------------------------
|
||||
|
||||
@ -57,7 +58,7 @@
|
||||
|
||||
#define PROGNAME "rpng2-x"
|
||||
#define LONGNAME "Progressive PNG Viewer for X"
|
||||
#define VERSION "1.21 of 30 May 2001"
|
||||
#define VERSION "1.22 of 16 August 2001"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
@ -228,6 +229,7 @@ static Colormap colormap;
|
||||
static int have_nondefault_visual = FALSE;
|
||||
static int have_colormap = FALSE;
|
||||
static int have_window = FALSE;
|
||||
static int have_gc = FALSE;
|
||||
|
||||
|
||||
|
||||
@ -759,6 +761,7 @@ 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.
|
||||
@ -1374,6 +1377,7 @@ static void rpng2_x_cleanup(void)
|
||||
ximage = NULL;
|
||||
}
|
||||
|
||||
if (have_gc)
|
||||
XFreeGC(display, gc);
|
||||
|
||||
if (have_window)
|
||||
|
29
libpng.3
29
libpng.3
@ -1,6 +1,6 @@
|
||||
.TH LIBPNG 3 "August 8, 2001"
|
||||
.TH LIBPNG 3 "August 25, 2001"
|
||||
.SH NAME
|
||||
libpng \- Portable Network Graphics (PNG) Reference Library 1.2.0beta5
|
||||
libpng \- Portable Network Graphics (PNG) Reference Library 1.2.0rc1
|
||||
.SH SYNOPSIS
|
||||
\fI\fB
|
||||
|
||||
@ -787,7 +787,7 @@ 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.2.0beta5 - August 8, 2001
|
||||
libpng version 1.2.0rc1 - August 25, 2001
|
||||
Updated and distributed by Glenn Randers-Pehrson
|
||||
<randeg@alum.rpi.edu>
|
||||
Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
||||
@ -1591,17 +1591,18 @@ 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 bytes. This code expands them
|
||||
into 4 bytes for windowing systems that need them in this format:
|
||||
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:
|
||||
|
||||
if (bit_depth == 8 && color_type ==
|
||||
PNG_COLOR_TYPE_RGB) png_set_filler(png_ptr,
|
||||
filler, PNG_FILLER_BEFORE);
|
||||
if (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.
|
||||
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.
|
||||
|
||||
If you are reading an image with an alpha channel, and you need the
|
||||
data as ARGB instead of the normal PNG format RGBA:
|
||||
@ -3613,13 +3614,13 @@ application:
|
||||
|
||||
.SH IX. Y2K Compliance in libpng
|
||||
|
||||
August 8, 2001
|
||||
August 25, 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.2.0beta5 are Y2K compliant. It is my belief that earlier
|
||||
upward through 1.2.0rc1 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
|
||||
@ -3794,7 +3795,7 @@ possible without all of you.
|
||||
|
||||
Thanks to Frank J. T. Wojcik for helping with the documentation.
|
||||
|
||||
Libpng version 1.2.0beta5 - August 8, 2001:
|
||||
Libpng version 1.2.0rc1 - August 25, 2001:
|
||||
Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc.
|
||||
Currently maintained by Glenn Randers-Pehrson (randeg@alum.rpi.edu).
|
||||
|
||||
@ -3811,7 +3812,7 @@ 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.2.0beta5, August 8, 2001, are
|
||||
libpng versions 1.0.7, July 1, 2000, through 1.2.0rc1, August 25, 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
|
||||
@ -3903,7 +3904,7 @@ certification mark of the Open Source Initiative.
|
||||
|
||||
Glenn Randers-Pehrson
|
||||
randeg@alum.rpi.edu
|
||||
August 8, 2001
|
||||
August 25, 2001
|
||||
|
||||
.\" end of man page
|
||||
|
||||
|
19
libpng.txt
19
libpng.txt
@ -1,6 +1,6 @@
|
||||
libpng.txt - A description on how to use and modify libpng
|
||||
|
||||
libpng version 1.2.0beta5 - August 8, 2001
|
||||
libpng version 1.2.0rc1 - August 25, 2001
|
||||
Updated and distributed by Glenn Randers-Pehrson
|
||||
<randeg@alum.rpi.edu>
|
||||
Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
||||
@ -804,17 +804,18 @@ 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 bytes. This code expands them
|
||||
into 4 bytes for windowing systems that need them in this format:
|
||||
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:
|
||||
|
||||
if (bit_depth == 8 && color_type ==
|
||||
PNG_COLOR_TYPE_RGB) png_set_filler(png_ptr,
|
||||
filler, PNG_FILLER_BEFORE);
|
||||
if (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.
|
||||
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.
|
||||
|
||||
If you are reading an image with an alpha channel, and you need the
|
||||
data as ARGB instead of the normal PNG format RGBA:
|
||||
@ -2826,13 +2827,13 @@ application:
|
||||
|
||||
IX. Y2K Compliance in libpng
|
||||
|
||||
August 8, 2001
|
||||
August 25, 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.2.0beta5 are Y2K compliant. It is my belief that earlier
|
||||
upward through 1.2.0rc1 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
|
||||
|
@ -1,6 +1,6 @@
|
||||
.TH LIBPNGPF 3 "August 8, 2001"
|
||||
.TH LIBPNGPF 3 "August 25, 2001"
|
||||
.SH NAME
|
||||
libpng \- Portable Network Graphics (PNG) Reference Library 1.2.0beta5
|
||||
libpng \- Portable Network Graphics (PNG) Reference Library 1.2.0rc1
|
||||
(private functions)
|
||||
.SH SYNOPSIS
|
||||
\fB#include <png.h>\fP
|
||||
|
2
png.5
2
png.5
@ -1,4 +1,4 @@
|
||||
.TH PNG 5 "August 8, 2001"
|
||||
.TH PNG 5 "August 25, 2001"
|
||||
.SH NAME
|
||||
png \- Portable Network Graphics (PNG) format
|
||||
.SH DESCRIPTION
|
||||
|
12
png.c
12
png.c
@ -1,7 +1,7 @@
|
||||
|
||||
/* png.c - location for general purpose libpng functions
|
||||
*
|
||||
* libpng version 1.2.0beta5 - August 8, 2001
|
||||
* libpng version 1.2.0rc1 - August 25, 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_2_0beta5 Your_png_h_is_not_version_1_2_0beta5;
|
||||
typedef version_1_2_0rc1 Your_png_h_is_not_version_1_2_0rc1;
|
||||
|
||||
/* 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.2.0beta5";
|
||||
const char png_libpng_ver[18] = "1.2.0rc1";
|
||||
|
||||
/* png_sig was changed to a function in version 1.0.5c */
|
||||
/* Place to hold the signature string for a PNG file. */
|
||||
@ -646,7 +646,7 @@ 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.2.0beta5 - August 8, 2001\n\
|
||||
return ((png_charp) "\n libpng version 1.2.0rc1 - August 25, 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");
|
||||
@ -664,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.2.0beta5");
|
||||
return((png_charp) "1.2.0beta5");
|
||||
return((png_charp) "1.2.0rc1");
|
||||
return((png_charp) "1.2.0rc1");
|
||||
}
|
||||
|
||||
png_charp PNGAPI
|
||||
|
24
png.h
24
png.h
@ -1,7 +1,7 @@
|
||||
|
||||
/* png.h - header file for PNG reference library
|
||||
*
|
||||
* libpng version 1.2.0beta5 - August 8, 2001
|
||||
* libpng version 1.2.0rc1 - August 25, 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.)
|
||||
@ -9,7 +9,7 @@
|
||||
* 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.2.0beta5 - August 8, 2001: Glenn
|
||||
* libpng versions 0.97, January 1998, through 1.2.0rc1 - August 25, 2001: Glenn
|
||||
* See also "Contributing Authors", below.
|
||||
*
|
||||
* Note about libpng version numbers:
|
||||
@ -105,7 +105,7 @@
|
||||
* If you modify libpng you may insert additional notices immediately following
|
||||
* this sentence.
|
||||
*
|
||||
* libpng versions 1.0.7, July 1, 2000, through 1.2.0beta5, August 8, 2001, are
|
||||
* libpng versions 1.0.7, July 1, 2000, through 1.2.0rc1, August 25, 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
|
||||
@ -210,13 +210,13 @@
|
||||
* Y2K compliance in libpng:
|
||||
* =========================
|
||||
*
|
||||
* August 8, 2001
|
||||
* August 25, 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.2.0beta5 are Y2K compliant. It is my belief that earlier
|
||||
* upward through 1.2.0rc1 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
|
||||
@ -272,7 +272,7 @@
|
||||
*/
|
||||
|
||||
/* Version information for png.h - this should match the version in png.c */
|
||||
#define PNG_LIBPNG_VER_STRING "1.2.0beta5"
|
||||
#define PNG_LIBPNG_VER_STRING "1.2.0rc1"
|
||||
|
||||
#define PNG_LIBPNG_VER_SONUM 3
|
||||
#define PNG_LIBPNG_VER_DLLNUM %DLLNUM%
|
||||
@ -284,7 +284,7 @@
|
||||
/* This should match the numeric part of the final component of
|
||||
* PNG_LIBPNG_VER_STRING, omitting any leading zero: */
|
||||
|
||||
#define PNG_LIBPNG_VER_BUILD 5
|
||||
#define PNG_LIBPNG_VER_BUILD 1
|
||||
|
||||
#define PNG_LIBPNG_BUILD_ALPHA 1
|
||||
#define PNG_LIBPNG_BUILD_BETA 2
|
||||
@ -292,7 +292,7 @@
|
||||
#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 2
|
||||
#define PNG_LIBPNG_BUILD_TYPE 3
|
||||
|
||||
/* Careful here. At one time, Guy wanted to use 082, but that would be octal.
|
||||
* We must not include leading zeros.
|
||||
@ -1208,13 +1208,15 @@ 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_get_copyright() in png.c if png.c
|
||||
and png.h are both at version 1.2.0beta5
|
||||
and png.h are both at version 1.2.0rc1
|
||||
*/
|
||||
typedef png_structp version_1_2_0beta5;
|
||||
typedef png_structp version_1_2_0rc1;
|
||||
|
||||
typedef png_struct FAR * FAR * png_structpp;
|
||||
|
||||
@ -2331,7 +2333,7 @@ extern PNG_EXPORT(void,png_set_strip_error_numbers) PNGARG((png_structp
|
||||
/* Maintainer: Put new public prototypes here ^, in libpng.3, and project defs */
|
||||
|
||||
#define PNG_HEADER_VERSION_STRING \
|
||||
" libpng version 1.2.0beta5 - August 8, 2001 (header)\n"
|
||||
" libpng version 1.2.0rc1 - August 25, 2001 (header)\n"
|
||||
|
||||
#ifdef PNG_READ_COMPOSITE_NODIV_SUPPORTED
|
||||
/* With these routines we avoid an integer divide, which will be slower on
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* pngasmrd.h - assembler version of utilities to read a PNG file
|
||||
*
|
||||
* libpng 1.2.0beta5 - August 8, 2001
|
||||
* libpng 1.2.0rc1 - August 25, 2001
|
||||
* For conditions of distribution and use, see copyright notice in png.h
|
||||
* Copyright (c) 2001 Glenn Randers-Pehrson
|
||||
*
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* pngconf.h - machine configurable file for libpng
|
||||
*
|
||||
* libpng 1.2.0beta5 - August 8, 2001
|
||||
* libpng 1.2.0rc1 - August 25, 2001
|
||||
* For conditions of distribution and use, see copyright notice in png.h
|
||||
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||
|
@ -1,7 +1,7 @@
|
||||
|
||||
/* pngerror.c - stub functions for i/o and memory allocation
|
||||
*
|
||||
* libpng 1.2.0beta5 - August 8, 2001
|
||||
* libpng 1.2.0rc1 - August 25, 2001
|
||||
* For conditions of distribution and use, see copyright notice in png.h
|
||||
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||
|
279
pnggccrd.c
279
pnggccrd.c
@ -6,7 +6,7 @@
|
||||
* 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.2.0beta5 - August 8, 2001
|
||||
* libpng version 1.2.0rc1 - August 25, 2001
|
||||
* For conditions of distribution and use, see copyright notice in png.h
|
||||
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
||||
* Copyright (c) 1998, Intel Corporation
|
||||
@ -2639,8 +2639,8 @@ png_do_read_interlace(png_structp png_ptr)
|
||||
#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("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
|
||||
@ -2849,53 +2849,76 @@ 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"
|
||||
@ -2933,7 +2956,8 @@ 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"
|
||||
@ -2942,7 +2966,8 @@ 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
|
||||
@ -2955,30 +2980,44 @@ 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
|
||||
@ -3012,7 +3051,8 @@ 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"
|
||||
@ -3029,59 +3069,91 @@ 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
|
||||
@ -3112,7 +3184,8 @@ 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"
|
||||
@ -3131,7 +3204,8 @@ 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
|
||||
@ -3210,15 +3284,18 @@ 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_warning(png_ptr,
|
||||
"Internal logic error in pnggccrd (png_read_filter_row_mmx_avg())");
|
||||
png_debug(1,
|
||||
"Internal logic error in pnggccrd (png_read_filter_row_mmx_avg())\n");
|
||||
#endif
|
||||
|
||||
#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"
|
||||
@ -3231,15 +3308,20 @@ 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"
|
||||
@ -3358,9 +3440,11 @@ 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
|
||||
|
||||
@ -3478,12 +3562,14 @@ 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
|
||||
@ -3538,7 +3624,8 @@ 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
|
||||
@ -3595,7 +3682,8 @@ 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)
|
||||
@ -3655,7 +3743,8 @@ 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
|
||||
|
2
pngget.c
2
pngget.c
@ -1,7 +1,7 @@
|
||||
|
||||
/* pngget.c - retrieval of values from info struct
|
||||
*
|
||||
* libpng 1.2.0beta5 - August 8, 2001
|
||||
* libpng 1.2.0rc1 - August 25, 2001
|
||||
* For conditions of distribution and use, see copyright notice in png.h
|
||||
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||
|
2
pngmem.c
2
pngmem.c
@ -1,7 +1,7 @@
|
||||
|
||||
/* pngmem.c - stub functions for memory allocation
|
||||
*
|
||||
* libpng 1.2.0beta5 - August 8, 2001
|
||||
* libpng 1.2.0rc1 - August 25, 2001
|
||||
* For conditions of distribution and use, see copyright notice in png.h
|
||||
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||
|
@ -1,7 +1,7 @@
|
||||
|
||||
/* pngpread.c - read a png file in push mode
|
||||
*
|
||||
* libpng 1.2.0beta5 - August 8, 2001
|
||||
* libpng 1.2.0rc1 - August 25, 2001
|
||||
* For conditions of distribution and use, see copyright notice in png.h
|
||||
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||
|
@ -1,7 +1,7 @@
|
||||
|
||||
/* pngread.c - read a PNG file
|
||||
*
|
||||
* libpng 1.2.0beta5 - August 8, 2001
|
||||
* libpng 1.2.0rc1 - August 25, 2001
|
||||
* For conditions of distribution and use, see copyright notice in png.h
|
||||
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||
@ -769,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.2.0beta5
|
||||
* [*] png_handle_alpha() does not exist yet, as of libpng version 1.2.0rc1
|
||||
*/
|
||||
|
||||
void PNGAPI
|
||||
@ -818,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.2.0beta5
|
||||
* [*] png_handle_alpha() does not exist yet, as of libpng version 1.2.0rc1
|
||||
*/
|
||||
void PNGAPI
|
||||
png_read_image(png_structp png_ptr, png_bytepp image)
|
||||
@ -1133,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->row_buf);
|
||||
png_free(png_ptr, png_ptr->big_row_buf);
|
||||
png_free(png_ptr, png_ptr->prev_row);
|
||||
#if defined(PNG_READ_DITHER_SUPPORTED)
|
||||
png_free(png_ptr, png_ptr->palette_lookup);
|
||||
|
2
pngrio.c
2
pngrio.c
@ -1,7 +1,7 @@
|
||||
|
||||
/* pngrio.c - functions for data input
|
||||
*
|
||||
* libpng 1.2.0beta5 - August 8, 2001
|
||||
* libpng 1.2.0rc1 - August 25, 2001
|
||||
* For conditions of distribution and use, see copyright notice in png.h
|
||||
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||
|
@ -1,7 +1,7 @@
|
||||
|
||||
/* pngrtran.c - transforms the data in a row for PNG readers
|
||||
*
|
||||
* libpng 1.2.0beta5 - August 8, 2001
|
||||
* libpng 1.2.0rc1 - August 25, 2001
|
||||
* For conditions of distribution and use, see copyright notice in png.h
|
||||
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||
|
@ -1,7 +1,7 @@
|
||||
|
||||
/* pngrutil.c - utilities to read a PNG file
|
||||
*
|
||||
* libpng 1.2.0beta5 - August 8, 2001
|
||||
* libpng 1.2.0rc1 - August 25, 2001
|
||||
* For conditions of distribution and use, see copyright notice in png.h
|
||||
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||
@ -2975,7 +2975,8 @@ 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->row_buf = (png_bytep)png_malloc(png_ptr, row_bytes);
|
||||
png_ptr->big_row_buf = (png_bytep)png_malloc(png_ptr, row_bytes+64);
|
||||
png_ptr->row_buf = png_ptr->big_row_buf+32;
|
||||
#if defined(PNG_DEBUG) && defined(PNG_USE_PNGGCCRD)
|
||||
png_ptr->row_buf_size = row_bytes;
|
||||
#endif
|
||||
|
2
pngset.c
2
pngset.c
@ -1,7 +1,7 @@
|
||||
|
||||
/* pngset.c - storage of image information into info struct
|
||||
*
|
||||
* libpng 1.2.0beta5 - August 8, 2001
|
||||
* libpng 1.2.0rc1 - August 25, 2001
|
||||
* For conditions of distribution and use, see copyright notice in png.h
|
||||
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||
|
@ -1,7 +1,7 @@
|
||||
|
||||
/* pngtest.c - a simple test program to test libpng
|
||||
*
|
||||
* libpng 1.2.0beta5 - August 8, 2001
|
||||
* libpng 1.2.0rc1 - August 25, 2001
|
||||
* For conditions of distribution and use, see copyright notice in png.h
|
||||
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||
@ -1510,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_2_0beta5 your_png_h_is_not_version_1_2_0beta5;
|
||||
typedef version_1_2_0rc1 your_png_h_is_not_version_1_2_0rc1;
|
||||
|
@ -1,7 +1,7 @@
|
||||
|
||||
/* pngtrans.c - transforms the data in a row (used by both readers and writers)
|
||||
*
|
||||
* libpng 1.2.0beta5 - August 8, 2001
|
||||
* libpng 1.2.0rc1 - August 25, 2001
|
||||
* For conditions of distribution and use, see copyright notice in png.h
|
||||
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||
|
@ -2,7 +2,7 @@
|
||||
*
|
||||
* For Intel x86 CPU and Microsoft Visual C++ compiler
|
||||
*
|
||||
* libpng 1.2.0beta5 - August 8, 2001
|
||||
* libpng 1.2.0rc1 - August 25, 2001
|
||||
* For conditions of distribution and use, see copyright notice in png.h
|
||||
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
||||
* Copyright (c) 1998, Intel Corporation
|
||||
|
2
pngwio.c
2
pngwio.c
@ -1,7 +1,7 @@
|
||||
|
||||
/* pngwio.c - functions for data output
|
||||
*
|
||||
* libpng 1.2.0beta5 - August 8, 2001
|
||||
* libpng 1.2.0rc1 - August 25, 2001
|
||||
* For conditions of distribution and use, see copyright notice in png.h
|
||||
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||
|
@ -1,7 +1,7 @@
|
||||
|
||||
/* pngwrite.c - general routines to write a PNG file
|
||||
*
|
||||
* libpng 1.2.0beta5 - August 8, 2001
|
||||
* libpng 1.2.0rc1 - August 25, 2001
|
||||
* For conditions of distribution and use, see copyright notice in png.h
|
||||
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||
|
@ -1,7 +1,7 @@
|
||||
|
||||
/* pngwtran.c - transforms the data in a row for PNG writers
|
||||
*
|
||||
* libpng 1.2.0beta5 - August 8, 2001
|
||||
* libpng 1.2.0rc1 - August 25, 2001
|
||||
* For conditions of distribution and use, see copyright notice in png.h
|
||||
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||
|
@ -1,7 +1,7 @@
|
||||
|
||||
/* pngwutil.c - utilities to write a PNG file
|
||||
*
|
||||
* libpng 1.2.0beta5 - August 8, 2001
|
||||
* libpng 1.2.0rc1 - August 25, 2001
|
||||
* For conditions of distribution and use, see copyright notice in png.h
|
||||
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||
|
@ -1,5 +1,5 @@
|
||||
Microsoft Developer Studio Build File, Format Version 6.00 for
|
||||
libpng 1.2.0beta5 (August 8, 2001) and zlib
|
||||
libpng 1.2.0rc1 (August 25, 2001) and zlib
|
||||
|
||||
Copyright (C) 2000 Simon-Pierre Cadieux
|
||||
For conditions of distribution and use, see copyright notice in png.h
|
||||
|
@ -6,7 +6,7 @@ LIBRARY
|
||||
DESCRIPTION "PNG image compression library for Windows"
|
||||
|
||||
EXPORTS
|
||||
;Version 1.2.0beta5
|
||||
;Version 1.2.0rc1
|
||||
png_build_grayscale_palette @1
|
||||
png_check_sig @2
|
||||
png_chunk_error @3
|
||||
|
@ -1,6 +1,6 @@
|
||||
A set of project files is available for Netware. Get
|
||||
libpng-1.2.0beta5-project-netware.zip from a libpng distribution
|
||||
libpng-1.2.0rc1-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.2.0beta5-project-netware.zip"
|
||||
"unzip -a libpng-1.2.0rc1-project-netware.zip"
|
||||
|
@ -1,6 +1,6 @@
|
||||
A set of project files is available for WinCE. Get
|
||||
libpng-1.2.0beta5-project-wince.zip from a libpng distribution
|
||||
libpng-1.2.0rc1-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.2.0beta5-project-wince.zip"
|
||||
"unzip -a libpng-1.2.0rc1-project-wince.zip"
|
||||
|
@ -18,7 +18,7 @@ RM = rm -f
|
||||
# read libpng.txt or png.h to see why PNGMAJ is 3. You should not
|
||||
# have to change it.
|
||||
PNGMAJ = 3
|
||||
PNGMIN = 1.2.0beta5
|
||||
PNGMIN = 1.2.0rc1
|
||||
PNGVER = $(PNGMAJ).$(PNGMIN)
|
||||
|
||||
prefix=/usr/local
|
||||
|
@ -13,7 +13,7 @@ ZLIBINC=/usr/local/include
|
||||
# read libpng.txt or png.h to see why PNGMAJ is 3. You should not
|
||||
# have to change it.
|
||||
PNGMAJ = 3
|
||||
PNGMIN = 1.2.0beta5
|
||||
PNGMIN = 1.2.0rc1
|
||||
PNGVER = $(PNGMAJ).$(PNGMIN)
|
||||
|
||||
ALIGN=
|
||||
|
@ -39,7 +39,7 @@ CFLAGS=-I$(ZLIBINC) -Wall -O3 $(ALIGN) -funroll-loops \
|
||||
# have to change it.
|
||||
PNGMAJ = 3
|
||||
#PNGDLL = $3
|
||||
PNGMIN = 1.2.0beta5
|
||||
PNGMIN = 1.2.0rc1
|
||||
PNGMIN_BASE = 1.2.0
|
||||
PNGVER = $(PNGMAJ).$(PNGMIN)
|
||||
|
||||
|
@ -17,7 +17,7 @@ ZLIBINC=../zlib
|
||||
# read libpng.txt or png.h to see why PNGMAJ is 3. You should not
|
||||
# have to change it.
|
||||
PNGMAJ = 3
|
||||
PNGMIN = 1.2.0beta5
|
||||
PNGMIN = 1.2.0rc1
|
||||
PNGVER = $(PNGMAJ).$(PNGMIN)
|
||||
|
||||
CC=cc
|
||||
|
@ -55,7 +55,7 @@ RANLIB=ranlib
|
||||
# read libpng.txt or png.h to see why PNGMAJ is 3. You should not
|
||||
# have to change it.
|
||||
PNGMAJ = 3
|
||||
PNGMIN = 1.2.0beta5
|
||||
PNGMIN = 1.2.0rc1
|
||||
PNGVER = $(PNGMAJ).$(PNGMIN)
|
||||
|
||||
INCPATH=$(prefix)/include
|
||||
|
@ -34,7 +34,7 @@ RANLIB=ranlib
|
||||
# read libpng.txt or png.h to see why PNGMAJ is 3. You should not
|
||||
# have to change it.
|
||||
PNGMAJ = 3
|
||||
PNGMIN = 1.2.0beta5
|
||||
PNGMIN = 1.2.0rc1
|
||||
PNGVER = $(PNGMAJ).$(PNGMIN)
|
||||
|
||||
INCPATH=$(prefix)/include
|
||||
|
@ -19,7 +19,7 @@ RANLIB=ranlib
|
||||
# read libpng.txt or png.h to see why PNGMAJ is 3. You should not
|
||||
# have to change it.
|
||||
PNGMAJ = 3
|
||||
PNGMIN = 1.2.0beta5
|
||||
PNGMIN = 1.2.0rc1
|
||||
PNGVER = $(PNGMAJ).$(PNGMIN)
|
||||
|
||||
# where make install puts libpng.a and png.h
|
||||
|
@ -34,7 +34,7 @@ RANLIB=ranlib
|
||||
# read libpng.txt or png.h to see why PNGMAJ is 3. You should not
|
||||
# have to change it.
|
||||
PNGMAJ = 3
|
||||
PNGMIN = 1.2.0beta5
|
||||
PNGMIN = 1.2.0rc1
|
||||
PNGVER = $(PNGMAJ).$(PNGMIN)
|
||||
|
||||
INCPATH=$(prefix)/include
|
||||
|
@ -11,7 +11,7 @@ INCSDIR=${LOCALBASE}/include
|
||||
|
||||
LIB=png
|
||||
SHLIB_MAJOR= 3
|
||||
SHLIB_MINOR= 1.2.0beta5
|
||||
SHLIB_MINOR= 1.2.0rc1
|
||||
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
|
||||
|
@ -25,7 +25,7 @@ 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.0beta5
|
||||
PNGMIN = 1.2.0rc1
|
||||
PNGVER = $(PNGMAJ).$(PNGMIN)
|
||||
|
||||
INCPATH=$(prefix)/include
|
||||
|
@ -22,7 +22,7 @@ CFLAGS=$(ABI) -I$(ZLIBINC) -O2 $(WARNMORE) -fPIC -mabi=n32
|
||||
LDFLAGS=$(ABI) -L. -L$(ZLIBLIB) -lpng -lz -lm
|
||||
LDSHARED=CC $(ABI) -shared
|
||||
|
||||
VER=1.2.0beta5
|
||||
VER=1.2.0rc1
|
||||
# See "man dso" for info about shared objects
|
||||
SONUM=3
|
||||
LIBS=libpng.so.$(SONUM).$(VER)
|
||||
|
@ -27,7 +27,7 @@ CFLAGS=$(ABI) -I$(ZLIBINC) -O $(WARNMORE) -DPNG_USE_PNGGCCRD -DPNG_NO_ASSEMBLER_
|
||||
LDFLAGS=$(ABI) -L. -L$(ZLIBLIB) -lpng -lz -lm
|
||||
LDSHARED=cc $(ABI) -shared
|
||||
|
||||
VER=1.2.0beta5
|
||||
VER=1.2.0rc1
|
||||
# See "man dso" for info about shared objects
|
||||
SONUM=3
|
||||
SHAREDLIB=libpng.so
|
||||
|
@ -31,7 +31,7 @@ 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.0beta5
|
||||
PNGMIN = 1.2.0rc1
|
||||
PNGVER = $(PNGMAJ).$(PNGMIN)
|
||||
|
||||
INCPATH=$(prefix)/include
|
||||
|
@ -7,7 +7,7 @@ unit pngdef;
|
||||
interface
|
||||
|
||||
const
|
||||
PNG_LIBPNG_VER_STRING = '1.2.0beta5';
|
||||
PNG_LIBPNG_VER_STRING = '1.2.0rc1';
|
||||
PNG_LIBPNG_VER = 10200;
|
||||
|
||||
type
|
||||
|
@ -2,7 +2,7 @@
|
||||
; PNG.LIB module definition file for OS/2
|
||||
;----------------------------------------
|
||||
|
||||
; Version 1.2.0beta5
|
||||
; Version 1.2.0rc1
|
||||
|
||||
LIBRARY PNG
|
||||
DESCRIPTION "PNG image compression library for OS/2"
|
||||
|
Reference in New Issue
Block a user