diff --git a/CHANGES b/CHANGES index 19a728fa..95350873 100644 --- a/CHANGES +++ b/CHANGES @@ -268,3 +268,11 @@ version 1.00 [March 7, 1998] changed some typedefs (s_start, etc.) in pngrutil.c fixed dimensions of "short_months" array in pngwrite.c Replaced ansi2knr.c with the one from jpeg-v6 +version 1.0.0 [March 8, 1998] + Changed name from 1.00 to 1.0.0 (Adam Costello) + Added smakefile.ppc (with SCOPTIONS.ppc) for Amiga PPC (Andreas Kleinert) +version 1.0.1 [March 9, 1998] + Fixed three bugs in pngrtran.c to make gamma+background handling consistent + (Greg Roelofs) + Changed format of the PNG_LIBPNG_VER integer to xyyyzzzz instead of xyz + for major, minor, and bugfix releases. This is 10000001L. (Adam Costello) diff --git a/INSTALL b/INSTALL index a14e1acb..bc9f5f02 100644 --- a/INSTALL +++ b/INSTALL @@ -1,5 +1,5 @@ -Installing libpng version 1.00 March 7, 1998 +Installing libpng version 1.0.1 March 9, 1998 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.00 or "lpng100" and "zlib-1.1.1" +might be called "libpng-1.0.1 or "lpng100" and "zlib-1.1.1" or "zlib111") so that you have directories called "zlib" and "libpng". Your directory structure should look like this: @@ -44,11 +44,13 @@ include makefile.dec => DEC Alpha UNIX makefile makefile.sgi => Silicon Graphics IRIX makefile makefile.sun => Sun makefile - makefile.s2x => Solaris 2.X makefile (gcc, creates libpng.so.2.1.00) - makefile.lnx => Linux/ELF makefile (gcc, creates libpng.so.2.1.00) + makefile.s2x => Solaris 2.X makefile (gcc, creates libpng.so.2.1.0) + makefile.lnx => Linux/ELF makefile (gcc, creates libpng.so.2.1.0) makefile.mip => MIPS makefile makefile.aco => Acorn makefile makefile.ama => Amiga makefile + smakefile.ppc => AMIGA smakefile for SAS C V6.58/7.00 PPC compiler + (Requires SCOPTIONS, copied from scripts/SCOPTIONS.ppc) makefile.atr => Atari makefile makefile.bor => Borland makefile build.bat => MS-DOS batch file for Borland compiler diff --git a/README b/README index 4390f6a4..ea463cd9 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -README for libpng 1.00 (shared library 2.1) +README for libpng 1.0.1 (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. @@ -161,11 +161,13 @@ Files in this distribution: makefile.dec => DEC Alpha UNIX makefile makefile.sgi => Silicon Graphics IRIX makefile makefile.sun => Sun makefile - makefile.s2x => Solaris 2.X makefile (gcc, creates libpng.so.2.1.00) - makefile.lnx => Linux/ELF makefile (gcc, creates libpng.so.2.1.00) + makefile.s2x => Solaris 2.X makefile (gcc, creates libpng.so.2.1.0) + makefile.lnx => Linux/ELF makefile (gcc, creates libpng.so.2.1.0) makefile.mip => MIPS makefile makefile.aco => Acorn makefile makefile.ama => Amiga makefile + smakefile.ppc => AMIGA smakefile for SAS C V6.58/7.00 PPC compiler + (Requires SCOPTIONS, copied from scripts/SCOPTIONS.ppc) makefile.atr => Atari makefile makefile.bor => Borland makefile build.bat => MS-DOS batch file for Borland compiler diff --git a/example.c b/example.c index f984067c..bc86aed6 100644 --- a/example.c +++ b/example.c @@ -15,7 +15,7 @@ #include "png.h" -/* Check to see if a file is a PNG file using png_check_sig(). Returns +/* Check to see if a file is a PNG file using png_sig_cmp(). Returns * non-zero if the image is a PNG, and 0 if it isn't a PNG. * * If this call is successful, and you are going to keep the file open, @@ -29,7 +29,7 @@ * * Many applications already read the first 2 or 4 bytes from the start * of the image to determine the file type, so it would be easiest just - * to pass the bytes to png_check_sig() or even skip that if you know + * to pass the bytes to png_sig_cmp() or even skip that if you know * you have a PNG file, and call png_set_sig_bytes(). */ #define PNG_BYTES_TO_CHECK 4 @@ -46,7 +46,7 @@ int check_if_png(char *file_name, FILE **fp) return 0; /* Compare the first PNG_BYTES_TO_CHECK bytes of the signature. */ - return(png_check_sig(buf, PNG_BYTES_TO_CHECK)); + return(png_sig_cmp(buf, (png_size_t)0, PNG_BYTES_TO_CHECK)); } /* Read a PNG file. You may want to return an error code if the read @@ -92,7 +92,7 @@ void read_png(FILE *fp, unsigned int sig_read) /* file is already open */ } /* Allocate/initialize the memory for image information. REQUIRED. */ - info_ptr = png_create_info_struct(); + info_ptr = png_create_info_struct(png_ptr); if (info_ptr == NULL) { fclose(fp); @@ -127,7 +127,7 @@ void read_png(FILE *fp, unsigned int sig_read) /* file is already open */ #endif no_streams /* Use only one I/O method! */ /* If we have already read some of the signature */ - png_set_sig_bytes_read(png_ptr, sig_read); + png_set_sig_bytes(png_ptr, sig_read); /* The call to png_read_info() gives us all of the information from the * PNG file before the first IDAT (image data chunk). REQUIRED diff --git a/libpng.3 b/libpng.3 index c2247001..1226d789 100644 --- a/libpng.3 +++ b/libpng.3 @@ -1,4 +1,4 @@ -.TH LIBPNG 3 "March 7, 1998" +.TH LIBPNG 3 "March 9, 1998" .SH NAME libpng \- Portable Network Graphics (PNG) Reference Library .SH SYNOPSIS @@ -396,7 +396,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.00 March 7, 1998 + libpng version 1.0.1 March 9, 1998 Updated and distributed by Glenn Randers-Pehrson Copyright (c) 1998, Glenn Randers-Pehrson @@ -2301,13 +2301,13 @@ the first widely used release: [should have been 2.0.95] 0.96 ("1.0 beta 6") 0.96 0.96 [should have been 2.0.96] - 0.97b ("1.00.97 beta 7") 1.00.97 1.0.0 + 0.97b ("1.00.97 beta 7") 1.00.97 1.0.1 [should have been 2.0.97] 0.97c 0.97 2.0.97 0.98 0.98 2.0.98 0.99 0.99 2.0.99 0.99a-m 0.99 2.0.99 - 1.0 1.00 2.1.0 + 1.0.1 1.00 2.1.0 Henceforth the source version will match the shared-library minor and patch numbers; the shared-library major version number will be @@ -2365,7 +2365,7 @@ possible without all of you. Thanks to Frank J. T. Wojcik for helping with the documentation. -Libpng version 1.00 (March 7, 1998): +Libpng version 1.0.1 (March 9, 1998): Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc. Currently maintained by Glenn Randers-Pehrson (randeg@alumni.rpi.edu). diff --git a/libpng.txt b/libpng.txt index 3740fbe5..36fa38f5 100644 --- a/libpng.txt +++ b/libpng.txt @@ -1,6 +1,6 @@ libpng.txt - A description on how to use and modify libpng - libpng version 1.00 March 7, 1998 + libpng version 1.0.1 March 9, 1998 Updated and distributed by Glenn Randers-Pehrson Copyright (c) 1998, Glenn Randers-Pehrson diff --git a/libpngpf.3 b/libpngpf.3 index 082c47eb..00730b90 100644 --- a/libpngpf.3 +++ b/libpngpf.3 @@ -1,4 +1,4 @@ -.TH LIBPNGPF 3 "March 7, 1998" +.TH LIBPNGPF 3 "March 9, 1998" .SH NAME libpng \- Portable Network Graphics (PNG) Reference Library (private functions) diff --git a/png.5 b/png.5 index 49d6959c..0ba9dfff 100644 --- a/png.5 +++ b/png.5 @@ -1,4 +1,4 @@ -.TH PNG 5 "March 7, 1998" +.TH PNG 5 "March 9, 1998" .SH NAME png \- Portable Network Graphics (PNG) format .SH DESCRIPTION diff --git a/png.c b/png.c index bbbf8e48..52723df0 100644 --- a/png.c +++ b/png.c @@ -1,12 +1,12 @@ /* png.c - location for general purpose libpng functions * - * libpng 1.00 + * libpng 1.0.1 * For conditions of distribution and use, see copyright notice in png.h * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. * Copyright (c) 1996, 1997 Andreas Dilger * Copyright (c) 1998, Glenn Randers-Pehrson - * March 7, 1998 + * March 9, 1998 */ #define PNG_INTERNAL @@ -16,7 +16,7 @@ /* Version information for C files. This had better match the version * string defined in png.h. */ -char png_libpng_ver[5] = "1.00"; +char png_libpng_ver[6] = "1.0.1"; /* Place to hold the signature string for a PNG file. */ png_byte FARDATA png_sig[8] = {137, 80, 78, 71, 13, 10, 26, 10}; diff --git a/png.h b/png.h index db2bac39..5922edd6 100644 --- a/png.h +++ b/png.h @@ -1,12 +1,12 @@ /* png.h - header file for PNG reference library * - * libpng 1.00 + * libpng 1.0.1 * For conditions of distribution and use, see the COPYRIGHT NOTICE below. * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. * Copyright (c) 1996, 1997 Andreas Dilger * Copyright (c) 1998 Glenn Randers-Pehrson - * March 7, 1998 + * March 9, 1998 * * Note about libpng version numbers: * @@ -23,12 +23,12 @@ * 0.90 ("1.0 beta 4") 0.90 0.90 [should have been 2.0.90] * 0.95 ("1.0 beta 5") 0.95 0.95 [should have been 2.0.95] * 0.96 ("1.0 beta 6") 0.96 0.96 [should have been 2.0.96] - * 0.97b ("1.00.97 beta 7") 1.00.97 1.0.0 [should have been 2.0.97] + * 0.97b ("1.00.97 beta 7") 1.00.97 1.0.1 [should have been 2.0.97] * 0.97c 0.97 2.0.97 * 0.98 0.98 2.0.98 * 0.99 0.99 2.0.99 * 0.99a-m 0.99 2.0.99 - * 1.00 1.00 2.1.0 + * 1.0.1 1.00 2.1.0 * * Henceforth the source version will match the shared-library minor * and patch numbers; the shared-library major version number will be @@ -112,19 +112,20 @@ extern "C" { */ /* Version information for png.h - this should match the version in png.c */ -#define PNG_LIBPNG_VER_STRING "1.00" +#define PNG_LIBPNG_VER_STRING "1.0.1" /* careful here. At one time, I wanted to use 082, but that would be octal. - * Version 1.0 will be 100 here, etc. - */ -#define PNG_LIBPNG_VER 100 + * We must not include leading blanks. + * Versions 0.7 through 1.0.0 were in the range 0 to 100 here. From + * version 1.0.1 it's xxxyyyzzzzL, where x=major, y=minor, z-bugfix*/ +#define PNG_LIBPNG_VER 10000001L /* 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 * the version above. */ -extern char png_libpng_ver[5]; +extern char png_libpng_ver[6]; /* Structures to facilitate easy interlacing. See png.c for more details */ extern int FARDATA png_pass_start[7]; @@ -1483,11 +1484,11 @@ extern PNG_EXPORT(void,png_set_tRNS) PNGARG((png_structp png_ptr, #define PNG_GAMMA 0x2000 #define PNG_GRAY_TO_RGB 0x4000 #define PNG_FILLER 0x8000 -#define PNG_PACKSWAP 0x10000L +#define PNG_PACKSWAP 0x1.0.1L #define PNG_SWAP_ALPHA 0x20000L #define PNG_STRIP_ALPHA 0x40000L #define PNG_INVERT_ALPHA 0x80000L -#define PNG_USER_TRANSFORM 0x100000L +#define PNG_USER_TRANSFORM 0x1.0.10L /* flags for png_create_struct */ #define PNG_STRUCT_PNG 0x0001 @@ -1516,7 +1517,7 @@ extern PNG_EXPORT(void,png_set_tRNS) PNGARG((png_structp png_ptr, #define PNG_FLAG_FREE_TRANS 0x2000 #define PNG_FLAG_FREE_HIST 0x4000 #define PNG_FLAG_HAVE_CHUNK_HEADER 0x8000L -#define PNG_FLAG_WROTE_tIME 0x10000L +#define PNG_FLAG_WROTE_tIME 0x1.0.1L #define PNG_FLAG_CRC_ANCILLARY_MASK (PNG_FLAG_CRC_ANCILLARY_USE | \ PNG_FLAG_CRC_ANCILLARY_NOWARN) diff --git a/pngconf.h b/pngconf.h index 6d0adb1a..56d189bf 100644 --- a/pngconf.h +++ b/pngconf.h @@ -1,12 +1,12 @@ /* pngconf.h - machine configurable file for libpng * - * libpng 1.00 + * libpng 1.0.1 * For conditions of distribution and use, see copyright notice in png.h * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. * Copyright (c) 1996, 1997 Andreas Dilger * Copyright (c) 1998, Glenn Randers-Pehrson - * March 7, 1998 + * March 9, 1998 */ /* Any machine specific code is near the front of this file, so if you diff --git a/pngerror.c b/pngerror.c index 98d5930b..2942a5b2 100644 --- a/pngerror.c +++ b/pngerror.c @@ -1,12 +1,12 @@ /* pngerror.c - stub functions for i/o and memory allocation * - * libpng 1.00 + * libpng 1.0.1 * For conditions of distribution and use, see copyright notice in png.h * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. * Copyright (c) 1996, 1997 Andreas Dilger * Copyright (c) 1998, Glenn Randers-Pehrson - * March 7, 1998 + * March 9, 1998 * * This file provides a location for all error handling. Users which * need special error handling are expected to write replacement functions diff --git a/pngget.c b/pngget.c index 6296589d..29be31f6 100644 --- a/pngget.c +++ b/pngget.c @@ -1,12 +1,12 @@ /* pngget.c - retrieval of values from info struct * - * libpng 1.00 + * libpng 1.0.1 * For conditions of distribution and use, see copyright notice in png.h * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. * Copyright (c) 1996, 1997 Andreas Dilger * Copyright (c) 1998, Glenn Randers-Pehrson - * March 7, 1998 + * March 9, 1998 */ #define PNG_INTERNAL @@ -259,14 +259,14 @@ float png_get_x_offset_inches(png_structp png_ptr, png_infop info_ptr) { return ((float)png_get_x_offset_microns(png_ptr, info_ptr) - *.03937/1000000. +.5) + *.03937/1.0.100. +.5) } float png_get_y_offset_inches(png_structp png_ptr, png_infop info_ptr) { return ((float)png_get_y_offset_microns(png_ptr, info_ptr) - *.03937/1000000. +.5) + *.03937/1.0.100. +.5) } #if defined(PNG_READ_pHYs_SUPPORTED) diff --git a/pngmem.c b/pngmem.c index 5099920d..521556f2 100644 --- a/pngmem.c +++ b/pngmem.c @@ -1,12 +1,12 @@ /* pngmem.c - stub functions for memory allocation * - * libpng 1.00 + * libpng 1.0.1 * For conditions of distribution and use, see copyright notice in png.h * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. * Copyright (c) 1996, 1997 Andreas Dilger * Copyright (c) 1998, Glenn Randers-Pehrson - * March 7, 1998 + * March 9, 1998 * * This file provides a location for all memory allocation. Users which * need special memory handling are expected to modify the code in this file diff --git a/pngpread.c b/pngpread.c index 1723fd11..37d4d255 100644 --- a/pngpread.c +++ b/pngpread.c @@ -1,12 +1,12 @@ /* pngpread.c - read a png file in push mode * - * libpng 1.00 + * libpng 1.0.1 * For conditions of distribution and use, see copyright notice in png.h * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. * Copyright (c) 1996, 1997 Andreas Dilger * Copyright (c) 1998, Glenn Randers-Pehrson - * March 7, 1998 + * March 9, 1998 */ #define PNG_INTERNAL diff --git a/pngread.c b/pngread.c index b1a1f8e6..cc490c21 100644 --- a/pngread.c +++ b/pngread.c @@ -1,12 +1,12 @@ /* pngread.c - read a PNG file * - * libpng 1.00 + * libpng 1.0.1 * For conditions of distribution and use, see copyright notice in png.h * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. * Copyright (c) 1996, 1997 Andreas Dilger * Copyright (c) 1998, Glenn Randers-Pehrson - * March 7, 1998 + * March 9, 1998 * * This file contains routines that an application calls directly to * read a PNG file or stream. diff --git a/pngrio.c b/pngrio.c index 5d6682cb..f165018a 100644 --- a/pngrio.c +++ b/pngrio.c @@ -1,12 +1,12 @@ /* pngrio.c - functions for data input * - * libpng 1.00 + * libpng 1.0.1 * For conditions of distribution and use, see copyright notice in png.h * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. * Copyright (c) 1996, 1997 Andreas Dilger * Copyright (c) 1998, Glenn Randers-Pehrson - * March 7, 1998 + * March 9, 1998 * * This file provides a location for all input. Users which need * special handling are expected to write a function which has the same diff --git a/pngrtran.c b/pngrtran.c index adc84dd6..e1699d5a 100644 --- a/pngrtran.c +++ b/pngrtran.c @@ -1,12 +1,12 @@ /* pngrtran.c - transforms the data in a row for PNG readers * - * libpng 1.00 + * libpng 1.0.1 * For conditions of distribution and use, see copyright notice in png.h * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. * Copyright (c) 1996, 1997 Andreas Dilger * Copyright (c) 1998, Glenn Randers-Pehrson - * March 7, 1998 + * March 9, 1998 * * This file contains functions optionally called by an application * in order to tell libpng how to handle data when reading a PNG. @@ -665,7 +665,8 @@ png_init_read_transformations(png_structp png_ptr) if (png_ptr->transformations & PNG_INVERT_ALPHA) { #if defined(PNG_READ_EXPAND_SUPPORTED) - if (png_ptr->transformations & !PNG_EXPAND) + /* GRR BUG #1: was (png_ptr->transformations & !PNG_EXPAND) */ + if (!(png_ptr->transformations & PNG_EXPAND)) #endif { /* invert the alpha channel (in tRNS) unless the pixels are @@ -712,41 +713,65 @@ png_init_read_transformations(png_structp png_ptr) } else { - double g; + double g, gs; - g = 1.0 / (png_ptr->background_gamma * png_ptr->screen_gamma); - - if (png_ptr->background_gamma_type==PNG_BACKGROUND_GAMMA_SCREEN|| - fabs(g - 1.0) < PNG_GAMMA_THRESHOLD) +/* + GRR BUG #3: inconsistent with handling of full RGBA below + g = 1.0 / png_ptr->background_gamma; + gs = 1.0 / (png_ptr->background_gamma * png_ptr->screen_gamma); + */ + switch (png_ptr->background_gamma_type) { - back.red = (png_byte)png_ptr->background.red; + case PNG_BACKGROUND_GAMMA_SCREEN: + g = (png_ptr->screen_gamma); + gs = 1.0; + break; + case PNG_BACKGROUND_GAMMA_FILE: + g = 1.0 / (png_ptr->gamma); + gs = 1.0 / (png_ptr->gamma * png_ptr->screen_gamma); + break; + case PNG_BACKGROUND_GAMMA_UNIQUE: + g = 1.0 / (png_ptr->background_gamma); + gs = 1.0 / (png_ptr->background_gamma * + png_ptr->screen_gamma); + break; + default: + g = 1.0; /* back_1 */ + gs = 1.0; /* back */ + } + + if ( +/* + GRR BUG #2: This creates self-inconsistent images--fully + transparent and fully opaque look fine, but translucent + pixels are wrong (too bright if XV's code can be trusted). + Commenting it out makes an internally self-consistent + image, but still not consistent with RGBA version of same + thing (again, too bright in XV). + png_ptr->background_gamma_type==PNG_BACKGROUND_GAMMA_SCREEN|| + */ + fabs(gs - 1.0) < PNG_GAMMA_THRESHOLD) + { + back.red = (png_byte)png_ptr->background.red; back.green = (png_byte)png_ptr->background.green; - back.blue = (png_byte)png_ptr->background.blue; + back.blue = (png_byte)png_ptr->background.blue; } else { - back.red = - (png_byte)(pow((double)png_ptr->background.red/255, g) * - 255.0 + 0.5); - back.green = - (png_byte)(pow((double)png_ptr->background.green/255, g) * - 255.0 + 0.5); - back.blue = - (png_byte)(pow((double)png_ptr->background.blue/255, g) * - 255.0 + 0.5); + back.red = (png_byte)(pow( + (double)png_ptr->background.red/255, gs) * 255.0 + .5); + back.green = (png_byte)(pow( + (double)png_ptr->background.green/255, gs) * 255.0 + .5); + back.blue = (png_byte)(pow( + (double)png_ptr->background.blue/255, gs) * 255.0 + .5); } - g = 1.0 / png_ptr->background_gamma; - - back_1.red = - (png_byte)(pow((double)png_ptr->background.red/255, g) * - 255.0 + 0.5); - back_1.green = - (png_byte)(pow((double)png_ptr->background.green/255, g) * - 255.0 + 0.5); - back_1.blue = - (png_byte)(pow((double)png_ptr->background.blue/255, g) * - 255.0 + 0.5); + back_1.red = (png_byte)(pow( + (double)png_ptr->background.red/255, g) * 255.0 + .5); + back_1.green = (png_byte)(pow( + (double)png_ptr->background.green/255, g) * 255.0 + .5); + back_1.blue = (png_byte)(pow( + (double)png_ptr->background.blue/255, g) * 255.0 + .5); } for (i = 0; i < num_palette; i++) diff --git a/pngrutil.c b/pngrutil.c index 7bc0f18b..94664de8 100644 --- a/pngrutil.c +++ b/pngrutil.c @@ -1,12 +1,12 @@ /* pngrutil.c - utilities to read a PNG file * - * libpng 1.00 + * libpng 1.0.1 * For conditions of distribution and use, see copyright notice in png.h * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. * Copyright (c) 1996, 1997 Andreas Dilger * Copyright (c) 1998, Glenn Randers-Pehrson - * March 7, 1998 + * March 9, 1998 * * This file contains routines which are only called from within * libpng itself during the course of reading an image. @@ -436,7 +436,7 @@ png_handle_gAMA(png_structp png_ptr, png_infop info_ptr, png_uint_32 length) } #endif /* PNG_READ_sRGB_SUPPORTED */ - file_gamma = (float)igamma / (float)100000.0; + file_gamma = (float)igamma / (float)1.0.10.0; #ifdef PNG_READ_GAMMA_SUPPORTED png_ptr->gamma = file_gamma; #endif @@ -549,11 +549,11 @@ png_handle_cHRM(png_structp png_ptr, png_infop info_ptr, png_uint_32 length) png_crc_read(png_ptr, buf, 4); val = png_get_uint_32(buf); - white_x = (float)val / (float)100000.0; + white_x = (float)val / (float)1.0.10.0; png_crc_read(png_ptr, buf, 4); val = png_get_uint_32(buf); - white_y = (float)val / (float)100000.0; + white_y = (float)val / (float)1.0.10.0; if (white_x < 0 || white_x > 0.8 || white_y < 0 || white_y > 0.8 || white_x + white_y > 1.0) @@ -565,11 +565,11 @@ png_handle_cHRM(png_structp png_ptr, png_infop info_ptr, png_uint_32 length) png_crc_read(png_ptr, buf, 4); val = png_get_uint_32(buf); - red_x = (float)val / (float)100000.0; + red_x = (float)val / (float)1.0.10.0; png_crc_read(png_ptr, buf, 4); val = png_get_uint_32(buf); - red_y = (float)val / (float)100000.0; + red_y = (float)val / (float)1.0.10.0; if (red_x < 0 || red_x > 0.8 || red_y < 0 || red_y > 0.8 || red_x + red_y > 1.0) @@ -581,11 +581,11 @@ png_handle_cHRM(png_structp png_ptr, png_infop info_ptr, png_uint_32 length) png_crc_read(png_ptr, buf, 4); val = png_get_uint_32(buf); - green_x = (float)val / (float)100000.0; + green_x = (float)val / (float)1.0.10.0; png_crc_read(png_ptr, buf, 4); val = png_get_uint_32(buf); - green_y = (float)val / (float)100000.0; + green_y = (float)val / (float)1.0.10.0; if (green_x < 0 || green_x > 0.8 || green_y < 0 || green_y > 0.8 || green_x + green_y > 1.0) @@ -597,11 +597,11 @@ png_handle_cHRM(png_structp png_ptr, png_infop info_ptr, png_uint_32 length) png_crc_read(png_ptr, buf, 4); val = png_get_uint_32(buf); - blue_x = (float)val / (float)100000.0; + blue_x = (float)val / (float)1.0.10.0; png_crc_read(png_ptr, buf, 4); val = png_get_uint_32(buf); - blue_y = (float)val / (float)100000.0; + blue_y = (float)val / (float)1.0.10.0; if (blue_x < (float)0 || blue_x > (float)0.8 || blue_y < (float)0 || blue_y > (float)0.8 || blue_x + blue_y > (float)1.0) @@ -694,7 +694,7 @@ png_handle_sRGB(png_structp png_ptr, png_infop info_ptr, png_uint_32 length) #if defined(PNG_READ_gAMA_SUPPORTED) && defined(PNG_READ_GAMMA_SUPPORTED) if ((info_ptr->valid & PNG_INFO_gAMA)) - if((png_uint_32)(png_ptr->gamma*(float)100000.+.5) != (png_uint_32)45000L) + if((png_uint_32)(png_ptr->gamma*(float)1.0.10.+.5) != (png_uint_32)45000L) { png_warning(png_ptr, "Ignoring incorrect gAMA value when sRGB is also present"); diff --git a/pngset.c b/pngset.c index 9ccb1088..d58f2fed 100644 --- a/pngset.c +++ b/pngset.c @@ -1,12 +1,12 @@ /* pngset.c - storage of image information into info struct * - * libpng 1.00 + * libpng 1.0.1 * For conditions of distribution and use, see copyright notice in png.h * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. * Copyright (c) 1996, 1997 Andreas Dilger * Copyright (c) 1998, Glenn Randers-Pehrson - * March 7, 1998 + * March 9, 1998 * * The functions here are used during reads to store data from the file * into the info struct, and during writes to store application data diff --git a/pngtest.c b/pngtest.c index e1a3ea07..76df2daa 100644 --- a/pngtest.c +++ b/pngtest.c @@ -1,12 +1,12 @@ /* pngtest.c - a simple test program to test libpng * - * libpng 1.00 + * libpng 1.0.1 * For conditions of distribution and use, see copyright notice in png.h * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. * Copyright (c) 1996, 1997 Andreas Dilger * Copyright (c) 1998, Glenn Randers-Pehrson - * March 7, 1998 + * March 9, 1998 * * This program reads in a PNG image, writes it out again, and then * compares the two files. If the files are identical, this shows that diff --git a/pngtrans.c b/pngtrans.c index d67afa8e..771366b7 100644 --- a/pngtrans.c +++ b/pngtrans.c @@ -1,12 +1,12 @@ /* pngtrans.c - transforms the data in a row (used by both readers and writers) * - * libpng 1.00 + * libpng 1.0.1 * For conditions of distribution and use, see copyright notice in png.h * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. * Copyright (c) 1996, 1997 Andreas Dilger * Copyright (c) 1998, Glenn Randers-Pehrson - * March 7, 1998 + * March 9, 1998 */ #define PNG_INTERNAL diff --git a/pngwio.c b/pngwio.c index c8879ef5..fa5ade87 100644 --- a/pngwio.c +++ b/pngwio.c @@ -1,12 +1,12 @@ /* pngwio.c - functions for data output * - * libpng 1.00 + * libpng 1.0.1 * For conditions of distribution and use, see copyright notice in png.h * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. * Copyright (c) 1996, 1997 Andreas Dilger * Copyright (c) 1998, Glenn Randers-Pehrson - * March 7, 1998 + * March 9, 1998 * * This file provides a location for all output. Users which need * special handling are expected to write functions which have the same diff --git a/pngwrite.c b/pngwrite.c index 1a923223..9d3fdc3a 100644 --- a/pngwrite.c +++ b/pngwrite.c @@ -1,12 +1,12 @@ /* pngwrite.c - general routines to write a PNG file * - * libpng 1.00 + * libpng 1.0.1 * For conditions of distribution and use, see copyright notice in png.h * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. * Copyright (c) 1996, 1997 Andreas Dilger * Copyright (c) 1998, Glenn Randers-Pehrson - * March 7, 1998 + * March 9, 1998 */ /* get internal access to png.h */ diff --git a/pngwtran.c b/pngwtran.c index 25a2d64b..2db759e3 100644 --- a/pngwtran.c +++ b/pngwtran.c @@ -1,12 +1,12 @@ /* pngwtran.c - transforms the data in a row for PNG writers * - * libpng 1.00 + * libpng 1.0.1 * For conditions of distribution and use, see copyright notice in png.h * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. * Copyright (c) 1996, 1997 Andreas Dilger * Copyright (c) 1998, Glenn Randers-Pehrson - * March 7, 1998 + * March 9, 1998 */ #define PNG_INTERNAL diff --git a/pngwutil.c b/pngwutil.c index 04fb1de3..17faf8f3 100644 --- a/pngwutil.c +++ b/pngwutil.c @@ -1,12 +1,12 @@ /* pngwutil.c - utilities to write a PNG file * - * libpng 1.00 + * libpng 1.0.1 * For conditions of distribution and use, see copyright notice in png.h * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. * Copyright (c) 1996, 1997 Andreas Dilger * Copyright (c) 1998, Glenn Randers-Pehrson - * March 7, 1998 + * March 9, 1998 */ #define PNG_INTERNAL @@ -340,8 +340,8 @@ png_write_gAMA(png_structp png_ptr, double file_gamma) png_byte buf[4]; png_debug(1, "in png_write_gAMA\n"); - /* file_gamma is saved in 1/100,000ths */ - igamma = (png_uint_32)(file_gamma * 100000.0 + 0.5); + /* file_gamma is saved in 1/1.0.100ths */ + igamma = (png_uint_32)(file_gamma * 1.0.10.0 + 0.5); png_save_uint_32(buf, igamma); png_write_chunk(png_ptr, png_gAMA, buf, (png_size_t)4); } @@ -426,16 +426,16 @@ png_write_cHRM(png_structp png_ptr, double white_x, double white_y, png_byte buf[32]; png_debug(1, "in png_write_cHRM\n"); - /* each value is saved int 1/100,000ths */ + /* each value is saved int 1/1.0.100ths */ if (white_x < 0 || white_x > 0.8 || white_y < 0 || white_y > 0.8 || white_x + white_y > 1.0) { png_warning(png_ptr, "Invalid cHRM white point specified"); return; } - itemp = (png_uint_32)(white_x * 100000.0 + 0.5); + itemp = (png_uint_32)(white_x * 1.0.10.0 + 0.5); png_save_uint_32(buf, itemp); - itemp = (png_uint_32)(white_y * 100000.0 + 0.5); + itemp = (png_uint_32)(white_y * 1.0.10.0 + 0.5); png_save_uint_32(buf + 4, itemp); if (red_x < 0 || red_x > 0.8 || red_y < 0 || red_y > 0.8 || @@ -444,9 +444,9 @@ png_write_cHRM(png_structp png_ptr, double white_x, double white_y, png_warning(png_ptr, "Invalid cHRM red point specified"); return; } - itemp = (png_uint_32)(red_x * 100000.0 + 0.5); + itemp = (png_uint_32)(red_x * 1.0.10.0 + 0.5); png_save_uint_32(buf + 8, itemp); - itemp = (png_uint_32)(red_y * 100000.0 + 0.5); + itemp = (png_uint_32)(red_y * 1.0.10.0 + 0.5); png_save_uint_32(buf + 12, itemp); if (green_x < 0 || green_x > 0.8 || green_y < 0 || green_y > 0.8 || @@ -455,9 +455,9 @@ png_write_cHRM(png_structp png_ptr, double white_x, double white_y, png_warning(png_ptr, "Invalid cHRM green point specified"); return; } - itemp = (png_uint_32)(green_x * 100000.0 + 0.5); + itemp = (png_uint_32)(green_x * 1.0.10.0 + 0.5); png_save_uint_32(buf + 16, itemp); - itemp = (png_uint_32)(green_y * 100000.0 + 0.5); + itemp = (png_uint_32)(green_y * 1.0.10.0 + 0.5); png_save_uint_32(buf + 20, itemp); if (blue_x < 0 || blue_x > 0.8 || blue_y < 0 || blue_y > 0.8 || @@ -466,9 +466,9 @@ png_write_cHRM(png_structp png_ptr, double white_x, double white_y, png_warning(png_ptr, "Invalid cHRM blue point specified"); return; } - itemp = (png_uint_32)(blue_x * 100000.0 + 0.5); + itemp = (png_uint_32)(blue_x * 1.0.10.0 + 0.5); png_save_uint_32(buf + 24, itemp); - itemp = (png_uint_32)(blue_y * 100000.0 + 0.5); + itemp = (png_uint_32)(blue_y * 1.0.10.0 + 0.5); png_save_uint_32(buf + 28, itemp); png_write_chunk(png_ptr, png_cHRM, buf, (png_size_t)32); diff --git a/scripts/SCOPTIONS.ppc b/scripts/SCOPTIONS.ppc new file mode 100644 index 00000000..2c3503e9 --- /dev/null +++ b/scripts/SCOPTIONS.ppc @@ -0,0 +1,7 @@ +OPTIMIZE +OPTPEEP +OPTTIME +OPTSCHED +AUTOREGISTER +PARMS=REGISTERS +INCLUDEDIR=hlp:ppc/include diff --git a/scripts/makefile.lnx b/scripts/makefile.lnx index 851eb821..3d1a76a4 100644 --- a/scripts/makefile.lnx +++ b/scripts/makefile.lnx @@ -24,7 +24,7 @@ RANLIB=ranlib # read libpng.txt or png.h to see why PNGMAJ is 2. You should not # have to change it. PNGMAJ = 2 -PNGMIN = 1.00 +PNGMIN = 1.0 PNGVER = $(PNGMAJ).$(PNGMIN) # where make install puts libpng.a, libpng.so*, and png.h diff --git a/scripts/makefile.s2x b/scripts/makefile.s2x index 48055b6f..0503890a 100644 --- a/scripts/makefile.s2x +++ b/scripts/makefile.s2x @@ -23,7 +23,7 @@ RANLIB=echo # read libpng.txt or png.h to see why PNGMAJ is 2. You should not # have to change it. PNGMAJ = 2 -PNGMIN = 1.00 +PNGMIN = 1.0 PNGVER = $(PNGMAJ).$(PNGMIN) # where make install puts libpng.a, libpng.so*, and png.h diff --git a/scripts/makefile.wat b/scripts/makefile.wat index 761aad5b..a715acbc 100644 --- a/scripts/makefile.wat +++ b/scripts/makefile.wat @@ -1,5 +1,5 @@ # Makefile for libpng -# Watcom 10a+ 32-bit protected mode flat memory model +# Watcom 10a and later 32-bit protected mode flat memory model # Adapted by Pawel Mrochen, based on makefile.msc # For conditions of distribution and use, see copyright notice in png.h @@ -7,7 +7,7 @@ # To use, do "wmake -f makefile.wat" -# ------------- Watcom 10a+ ------------- +# ------------- Watcom 10a and later ------------- MODEL=-mf CFLAGS= $(MODEL) -fpi87 -fp5 -5r -oaeilmnrt -s -zp4 -i=..\zlib CC=wcc386 diff --git a/scripts/smakefile.ppc b/scripts/smakefile.ppc new file mode 100644 index 00000000..fa3cad44 --- /dev/null +++ b/scripts/smakefile.ppc @@ -0,0 +1,29 @@ +# Amiga powerUP (TM) Makefile +# makefile for libpng and SAS C V6.58/7.00 PPC compiler +# Copyright (C) 1998 by Andreas R. Kleinert + +CC = scppc +CFLAGS = NOSTKCHK NOSINT OPTIMIZE OPTGO OPTPEEP OPTINLOCAL OPTINL IDIR /zlib \ + OPTLOOP OPTRDEP=8 OPTDEP=8 OPTCOMP=8 +LIBNAME = libpng.a +AR = ppc-amigaos-ar +AR_FLAGS = cr +RANLIB = ppc-amigaos-ranlib +LDFLAGS = -r -o +LDLIBS = ../zlib/libzip.a LIB:scppc.a +LN = ppc-amigaos-ld +RM = delete quiet +MKDIR = makedir + +OBJS = png.o pngset.o pngget.o pngrutil.o pngtrans.o pngwutil.o pngread.o \ +pngerror.o pngpread.o pngwrite.o pngrtran.o pngwtran.o pngrio.o pngwio.o pngmem.o + +all: $(LIBNAME) pngtest + +$(LIBNAME): $(OBJS) + $(AR) $(AR_FLAGS) $@ $(OBJS) + $(RANLIB) $@ + +pngtest: pngtest.o $(LIBNAME) + $(LN) $(LDFLAGS) pngtest LIB:c_ppc.o pngtest.o $(LIBNAME) $(LDLIBS) \ +LIB:end.o