mirror of
https://git.code.sf.net/p/libpng/code.git
synced 2025-07-10 18:04:09 +02:00
Imported from libpng-1.0.7beta11.tar
This commit is contained in:
137
png.h
137
png.h
@@ -1,7 +1,7 @@
|
||||
|
||||
/* png.h - header file for PNG reference library
|
||||
*
|
||||
* libpng version 1.0.6j - May 4, 2000
|
||||
* libpng version 1.0.7beta11 - May 6, 2000
|
||||
* Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
|
||||
* Copyright (c) 1996, 1997 Andreas Dilger
|
||||
* Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
|
||||
@@ -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.0.6j - May 4, 2000: Glenn
|
||||
* libpng versions 0.97, January 1998, through 1.0.7beta11 - May 6, 2000: Glenn
|
||||
* See also "Contributing Authors", below.
|
||||
*
|
||||
* Note about libpng version numbers:
|
||||
@@ -20,40 +20,43 @@
|
||||
* The following table summarizes matters since version 0.89c, which was
|
||||
* the first widely used release:
|
||||
*
|
||||
* source png.h png.h shared-lib
|
||||
* version string int version
|
||||
* ------- ------ ----- ----------
|
||||
* 0.89c "1.0 beta 3" 0.89 89 1.0.89
|
||||
* 0.90 "1.0 beta 4" 0.90 90 0.90 [should have been 2.0.90]
|
||||
* 0.95 "1.0 beta 5" 0.95 95 0.95 [should have been 2.0.95]
|
||||
* 0.96 "1.0 beta 6" 0.96 96 0.96 [should have been 2.0.96]
|
||||
* 0.97b "1.00.97 beta 7" 1.00.97 97 1.0.1 [should have been 2.0.97]
|
||||
* 0.97c 0.97 97 2.0.97
|
||||
* 0.98 0.98 98 2.0.98
|
||||
* 0.99 0.99 98 2.0.99
|
||||
* 0.99a-m 0.99 99 2.0.99
|
||||
* 1.00 1.00 100 2.1.0 [100 should be 10000]
|
||||
* 1.0.0 1.0.0 100 2.1.0 [100 should be 10000]
|
||||
* 1.0.1 1.0.1 10001 2.1.0
|
||||
* 1.0.1a-e 1.0.1a-e 10002 2.1.0.1a-e
|
||||
* 1.0.2 1.0.2 10002 2.1.0.2
|
||||
* 1.0.2a-b 1.0.2a-b 10003 2.1.0.2a-b
|
||||
* 1.0.3 1.0.3 10003 2.1.0.3
|
||||
* 1.0.3a-d 1.0.3a-d 10004 2.1.0.3a-d
|
||||
* 1.0.4 1.0.4 10004 2.1.0.4
|
||||
* 1.0.4a-f 1.0.4a-f 10005 2.1.0.4a-f
|
||||
* 1.0.5 (+ 2 patches) 1.0.5 10005 2.1.0.5
|
||||
* 1.0.5a-d 1.0.5a-d 10006 2.1.0.5a-d
|
||||
* 1.0.5e-r 1.0.5e-r 10100 2.1.0.5e-r (not source compatible)
|
||||
* 1.0.5s-v 1.0.5s-v 10006 2.1.0.5s-v (not binary compatible)
|
||||
* 1.0.6 (+ 3 patches) 1.0.6 10006 2.1.0.6 (still binary incompat)
|
||||
* 1.0.6d-f 1.0.6d-f 10007 2.1.0.6d-f (still binary incompat)
|
||||
* 1.0.6g 1.0.6g 10007 2.1.0.6g
|
||||
* 1.0.6h 1.0.6h 10007 10.6h (testing xy.z so-numbering)
|
||||
* 1.0.6i 1.0.6i 10007 10.6i (can be compatible w/ 1.0.0)
|
||||
* 1.0.6j 1.0.6j 10007 2.1.0.6j (compatible with 1.0.0)
|
||||
* 1.0.6 (+ 4 patches) 1.0.6 10006 2.1.0.6ad (compatible with 1.0.0)
|
||||
* 1.0.7 1.0.7 10007 2.1.0.7 (still compatible)
|
||||
* source png.h png.h shared-lib
|
||||
* version string int version
|
||||
* ------- ------ ----- ----------
|
||||
* 0.89c "1.0 beta 3" 0.89 89 1.0.89
|
||||
* 0.90 "1.0 beta 4" 0.90 90 0.90 [should have been 2.0.90]
|
||||
* 0.95 "1.0 beta 5" 0.95 95 0.95 [should have been 2.0.95]
|
||||
* 0.96 "1.0 beta 6" 0.96 96 0.96 [should have been 2.0.96]
|
||||
* 0.97b "1.00.97 beta 7" 1.00.97 97 1.0.1 [should have been 2.0.97]
|
||||
* 0.97c 0.97 97 2.0.97
|
||||
* 0.98 0.98 98 2.0.98
|
||||
* 0.99 0.99 98 2.0.99
|
||||
* 0.99a-m 0.99 99 2.0.99
|
||||
* 1.00 1.00 100 2.1.0 [100 should be 10000]
|
||||
* 1.0.0 (from here on, the 100 2.1.0 [100 should be 10000]
|
||||
* 1.0.1 png.h string is 10001 2.1.0
|
||||
* 1.0.1a-e identical to the 10002 from here on, the shared library
|
||||
* 1.0.2 source version) 10002 is 2.V where V is the source code
|
||||
* 1.0.2a-b 10003 version, except as noted.
|
||||
* 1.0.3 10003
|
||||
* 1.0.3a-d 10004
|
||||
* 1.0.4 10004
|
||||
* 1.0.4a-f 10005
|
||||
* 1.0.5 (+ 2 patches) 10005
|
||||
* 1.0.5a-d 10006
|
||||
* 1.0.5e-r 10100 (not source compatible)
|
||||
* 1.0.5s-v 10006 (not binary compatible)
|
||||
* 1.0.6 (+ 3 patches) 10006 (still binary incompatible)
|
||||
* 1.0.6d-f 10007 (still binary incompatible)
|
||||
* 1.0.6g 10007
|
||||
* 1.0.6h 10007 10.6h (testing xy.z so-numbering)
|
||||
* 1.0.6i 10007 10.6i
|
||||
* 1.0.6j 10007 2.1.0.6j (incompatible with 1.0.0)
|
||||
* 1.0.7beta11 10007 2.1.0.7beta11 (still compatible)
|
||||
* planned:
|
||||
* 1.0.7prep00 10007 2.1.0.7prep00 (still compatible)
|
||||
* 1.0.6ptch04 (w/4 patches) 10006 2.1.0.6 (binary compatible)
|
||||
* 1.0.7 10007 (still compatible)
|
||||
*
|
||||
* Henceforth the source version will match the shared-library major
|
||||
* and minor numbers; the shared-library major version number will be
|
||||
@@ -61,7 +64,9 @@
|
||||
* PNG_PNGLIB_VER macro, which is not used within libpng but is available
|
||||
* for applications, is an unsigned integer of the form xyyzz corresponding
|
||||
* to the source version x.y.z (leading zeros in y and z). Beta versions
|
||||
* are given the previous public release number plus a letter or two.
|
||||
* were given the previous public release number plus a letter, until
|
||||
* version 1.0.6j; from then on they were given the upcoming public
|
||||
* release number plus "-beta-nn" or "-pre-nn".
|
||||
*
|
||||
* Binary incompatibility exists only when applications make direct access
|
||||
* to the info_ptr or png_ptr members through png.h, and the compiled
|
||||
@@ -82,7 +87,7 @@
|
||||
* Copyright (c) 1996, 1997 Andreas Dilger
|
||||
* (libpng versions 0.89c, June 1996, through 0.96, May 1997)
|
||||
* Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson
|
||||
* (libpng versions 0.97, January 1998, through 1.0.6j, May 4, 2000)
|
||||
* (libpng versions 0.97, January 1998, through 1.0.7beta11, May 6, 2000)
|
||||
*
|
||||
* For the purposes of this copyright and license, "Contributing Authors"
|
||||
* is defined as the following set of individuals:
|
||||
@@ -157,13 +162,13 @@
|
||||
* Y2K compliance in libpng:
|
||||
* =========================
|
||||
*
|
||||
* May 4, 2000
|
||||
* May 6, 2000
|
||||
*
|
||||
* Since the PNG Development group is an ad-hoc body, we can't make
|
||||
* an official declaration.
|
||||
*
|
||||
* This is your unofficial assurance that libpng from version 0.71 and
|
||||
* upward through 1.0.6j are Y2K compliant. It is my belief that earlier
|
||||
* upward through 1.0.7beta11 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
|
||||
@@ -241,7 +246,7 @@ extern "C" {
|
||||
*/
|
||||
|
||||
/* Version information for png.h - this should match the version in png.c */
|
||||
#define PNG_LIBPNG_VER_STRING "1.0.6j"
|
||||
#define PNG_LIBPNG_VER_STRING "1.0.7beta11"
|
||||
|
||||
/* Careful here. At one time, Guy wanted to use 082, but that would be octal.
|
||||
* We must not include leading zeros.
|
||||
@@ -258,7 +263,8 @@ extern "C" {
|
||||
* the version above.
|
||||
*/
|
||||
#ifdef PNG_USE_GLOBAL_ARRAYS
|
||||
PNG_EXPORT_VAR (char) png_libpng_ver[12]; /* need room for 99.99.99aa */
|
||||
PNG_EXPORT_VAR (char) png_libpng_ver[12]; /* need room for 99.99.99-patch-aa0*/
|
||||
/* Note to maintainer: increase to 18 at the next opportunity */
|
||||
#else
|
||||
#define png_libpng_ver png_get_header_ver(NULL)
|
||||
#endif
|
||||
@@ -367,11 +373,13 @@ typedef struct png_text_struct
|
||||
png_charp text; /* comment, may be an empty string (ie "")
|
||||
or a NULL pointer */
|
||||
png_size_t text_length; /* length of the text string */
|
||||
#ifdef PNG_iTXt_SUPPORTED
|
||||
png_size_t itxt_length; /* length of the itxt string */
|
||||
png_charp lang; /* language code, 0-79 characters
|
||||
or a NULL pointer */
|
||||
png_charp lang_key; /* keyword translated UTF-8 string, 0 or more
|
||||
chars or a NULL pointer */
|
||||
#endif
|
||||
} png_text;
|
||||
typedef png_text FAR * png_textp;
|
||||
typedef png_text FAR * FAR * png_textpp;
|
||||
@@ -814,31 +822,33 @@ typedef png_row_info FAR * FAR * png_row_infopp;
|
||||
typedef struct png_struct_def png_struct;
|
||||
typedef png_struct FAR * png_structp;
|
||||
|
||||
typedef void (*png_error_ptr) PNGARG((png_structp, png_const_charp));
|
||||
typedef void (*png_rw_ptr) PNGARG((png_structp, png_bytep, png_size_t));
|
||||
typedef void (*png_flush_ptr) PNGARG((png_structp));
|
||||
typedef void (*png_read_status_ptr) PNGARG((png_structp, png_uint_32, int));
|
||||
typedef void (*png_write_status_ptr) PNGARG((png_structp, png_uint_32, int));
|
||||
typedef void (PNGAPI *png_error_ptr) PNGARG((png_structp, png_const_charp));
|
||||
typedef void (PNGAPI *png_rw_ptr) PNGARG((png_structp, png_bytep, png_size_t));
|
||||
typedef void (PNGAPI *png_flush_ptr) PNGARG((png_structp));
|
||||
typedef void (PNGAPI *png_read_status_ptr) PNGARG((png_structp, png_uint_32,
|
||||
int));
|
||||
typedef void (PNGAPI *png_write_status_ptr) PNGARG((png_structp, png_uint_32,
|
||||
int));
|
||||
|
||||
#ifdef PNG_PROGRESSIVE_READ_SUPPORTED
|
||||
typedef void (*png_progressive_info_ptr) PNGARG((png_structp, png_infop));
|
||||
typedef void (*png_progressive_end_ptr) PNGARG((png_structp, png_infop));
|
||||
typedef void (*png_progressive_row_ptr) PNGARG((png_structp, png_bytep,
|
||||
typedef void (PNGAPI *png_progressive_info_ptr) PNGARG((png_structp, png_infop));
|
||||
typedef void (PNGAPI *png_progressive_end_ptr) PNGARG((png_structp, png_infop));
|
||||
typedef void (PNGAPI *png_progressive_row_ptr) PNGARG((png_structp, png_bytep,
|
||||
png_uint_32, int));
|
||||
#endif
|
||||
|
||||
#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \
|
||||
defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) || \
|
||||
defined(PNG_LEGACY_SUPPORTED)
|
||||
typedef void (*png_user_transform_ptr) PNGARG((png_structp,
|
||||
typedef void (PNGAPI *png_user_transform_ptr) PNGARG((png_structp,
|
||||
png_row_infop, png_bytep));
|
||||
#endif
|
||||
|
||||
#if defined(PNG_READ_USER_CHUNKS_SUPPORTED)
|
||||
typedef int (*png_user_chunk_ptr) PNGARG((png_structp, png_unknown_chunkp));
|
||||
typedef int (PNGAPI *png_user_chunk_ptr) PNGARG((png_structp, png_unknown_chunkp));
|
||||
#endif
|
||||
#if defined(PNG_READ_UNKNOWN_CHUNKS_SUPPORTED)
|
||||
typedef void (*png_unknown_chunk_ptr) PNGARG((png_structp));
|
||||
typedef void (PNGAPI *png_unknown_chunk_ptr) PNGARG((png_structp));
|
||||
#endif
|
||||
|
||||
/* Transform masks for the high-level interface */
|
||||
@@ -1101,9 +1111,9 @@ struct png_struct_def
|
||||
};
|
||||
|
||||
/* This prevents a compiler error in png_get_copyright() in png.c if png.c
|
||||
and png.h are both at * version 1.0.6j
|
||||
and png.h are both at * version 1.0.7beta11
|
||||
*/
|
||||
typedef png_structp version_1_0_6j;
|
||||
typedef png_structp version_1_0_7beta11;
|
||||
|
||||
typedef png_struct FAR * FAR * png_structpp;
|
||||
|
||||
@@ -2103,7 +2113,7 @@ extern PNG_EXPORT(png_charp,png_get_header_version) PNGARG((png_structp png_ptr)
|
||||
extern PNG_EXPORT(png_charp,png_get_libpng_ver) PNGARG((png_structp png_ptr));
|
||||
|
||||
#define PNG_HEADER_VERSION_STRING \
|
||||
" libpng version 1.0.6j - May 4, 2000 (header)\n"
|
||||
" libpng version 1.0.7beta11 - May 6, 2000 (header)\n"
|
||||
|
||||
#ifdef PNG_READ_COMPOSITE_NODIV_SUPPORTED
|
||||
/* With these routines we avoid an integer divide, which will be slower on
|
||||
@@ -2169,8 +2179,6 @@ extern PNG_EXPORT(png_charp,png_get_libpng_ver) PNGARG((png_structp png_ptr));
|
||||
#define PNG_WROTE_tIME 0x200
|
||||
#define PNG_WROTE_INFO_BEFORE_PLTE 0x400
|
||||
#define PNG_BACKGROUND_IS_GRAY 0x800
|
||||
#define PNG_CREATED_READ_STRUCT 0x1000
|
||||
#define PNG_CREATED_WRITE_STRUCT 0x2000
|
||||
|
||||
/* flags for the transformations the PNG library does on the image data */
|
||||
#define PNG_BGR 0x0001
|
||||
@@ -2226,6 +2234,7 @@ extern PNG_EXPORT(png_charp,png_get_libpng_ver) PNGARG((png_structp png_ptr));
|
||||
#define PNG_FLAG_FREE_HIST 0x4000
|
||||
#define PNG_FLAG_KEEP_UNKNOWN_CHUNKS 0x8000L
|
||||
#define PNG_FLAG_KEEP_UNSAFE_CHUNKS 0x10000L
|
||||
#define PNG_FLAG_LIBRARY_MISMATCH 0x20000L
|
||||
|
||||
/* For use in png_set_keep_unknown, png_handle_as_unknown */
|
||||
#define HANDLE_CHUNK_AS_DEFAULT 0
|
||||
@@ -2331,22 +2340,22 @@ PNG_EXTERN png_uint_16 png_get_uint_16 PNGARG((png_bytep buf));
|
||||
#endif /* !PNG_READ_BIG_ENDIAN_SUPPORTED */
|
||||
|
||||
/* Initialize png_ptr struct for reading, and allocate any other memory.
|
||||
* (old interface - NOT DLL EXPORTED).
|
||||
* (old interface - DEPRECATED).
|
||||
*/
|
||||
extern void png_read_init PNGARG((png_structp png_ptr));
|
||||
extern PNG_EXPORT(void,png_read_init) PNGARG((png_structp png_ptr));
|
||||
#define png_read_init(png_ptr) png_read_init_2(png_ptr, \
|
||||
PNG_LIBPNG_VER_STRING, sizeof(png_struct), sizeof(png_info));
|
||||
extern void png_read_init_2 PNGARG((png_structp png_ptr,
|
||||
extern PNG_EXPORT(void,png_read_init_2) PNGARG((png_structp png_ptr,
|
||||
png_const_charp user_png_ver, png_size_t png_struct_size, png_size_t
|
||||
png_info_size));
|
||||
|
||||
/* Initialize png_ptr struct for writing, and allocate any other memory.
|
||||
* (old interface - NOT DLL EXPORTED).
|
||||
* (old interface - DEPRECATED).
|
||||
*/
|
||||
extern void png_write_init PNGARG((png_structp png_ptr));
|
||||
extern PNG_EXPORT(void,png_write_init) PNGARG((png_structp png_ptr));
|
||||
#define png_write_init(png_ptr) png_write_init_2(png_ptr, \
|
||||
PNG_LIBPNG_VER_STRING, sizeof(png_struct), sizeof(png_info));
|
||||
extern void png_write_init_2 PNGARG((png_structp png_ptr,
|
||||
extern PNG_EXPORT(void,png_write_init_2) PNGARG((png_structp png_ptr,
|
||||
png_const_charp user_png_ver, png_size_t png_struct_size, png_size_t
|
||||
png_info_size));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user