Changeset 846 for trunk/src/3rdparty/libpng/png.h
- Timestamp:
- May 5, 2011, 5:36:53 AM (14 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk
- Property svn:mergeinfo changed
/branches/vendor/nokia/qt/4.7.2 (added) merged: 845 /branches/vendor/nokia/qt/current merged: 844 /branches/vendor/nokia/qt/4.6.3 removed
- Property svn:mergeinfo changed
-
trunk/src/3rdparty/libpng/png.h
r561 r846 1 1 2 /* png.h - header file for PNG reference library 2 3 * 3 * libpng version 1. 2.40 - September 10, 20094 * Copyright (c) 1998-20 09Glenn Randers-Pehrson4 * libpng version 1.4.0 - January 3, 2010 5 * Copyright (c) 1998-2010 Glenn Randers-Pehrson 5 6 * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) 6 7 * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) … … 11 12 * libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat 12 13 * libpng versions 0.89c, June 1996, through 0.96, May 1997: Andreas Dilger 13 * libpng versions 0.97, January 1998, through 1. 2.40 - September 10, 2009: Glenn14 * libpng versions 0.97, January 1998, through 1.4.0 - January 3, 2010: Glenn 14 15 * See also "Contributing Authors", below. 15 16 * … … 105 106 * 1.2.6 13 10206 12.so.0.1.2.6 106 107 * 1.2.7beta1-2 13 10207 12.so.0.1.2.7beta1-2 107 * 1.0.17rc1 10 10017 1 0.so.0.1.0.17rc1108 * 1.0.17rc1 10 10017 12.so.0.1.0.17rc1 108 109 * 1.2.7rc1 13 10207 12.so.0.1.2.7rc1 109 * 1.0.17 10 10017 1 0.so.0.1.0.17110 * 1.0.17 10 10017 12.so.0.1.0.17 110 111 * 1.2.7 13 10207 12.so.0.1.2.7 111 112 * 1.2.8beta1-5 13 10208 12.so.0.1.2.8beta1-5 112 * 1.0.18rc1-5 10 10018 1 0.so.0.1.0.18rc1-5113 * 1.0.18rc1-5 10 10018 12.so.0.1.0.18rc1-5 113 114 * 1.2.8rc1-5 13 10208 12.so.0.1.2.8rc1-5 114 * 1.0.18 10 10018 1 0.so.0.1.0.18115 * 1.0.18 10 10018 12.so.0.1.0.18 115 116 * 1.2.8 13 10208 12.so.0.1.2.8 116 117 * 1.2.9beta1-3 13 10209 12.so.0.1.2.9beta1-3 … … 118 119 * 1.2.9rc1 13 10209 12.so.0.9[.0] 119 120 * 1.2.9 13 10209 12.so.0.9[.0] 120 * 1.2.10beta1- 813 10210 12.so.0.10[.0]121 * 1.2.10rc1- 313 10210 12.so.0.10[.0]121 * 1.2.10beta1-7 13 10210 12.so.0.10[.0] 122 * 1.2.10rc1-2 13 10210 12.so.0.10[.0] 122 123 * 1.2.10 13 10210 12.so.0.10[.0] 124 * 1.4.0beta1-5 14 10400 14.so.0.0[.0] 123 125 * 1.2.11beta1-4 13 10211 12.so.0.11[.0] 124 * 1.0.19rc1-5 10 10019 10.so.0.19[.0] 125 * 1.2.11rc1-5 13 10211 12.so.0.11[.0] 126 * 1.0.19 10 10019 10.so.0.19[.0] 126 * 1.4.0beta7-8 14 10400 14.so.0.0[.0] 127 127 * 1.2.11 13 10211 12.so.0.11[.0] 128 * 1.0.20 10 10020 10.so.0.20[.0]129 128 * 1.2.12 13 10212 12.so.0.12[.0] 130 * 1.2.13beta1 13 10213 12.so.0.13[.0] 131 * 1.0.21 10 10021 10.so.0.21[.0] 129 * 1.4.0beta9-14 14 10400 14.so.0.0[.0] 132 130 * 1.2.13 13 10213 12.so.0.13[.0] 133 * 1.2.14beta1-2 13 10214 12.so.0.14[.0] 134 * 1.0.22rc1 10 10022 10.so.0.22[.0] 135 * 1.2.14rc1 13 10214 12.so.0.14[.0] 136 * 1.0.22 10 10022 10.so.0.22[.0] 137 * 1.2.14 13 10214 12.so.0.14[.0] 138 * 1.2.15beta1-6 13 10215 12.so.0.15[.0] 139 * 1.0.23rc1-5 10 10023 10.so.0.23[.0] 140 * 1.2.15rc1-5 13 10215 12.so.0.15[.0] 141 * 1.0.23 10 10023 10.so.0.23[.0] 142 * 1.2.15 13 10215 12.so.0.15[.0] 143 * 1.2.16beta1-2 13 10216 12.so.0.16[.0] 144 * 1.2.16rc1 13 10216 12.so.0.16[.0] 145 * 1.0.24 10 10024 10.so.0.24[.0] 146 * 1.2.16 13 10216 12.so.0.16[.0] 147 * 1.2.17beta1-2 13 10217 12.so.0.17[.0] 148 * 1.0.25rc1 10 10025 10.so.0.25[.0] 149 * 1.2.17rc1-3 13 10217 12.so.0.17[.0] 150 * 1.0.25 10 10025 10.so.0.25[.0] 151 * 1.2.17 13 10217 12.so.0.17[.0] 152 * 1.0.26 10 10026 10.so.0.26[.0] 153 * 1.2.18 13 10218 12.so.0.18[.0] 154 * 1.2.19beta1-31 13 10219 12.so.0.19[.0] 155 * 1.0.27rc1-6 10 10027 10.so.0.27[.0] 156 * 1.2.19rc1-6 13 10219 12.so.0.19[.0] 157 * 1.0.27 10 10027 10.so.0.27[.0] 158 * 1.2.19 13 10219 12.so.0.19[.0] 159 * 1.2.20beta01-04 13 10220 12.so.0.20[.0] 160 * 1.0.28rc1-6 10 10028 10.so.0.28[.0] 161 * 1.2.20rc1-6 13 10220 12.so.0.20[.0] 162 * 1.0.28 10 10028 10.so.0.28[.0] 163 * 1.2.20 13 10220 12.so.0.20[.0] 164 * 1.2.21beta1-2 13 10221 12.so.0.21[.0] 165 * 1.2.21rc1-3 13 10221 12.so.0.21[.0] 166 * 1.0.29 10 10029 10.so.0.29[.0] 167 * 1.2.21 13 10221 12.so.0.21[.0] 168 * 1.2.22beta1-4 13 10222 12.so.0.22[.0] 169 * 1.0.30rc1 10 10030 10.so.0.30[.0] 170 * 1.2.22rc1 13 10222 12.so.0.22[.0] 171 * 1.0.30 10 10030 10.so.0.30[.0] 172 * 1.2.22 13 10222 12.so.0.22[.0] 173 * 1.2.23beta01-05 13 10223 12.so.0.23[.0] 174 * 1.2.23rc01 13 10223 12.so.0.23[.0] 175 * 1.2.23 13 10223 12.so.0.23[.0] 176 * 1.2.24beta01-02 13 10224 12.so.0.24[.0] 177 * 1.2.24rc01 13 10224 12.so.0.24[.0] 178 * 1.2.24 13 10224 12.so.0.24[.0] 179 * 1.2.25beta01-06 13 10225 12.so.0.25[.0] 180 * 1.2.25rc01-02 13 10225 12.so.0.25[.0] 181 * 1.0.31 10 10031 10.so.0.31[.0] 182 * 1.2.25 13 10225 12.so.0.25[.0] 183 * 1.2.26beta01-06 13 10226 12.so.0.26[.0] 184 * 1.2.26rc01 13 10226 12.so.0.26[.0] 185 * 1.2.26 13 10226 12.so.0.26[.0] 186 * 1.0.32 10 10032 10.so.0.32[.0] 187 * 1.2.27beta01-06 13 10227 12.so.0.27[.0] 188 * 1.2.27rc01 13 10227 12.so.0.27[.0] 189 * 1.0.33 10 10033 10.so.0.33[.0] 190 * 1.2.27 13 10227 12.so.0.27[.0] 191 * 1.0.34 10 10034 10.so.0.34[.0] 192 * 1.2.28 13 10228 12.so.0.28[.0] 193 * 1.2.29beta01-03 13 10229 12.so.0.29[.0] 194 * 1.2.29rc01 13 10229 12.so.0.29[.0] 195 * 1.0.35 10 10035 10.so.0.35[.0] 196 * 1.2.29 13 10229 12.so.0.29[.0] 197 * 1.0.37 10 10037 10.so.0.37[.0] 198 * 1.2.30beta01-04 13 10230 12.so.0.30[.0] 199 * 1.0.38rc01-08 10 10038 10.so.0.38[.0] 200 * 1.2.30rc01-08 13 10230 12.so.0.30[.0] 201 * 1.0.38 10 10038 10.so.0.38[.0] 202 * 1.2.30 13 10230 12.so.0.30[.0] 203 * 1.0.39rc01-03 10 10039 10.so.0.39[.0] 204 * 1.2.31rc01-03 13 10231 12.so.0.31[.0] 205 * 1.0.39 10 10039 10.so.0.39[.0] 206 * 1.2.31 13 10231 12.so.0.31[.0] 207 * 1.2.32beta01-02 13 10232 12.so.0.32[.0] 208 * 1.0.40rc01 10 10040 10.so.0.40[.0] 209 * 1.2.32rc01 13 10232 12.so.0.32[.0] 210 * 1.0.40 10 10040 10.so.0.40[.0] 211 * 1.2.32 13 10232 12.so.0.32[.0] 212 * 1.2.33beta01-02 13 10233 12.so.0.33[.0] 213 * 1.2.33rc01-02 13 10233 12.so.0.33[.0] 214 * 1.0.41rc01 10 10041 10.so.0.41[.0] 215 * 1.2.33 13 10233 12.so.0.33[.0] 216 * 1.0.41 10 10041 10.so.0.41[.0] 217 * 1.2.34beta01-07 13 10234 12.so.0.34[.0] 218 * 1.0.42rc01 10 10042 10.so.0.42[.0] 219 * 1.2.34rc01 13 10234 12.so.0.34[.0] 220 * 1.0.42 10 10042 10.so.0.42[.0] 221 * 1.2.34 13 10234 12.so.0.34[.0] 222 * 1.2.35beta01-03 13 10235 12.so.0.35[.0] 223 * 1.0.43rc01-02 10 10043 10.so.0.43[.0] 224 * 1.2.35rc01-02 13 10235 12.so.0.35[.0] 225 * 1.0.43 10 10043 10.so.0.43[.0] 226 * 1.2.35 13 10235 12.so.0.35[.0] 227 * 1.2.36beta01-05 13 10236 12.so.0.36[.0] 228 * 1.2.36rc01 13 10236 12.so.0.36[.0] 229 * 1.0.44 10 10044 10.so.0.44[.0] 230 * 1.2.36 13 10236 12.so.0.36[.0] 231 * 1.2.37beta01-03 13 10237 12.so.0.37[.0] 232 * 1.2.37rc01 13 10237 12.so.0.37[.0] 233 * 1.2.37 13 10237 12.so.0.37[.0] 234 * 1.2.45 10 10045 12.so.0.45[.0] 235 * 1.0.46 10 10046 10.so.0.46[.0] 236 * 1.2.38beta01 13 10238 12.so.0.38[.0] 237 * 1.2.38rc01-03 13 10238 12.so.0.38[.0] 238 * 1.0.47 10 10047 10.so.0.47[.0] 239 * 1.2.38 13 10238 12.so.0.38[.0] 240 * 1.2.39beta01-05 13 10239 12.so.0.39[.0] 241 * 1.2.39rc01 13 10239 12.so.0.39[.0] 242 * 1.0.48 10 10048 10.so.0.48[.0] 243 * 1.2.39 13 10239 12.so.0.39[.0] 244 * 1.2.40beta01 13 10240 12.so.0.40[.0] 245 * 1.2.40rc01 13 10240 12.so.0.40[.0] 246 * 1.0.49 10 10049 10.so.0.49[.0] 247 * 1.2.40 13 10240 12.so.0.40[.0] 131 * 1.4.0beta15-36 14 10400 14.so.0.0[.0] 132 * 1.4.0beta37-87 14 10400 14.so.14.0[.0] 133 * 1.4.0rc01 14 10400 14.so.14.0[.0] 134 * 1.4.0beta88-109 14 10400 14.so.14.0[.0] 135 * 1.4.0rc02-08 14 10400 14.so.14.0[.0] 136 * 1.4.0 14 10400 14.so.14.0[.0] 248 137 * 249 138 * Henceforth the source version will match the shared-library major … … 255 144 * were given the previous public release number plus a letter, until 256 145 * version 1.0.6j; from then on they were given the upcoming public 257 * release number plus "betaNN" or "rcN N".146 * release number plus "betaNN" or "rcN". 258 147 * 259 148 * Binary incompatibility exists only when applications make direct access … … 277 166 * This code is released under the libpng license. 278 167 * 279 * libpng versions 1.2.6, August 15, 2004, through 1. 2.40, September 10, 2009, are280 * Copyright (c) 2004, 2006-20 09Glenn Randers-Pehrson, and are168 * libpng versions 1.2.6, August 15, 2004, through 1.4.0, January 3, 2010, are 169 * Copyright (c) 2004, 2006-2010 Glenn Randers-Pehrson, and are 281 170 * distributed according to the same disclaimer and license as libpng-1.2.5 282 171 * with the following individual added to the list of Contributing Authors: … … 366 255 * boxes and the like: 367 256 * 368 * printf("%s",png_get_copyright(NULL));257 * printf("%s",png_get_copyright(NULL)); 369 258 * 370 259 * Also, the PNG logo (in PNG format, of course) is supplied in the … … 389 278 * ========================= 390 279 * 391 * September 10, 2009280 * January 3, 2010 392 281 * 393 282 * Since the PNG Development group is an ad-hoc body, we can't make … … 395 284 * 396 285 * This is your unofficial assurance that libpng from version 0.71 and 397 * upward through 1. 2.40 are Y2K compliant. It is my belief that earlier286 * upward through 1.4.0 are Y2K compliant. It is my belief that earlier 398 287 * versions were also Y2K compliant. 399 288 * … … 451 340 452 341 /* Version information for png.h - this should match the version in png.c */ 453 #define PNG_LIBPNG_VER_STRING "1. 2.40"342 #define PNG_LIBPNG_VER_STRING "1.4.0" 454 343 #define PNG_HEADER_VERSION_STRING \ 455 " libpng version 1. 2.40 - September 10, 2009\n"456 457 #define PNG_LIBPNG_VER_SONUM 0458 #define PNG_LIBPNG_VER_DLLNUM 1 3344 " libpng version 1.4.0 - January 3, 2010\n" 345 346 #define PNG_LIBPNG_VER_SONUM 14 347 #define PNG_LIBPNG_VER_DLLNUM 14 459 348 460 349 /* These should match the first 3 components of PNG_LIBPNG_VER_STRING: */ 461 350 #define PNG_LIBPNG_VER_MAJOR 1 462 #define PNG_LIBPNG_VER_MINOR 2463 #define PNG_LIBPNG_VER_RELEASE 40351 #define PNG_LIBPNG_VER_MINOR 4 352 #define PNG_LIBPNG_VER_RELEASE 0 464 353 /* This should match the numeric part of the final component of 465 354 * PNG_LIBPNG_VER_STRING, omitting any leading zero: … … 483 372 PNG_LIBPNG_BUILD_PRIVATE */ 484 373 485 #define PNG_LIBPNG_BUILD_BASE_TYPE PNG_LIBPNG_BUILD_ STABLE374 #define PNG_LIBPNG_BUILD_BASE_TYPE PNG_LIBPNG_BUILD_BETA 486 375 487 376 /* Careful here. At one time, Guy wanted to use 082, but that would be octal. … … 491 380 * version 1.0.1 it's xxyyzz, where x=major, y=minor, z=release 492 381 */ 493 #define PNG_LIBPNG_VER 10 240 /* 1.2.40 */382 #define PNG_LIBPNG_VER 10400 /* 1.4.0 */ 494 383 495 384 #ifndef PNG_VERSION_INFO_ONLY … … 498 387 #endif 499 388 389 #ifdef _AIX 390 #define jmpbuf __jmpbuf 391 #endif 392 500 393 /* Include all user configurable info, including optional assembler routines */ 501 394 #include "pngconf.h" 502 395 503 396 /* 504 * Added at libpng-1.2.8 */ 505 /* Ref MSDN: Private as priority over Special 397 * Added at libpng-1.2.8 398 * 399 * Ref MSDN: Private as priority over Special 506 400 * VS_FF_PRIVATEBUILD File *was not* built using standard release 507 401 * procedures. If this value is given, the StringFileInfo block must … … 514 408 */ 515 409 516 #if defined(PNG_USER_PRIVATEBUILD)410 #ifdef PNG_USER_PRIVATEBUILD 517 411 # define PNG_LIBPNG_BUILD_TYPE \ 518 412 (PNG_LIBPNG_BUILD_BASE_TYPE | PNG_LIBPNG_BUILD_PRIVATE) 519 413 #else 520 # if defined(PNG_LIBPNG_SPECIALBUILD)414 # ifdef PNG_LIBPNG_SPECIALBUILD 521 415 # define PNG_LIBPNG_BUILD_TYPE \ 522 416 (PNG_LIBPNG_BUILD_BASE_TYPE | PNG_LIBPNG_BUILD_SPECIAL) … … 539 433 */ 540 434 541 #ifndef PNG_NO_TYPECAST_NULL542 #define int_p_NULL (int *)NULL543 #define png_bytep_NULL (png_bytep)NULL544 #define png_bytepp_NULL (png_bytepp)NULL545 #define png_doublep_NULL (png_doublep)NULL546 #define png_error_ptr_NULL (png_error_ptr)NULL547 #define png_flush_ptr_NULL (png_flush_ptr)NULL548 #define png_free_ptr_NULL (png_free_ptr)NULL549 #define png_infopp_NULL (png_infopp)NULL550 #define png_malloc_ptr_NULL (png_malloc_ptr)NULL551 #define png_read_status_ptr_NULL (png_read_status_ptr)NULL552 #define png_rw_ptr_NULL (png_rw_ptr)NULL553 #define png_structp_NULL (png_structp)NULL554 #define png_uint_16p_NULL (png_uint_16p)NULL555 #define png_voidp_NULL (png_voidp)NULL556 #define png_write_status_ptr_NULL (png_write_status_ptr)NULL557 #else558 #define int_p_NULL NULL559 #define png_bytep_NULL NULL560 #define png_bytepp_NULL NULL561 #define png_doublep_NULL NULL562 #define png_error_ptr_NULL NULL563 #define png_flush_ptr_NULL NULL564 #define png_free_ptr_NULL NULL565 #define png_infopp_NULL NULL566 #define png_malloc_ptr_NULL NULL567 #define png_read_status_ptr_NULL NULL568 #define png_rw_ptr_NULL NULL569 #define png_structp_NULL NULL570 #define png_uint_16p_NULL NULL571 #define png_voidp_NULL NULL572 #define png_write_status_ptr_NULL NULL573 #endif574 575 435 /* Variables declared in png.c - only it needs to define PNG_NO_EXTERN */ 576 436 #if !defined(PNG_NO_EXTERN) || defined(PNG_ALWAYS_EXTERN) … … 578 438 * the version above. 579 439 */ 580 #ifdef PNG_USE_GLOBAL_ARRAYS581 PNG_EXPORT_VAR (PNG_CONST char) png_libpng_ver[18];582 /* Need room for 99.99.99beta99z */583 #else584 440 #define png_libpng_ver png_get_header_ver(NULL) 585 #endif586 587 #ifdef PNG_USE_GLOBAL_ARRAYS588 /* This was removed in version 1.0.5c */589 /* Structures to facilitate easy interlacing. See png.c for more details */590 PNG_EXPORT_VAR (PNG_CONST int FARDATA) png_pass_start[7];591 PNG_EXPORT_VAR (PNG_CONST int FARDATA) png_pass_inc[7];592 PNG_EXPORT_VAR (PNG_CONST int FARDATA) png_pass_ystart[7];593 PNG_EXPORT_VAR (PNG_CONST int FARDATA) png_pass_yinc[7];594 PNG_EXPORT_VAR (PNG_CONST int FARDATA) png_pass_mask[7];595 PNG_EXPORT_VAR (PNG_CONST int FARDATA) png_pass_dsp_mask[7];596 /* This isn't currently used. If you need it, see png.c for more details.597 PNG_EXPORT_VAR (PNG_CONST int FARDATA) png_pass_height[7];598 */599 #endif600 441 601 442 #endif /* PNG_NO_EXTERN */ … … 699 540 700 541 /* Supported compression types for text in PNG files (tEXt, and zTXt). 701 * The values of the PNG_TEXT_COMPRESSION_ defines should NOT be changed. 702 */ 542 * The values of the PNG_TEXT_COMPRESSION_ defines should NOT be changed. */ 703 543 #define PNG_TEXT_COMPRESSION_NONE_WR -3 704 544 #define PNG_TEXT_COMPRESSION_zTXt_WR -2 … … 734 574 * know about their semantics. 735 575 */ 736 #define PNG_CHUNK_NAME_LENGTH 5737 576 typedef struct png_unknown_chunk_t 738 577 { 739 png_byte name[ PNG_CHUNK_NAME_LENGTH];578 png_byte name[5]; 740 579 png_byte *data; 741 580 png_size_t size; … … 790 629 typedef struct png_info_struct 791 630 { 792 /* The following are necessary for every PNG file */793 png_uint_32 width ; /* width of image in pixels (from IHDR) */794 png_uint_32 height ; /* height of image in pixels (from IHDR) */795 png_uint_32 valid ; /* valid chunk data (see PNG_INFO_ below) */796 png_ uint_32 rowbytes;/* bytes needed to hold an untransformed row */797 png_colorp palette ; /* array of color values (valid & PNG_INFO_PLTE) */798 png_uint_16 num_palette ; /* number of color entries in "palette" (PLTE) */799 png_uint_16 num_trans ; /* number of transparent palette color (tRNS) */800 png_byte bit_depth ; /* 1, 2, 4, 8, or 16 bits/channel (from IHDR) */801 png_byte color_type ; /* see PNG_COLOR_TYPE_ below (from IHDR) */631 /* the following are necessary for every PNG file */ 632 png_uint_32 width PNG_DEPSTRUCT; /* width of image in pixels (from IHDR) */ 633 png_uint_32 height PNG_DEPSTRUCT; /* height of image in pixels (from IHDR) */ 634 png_uint_32 valid PNG_DEPSTRUCT; /* valid chunk data (see PNG_INFO_ below) */ 635 png_size_t rowbytes PNG_DEPSTRUCT; /* bytes needed to hold an untransformed row */ 636 png_colorp palette PNG_DEPSTRUCT; /* array of color values (valid & PNG_INFO_PLTE) */ 637 png_uint_16 num_palette PNG_DEPSTRUCT; /* number of color entries in "palette" (PLTE) */ 638 png_uint_16 num_trans PNG_DEPSTRUCT; /* number of transparent palette color (tRNS) */ 639 png_byte bit_depth PNG_DEPSTRUCT; /* 1, 2, 4, 8, or 16 bits/channel (from IHDR) */ 640 png_byte color_type PNG_DEPSTRUCT; /* see PNG_COLOR_TYPE_ below (from IHDR) */ 802 641 /* The following three should have been named *_method not *_type */ 803 png_byte compression_type ; /* must be PNG_COMPRESSION_TYPE_BASE (IHDR) */804 png_byte filter_type ; /* must be PNG_FILTER_TYPE_BASE (from IHDR) */805 png_byte interlace_type ; /* One of PNG_INTERLACE_NONE, PNG_INTERLACE_ADAM7 */642 png_byte compression_type PNG_DEPSTRUCT; /* must be PNG_COMPRESSION_TYPE_BASE (IHDR) */ 643 png_byte filter_type PNG_DEPSTRUCT; /* must be PNG_FILTER_TYPE_BASE (from IHDR) */ 644 png_byte interlace_type PNG_DEPSTRUCT; /* One of PNG_INTERLACE_NONE, PNG_INTERLACE_ADAM7 */ 806 645 807 646 /* The following is informational only on read, and not used on writes. */ 808 png_byte channels ; /* number of data channels per pixel (1, 2, 3, 4) */809 png_byte pixel_depth ; /* number of bits per pixel */810 png_byte spare_byte ; /* to align the data, and for future use */811 png_byte signature[8] ; /* magic bytes read by libpng from start of file */647 png_byte channels PNG_DEPSTRUCT; /* number of data channels per pixel (1, 2, 3, 4) */ 648 png_byte pixel_depth PNG_DEPSTRUCT; /* number of bits per pixel */ 649 png_byte spare_byte PNG_DEPSTRUCT; /* to align the data, and for future use */ 650 png_byte signature[8] PNG_DEPSTRUCT; /* magic bytes read by libpng from start of file */ 812 651 813 652 /* The rest of the data is optional. If you are reading, check the … … 822 661 * Data is valid if (valid & PNG_INFO_gAMA) is non-zero. 823 662 */ 824 float gamma ; /* gamma value of image, if (valid & PNG_INFO_gAMA) */825 #endif 826 827 #if defined(PNG_sRGB_SUPPORTED)663 float gamma PNG_DEPSTRUCT; /* gamma value of image, if (valid & PNG_INFO_gAMA) */ 664 #endif 665 666 #ifdef PNG_sRGB_SUPPORTED 828 667 /* GR-P, 0.96a */ 829 668 /* Data valid if (valid & PNG_INFO_sRGB) non-zero. */ 830 png_byte srgb_intent ; /* sRGB rendering intent [0, 1, 2, or 3] */831 #endif 832 833 #if defined(PNG_TEXT_SUPPORTED)669 png_byte srgb_intent PNG_DEPSTRUCT; /* sRGB rendering intent [0, 1, 2, or 3] */ 670 #endif 671 672 #ifdef PNG_TEXT_SUPPORTED 834 673 /* The tEXt, and zTXt chunks contain human-readable textual data in 835 674 * uncompressed, compressed, and optionally compressed forms, respectively. … … 840 679 * be in an image. 841 680 */ 842 int num_text ; /* number of comments read/to write */843 int max_text ; /* current size of text array */844 png_textp text ; /* array of comments read/to write */681 int num_text PNG_DEPSTRUCT; /* number of comments read/to write */ 682 int max_text PNG_DEPSTRUCT; /* current size of text array */ 683 png_textp text PNG_DEPSTRUCT; /* array of comments read/to write */ 845 684 #endif /* PNG_TEXT_SUPPORTED */ 846 685 847 #if defined(PNG_tIME_SUPPORTED)686 #ifdef PNG_tIME_SUPPORTED 848 687 /* The tIME chunk holds the last time the displayed image data was 849 688 * modified. See the png_time struct for the contents of this struct. 850 689 */ 851 png_time mod_time ;852 #endif 853 854 #if defined(PNG_sBIT_SUPPORTED)690 png_time mod_time PNG_DEPSTRUCT; 691 #endif 692 693 #ifdef PNG_sBIT_SUPPORTED 855 694 /* The sBIT chunk specifies the number of significant high-order bits 856 695 * in the pixel data. Values are in the range [1, bit_depth], and are … … 859 698 * (valid & PNG_INFO_sBIT) is non-zero. 860 699 */ 861 png_color_8 sig_bit ; /* significant bits in color channels */700 png_color_8 sig_bit PNG_DEPSTRUCT; /* significant bits in color channels */ 862 701 #endif 863 702 … … 873 712 * Data is valid if (valid & PNG_INFO_tRNS) is non-zero. 874 713 */ 875 png_bytep trans ; /* transparentvalues for paletted image */876 png_color_16 trans_ values; /* transparent color for non-palette image */714 png_bytep trans_alpha PNG_DEPSTRUCT; /* alpha values for paletted image */ 715 png_color_16 trans_color PNG_DEPSTRUCT; /* transparent color for non-palette image */ 877 716 #endif 878 717 … … 884 723 * pixel data. Data is valid if (valid & PNG_INFO_bKGD) is non-zero. 885 724 */ 886 png_color_16 background ;887 #endif 888 889 #if defined(PNG_oFFs_SUPPORTED)725 png_color_16 background PNG_DEPSTRUCT; 726 #endif 727 728 #ifdef PNG_oFFs_SUPPORTED 890 729 /* The oFFs chunk gives the offset in "offset_unit_type" units rightwards 891 730 * and downwards from the top-left corner of the display, page, or other … … 893 732 * below for the unit types. Valid if (valid & PNG_INFO_oFFs) non-zero. 894 733 */ 895 png_int_32 x_offset ; /* x offset on page */896 png_int_32 y_offset ; /* y offset on page */897 png_byte offset_unit_type ; /* offset units type */898 #endif 899 900 #if defined(PNG_pHYs_SUPPORTED)734 png_int_32 x_offset PNG_DEPSTRUCT; /* x offset on page */ 735 png_int_32 y_offset PNG_DEPSTRUCT; /* y offset on page */ 736 png_byte offset_unit_type PNG_DEPSTRUCT; /* offset units type */ 737 #endif 738 739 #ifdef PNG_pHYs_SUPPORTED 901 740 /* The pHYs chunk gives the physical pixel density of the image for 902 741 * display or printing in "phys_unit_type" units (see PNG_RESOLUTION_ 903 742 * defines below). Data is valid if (valid & PNG_INFO_pHYs) is non-zero. 904 743 */ 905 png_uint_32 x_pixels_per_unit ; /* horizontal pixel density */906 png_uint_32 y_pixels_per_unit ; /* vertical pixel density */907 png_byte phys_unit_type ; /* resolution type (see PNG_RESOLUTION_ below) */908 #endif 909 910 #if defined(PNG_hIST_SUPPORTED)744 png_uint_32 x_pixels_per_unit PNG_DEPSTRUCT; /* horizontal pixel density */ 745 png_uint_32 y_pixels_per_unit PNG_DEPSTRUCT; /* vertical pixel density */ 746 png_byte phys_unit_type PNG_DEPSTRUCT; /* resolution type (see PNG_RESOLUTION_ below) */ 747 #endif 748 749 #ifdef PNG_hIST_SUPPORTED 911 750 /* The hIST chunk contains the relative frequency or importance of the 912 751 * various palette entries, so that a viewer can intelligently select a … … 915 754 * is non-zero. 916 755 */ 917 png_uint_16p hist ;756 png_uint_16p hist PNG_DEPSTRUCT; 918 757 #endif 919 758 … … 926 765 */ 927 766 #ifdef PNG_FLOATING_POINT_SUPPORTED 928 float x_white ;929 float y_white ;930 float x_red ;931 float y_red ;932 float x_green ;933 float y_green ;934 float x_blue ;935 float y_blue ;936 #endif 937 #endif 938 939 #if defined(PNG_pCAL_SUPPORTED)767 float x_white PNG_DEPSTRUCT; 768 float y_white PNG_DEPSTRUCT; 769 float x_red PNG_DEPSTRUCT; 770 float y_red PNG_DEPSTRUCT; 771 float x_green PNG_DEPSTRUCT; 772 float y_green PNG_DEPSTRUCT; 773 float x_blue PNG_DEPSTRUCT; 774 float y_blue PNG_DEPSTRUCT; 775 #endif 776 #endif 777 778 #ifdef PNG_pCAL_SUPPORTED 940 779 /* The pCAL chunk describes a transformation between the stored pixel 941 780 * values and original physical data values used to create the image. … … 949 788 * Data values are valid if (valid & PNG_INFO_pCAL) non-zero. 950 789 */ 951 png_charp pcal_purpose ; /* pCAL chunk description string */952 png_int_32 pcal_X0 ; /* minimum value */953 png_int_32 pcal_X1 ; /* maximum value */954 png_charp pcal_units ; /* Latin-1 string giving physical units */955 png_charpp pcal_params ; /* ASCII strings containing parameter values */956 png_byte pcal_type ; /* equation type (see PNG_EQUATION_ below) */957 png_byte pcal_nparams ; /* number of parameters given in pcal_params */790 png_charp pcal_purpose PNG_DEPSTRUCT; /* pCAL chunk description string */ 791 png_int_32 pcal_X0 PNG_DEPSTRUCT; /* minimum value */ 792 png_int_32 pcal_X1 PNG_DEPSTRUCT; /* maximum value */ 793 png_charp pcal_units PNG_DEPSTRUCT; /* Latin-1 string giving physical units */ 794 png_charpp pcal_params PNG_DEPSTRUCT; /* ASCII strings containing parameter values */ 795 png_byte pcal_type PNG_DEPSTRUCT; /* equation type (see PNG_EQUATION_ below) */ 796 png_byte pcal_nparams PNG_DEPSTRUCT; /* number of parameters given in pcal_params */ 958 797 #endif 959 798 960 799 /* New members added in libpng-1.0.6 */ 961 #ifdef PNG_FREE_ME_SUPPORTED 962 png_uint_32 free_me; /* flags items libpng is responsible for freeing */ 963 #endif 800 png_uint_32 free_me PNG_DEPSTRUCT; /* flags items libpng is responsible for freeing */ 964 801 965 802 #if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED) || \ 966 803 defined(PNG_HANDLE_AS_UNKNOWN_SUPPORTED) 967 804 /* Storage for unknown chunks that the library doesn't recognize. */ 968 png_unknown_chunkp unknown_chunks ;969 png_size_t unknown_chunks_num ;970 #endif 971 972 #if defined(PNG_iCCP_SUPPORTED)805 png_unknown_chunkp unknown_chunks PNG_DEPSTRUCT; 806 png_size_t unknown_chunks_num PNG_DEPSTRUCT; 807 #endif 808 809 #ifdef PNG_iCCP_SUPPORTED 973 810 /* iCCP chunk data. */ 974 png_charp iccp_name ; /* profile name */975 png_charp iccp_profile ; /* International Color Consortium profile data */811 png_charp iccp_name PNG_DEPSTRUCT; /* profile name */ 812 png_charp iccp_profile PNG_DEPSTRUCT; /* International Color Consortium profile data */ 976 813 /* Note to maintainer: should be png_bytep */ 977 png_uint_32 iccp_proflen ; /* ICC profile data length */978 png_byte iccp_compression ; /* Always zero */979 #endif 980 981 #if defined(PNG_sPLT_SUPPORTED)814 png_uint_32 iccp_proflen PNG_DEPSTRUCT; /* ICC profile data length */ 815 png_byte iccp_compression PNG_DEPSTRUCT; /* Always zero */ 816 #endif 817 818 #ifdef PNG_sPLT_SUPPORTED 982 819 /* Data on sPLT chunks (there may be more than one). */ 983 png_sPLT_tp splt_palettes ;984 png_uint_32 splt_palettes_num ;985 #endif 986 987 #if defined(PNG_sCAL_SUPPORTED)820 png_sPLT_tp splt_palettes PNG_DEPSTRUCT; 821 png_uint_32 splt_palettes_num PNG_DEPSTRUCT; 822 #endif 823 824 #ifdef PNG_sCAL_SUPPORTED 988 825 /* The sCAL chunk describes the actual physical dimensions of the 989 826 * subject matter of the graphic. The chunk contains a unit specification … … 993 830 * here. Data values are valid if (valid & PNG_INFO_sCAL) is non-zero. 994 831 */ 995 png_byte scal_unit ; /* unit of physical scale */832 png_byte scal_unit PNG_DEPSTRUCT; /* unit of physical scale */ 996 833 #ifdef PNG_FLOATING_POINT_SUPPORTED 997 double scal_pixel_width ; /* width of one pixel */998 double scal_pixel_height ; /* height of one pixel */834 double scal_pixel_width PNG_DEPSTRUCT; /* width of one pixel */ 835 double scal_pixel_height PNG_DEPSTRUCT; /* height of one pixel */ 999 836 #endif 1000 837 #ifdef PNG_FIXED_POINT_SUPPORTED 1001 png_charp scal_s_width ; /* string containing height */1002 png_charp scal_s_height ; /* string containing width */1003 #endif 1004 #endif 1005 1006 #if defined(PNG_INFO_IMAGE_SUPPORTED)838 png_charp scal_s_width PNG_DEPSTRUCT; /* string containing height */ 839 png_charp scal_s_height PNG_DEPSTRUCT; /* string containing width */ 840 #endif 841 #endif 842 843 #ifdef PNG_INFO_IMAGE_SUPPORTED 1007 844 /* Memory has been allocated if (valid & PNG_ALLOCATED_INFO_ROWS) non-zero */ 1008 845 /* Data valid if (valid & PNG_INFO_IDAT) non-zero */ 1009 png_bytepp row_pointers ; /* the image bits */846 png_bytepp row_pointers PNG_DEPSTRUCT; /* the image bits */ 1010 847 #endif 1011 848 1012 849 #if defined(PNG_FIXED_POINT_SUPPORTED) && defined(PNG_gAMA_SUPPORTED) 1013 png_fixed_point int_gamma ; /* gamma of image, if (valid & PNG_INFO_gAMA) */850 png_fixed_point int_gamma PNG_DEPSTRUCT; /* gamma of image, if (valid & PNG_INFO_gAMA) */ 1014 851 #endif 1015 852 1016 853 #if defined(PNG_cHRM_SUPPORTED) && defined(PNG_FIXED_POINT_SUPPORTED) 1017 png_fixed_point int_x_white ;1018 png_fixed_point int_y_white ;1019 png_fixed_point int_x_red ;1020 png_fixed_point int_y_red ;1021 png_fixed_point int_x_green ;1022 png_fixed_point int_y_green ;1023 png_fixed_point int_x_blue ;1024 png_fixed_point int_y_blue ;854 png_fixed_point int_x_white PNG_DEPSTRUCT; 855 png_fixed_point int_y_white PNG_DEPSTRUCT; 856 png_fixed_point int_x_red PNG_DEPSTRUCT; 857 png_fixed_point int_y_red PNG_DEPSTRUCT; 858 png_fixed_point int_x_green PNG_DEPSTRUCT; 859 png_fixed_point int_y_green PNG_DEPSTRUCT; 860 png_fixed_point int_x_blue PNG_DEPSTRUCT; 861 png_fixed_point int_y_blue PNG_DEPSTRUCT; 1025 862 #endif 1026 863 … … 1034 871 #define PNG_UINT_32_MAX ((png_uint_32)(-1)) 1035 872 #define PNG_SIZE_MAX ((png_size_t)(-1)) 1036 #if defined(PNG_1_0_X) || defined (PNG_1_2_X)1037 /* PNG_MAX_UINT is deprecated; use PNG_UINT_31_MAX instead. */1038 #define PNG_MAX_UINT PNG_UINT_31_MAX1039 #endif1040 873 1041 874 /* These describe the color_type field in png_info. */ … … 1134 967 { 1135 968 png_uint_32 width; /* width of row */ 1136 png_ uint_32rowbytes; /* number of bytes in row */969 png_size_t rowbytes; /* number of bytes in row */ 1137 970 png_byte color_type; /* color type of row */ 1138 971 png_byte bit_depth; /* bit depth of row */ … … 1169 1002 1170 1003 #if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \ 1171 defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) || \ 1172 defined(PNG_LEGACY_SUPPORTED) 1004 defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) 1173 1005 typedef void (PNGAPI *png_user_transform_ptr) PNGARG((png_structp, 1174 1006 png_row_infop, png_bytep)); 1175 1007 #endif 1176 1008 1177 #if defined(PNG_USER_CHUNKS_SUPPORTED)1009 #ifdef PNG_USER_CHUNKS_SUPPORTED 1178 1010 typedef int (PNGAPI *png_user_chunk_ptr) PNGARG((png_structp, png_unknown_chunkp)); 1179 1011 #endif 1180 #if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED)1012 #ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED 1181 1013 typedef void (PNGAPI *png_unknown_chunk_ptr) PNGARG((png_structp)); 1014 #endif 1015 #ifdef PNG_SETJMP_SUPPORTED 1016 /* This must match the function definition in <setjmp.h>, and the 1017 * application must include this before png.h to obtain the definition 1018 * of jmp_buf. 1019 */ 1020 typedef void (PNGAPI *png_longjmp_ptr) PNGARG((jmp_buf, int)); 1182 1021 #endif 1183 1022 … … 1195 1034 #define PNG_TRANSFORM_SWAP_ENDIAN 0x0200 /* read and write */ 1196 1035 #define PNG_TRANSFORM_INVERT_ALPHA 0x0400 /* read and write */ 1197 #define PNG_TRANSFORM_STRIP_FILLER 0x0800 /* write only , deprecated*/1036 #define PNG_TRANSFORM_STRIP_FILLER 0x0800 /* write only */ 1198 1037 /* Added to libpng-1.2.34 */ 1199 #define PNG_TRANSFORM_STRIP_FILLER_BEFORE 0x0800 /* write only */ 1200 #define PNG_TRANSFORM_STRIP_FILLER_AFTER 0x1000 /* write only */ 1038 #define PNG_TRANSFORM_STRIP_FILLER_BEFORE PNG_TRANSFORM_STRIP_FILLER 1039 #define PNG_TRANSFORM_STRIP_FILLER_AFTER 0x1000 /* write only */ 1040 /* Added to libpng-1.4.0 */ 1041 #define PNG_TRANSFORM_GRAY_TO_RGB 0x2000 /* read only */ 1201 1042 1202 1043 /* Flags for MNG supported features */ … … 1205 1046 #define PNG_ALL_MNG_FEATURES 0x05 1206 1047 1207 typedef png_voidp (*png_malloc_ptr) PNGARG((png_structp, png_ size_t));1048 typedef png_voidp (*png_malloc_ptr) PNGARG((png_structp, png_alloc_size_t)); 1208 1049 typedef void (*png_free_ptr) PNGARG((png_structp, png_voidp)); 1209 1050 … … 1218 1059 { 1219 1060 #ifdef PNG_SETJMP_SUPPORTED 1220 jmp_buf jmpbuf; /* used in png_error */ 1221 #endif 1222 png_error_ptr error_fn; /* function for printing errors and aborting */ 1223 png_error_ptr warning_fn; /* function for printing warnings */ 1224 png_voidp error_ptr; /* user supplied struct for error functions */ 1225 png_rw_ptr write_data_fn; /* function for writing output data */ 1226 png_rw_ptr read_data_fn; /* function for reading input data */ 1227 png_voidp io_ptr; /* ptr to application struct for I/O functions */ 1228 1229 #if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) 1230 png_user_transform_ptr read_user_transform_fn; /* user read transform */ 1231 #endif 1232 1233 #if defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) 1234 png_user_transform_ptr write_user_transform_fn; /* user write transform */ 1061 jmp_buf jmpbuf PNG_DEPSTRUCT; /* used in png_error */ 1062 png_longjmp_ptr longjmp_fn PNG_DEPSTRUCT;/* setjmp non-local goto function. */ 1063 #endif 1064 png_error_ptr error_fn PNG_DEPSTRUCT; /* function for printing errors and aborting */ 1065 png_error_ptr warning_fn PNG_DEPSTRUCT; /* function for printing warnings */ 1066 png_voidp error_ptr PNG_DEPSTRUCT; /* user supplied struct for error functions */ 1067 png_rw_ptr write_data_fn PNG_DEPSTRUCT; /* function for writing output data */ 1068 png_rw_ptr read_data_fn PNG_DEPSTRUCT; /* function for reading input data */ 1069 png_voidp io_ptr PNG_DEPSTRUCT; /* ptr to application struct for I/O functions */ 1070 1071 #ifdef PNG_READ_USER_TRANSFORM_SUPPORTED 1072 png_user_transform_ptr read_user_transform_fn PNG_DEPSTRUCT; /* user read transform */ 1073 #endif 1074 1075 #ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED 1076 png_user_transform_ptr write_user_transform_fn PNG_DEPSTRUCT; /* user write transform */ 1235 1077 #endif 1236 1078 1237 1079 /* These were added in libpng-1.0.2 */ 1238 #if defined(PNG_USER_TRANSFORM_PTR_SUPPORTED)1080 #ifdef PNG_USER_TRANSFORM_PTR_SUPPORTED 1239 1081 #if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \ 1240 1082 defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) 1241 png_voidp user_transform_ptr; /* user supplied struct for user transform */ 1242 png_byte user_transform_depth; /* bit depth of user transformed pixels */ 1243 png_byte user_transform_channels; /* channels in user transformed pixels */ 1244 #endif 1245 #endif 1246 1247 png_uint_32 mode; /* tells us where we are in the PNG file */ 1248 png_uint_32 flags; /* flags indicating various things to libpng */ 1249 png_uint_32 transformations; /* which transformations to perform */ 1250 1251 z_stream zstream; /* pointer to decompression structure (below) */ 1252 png_bytep zbuf; /* buffer for zlib */ 1253 png_size_t zbuf_size; /* size of zbuf */ 1254 int zlib_level; /* holds zlib compression level */ 1255 int zlib_method; /* holds zlib compression method */ 1256 int zlib_window_bits; /* holds zlib compression window bits */ 1257 int zlib_mem_level; /* holds zlib compression memory level */ 1258 int zlib_strategy; /* holds zlib compression strategy */ 1259 1260 png_uint_32 width; /* width of image in pixels */ 1261 png_uint_32 height; /* height of image in pixels */ 1262 png_uint_32 num_rows; /* number of rows in current pass */ 1263 png_uint_32 usr_width; /* width of row at start of write */ 1264 png_uint_32 rowbytes; /* size of row in bytes */ 1265 png_uint_32 irowbytes; /* size of current interlaced row in bytes */ 1266 png_uint_32 iwidth; /* width of current interlaced row in pixels */ 1267 png_uint_32 row_number; /* current row in interlace pass */ 1268 png_bytep prev_row; /* buffer to save previous (unfiltered) row */ 1269 png_bytep row_buf; /* buffer to save current (unfiltered) row */ 1270 #ifndef PNG_NO_WRITE_FILTER 1271 png_bytep sub_row; /* buffer to save "sub" row when filtering */ 1272 png_bytep up_row; /* buffer to save "up" row when filtering */ 1273 png_bytep avg_row; /* buffer to save "avg" row when filtering */ 1274 png_bytep paeth_row; /* buffer to save "Paeth" row when filtering */ 1275 #endif 1276 png_row_info row_info; /* used for transformation routines */ 1277 1278 png_uint_32 idat_size; /* current IDAT size for read */ 1279 png_uint_32 crc; /* current chunk CRC value */ 1280 png_colorp palette; /* palette from the input file */ 1281 png_uint_16 num_palette; /* number of color entries in palette */ 1282 png_uint_16 num_trans; /* number of transparency values */ 1283 png_byte chunk_name[5]; /* null-terminated name of current chunk */ 1284 png_byte compression; /* file compression type (always 0) */ 1285 png_byte filter; /* file filter type (always 0) */ 1286 png_byte interlaced; /* PNG_INTERLACE_NONE, PNG_INTERLACE_ADAM7 */ 1287 png_byte pass; /* current interlace pass (0 - 6) */ 1288 png_byte do_filter; /* row filter flags (see PNG_FILTER_ below ) */ 1289 png_byte color_type; /* color type of file */ 1290 png_byte bit_depth; /* bit depth of file */ 1291 png_byte usr_bit_depth; /* bit depth of users row */ 1292 png_byte pixel_depth; /* number of bits per pixel */ 1293 png_byte channels; /* number of channels in file */ 1294 png_byte usr_channels; /* channels at start of write */ 1295 png_byte sig_bytes; /* magic bytes read/written from start of file */ 1083 png_voidp user_transform_ptr PNG_DEPSTRUCT; /* user supplied struct for user transform */ 1084 png_byte user_transform_depth PNG_DEPSTRUCT; /* bit depth of user transformed pixels */ 1085 png_byte user_transform_channels PNG_DEPSTRUCT; /* channels in user transformed pixels */ 1086 #endif 1087 #endif 1088 1089 png_uint_32 mode PNG_DEPSTRUCT; /* tells us where we are in the PNG file */ 1090 png_uint_32 flags PNG_DEPSTRUCT; /* flags indicating various things to libpng */ 1091 png_uint_32 transformations PNG_DEPSTRUCT; /* which transformations to perform */ 1092 1093 z_stream zstream PNG_DEPSTRUCT; /* pointer to decompression structure (below) */ 1094 png_bytep zbuf PNG_DEPSTRUCT; /* buffer for zlib */ 1095 png_size_t zbuf_size PNG_DEPSTRUCT; /* size of zbuf */ 1096 int zlib_level PNG_DEPSTRUCT; /* holds zlib compression level */ 1097 int zlib_method PNG_DEPSTRUCT; /* holds zlib compression method */ 1098 int zlib_window_bits PNG_DEPSTRUCT; /* holds zlib compression window bits */ 1099 int zlib_mem_level PNG_DEPSTRUCT; /* holds zlib compression memory level */ 1100 int zlib_strategy PNG_DEPSTRUCT; /* holds zlib compression strategy */ 1101 1102 png_uint_32 width PNG_DEPSTRUCT; /* width of image in pixels */ 1103 png_uint_32 height PNG_DEPSTRUCT; /* height of image in pixels */ 1104 png_uint_32 num_rows PNG_DEPSTRUCT; /* number of rows in current pass */ 1105 png_uint_32 usr_width PNG_DEPSTRUCT; /* width of row at start of write */ 1106 png_size_t rowbytes PNG_DEPSTRUCT; /* size of row in bytes */ 1107 png_size_t irowbytes PNG_DEPSTRUCT; /* size of current interlaced row in bytes */ 1108 png_uint_32 iwidth PNG_DEPSTRUCT; /* width of current interlaced row in pixels */ 1109 png_uint_32 row_number PNG_DEPSTRUCT; /* current row in interlace pass */ 1110 png_bytep prev_row PNG_DEPSTRUCT; /* buffer to save previous (unfiltered) row */ 1111 png_bytep row_buf PNG_DEPSTRUCT; /* buffer to save current (unfiltered) row */ 1112 png_bytep sub_row PNG_DEPSTRUCT; /* buffer to save "sub" row when filtering */ 1113 png_bytep up_row PNG_DEPSTRUCT; /* buffer to save "up" row when filtering */ 1114 png_bytep avg_row PNG_DEPSTRUCT; /* buffer to save "avg" row when filtering */ 1115 png_bytep paeth_row PNG_DEPSTRUCT; /* buffer to save "Paeth" row when filtering */ 1116 png_row_info row_info PNG_DEPSTRUCT; /* used for transformation routines */ 1117 1118 png_uint_32 idat_size PNG_DEPSTRUCT; /* current IDAT size for read */ 1119 png_uint_32 crc PNG_DEPSTRUCT; /* current chunk CRC value */ 1120 png_colorp palette PNG_DEPSTRUCT; /* palette from the input file */ 1121 png_uint_16 num_palette PNG_DEPSTRUCT; /* number of color entries in palette */ 1122 png_uint_16 num_trans PNG_DEPSTRUCT; /* number of transparency values */ 1123 png_byte chunk_name[5] PNG_DEPSTRUCT; /* null-terminated name of current chunk */ 1124 png_byte compression PNG_DEPSTRUCT; /* file compression type (always 0) */ 1125 png_byte filter PNG_DEPSTRUCT; /* file filter type (always 0) */ 1126 png_byte interlaced PNG_DEPSTRUCT; /* PNG_INTERLACE_NONE, PNG_INTERLACE_ADAM7 */ 1127 png_byte pass PNG_DEPSTRUCT; /* current interlace pass (0 - 6) */ 1128 png_byte do_filter PNG_DEPSTRUCT; /* row filter flags (see PNG_FILTER_ below ) */ 1129 png_byte color_type PNG_DEPSTRUCT; /* color type of file */ 1130 png_byte bit_depth PNG_DEPSTRUCT; /* bit depth of file */ 1131 png_byte usr_bit_depth PNG_DEPSTRUCT; /* bit depth of users row */ 1132 png_byte pixel_depth PNG_DEPSTRUCT; /* number of bits per pixel */ 1133 png_byte channels PNG_DEPSTRUCT; /* number of channels in file */ 1134 png_byte usr_channels PNG_DEPSTRUCT; /* channels at start of write */ 1135 png_byte sig_bytes PNG_DEPSTRUCT; /* magic bytes read/written from start of file */ 1296 1136 1297 1137 #if defined(PNG_READ_FILLER_SUPPORTED) || defined(PNG_WRITE_FILLER_SUPPORTED) 1298 #ifdef PNG_LEGACY_SUPPORTED 1299 png_byte filler; /* filler byte for pixel expansion */ 1300 #else 1301 png_uint_16 filler; /* filler bytes for pixel expansion */ 1302 #endif 1303 #endif 1304 1305 #if defined(PNG_bKGD_SUPPORTED) 1306 png_byte background_gamma_type; 1138 png_uint_16 filler PNG_DEPSTRUCT; /* filler bytes for pixel expansion */ 1139 #endif 1140 1141 #ifdef PNG_bKGD_SUPPORTED 1142 png_byte background_gamma_type PNG_DEPSTRUCT; 1307 1143 # ifdef PNG_FLOATING_POINT_SUPPORTED 1308 float background_gamma ;1144 float background_gamma PNG_DEPSTRUCT; 1309 1145 # endif 1310 png_color_16 background ; /* background color in screen gamma space */1311 #if defined(PNG_READ_GAMMA_SUPPORTED)1312 png_color_16 background_1 ; /* background normalized to gamma 1.0 */1146 png_color_16 background PNG_DEPSTRUCT; /* background color in screen gamma space */ 1147 #ifdef PNG_READ_GAMMA_SUPPORTED 1148 png_color_16 background_1 PNG_DEPSTRUCT; /* background normalized to gamma 1.0 */ 1313 1149 #endif 1314 1150 #endif /* PNG_bKGD_SUPPORTED */ 1315 1151 1316 #if defined(PNG_WRITE_FLUSH_SUPPORTED)1317 png_flush_ptr output_flush_fn ; /* Function for flushing output */1318 png_uint_32 flush_dist ; /* how many rows apart to flush, 0 - no flush */1319 png_uint_32 flush_rows ; /* number of rows written since last flush */1152 #ifdef PNG_WRITE_FLUSH_SUPPORTED 1153 png_flush_ptr output_flush_fn PNG_DEPSTRUCT; /* Function for flushing output */ 1154 png_uint_32 flush_dist PNG_DEPSTRUCT; /* how many rows apart to flush, 0 - no flush */ 1155 png_uint_32 flush_rows PNG_DEPSTRUCT; /* number of rows written since last flush */ 1320 1156 #endif 1321 1157 1322 1158 #if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) 1323 int gamma_shift ; /* number of "insignificant" bits 16-bit gamma */1159 int gamma_shift PNG_DEPSTRUCT; /* number of "insignificant" bits 16-bit gamma */ 1324 1160 #ifdef PNG_FLOATING_POINT_SUPPORTED 1325 float gamma ; /* file gamma value */1326 float screen_gamma ; /* screen gamma value (display_exponent) */1161 float gamma PNG_DEPSTRUCT; /* file gamma value */ 1162 float screen_gamma PNG_DEPSTRUCT; /* screen gamma value (display_exponent) */ 1327 1163 #endif 1328 1164 #endif 1329 1165 1330 1166 #if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) 1331 png_bytep gamma_table ; /* gamma table for 8-bit depth files */1332 png_bytep gamma_from_1 ; /* converts from 1.0 to screen */1333 png_bytep gamma_to_1 ; /* converts from file to 1.0 */1334 png_uint_16pp gamma_16_table ; /* gamma table for 16-bit depth files */1335 png_uint_16pp gamma_16_from_1 ; /* converts from 1.0 to screen */1336 png_uint_16pp gamma_16_to_1 ; /* converts from file to 1.0 */1167 png_bytep gamma_table PNG_DEPSTRUCT; /* gamma table for 8-bit depth files */ 1168 png_bytep gamma_from_1 PNG_DEPSTRUCT; /* converts from 1.0 to screen */ 1169 png_bytep gamma_to_1 PNG_DEPSTRUCT; /* converts from file to 1.0 */ 1170 png_uint_16pp gamma_16_table PNG_DEPSTRUCT; /* gamma table for 16-bit depth files */ 1171 png_uint_16pp gamma_16_from_1 PNG_DEPSTRUCT; /* converts from 1.0 to screen */ 1172 png_uint_16pp gamma_16_to_1 PNG_DEPSTRUCT; /* converts from file to 1.0 */ 1337 1173 #endif 1338 1174 1339 1175 #if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_sBIT_SUPPORTED) 1340 png_color_8 sig_bit ; /* significant bits in each available channel */1176 png_color_8 sig_bit PNG_DEPSTRUCT; /* significant bits in each available channel */ 1341 1177 #endif 1342 1178 1343 1179 #if defined(PNG_READ_SHIFT_SUPPORTED) || defined(PNG_WRITE_SHIFT_SUPPORTED) 1344 png_color_8 shift ; /* shift for significant bit tranformation */1180 png_color_8 shift PNG_DEPSTRUCT; /* shift for significant bit tranformation */ 1345 1181 #endif 1346 1182 1347 1183 #if defined(PNG_tRNS_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) \ 1348 1184 || defined(PNG_READ_EXPAND_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) 1349 png_bytep trans ; /* transparencyvalues for paletted files */1350 png_color_16 trans_ values; /* transparency valuesfor non-paletted files */1351 #endif 1352 1353 png_read_status_ptr read_row_fn ; /* called after each row is decoded */1354 png_write_status_ptr write_row_fn ; /* called after each row is encoded */1185 png_bytep trans_alpha PNG_DEPSTRUCT; /* alpha values for paletted files */ 1186 png_color_16 trans_color PNG_DEPSTRUCT; /* transparent color for non-paletted files */ 1187 #endif 1188 1189 png_read_status_ptr read_row_fn PNG_DEPSTRUCT; /* called after each row is decoded */ 1190 png_write_status_ptr write_row_fn PNG_DEPSTRUCT; /* called after each row is encoded */ 1355 1191 #ifdef PNG_PROGRESSIVE_READ_SUPPORTED 1356 png_progressive_info_ptr info_fn; /* called after header data fully read */ 1357 png_progressive_row_ptr row_fn; /* called after each prog. row is decoded */ 1358 png_progressive_end_ptr end_fn; /* called after image is complete */ 1359 png_bytep save_buffer_ptr; /* current location in save_buffer */ 1360 png_bytep save_buffer; /* buffer for previously read data */ 1361 png_bytep current_buffer_ptr; /* current location in current_buffer */ 1362 png_bytep current_buffer; /* buffer for recently used data */ 1363 png_uint_32 push_length; /* size of current input chunk */ 1364 png_uint_32 skip_length; /* bytes to skip in input data */ 1365 png_size_t save_buffer_size; /* amount of data now in save_buffer */ 1366 png_size_t save_buffer_max; /* total size of save_buffer */ 1367 png_size_t buffer_size; /* total amount of available input data */ 1368 png_size_t current_buffer_size; /* amount of data now in current_buffer */ 1369 int process_mode; /* what push library is currently doing */ 1370 int cur_palette; /* current push library palette index */ 1371 1372 # if defined(PNG_TEXT_SUPPORTED) 1373 png_size_t current_text_size; /* current size of text input data */ 1374 png_size_t current_text_left; /* how much text left to read in input */ 1375 png_charp current_text; /* current text chunk buffer */ 1376 png_charp current_text_ptr; /* current location in current_text */ 1377 # endif /* PNG_TEXT_SUPPORTED */ 1192 png_progressive_info_ptr info_fn PNG_DEPSTRUCT; /* called after header data fully read */ 1193 png_progressive_row_ptr row_fn PNG_DEPSTRUCT; /* called after each prog. row is decoded */ 1194 png_progressive_end_ptr end_fn PNG_DEPSTRUCT; /* called after image is complete */ 1195 png_bytep save_buffer_ptr PNG_DEPSTRUCT; /* current location in save_buffer */ 1196 png_bytep save_buffer PNG_DEPSTRUCT; /* buffer for previously read data */ 1197 png_bytep current_buffer_ptr PNG_DEPSTRUCT; /* current location in current_buffer */ 1198 png_bytep current_buffer PNG_DEPSTRUCT; /* buffer for recently used data */ 1199 png_uint_32 push_length PNG_DEPSTRUCT; /* size of current input chunk */ 1200 png_uint_32 skip_length PNG_DEPSTRUCT; /* bytes to skip in input data */ 1201 png_size_t save_buffer_size PNG_DEPSTRUCT; /* amount of data now in save_buffer */ 1202 png_size_t save_buffer_max PNG_DEPSTRUCT; /* total size of save_buffer */ 1203 png_size_t buffer_size PNG_DEPSTRUCT; /* total amount of available input data */ 1204 png_size_t current_buffer_size PNG_DEPSTRUCT; /* amount of data now in current_buffer */ 1205 int process_mode PNG_DEPSTRUCT; /* what push library is currently doing */ 1206 int cur_palette PNG_DEPSTRUCT; /* current push library palette index */ 1207 1208 # ifdef PNG_TEXT_SUPPORTED 1209 png_size_t current_text_size PNG_DEPSTRUCT; /* current size of text input data */ 1210 png_size_t current_text_left PNG_DEPSTRUCT; /* how much text left to read in input */ 1211 png_charp current_text PNG_DEPSTRUCT; /* current text chunk buffer */ 1212 png_charp current_text_ptr PNG_DEPSTRUCT; /* current location in current_text */ 1213 # endif /* PNG_PROGRESSIVE_READ_SUPPORTED && PNG_TEXT_SUPPORTED */ 1214 1378 1215 #endif /* PNG_PROGRESSIVE_READ_SUPPORTED */ 1379 1216 1380 1217 #if defined(__TURBOC__) && !defined(_Windows) && !defined(__FLAT__) 1381 /* for the Borland special 64K segment handler */1382 png_bytepp offset_table_ptr ;1383 png_bytep offset_table ;1384 png_uint_16 offset_table_number ;1385 png_uint_16 offset_table_count ;1386 png_uint_16 offset_table_count_free ;1387 #endif 1388 1389 #if defined(PNG_READ_DITHER_SUPPORTED)1390 png_bytep palette_lookup ; /* lookup table for dithering */1391 png_bytep dither_index ; /* index translation for palette files */1218 /* For the Borland special 64K segment handler */ 1219 png_bytepp offset_table_ptr PNG_DEPSTRUCT; 1220 png_bytep offset_table PNG_DEPSTRUCT; 1221 png_uint_16 offset_table_number PNG_DEPSTRUCT; 1222 png_uint_16 offset_table_count PNG_DEPSTRUCT; 1223 png_uint_16 offset_table_count_free PNG_DEPSTRUCT; 1224 #endif 1225 1226 #ifdef PNG_READ_DITHER_SUPPORTED 1227 png_bytep palette_lookup PNG_DEPSTRUCT; /* lookup table for dithering */ 1228 png_bytep dither_index PNG_DEPSTRUCT; /* index translation for palette files */ 1392 1229 #endif 1393 1230 1394 1231 #if defined(PNG_READ_DITHER_SUPPORTED) || defined(PNG_hIST_SUPPORTED) 1395 png_uint_16p hist ; /* histogram */1396 #endif 1397 1398 #if defined(PNG_WRITE_WEIGHTED_FILTER_SUPPORTED)1399 png_byte heuristic_method ; /* heuristic for row filter selection */1400 png_byte num_prev_filters ; /* number of weights for previous rows */1401 png_bytep prev_filters ; /* filter type(s) of previous row(s) */1402 png_uint_16p filter_weights ; /* weight(s) for previous line(s) */1403 png_uint_16p inv_filter_weights ; /* 1/weight(s) for previous line(s) */1404 png_uint_16p filter_costs ; /* relative filter calculation cost */1405 png_uint_16p inv_filter_costs ; /* 1/relative filter calculation cost */1406 #endif 1407 1408 #if defined(PNG_TIME_RFC1123_SUPPORTED)1409 png_charp time_buffer ; /* String to hold RFC 1123 time text */1232 png_uint_16p hist PNG_DEPSTRUCT; /* histogram */ 1233 #endif 1234 1235 #ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED 1236 png_byte heuristic_method PNG_DEPSTRUCT; /* heuristic for row filter selection */ 1237 png_byte num_prev_filters PNG_DEPSTRUCT; /* number of weights for previous rows */ 1238 png_bytep prev_filters PNG_DEPSTRUCT; /* filter type(s) of previous row(s) */ 1239 png_uint_16p filter_weights PNG_DEPSTRUCT; /* weight(s) for previous line(s) */ 1240 png_uint_16p inv_filter_weights PNG_DEPSTRUCT; /* 1/weight(s) for previous line(s) */ 1241 png_uint_16p filter_costs PNG_DEPSTRUCT; /* relative filter calculation cost */ 1242 png_uint_16p inv_filter_costs PNG_DEPSTRUCT; /* 1/relative filter calculation cost */ 1243 #endif 1244 1245 #ifdef PNG_TIME_RFC1123_SUPPORTED 1246 png_charp time_buffer PNG_DEPSTRUCT; /* String to hold RFC 1123 time text */ 1410 1247 #endif 1411 1248 1412 1249 /* New members added in libpng-1.0.6 */ 1413 1250 1414 #ifdef PNG_FREE_ME_SUPPORTED 1415 png_uint_32 free_me; /* flags items libpng is responsible for freeing */ 1416 #endif 1417 1418 #if defined(PNG_USER_CHUNKS_SUPPORTED) 1419 png_voidp user_chunk_ptr; 1420 png_user_chunk_ptr read_user_chunk_fn; /* user read chunk handler */ 1251 png_uint_32 free_me PNG_DEPSTRUCT; /* flags items libpng is responsible for freeing */ 1252 1253 #ifdef PNG_USER_CHUNKS_SUPPORTED 1254 png_voidp user_chunk_ptr PNG_DEPSTRUCT; 1255 png_user_chunk_ptr read_user_chunk_fn PNG_DEPSTRUCT; /* user read chunk handler */ 1421 1256 #endif 1422 1257 1423 1258 #ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED 1424 int num_chunk_list ;1425 png_bytep chunk_list ;1259 int num_chunk_list PNG_DEPSTRUCT; 1260 png_bytep chunk_list PNG_DEPSTRUCT; 1426 1261 #endif 1427 1262 1428 1263 /* New members added in libpng-1.0.3 */ 1429 #if defined(PNG_READ_RGB_TO_GRAY_SUPPORTED)1430 png_byte rgb_to_gray_status ;1264 #ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED 1265 png_byte rgb_to_gray_status PNG_DEPSTRUCT; 1431 1266 /* These were changed from png_byte in libpng-1.0.6 */ 1432 png_uint_16 rgb_to_gray_red_coeff ;1433 png_uint_16 rgb_to_gray_green_coeff ;1434 png_uint_16 rgb_to_gray_blue_coeff ;1267 png_uint_16 rgb_to_gray_red_coeff PNG_DEPSTRUCT; 1268 png_uint_16 rgb_to_gray_green_coeff PNG_DEPSTRUCT; 1269 png_uint_16 rgb_to_gray_blue_coeff PNG_DEPSTRUCT; 1435 1270 #endif 1436 1271 … … 1440 1275 defined(PNG_WRITE_EMPTY_PLTE_SUPPORTED) 1441 1276 /* Changed from png_byte to png_uint_32 at version 1.2.0 */ 1442 #ifdef PNG_1_0_X 1443 png_byte mng_features_permitted; 1444 #else 1445 png_uint_32 mng_features_permitted; 1446 #endif /* PNG_1_0_X */ 1277 png_uint_32 mng_features_permitted PNG_DEPSTRUCT; 1447 1278 #endif 1448 1279 1449 1280 /* New member added in libpng-1.0.7 */ 1450 1281 #if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) 1451 png_fixed_point int_gamma ;1282 png_fixed_point int_gamma PNG_DEPSTRUCT; 1452 1283 #endif 1453 1284 1454 1285 /* New member added in libpng-1.0.9, ifdef'ed out in 1.0.12, enabled in 1.2.0 */ 1455 #if defined(PNG_MNG_FEATURES_SUPPORTED) 1456 png_byte filter_type; 1457 #endif 1458 1459 #if defined(PNG_1_0_X) 1460 /* New member added in libpng-1.0.10, ifdef'ed out in 1.2.0 */ 1461 png_uint_32 row_buf_size; 1286 #ifdef PNG_MNG_FEATURES_SUPPORTED 1287 png_byte filter_type PNG_DEPSTRUCT; 1462 1288 #endif 1463 1289 1464 1290 /* New members added in libpng-1.2.0 */ 1465 #if defined(PNG_ASSEMBLER_CODE_SUPPORTED)1466 # if !defined(PNG_1_0_X)1467 # if defined(PNG_MMX_CODE_SUPPORTED)1468 png_byte mmx_bitdepth_threshold;1469 png_uint_32 mmx_rowbytes_threshold;1470 # endif1471 png_uint_32 asm_flags;1472 # endif1473 #endif1474 1291 1475 1292 /* New members added in libpng-1.0.2 but first enabled by default in 1.2.0 */ 1476 1293 #ifdef PNG_USER_MEM_SUPPORTED 1477 png_voidp mem_ptr ;/* user supplied struct for mem functions */1478 png_malloc_ptr malloc_fn ;/* function for allocating memory */1479 png_free_ptr free_fn ;/* function for freeing memory */1294 png_voidp mem_ptr PNG_DEPSTRUCT; /* user supplied struct for mem functions */ 1295 png_malloc_ptr malloc_fn PNG_DEPSTRUCT; /* function for allocating memory */ 1296 png_free_ptr free_fn PNG_DEPSTRUCT; /* function for freeing memory */ 1480 1297 #endif 1481 1298 1482 1299 /* New member added in libpng-1.0.13 and 1.2.0 */ 1483 png_bytep big_row_buf ;/* buffer to save current (unfiltered) row */1484 1485 #if defined(PNG_READ_DITHER_SUPPORTED)1300 png_bytep big_row_buf PNG_DEPSTRUCT; /* buffer to save current (unfiltered) row */ 1301 1302 #ifdef PNG_READ_DITHER_SUPPORTED 1486 1303 /* The following three members were added at version 1.0.14 and 1.2.4 */ 1487 png_bytep dither_sort ;/* working sort array */1488 png_bytep index_to_palette ;/* where the original index currently is */1489 /* in the palette */1490 png_bytep palette_to_index ;/* which original index points to this */1491 /* palette color */1304 png_bytep dither_sort PNG_DEPSTRUCT; /* working sort array */ 1305 png_bytep index_to_palette PNG_DEPSTRUCT; /* where the original index currently is */ 1306 /* in the palette */ 1307 png_bytep palette_to_index PNG_DEPSTRUCT; /* which original index points to this */ 1308 /* palette color */ 1492 1309 #endif 1493 1310 1494 1311 /* New members added in libpng-1.0.16 and 1.2.6 */ 1495 png_byte compression_type ;1312 png_byte compression_type PNG_DEPSTRUCT; 1496 1313 1497 1314 #ifdef PNG_SET_USER_LIMITS_SUPPORTED 1498 png_uint_32 user_width_max; 1499 png_uint_32 user_height_max; 1315 png_uint_32 user_width_max PNG_DEPSTRUCT; 1316 png_uint_32 user_height_max PNG_DEPSTRUCT; 1317 /* Added in libpng-1.4.0: Total number of sPLT, text, and unknown 1318 * chunks that can be stored (0x7fffffff means unlimited). 1319 */ 1320 png_uint_32 user_chunk_cache_max PNG_DEPSTRUCT; 1500 1321 #endif 1501 1322 1502 1323 /* New member added in libpng-1.0.25 and 1.2.17 */ 1503 #if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED)1324 #ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED 1504 1325 /* Storage for unknown chunk that the library doesn't recognize. */ 1505 png_unknown_chunk unknown_chunk ;1326 png_unknown_chunk unknown_chunk PNG_DEPSTRUCT; 1506 1327 #endif 1507 1328 1508 1329 /* New members added in libpng-1.2.26 */ 1509 png_uint_32 old_big_row_buf_size, old_prev_row_size; 1330 png_uint_32 old_big_row_buf_size PNG_DEPSTRUCT; 1331 png_uint_32 old_prev_row_size PNG_DEPSTRUCT; 1510 1332 1511 1333 /* New member added in libpng-1.2.30 */ 1512 png_charp chunkdata; /* buffer for reading chunk data */ 1513 1334 png_charp chunkdata PNG_DEPSTRUCT; /* buffer for reading chunk data */ 1335 1336 /* New member added in libpng-1.4.0 */ 1337 #ifdef PNG_IO_STATE_SUPPORTED 1338 png_uint_32 io_state PNG_DEPSTRUCT; 1339 #endif 1514 1340 }; 1515 1341 … … 1518 1344 * do not agree upon the version number. 1519 1345 */ 1520 typedef png_structp version_1_ 2_40;1346 typedef png_structp version_1_4_0; 1521 1347 1522 1348 typedef png_struct FAR * FAR * png_structpp; … … 1545 1371 png_size_t num_to_check)); 1546 1372 1547 /* Simple signature checking function. This is the same as calling1548 * png_check_sig(sig, n) := !png_sig_cmp(sig, 0, n).1549 */1550 extern PNG_EXPORT(int,png_check_sig) PNGARG((png_bytep sig, int num));1551 1552 1373 /* Allocate and initialize png_ptr struct for reading, and any other memory. */ 1553 1374 extern PNG_EXPORT(png_structp,png_create_read_struct) 1554 1375 PNGARG((png_const_charp user_png_ver, png_voidp error_ptr, 1555 png_error_ptr error_fn, png_error_ptr warn_fn)) ;1376 png_error_ptr error_fn, png_error_ptr warn_fn)) PNG_ALLOCATED; 1556 1377 1557 1378 /* Allocate and initialize png_ptr struct for writing, and any other memory */ 1558 1379 extern PNG_EXPORT(png_structp,png_create_write_struct) 1559 1380 PNGARG((png_const_charp user_png_ver, png_voidp error_ptr, 1560 png_error_ptr error_fn, png_error_ptr warn_fn)) ;1381 png_error_ptr error_fn, png_error_ptr warn_fn)) PNG_ALLOCATED; 1561 1382 1562 1383 #ifdef PNG_WRITE_SUPPORTED 1563 extern PNG_EXPORT(png_ uint_32,png_get_compression_buffer_size)1384 extern PNG_EXPORT(png_size_t,png_get_compression_buffer_size) 1564 1385 PNGARG((png_structp png_ptr)); 1565 1386 #endif … … 1567 1388 #ifdef PNG_WRITE_SUPPORTED 1568 1389 extern PNG_EXPORT(void,png_set_compression_buffer_size) 1569 PNGARG((png_structp png_ptr, png_uint_32 size)); 1390 PNGARG((png_structp png_ptr, png_size_t size)); 1391 #endif 1392 1393 /* Moved from pngconf.h in 1.4.0 and modified to ensure setjmp/longjmp 1394 * match up. 1395 */ 1396 #ifdef PNG_SETJMP_SUPPORTED 1397 /* This function returns the jmp_buf built in to *png_ptr. It must be 1398 * supplied with an appropriate 'longjmp' function to use on that jmp_buf 1399 * unless the default error function is overridden in which case NULL is 1400 * acceptable. The size of the jmp_buf is checked against the actual size 1401 * allocated by the library - the call will return NULL on a mismatch 1402 * indicating an ABI mismatch. 1403 */ 1404 extern PNG_EXPORT(jmp_buf*, png_set_longjmp_fn) 1405 PNGARG((png_structp png_ptr, png_longjmp_ptr longjmp_fn, size_t jmp_buf_size)); 1406 # define png_jmpbuf(png_ptr) \ 1407 (*png_set_longjmp_fn((png_ptr), longjmp, sizeof (jmp_buf))) 1408 #else 1409 # define png_jmpbuf(png_ptr) \ 1410 (LIBPNG_WAS_COMPILED_WITH__PNG_NO_SETJMP) 1570 1411 #endif 1571 1412 … … 1578 1419 PNGARG((png_const_charp user_png_ver, png_voidp error_ptr, 1579 1420 png_error_ptr error_fn, png_error_ptr warn_fn, png_voidp mem_ptr, 1580 png_malloc_ptr malloc_fn, png_free_ptr free_fn)) ;1421 png_malloc_ptr malloc_fn, png_free_ptr free_fn)) PNG_ALLOCATED; 1581 1422 extern PNG_EXPORT(png_structp,png_create_write_struct_2) 1582 1423 PNGARG((png_const_charp user_png_ver, png_voidp error_ptr, 1583 1424 png_error_ptr error_fn, png_error_ptr warn_fn, png_voidp mem_ptr, 1584 png_malloc_ptr malloc_fn, png_free_ptr free_fn)); 1585 #endif 1425 png_malloc_ptr malloc_fn, png_free_ptr free_fn)) PNG_ALLOCATED; 1426 #endif 1427 1428 /* Write the PNG file signature. */ 1429 extern PNG_EXPORT(void,png_write_sig) PNGARG((png_structp png_ptr)); 1586 1430 1587 1431 /* Write a PNG chunk - size, type, (optional) data, CRC. */ … … 1602 1446 /* Allocate and initialize the info structure */ 1603 1447 extern PNG_EXPORT(png_infop,png_create_info_struct) 1604 PNGARG((png_structp png_ptr)); 1605 1606 #if defined(PNG_1_0_X) || defined (PNG_1_2_X) 1607 /* Initialize the info structure (old interface - DEPRECATED) */ 1608 extern PNG_EXPORT(void,png_info_init) PNGARG((png_infop info_ptr)); 1609 #undef png_info_init 1610 #define png_info_init(info_ptr) png_info_init_3(&info_ptr,\ 1611 png_sizeof(png_info)); 1612 #endif 1448 PNGARG((png_structp png_ptr)) PNG_ALLOCATED; 1613 1449 1614 1450 extern PNG_EXPORT(void,png_info_init_3) PNGARG((png_infopp info_ptr, … … 1621 1457 png_infop info_ptr)); 1622 1458 1623 #if ndef PNG_NO_SEQUENTIAL_READ_SUPPORTED1459 #ifdef PNG_SEQUENTIAL_READ_SUPPORTED 1624 1460 /* Read the information before the actual image data. */ 1625 1461 extern PNG_EXPORT(void,png_read_info) PNGARG((png_structp png_ptr, … … 1627 1463 #endif 1628 1464 1629 #if defined(PNG_TIME_RFC1123_SUPPORTED)1465 #ifdef PNG_TIME_RFC1123_SUPPORTED 1630 1466 extern PNG_EXPORT(png_charp,png_convert_to_rfc1123) 1631 1467 PNGARG((png_structp png_ptr, png_timep ptime)); 1632 1468 #endif 1633 1469 1634 #if !defined(_WIN32_WCE) 1635 /* "time.h" functions are not supported on WindowsCE */ 1636 #if defined(PNG_WRITE_tIME_SUPPORTED) 1470 #ifdef PNG_CONVERT_tIME_SUPPORTED 1637 1471 /* Convert from a struct tm to png_time */ 1638 1472 extern PNG_EXPORT(void,png_convert_from_struct_tm) PNGARG((png_timep ptime, … … 1642 1476 extern PNG_EXPORT(void,png_convert_from_time_t) PNGARG((png_timep ptime, 1643 1477 time_t ttime)); 1644 #endif /* PNG_WRITE_tIME_SUPPORTED */ 1645 #endif /* _WIN32_WCE */ 1646 1647 #if defined(PNG_READ_EXPAND_SUPPORTED) 1478 #endif /* PNG_CONVERT_tIME_SUPPORTED */ 1479 1480 #ifdef PNG_READ_EXPAND_SUPPORTED 1648 1481 /* Expand data to 24-bit RGB, or 8-bit grayscale, with alpha if available. */ 1649 1482 extern PNG_EXPORT(void,png_set_expand) PNGARG((png_structp png_ptr)); 1650 #if !defined(PNG_1_0_X)1651 1483 extern PNG_EXPORT(void,png_set_expand_gray_1_2_4_to_8) PNGARG((png_structp 1652 1484 png_ptr)); 1653 #endif1654 1485 extern PNG_EXPORT(void,png_set_palette_to_rgb) PNGARG((png_structp png_ptr)); 1655 1486 extern PNG_EXPORT(void,png_set_tRNS_to_alpha) PNGARG((png_structp png_ptr)); 1656 #if defined(PNG_1_0_X) || defined (PNG_1_2_X)1657 /* Deprecated */1658 extern PNG_EXPORT(void,png_set_gray_1_2_4_to_8) PNGARG((png_structp png_ptr));1659 #endif1660 1487 #endif 1661 1488 … … 1665 1492 #endif 1666 1493 1667 #if defined(PNG_READ_GRAY_TO_RGB_SUPPORTED)1494 #ifdef PNG_READ_GRAY_TO_RGB_SUPPORTED 1668 1495 /* Expand the grayscale to 24-bit RGB if necessary. */ 1669 1496 extern PNG_EXPORT(void,png_set_gray_to_rgb) PNGARG((png_structp png_ptr)); 1670 1497 #endif 1671 1498 1672 #if defined(PNG_READ_RGB_TO_GRAY_SUPPORTED)1499 #ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED 1673 1500 /* Reduce RGB to grayscale. */ 1674 1501 #ifdef PNG_FLOATING_POINT_SUPPORTED … … 1685 1512 png_colorp palette)); 1686 1513 1687 #if defined(PNG_READ_STRIP_ALPHA_SUPPORTED)1514 #ifdef PNG_READ_STRIP_ALPHA_SUPPORTED 1688 1515 extern PNG_EXPORT(void,png_set_strip_alpha) PNGARG((png_structp png_ptr)); 1689 1516 #endif … … 1707 1534 #define PNG_FILLER_AFTER 1 1708 1535 /* Add an alpha byte to 8-bit Gray or 24-bit RGB images. */ 1709 #if !defined(PNG_1_0_X)1710 1536 extern PNG_EXPORT(void,png_set_add_alpha) PNGARG((png_structp png_ptr, 1711 1537 png_uint_32 filler, int flags)); 1712 #endif1713 1538 #endif /* PNG_READ_FILLER_SUPPORTED || PNG_WRITE_FILLER_SUPPORTED */ 1714 1539 … … 1745 1570 #endif 1746 1571 1747 #if defined(PNG_READ_BACKGROUND_SUPPORTED)1572 #ifdef PNG_READ_BACKGROUND_SUPPORTED 1748 1573 /* Handle alpha and tRNS by replacing with a background color. */ 1749 1574 #ifdef PNG_FLOATING_POINT_SUPPORTED … … 1758 1583 #endif 1759 1584 1760 #if defined(PNG_READ_16_TO_8_SUPPORTED)1585 #ifdef PNG_READ_16_TO_8_SUPPORTED 1761 1586 /* Strip the second byte of information from a 16-bit depth file. */ 1762 1587 extern PNG_EXPORT(void,png_set_strip_16) PNGARG((png_structp png_ptr)); 1763 1588 #endif 1764 1589 1765 #if defined(PNG_READ_DITHER_SUPPORTED)1590 #ifdef PNG_READ_DITHER_SUPPORTED 1766 1591 /* Turn on dithering, and reduce the palette to the number of colors available. */ 1767 1592 extern PNG_EXPORT(void,png_set_dither) PNGARG((png_structp png_ptr, … … 1770 1595 #endif 1771 1596 1772 #if defined(PNG_READ_GAMMA_SUPPORTED)1597 #ifdef PNG_READ_GAMMA_SUPPORTED 1773 1598 /* Handle gamma correction. Screen_gamma=(display_exponent) */ 1774 1599 #ifdef PNG_FLOATING_POINT_SUPPORTED … … 1778 1603 #endif 1779 1604 1780 #if defined(PNG_1_0_X) || defined (PNG_1_2_X) 1781 #if defined(PNG_READ_EMPTY_PLTE_SUPPORTED) || \ 1782 defined(PNG_WRITE_EMPTY_PLTE_SUPPORTED) 1783 /* Permit or disallow empty PLTE (0: not permitted, 1: permitted) */ 1784 /* Deprecated and will be removed. Use png_permit_mng_features() instead. */ 1785 extern PNG_EXPORT(void,png_permit_empty_plte) PNGARG((png_structp png_ptr, 1786 int empty_plte_permitted)); 1787 #endif 1788 #endif 1789 1790 #if defined(PNG_WRITE_FLUSH_SUPPORTED) 1605 1606 #ifdef PNG_WRITE_FLUSH_SUPPORTED 1791 1607 /* Set how many lines between output flushes - 0 for no flushing */ 1792 1608 extern PNG_EXPORT(void,png_set_flush) PNGARG((png_structp png_ptr, int nrows)); … … 1802 1618 png_infop info_ptr)); 1803 1619 1804 #if ndef PNG_NO_SEQUENTIAL_READ_SUPPORTED1620 #ifdef PNG_SEQUENTIAL_READ_SUPPORTED 1805 1621 /* Read one or more rows of image data. */ 1806 1622 extern PNG_EXPORT(void,png_read_rows) PNGARG((png_structp png_ptr, … … 1808 1624 #endif 1809 1625 1810 #if ndef PNG_NO_SEQUENTIAL_READ_SUPPORTED1626 #ifdef PNG_SEQUENTIAL_READ_SUPPORTED 1811 1627 /* Read a row of data. */ 1812 1628 extern PNG_EXPORT(void,png_read_row) PNGARG((png_structp png_ptr, … … 1815 1631 #endif 1816 1632 1817 #if ndef PNG_NO_SEQUENTIAL_READ_SUPPORTED1633 #ifdef PNG_SEQUENTIAL_READ_SUPPORTED 1818 1634 /* Read the whole image into memory at once. */ 1819 1635 extern PNG_EXPORT(void,png_read_image) PNGARG((png_structp png_ptr, … … 1833 1649 png_bytepp image)); 1834 1650 1835 /* Write sthe end of the PNG file. */1651 /* Write the end of the PNG file. */ 1836 1652 extern PNG_EXPORT(void,png_write_end) PNGARG((png_structp png_ptr, 1837 1653 png_infop info_ptr)); 1838 1654 1839 #if ndef PNG_NO_SEQUENTIAL_READ_SUPPORTED1655 #ifdef PNG_SEQUENTIAL_READ_SUPPORTED 1840 1656 /* Read the end of the PNG file. */ 1841 1657 extern PNG_EXPORT(void,png_read_end) PNGARG((png_structp png_ptr, … … 1851 1667 png_ptr_ptr, png_infopp info_ptr_ptr, png_infopp end_info_ptr_ptr)); 1852 1668 1853 /* Free all memory used by the read (old method - NOT DLL EXPORTED) */1854 extern void png_read_destroy PNGARG((png_structp png_ptr, png_infop info_ptr,1855 png_infop end_info_ptr));1856 1857 1669 /* Free any memory associated with the png_struct and the png_info_structs */ 1858 1670 extern PNG_EXPORT(void,png_destroy_write_struct) 1859 1671 PNGARG((png_structpp png_ptr_ptr, png_infopp info_ptr_ptr)); 1860 1861 /* Free any memory used in png_ptr struct (old method - NOT DLL EXPORTED) */1862 extern void png_write_destroy PNGARG((png_structp png_ptr));1863 1672 1864 1673 /* Set the libpng method of handling chunk CRC errors */ … … 1920 1729 #define PNG_FILTER_VALUE_LAST 5 1921 1730 1922 #if defined(PNG_WRITE_WEIGHTED_FILTER_SUPPORTED)/* EXPERIMENTAL */1731 #ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED /* EXPERIMENTAL */ 1923 1732 /* The "heuristic_method" is given by one of the PNG_FILTER_HEURISTIC_ 1924 1733 * defines, either the default (minimum-sum-of-absolute-differences), or … … 1995 1804 */ 1996 1805 1997 #if !defined(PNG_NO_STDIO)1806 #ifdef PNG_STDIO_SUPPORTED 1998 1807 /* Initialize the input/output for the PNG file to the default functions. */ 1999 1808 extern PNG_EXPORT(void,png_init_io) PNGARG((png_structp png_ptr, png_FILE_p fp)); … … 2048 1857 #endif 2049 1858 2050 #if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \ 2051 defined(PNG_LEGACY_SUPPORTED) 1859 #ifdef PNG_READ_USER_TRANSFORM_SUPPORTED 2052 1860 extern PNG_EXPORT(void,png_set_read_user_transform_fn) PNGARG((png_structp 2053 1861 png_ptr, png_user_transform_ptr read_user_transform_fn)); 2054 1862 #endif 2055 1863 2056 #if defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) || \ 2057 defined(PNG_LEGACY_SUPPORTED) 1864 #ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED 2058 1865 extern PNG_EXPORT(void,png_set_write_user_transform_fn) PNGARG((png_structp 2059 1866 png_ptr, png_user_transform_ptr write_user_transform_fn)); … … 2061 1868 2062 1869 #if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \ 2063 defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) || \ 2064 defined(PNG_LEGACY_SUPPORTED) 1870 defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) 2065 1871 extern PNG_EXPORT(void,png_set_user_transform_info) PNGARG((png_structp 2066 1872 png_ptr, png_voidp user_transform_ptr, int user_transform_depth, … … 2103 1909 2104 1910 extern PNG_EXPORT(png_voidp,png_malloc) PNGARG((png_structp png_ptr, 2105 png_ uint_32 size));2106 2107 #if defined(PNG_1_0_X) 2108 # define png_malloc_warn png_malloc 2109 #else 1911 png_alloc_size_t size)) PNG_ALLOCATED; 1912 /* Added at libpng version 1.4.0 */ 1913 extern PNG_EXPORT(png_voidp,png_calloc) PNGARG((png_structp png_ptr, 1914 png_alloc_size_t size)) PNG_ALLOCATED; 1915 2110 1916 /* Added at libpng version 1.2.4 */ 2111 1917 extern PNG_EXPORT(png_voidp,png_malloc_warn) PNGARG((png_structp png_ptr, 2112 png_uint_32 size)); 2113 #endif 1918 png_alloc_size_t size)) PNG_ALLOCATED; 2114 1919 2115 1920 /* Frees a pointer allocated by png_malloc() */ 2116 1921 extern PNG_EXPORT(void,png_free) PNGARG((png_structp png_ptr, png_voidp ptr)); 2117 2118 #if defined(PNG_1_0_X)2119 /* Function to allocate memory for zlib. */2120 extern PNG_EXPORT(voidpf,png_zalloc) PNGARG((voidpf png_ptr, uInt items,2121 uInt size));2122 2123 /* Function to free memory for zlib */2124 extern PNG_EXPORT(void,png_zfree) PNGARG((voidpf png_ptr, voidpf ptr));2125 #endif2126 1922 2127 1923 /* Free data that was allocated internally */ 2128 1924 extern PNG_EXPORT(void,png_free_data) PNGARG((png_structp png_ptr, 2129 1925 png_infop info_ptr, png_uint_32 free_me, int num)); 2130 #ifdef PNG_FREE_ME_SUPPORTED2131 1926 /* Reassign responsibility for freeing existing data, whether allocated 2132 * by libpng or by the application 2133 */ 1927 * by libpng or by the application */ 2134 1928 extern PNG_EXPORT(void,png_data_freer) PNGARG((png_structp png_ptr, 2135 1929 png_infop info_ptr, int freer, png_uint_32 mask)); 2136 #endif2137 1930 /* Assignments for png_data_freer */ 2138 1931 #define PNG_DESTROY_WILL_FREE_DATA 1 … … 2156 1949 #ifdef PNG_USER_MEM_SUPPORTED 2157 1950 extern PNG_EXPORT(png_voidp,png_malloc_default) PNGARG((png_structp png_ptr, 2158 png_ uint_32 size));1951 png_alloc_size_t size)) PNG_ALLOCATED; 2159 1952 extern PNG_EXPORT(void,png_free_default) PNGARG((png_structp png_ptr, 2160 1953 png_voidp ptr)); 2161 1954 #endif 2162 2163 extern PNG_EXPORT(png_voidp,png_memcpy_check) PNGARG((png_structp png_ptr,2164 png_voidp s1, png_voidp s2, png_uint_32 size));2165 2166 extern PNG_EXPORT(png_voidp,png_memset_check) PNGARG((png_structp png_ptr,2167 png_voidp s1, int value, png_uint_32 size));2168 2169 #if defined(USE_FAR_KEYWORD) /* memory model conversion function */2170 extern void *png_far_to_near PNGARG((png_structp png_ptr,png_voidp ptr,2171 int check));2172 #endif /* USE_FAR_KEYWORD */2173 1955 2174 1956 #ifndef PNG_NO_ERROR_TEXT 2175 1957 /* Fatal error in PNG image of libpng - can't continue */ 2176 1958 extern PNG_EXPORT(void,png_error) PNGARG((png_structp png_ptr, 2177 png_const_charp error_message)) ;1959 png_const_charp error_message)) PNG_NORETURN; 2178 1960 2179 1961 /* The same, but the chunk name is prepended to the error string. */ 2180 1962 extern PNG_EXPORT(void,png_chunk_error) PNGARG((png_structp png_ptr, 2181 png_const_charp error_message)); 1963 png_const_charp error_message)) PNG_NORETURN; 1964 2182 1965 #else 2183 1966 /* Fatal error in PNG image of libpng - can't continue */ 2184 extern PNG_EXPORT(void,png_err) PNGARG((png_structp png_ptr)); 2185 #endif 2186 2187 #ifndef PNG_NO_WARNINGS 1967 extern PNG_EXPORT(void,png_err) PNGARG((png_structp png_ptr)) PNG_NORETURN; 1968 #endif 1969 2188 1970 /* Non-fatal error in libpng. Can continue, but may have a problem. */ 2189 1971 extern PNG_EXPORT(void,png_warning) PNGARG((png_structp png_ptr, 2190 1972 png_const_charp warning_message)); 2191 1973 2192 #ifdef PNG_READ_SUPPORTED2193 1974 /* Non-fatal error in libpng, chunk name is prepended to message. */ 2194 1975 extern PNG_EXPORT(void,png_chunk_warning) PNGARG((png_structp png_ptr, 2195 1976 png_const_charp warning_message)); 2196 #endif /* PNG_READ_SUPPORTED */ 2197 #endif /* PNG_NO_WARNINGS */ 1977 1978 #ifdef PNG_BENIGN_ERRORS_SUPPORTED 1979 /* Benign error in libpng. Can continue, but may have a problem. 1980 * User can choose whether to handle as a fatal error or as a warning. */ 1981 extern PNG_EXPORT(void,png_benign_error) PNGARG((png_structp png_ptr, 1982 png_const_charp warning_message)); 1983 1984 /* Same, chunk name is prepended to message. */ 1985 extern PNG_EXPORT(void,png_chunk_benign_error) PNGARG((png_structp png_ptr, 1986 png_const_charp warning_message)); 1987 1988 extern PNG_EXPORT(void,png_set_benign_errors) PNGARG((png_structp 1989 png_ptr, int allowed)); 1990 #endif 2198 1991 2199 1992 /* The png_set_<chunk> functions are for storing values in the png_info_struct. … … 2214 2007 2215 2008 /* Returns number of bytes needed to hold a transformed row. */ 2216 extern PNG_EXPORT(png_ uint_32,png_get_rowbytes) PNGARG((png_structp png_ptr,2009 extern PNG_EXPORT(png_size_t,png_get_rowbytes) PNGARG((png_structp png_ptr, 2217 2010 png_infop info_ptr)); 2218 2011 2219 #if defined(PNG_INFO_IMAGE_SUPPORTED)2012 #ifdef PNG_INFO_IMAGE_SUPPORTED 2220 2013 /* Returns row_pointers, which is an array of pointers to scanlines that was 2221 2014 * returned from png_read_png(). … … 2293 2086 png_infop info_ptr)); 2294 2087 2295 #if defined(PNG_bKGD_SUPPORTED)2088 #ifdef PNG_bKGD_SUPPORTED 2296 2089 extern PNG_EXPORT(png_uint_32,png_get_bKGD) PNGARG((png_structp png_ptr, 2297 2090 png_infop info_ptr, png_color_16p *background)); 2298 2091 #endif 2299 2092 2300 #if defined(PNG_bKGD_SUPPORTED)2093 #ifdef PNG_bKGD_SUPPORTED 2301 2094 extern PNG_EXPORT(void,png_set_bKGD) PNGARG((png_structp png_ptr, 2302 2095 png_infop info_ptr, png_color_16p background)); 2303 2096 #endif 2304 2097 2305 #if defined(PNG_cHRM_SUPPORTED)2098 #ifdef PNG_cHRM_SUPPORTED 2306 2099 #ifdef PNG_FLOATING_POINT_SUPPORTED 2307 2100 extern PNG_EXPORT(png_uint_32,png_get_cHRM) PNGARG((png_structp png_ptr, … … 2319 2112 #endif 2320 2113 2321 #if defined(PNG_cHRM_SUPPORTED)2114 #ifdef PNG_cHRM_SUPPORTED 2322 2115 #ifdef PNG_FLOATING_POINT_SUPPORTED 2323 2116 extern PNG_EXPORT(void,png_set_cHRM) PNGARG((png_structp png_ptr, … … 2334 2127 #endif 2335 2128 2336 #if defined(PNG_gAMA_SUPPORTED)2129 #ifdef PNG_gAMA_SUPPORTED 2337 2130 #ifdef PNG_FLOATING_POINT_SUPPORTED 2338 2131 extern PNG_EXPORT(png_uint_32,png_get_gAMA) PNGARG((png_structp png_ptr, … … 2343 2136 #endif 2344 2137 2345 #if defined(PNG_gAMA_SUPPORTED)2138 #ifdef PNG_gAMA_SUPPORTED 2346 2139 #ifdef PNG_FLOATING_POINT_SUPPORTED 2347 2140 extern PNG_EXPORT(void,png_set_gAMA) PNGARG((png_structp png_ptr, … … 2352 2145 #endif 2353 2146 2354 #if defined(PNG_hIST_SUPPORTED)2147 #ifdef PNG_hIST_SUPPORTED 2355 2148 extern PNG_EXPORT(png_uint_32,png_get_hIST) PNGARG((png_structp png_ptr, 2356 2149 png_infop info_ptr, png_uint_16p *hist)); 2357 2150 #endif 2358 2151 2359 #if defined(PNG_hIST_SUPPORTED)2152 #ifdef PNG_hIST_SUPPORTED 2360 2153 extern PNG_EXPORT(void,png_set_hIST) PNGARG((png_structp png_ptr, 2361 2154 png_infop info_ptr, png_uint_16p hist)); … … 2372 2165 int filter_method)); 2373 2166 2374 #if defined(PNG_oFFs_SUPPORTED)2167 #ifdef PNG_oFFs_SUPPORTED 2375 2168 extern PNG_EXPORT(png_uint_32,png_get_oFFs) PNGARG((png_structp png_ptr, 2376 2169 png_infop info_ptr, png_int_32 *offset_x, png_int_32 *offset_y, … … 2378 2171 #endif 2379 2172 2380 #if defined(PNG_oFFs_SUPPORTED)2173 #ifdef PNG_oFFs_SUPPORTED 2381 2174 extern PNG_EXPORT(void,png_set_oFFs) PNGARG((png_structp png_ptr, 2382 2175 png_infop info_ptr, png_int_32 offset_x, png_int_32 offset_y, … … 2384 2177 #endif 2385 2178 2386 #if defined(PNG_pCAL_SUPPORTED)2179 #ifdef PNG_pCAL_SUPPORTED 2387 2180 extern PNG_EXPORT(png_uint_32,png_get_pCAL) PNGARG((png_structp png_ptr, 2388 2181 png_infop info_ptr, png_charp *purpose, png_int_32 *X0, png_int_32 *X1, … … 2390 2183 #endif 2391 2184 2392 #if defined(PNG_pCAL_SUPPORTED)2185 #ifdef PNG_pCAL_SUPPORTED 2393 2186 extern PNG_EXPORT(void,png_set_pCAL) PNGARG((png_structp png_ptr, 2394 2187 png_infop info_ptr, png_charp purpose, png_int_32 X0, png_int_32 X1, … … 2396 2189 #endif 2397 2190 2398 #if defined(PNG_pHYs_SUPPORTED)2191 #ifdef PNG_pHYs_SUPPORTED 2399 2192 extern PNG_EXPORT(png_uint_32,png_get_pHYs) PNGARG((png_structp png_ptr, 2400 2193 png_infop info_ptr, png_uint_32 *res_x, png_uint_32 *res_y, int *unit_type)); 2401 2194 #endif 2402 2195 2403 #if defined(PNG_pHYs_SUPPORTED)2196 #ifdef PNG_pHYs_SUPPORTED 2404 2197 extern PNG_EXPORT(void,png_set_pHYs) PNGARG((png_structp png_ptr, 2405 2198 png_infop info_ptr, png_uint_32 res_x, png_uint_32 res_y, int unit_type)); … … 2412 2205 png_infop info_ptr, png_colorp palette, int num_palette)); 2413 2206 2414 #if defined(PNG_sBIT_SUPPORTED)2207 #ifdef PNG_sBIT_SUPPORTED 2415 2208 extern PNG_EXPORT(png_uint_32,png_get_sBIT) PNGARG((png_structp png_ptr, 2416 2209 png_infop info_ptr, png_color_8p *sig_bit)); 2417 2210 #endif 2418 2211 2419 #if defined(PNG_sBIT_SUPPORTED)2212 #ifdef PNG_sBIT_SUPPORTED 2420 2213 extern PNG_EXPORT(void,png_set_sBIT) PNGARG((png_structp png_ptr, 2421 2214 png_infop info_ptr, png_color_8p sig_bit)); 2422 2215 #endif 2423 2216 2424 #if defined(PNG_sRGB_SUPPORTED)2217 #ifdef PNG_sRGB_SUPPORTED 2425 2218 extern PNG_EXPORT(png_uint_32,png_get_sRGB) PNGARG((png_structp png_ptr, 2426 2219 png_infop info_ptr, int *intent)); 2427 2220 #endif 2428 2221 2429 #if defined(PNG_sRGB_SUPPORTED)2222 #ifdef PNG_sRGB_SUPPORTED 2430 2223 extern PNG_EXPORT(void,png_set_sRGB) PNGARG((png_structp png_ptr, 2431 2224 png_infop info_ptr, int intent)); … … 2434 2227 #endif 2435 2228 2436 #if defined(PNG_iCCP_SUPPORTED)2229 #ifdef PNG_iCCP_SUPPORTED 2437 2230 extern PNG_EXPORT(png_uint_32,png_get_iCCP) PNGARG((png_structp png_ptr, 2438 2231 png_infop info_ptr, png_charpp name, int *compression_type, … … 2441 2234 #endif 2442 2235 2443 #if defined(PNG_iCCP_SUPPORTED)2236 #ifdef PNG_iCCP_SUPPORTED 2444 2237 extern PNG_EXPORT(void,png_set_iCCP) PNGARG((png_structp png_ptr, 2445 2238 png_infop info_ptr, png_charp name, int compression_type, … … 2448 2241 #endif 2449 2242 2450 #if defined(PNG_sPLT_SUPPORTED)2243 #ifdef PNG_sPLT_SUPPORTED 2451 2244 extern PNG_EXPORT(png_uint_32,png_get_sPLT) PNGARG((png_structp png_ptr, 2452 2245 png_infop info_ptr, png_sPLT_tpp entries)); 2453 2246 #endif 2454 2247 2455 #if defined(PNG_sPLT_SUPPORTED)2248 #ifdef PNG_sPLT_SUPPORTED 2456 2249 extern PNG_EXPORT(void,png_set_sPLT) PNGARG((png_structp png_ptr, 2457 2250 png_infop info_ptr, png_sPLT_tp entries, int nentries)); 2458 2251 #endif 2459 2252 2460 #if defined(PNG_TEXT_SUPPORTED)2253 #ifdef PNG_TEXT_SUPPORTED 2461 2254 /* png_get_text also returns the number of text chunks in *num_text */ 2462 2255 extern PNG_EXPORT(png_uint_32,png_get_text) PNGARG((png_structp png_ptr, … … 2464 2257 #endif 2465 2258 2466 /* 2467 * Note while png_set_text() will accept a structure whose text, 2468 * language, and translated keywords are NULL pointers, the structure 2469 * returned by png_get_text will always contain regular 2470 * zero-terminated C strings. They might be empty strings but 2471 * they will never be NULL pointers. 2472 */ 2473 2474 #if defined(PNG_TEXT_SUPPORTED) 2259 /* Note while png_set_text() will accept a structure whose text, 2260 * language, and translated keywords are NULL pointers, the structure 2261 * returned by png_get_text will always contain regular 2262 * zero-terminated C strings. They might be empty strings but 2263 * they will never be NULL pointers. 2264 */ 2265 2266 #ifdef PNG_TEXT_SUPPORTED 2475 2267 extern PNG_EXPORT(void,png_set_text) PNGARG((png_structp png_ptr, 2476 2268 png_infop info_ptr, png_textp text_ptr, int num_text)); 2477 2269 #endif 2478 2270 2479 #if defined(PNG_tIME_SUPPORTED)2271 #ifdef PNG_tIME_SUPPORTED 2480 2272 extern PNG_EXPORT(png_uint_32,png_get_tIME) PNGARG((png_structp png_ptr, 2481 2273 png_infop info_ptr, png_timep *mod_time)); 2482 2274 #endif 2483 2275 2484 #if defined(PNG_tIME_SUPPORTED)2276 #ifdef PNG_tIME_SUPPORTED 2485 2277 extern PNG_EXPORT(void,png_set_tIME) PNGARG((png_structp png_ptr, 2486 2278 png_infop info_ptr, png_timep mod_time)); 2487 2279 #endif 2488 2280 2489 #if defined(PNG_tRNS_SUPPORTED)2281 #ifdef PNG_tRNS_SUPPORTED 2490 2282 extern PNG_EXPORT(png_uint_32,png_get_tRNS) PNGARG((png_structp png_ptr, 2491 png_infop info_ptr, png_bytep *trans , int *num_trans,2492 png_color_16p *trans_ values));2493 #endif 2494 2495 #if defined(PNG_tRNS_SUPPORTED)2283 png_infop info_ptr, png_bytep *trans_alpha, int *num_trans, 2284 png_color_16p *trans_color)); 2285 #endif 2286 2287 #ifdef PNG_tRNS_SUPPORTED 2496 2288 extern PNG_EXPORT(void,png_set_tRNS) PNGARG((png_structp png_ptr, 2497 png_infop info_ptr, png_bytep trans , int num_trans,2498 png_color_16p trans_ values));2499 #endif 2500 2501 #if defined(PNG_tRNS_SUPPORTED)2502 #endif 2503 2504 #if defined(PNG_sCAL_SUPPORTED)2289 png_infop info_ptr, png_bytep trans_alpha, int num_trans, 2290 png_color_16p trans_color)); 2291 #endif 2292 2293 #ifdef PNG_tRNS_SUPPORTED 2294 #endif 2295 2296 #ifdef PNG_sCAL_SUPPORTED 2505 2297 #ifdef PNG_FLOATING_POINT_SUPPORTED 2506 2298 extern PNG_EXPORT(png_uint_32,png_get_sCAL) PNGARG((png_structp png_ptr, … … 2514 2306 #endif /* PNG_sCAL_SUPPORTED */ 2515 2307 2516 #if defined(PNG_sCAL_SUPPORTED)2308 #ifdef PNG_sCAL_SUPPORTED 2517 2309 #ifdef PNG_FLOATING_POINT_SUPPORTED 2518 2310 extern PNG_EXPORT(void,png_set_sCAL) PNGARG((png_structp png_ptr, … … 2541 2333 chunk_name)); 2542 2334 #endif 2543 #if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED)2335 #ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED 2544 2336 extern PNG_EXPORT(void, png_set_unknown_chunks) PNGARG((png_structp png_ptr, 2545 2337 png_infop info_ptr, png_unknown_chunkp unknowns, int num_unknowns)); … … 2557 2349 png_infop info_ptr, int mask)); 2558 2350 2559 #if defined(PNG_INFO_IMAGE_SUPPORTED)2351 #ifdef PNG_INFO_IMAGE_SUPPORTED 2560 2352 /* The "params" pointer is currently not used and is for future expansion. */ 2561 2353 extern PNG_EXPORT(void, png_read_png) PNGARG((png_structp png_ptr, … … 2569 2361 #endif 2570 2362 2571 /* Define PNG_DEBUG at compile time for debugging information. Higher2572 * numbers for PNG_DEBUG mean more debugging information. This has2573 * only been added since version 0.95 so it is not implemented throughout2574 * libpng yet, but more support will be added as needed.2575 */2576 #ifdef PNG_DEBUG2577 #if (PNG_DEBUG > 0)2578 #if !defined(PNG_DEBUG_FILE) && defined(_MSC_VER)2579 #include <crtdbg.h>2580 #if (PNG_DEBUG > 1)2581 #ifndef _DEBUG2582 # define _DEBUG2583 #endif2584 #ifndef png_debug2585 #define png_debug(l,m) _RPT0(_CRT_WARN,m PNG_STRING_NEWLINE)2586 #endif2587 #ifndef png_debug12588 #define png_debug1(l,m,p1) _RPT1(_CRT_WARN,m PNG_STRING_NEWLINE,p1)2589 #endif2590 #ifndef png_debug22591 #define png_debug2(l,m,p1,p2) _RPT2(_CRT_WARN,m PNG_STRING_NEWLINE,p1,p2)2592 #endif2593 #endif2594 #else /* PNG_DEBUG_FILE || !_MSC_VER */2595 #ifndef PNG_DEBUG_FILE2596 #define PNG_DEBUG_FILE stderr2597 #endif /* PNG_DEBUG_FILE */2598 2599 #if (PNG_DEBUG > 1)2600 /* Note: ["%s"m PNG_STRING_NEWLINE] probably does not work on non-ISO2601 * compilers.2602 */2603 # ifdef __STDC__2604 # ifndef png_debug2605 # define png_debug(l,m) \2606 { \2607 int num_tabs=l; \2608 fprintf(PNG_DEBUG_FILE,"%s"m PNG_STRING_NEWLINE,(num_tabs==1 ? "\t" : \2609 (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":"")))); \2610 }2611 # endif2612 # ifndef png_debug12613 # define png_debug1(l,m,p1) \2614 { \2615 int num_tabs=l; \2616 fprintf(PNG_DEBUG_FILE,"%s"m PNG_STRING_NEWLINE,(num_tabs==1 ? "\t" : \2617 (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))),p1); \2618 }2619 # endif2620 # ifndef png_debug22621 # define png_debug2(l,m,p1,p2) \2622 { \2623 int num_tabs=l; \2624 fprintf(PNG_DEBUG_FILE,"%s"m PNG_STRING_NEWLINE,(num_tabs==1 ? "\t" : \2625 (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))),p1,p2); \2626 }2627 # endif2628 # else /* __STDC __ */2629 # ifndef png_debug2630 # define png_debug(l,m) \2631 { \2632 int num_tabs=l; \2633 char format[256]; \2634 snprintf(format,256,"%s%s%s",(num_tabs==1 ? "\t" : \2635 (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))), \2636 m,PNG_STRING_NEWLINE); \2637 fprintf(PNG_DEBUG_FILE,format); \2638 }2639 # endif2640 # ifndef png_debug12641 # define png_debug1(l,m,p1) \2642 { \2643 int num_tabs=l; \2644 char format[256]; \2645 snprintf(format,256,"%s%s%s",(num_tabs==1 ? "\t" : \2646 (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))), \2647 m,PNG_STRING_NEWLINE); \2648 fprintf(PNG_DEBUG_FILE,format,p1); \2649 }2650 # endif2651 # ifndef png_debug22652 # define png_debug2(l,m,p1,p2) \2653 { \2654 int num_tabs=l; \2655 char format[256]; \2656 snprintf(format,256,"%s%s%s",(num_tabs==1 ? "\t" : \2657 (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))), \2658 m,PNG_STRING_NEWLINE); \2659 fprintf(PNG_DEBUG_FILE,format,p1,p2); \2660 }2661 # endif2662 # endif /* __STDC __ */2663 #endif /* (PNG_DEBUG > 1) */2664 2665 #endif /* _MSC_VER */2666 #endif /* (PNG_DEBUG > 0) */2667 #endif /* PNG_DEBUG */2668 #ifndef png_debug2669 #define png_debug(l, m)2670 #endif2671 #ifndef png_debug12672 #define png_debug1(l, m, p1)2673 #endif2674 #ifndef png_debug22675 #define png_debug2(l, m, p1, p2)2676 #endif2677 2678 2363 extern PNG_EXPORT(png_charp,png_get_copyright) PNGARG((png_structp png_ptr)); 2679 2364 extern PNG_EXPORT(png_charp,png_get_header_ver) PNGARG((png_structp png_ptr)); … … 2692 2377 #define PNG_HANDLE_CHUNK_ALWAYS 3 2693 2378 2694 /* Added to version 1.2.0 */2695 #if defined(PNG_ASSEMBLER_CODE_SUPPORTED)2696 #if defined(PNG_MMX_CODE_SUPPORTED)2697 #define PNG_ASM_FLAG_MMX_SUPPORT_COMPILED 0x01 /* not user-settable */2698 #define PNG_ASM_FLAG_MMX_SUPPORT_IN_CPU 0x02 /* not user-settable */2699 #define PNG_ASM_FLAG_MMX_READ_COMBINE_ROW 0x042700 #define PNG_ASM_FLAG_MMX_READ_INTERLACE 0x082701 #define PNG_ASM_FLAG_MMX_READ_FILTER_SUB 0x102702 #define PNG_ASM_FLAG_MMX_READ_FILTER_UP 0x202703 #define PNG_ASM_FLAG_MMX_READ_FILTER_AVG 0x402704 #define PNG_ASM_FLAG_MMX_READ_FILTER_PAETH 0x802705 #define PNG_ASM_FLAGS_INITIALIZED 0x80000000 /* not user-settable */2706 2707 #define PNG_MMX_READ_FLAGS ( PNG_ASM_FLAG_MMX_READ_COMBINE_ROW \2708 | PNG_ASM_FLAG_MMX_READ_INTERLACE \2709 | PNG_ASM_FLAG_MMX_READ_FILTER_SUB \2710 | PNG_ASM_FLAG_MMX_READ_FILTER_UP \2711 | PNG_ASM_FLAG_MMX_READ_FILTER_AVG \2712 | PNG_ASM_FLAG_MMX_READ_FILTER_PAETH )2713 #define PNG_MMX_WRITE_FLAGS ( 0 )2714 2715 #define PNG_MMX_FLAGS ( PNG_ASM_FLAG_MMX_SUPPORT_COMPILED \2716 | PNG_ASM_FLAG_MMX_SUPPORT_IN_CPU \2717 | PNG_MMX_READ_FLAGS \2718 | PNG_MMX_WRITE_FLAGS )2719 2720 #define PNG_SELECT_READ 12721 #define PNG_SELECT_WRITE 22722 #endif /* PNG_MMX_CODE_SUPPORTED */2723 2724 #if !defined(PNG_1_0_X)2725 /* pngget.c */2726 extern PNG_EXPORT(png_uint_32,png_get_mmx_flagmask)2727 PNGARG((int flag_select, int *compilerID));2728 2729 /* pngget.c */2730 extern PNG_EXPORT(png_uint_32,png_get_asm_flagmask)2731 PNGARG((int flag_select));2732 2733 /* pngget.c */2734 extern PNG_EXPORT(png_uint_32,png_get_asm_flags)2735 PNGARG((png_structp png_ptr));2736 2737 /* pngget.c */2738 extern PNG_EXPORT(png_byte,png_get_mmx_bitdepth_threshold)2739 PNGARG((png_structp png_ptr));2740 2741 /* pngget.c */2742 extern PNG_EXPORT(png_uint_32,png_get_mmx_rowbytes_threshold)2743 PNGARG((png_structp png_ptr));2744 2745 /* pngset.c */2746 extern PNG_EXPORT(void,png_set_asm_flags)2747 PNGARG((png_structp png_ptr, png_uint_32 asm_flags));2748 2749 /* pngset.c */2750 extern PNG_EXPORT(void,png_set_mmx_thresholds)2751 PNGARG((png_structp png_ptr, png_byte mmx_bitdepth_threshold,2752 png_uint_32 mmx_rowbytes_threshold));2753 2754 #endif /* PNG_1_0_X */2755 2756 #if !defined(PNG_1_0_X)2757 /* png.c, pnggccrd.c, or pngvcrd.c */2758 extern PNG_EXPORT(int,png_mmx_support) PNGARG((void));2759 #endif /* PNG_1_0_X */2760 #endif /* PNG_ASSEMBLER_CODE_SUPPORTED */2761 2762 2379 /* Strip the prepended error numbers ("#nnn ") from error and warning 2763 2380 * messages before passing them to the error or warning handler. … … 2768 2385 #endif 2769 2386 2770 /* Added atlibpng-1.2.6 */2387 /* Added in libpng-1.2.6 */ 2771 2388 #ifdef PNG_SET_USER_LIMITS_SUPPORTED 2772 2389 extern PNG_EXPORT(void,png_set_user_limits) PNGARG((png_structp … … 2776 2393 extern PNG_EXPORT(png_uint_32,png_get_user_height_max) PNGARG((png_structp 2777 2394 png_ptr)); 2778 #endif 2779 2780 2781 /* Maintainer: Put new public prototypes here ^, in libpng.3, and in 2782 * project defs 2395 /* Added in libpng-1.4.0 */ 2396 extern PNG_EXPORT(void,png_set_chunk_cache_max) PNGARG((png_structp 2397 png_ptr, png_uint_32 user_chunk_cache_max)); 2398 extern PNG_EXPORT(png_uint_32,png_get_chunk_cache_max) 2399 PNGARG((png_structp png_ptr)); 2400 #endif 2401 2402 #if defined(PNG_INCH_CONVERSIONS) && defined(PNG_FLOATING_POINT_SUPPORTED) 2403 PNG_EXPORT(png_uint_32,png_get_pixels_per_inch) PNGARG((png_structp png_ptr, 2404 png_infop info_ptr)); 2405 2406 PNG_EXPORT(png_uint_32,png_get_x_pixels_per_inch) PNGARG((png_structp png_ptr, 2407 png_infop info_ptr)); 2408 2409 PNG_EXPORT(png_uint_32,png_get_y_pixels_per_inch) PNGARG((png_structp png_ptr, 2410 png_infop info_ptr)); 2411 2412 PNG_EXPORT(float,png_get_x_offset_inches) PNGARG((png_structp png_ptr, 2413 png_infop info_ptr)); 2414 2415 PNG_EXPORT(float,png_get_y_offset_inches) PNGARG((png_structp png_ptr, 2416 png_infop info_ptr)); 2417 2418 #ifdef PNG_pHYs_SUPPORTED 2419 PNG_EXPORT(png_uint_32,png_get_pHYs_dpi) PNGARG((png_structp png_ptr, 2420 png_infop info_ptr, png_uint_32 *res_x, png_uint_32 *res_y, int *unit_type)); 2421 #endif /* PNG_pHYs_SUPPORTED */ 2422 #endif /* PNG_INCH_CONVERSIONS && PNG_FLOATING_POINT_SUPPORTED */ 2423 2424 /* Added in libpng-1.4.0 */ 2425 #ifdef PNG_IO_STATE_SUPPORTED 2426 extern PNG_EXPORT(png_uint_32,png_get_io_state) PNGARG((png_structp png_ptr)); 2427 2428 extern PNG_EXPORT(png_bytep,png_get_io_chunk_name) 2429 PNGARG((png_structp png_ptr)); 2430 2431 /* The flags returned by png_get_io_state() are the following: */ 2432 #define PNG_IO_NONE 0x0000 /* no I/O at this moment */ 2433 #define PNG_IO_READING 0x0001 /* currently reading */ 2434 #define PNG_IO_WRITING 0x0002 /* currently writing */ 2435 #define PNG_IO_SIGNATURE 0x0010 /* currently at the file signature */ 2436 #define PNG_IO_CHUNK_HDR 0x0020 /* currently at the chunk header */ 2437 #define PNG_IO_CHUNK_DATA 0x0040 /* currently at the chunk data */ 2438 #define PNG_IO_CHUNK_CRC 0x0080 /* currently at the chunk crc */ 2439 #define PNG_IO_MASK_OP 0x000f /* current operation: reading/writing */ 2440 #define PNG_IO_MASK_LOC 0x00f0 /* current location: sig/hdr/data/crc */ 2441 #endif /* ?PNG_IO_STATE_SUPPORTED */ 2442 2443 /* Maintainer: Put new public prototypes here ^, in libpng.3, and project 2444 * defs 2783 2445 */ 2784 2446 … … 2821 2483 (png_uint_32)(bg)*(png_uint_32)(65535L - (png_uint_32)(alpha)) + \ 2822 2484 (png_uint_32)32767) / (png_uint_32)65535L) 2823 2824 2485 #endif /* PNG_READ_COMPOSITE_NODIV_SUPPORTED */ 2825 2486 2826 /* Inline macros to do direct reads of bytes from the input buffer. These 2827 * require that you are using an architecture that uses PNG byte ordering 2828 * (MSB first) and supports unaligned data storage. I think that PowerPC 2829 * in big-endian mode and 680x0 are the only ones that will support this. 2830 * The x86 line of processors definitely do not. The png_get_int_32() 2831 * routine also assumes we are using two's complement format for negative 2832 * values, which is almost certainly true. 2833 */ 2834 #if defined(PNG_READ_BIG_ENDIAN_SUPPORTED) 2835 # define png_get_uint_32(buf) ( *((png_uint_32p) (buf))) 2836 # define png_get_uint_16(buf) ( *((png_uint_16p) (buf))) 2837 # define png_get_int_32(buf) ( *((png_int_32p) (buf))) 2487 #ifdef PNG_USE_READ_MACROS 2488 /* Inline macros to do direct reads of bytes from the input buffer. 2489 * The png_get_int_32() routine assumes we are using two's complement 2490 * format for negative values, which is almost certainly true. 2491 */ 2492 /* We could make special-case BIG_ENDIAN macros that do direct reads here */ 2493 # define png_get_uint_32(buf) \ 2494 (((png_uint_32)(*(buf)) << 24) + \ 2495 ((png_uint_32)(*((buf) + 1)) << 16) + \ 2496 ((png_uint_32)(*((buf) + 2)) << 8) + \ 2497 ((png_uint_32)(*((buf) + 3)))) 2498 # define png_get_uint_16(buf) \ 2499 (((png_uint_32)(*(buf)) << 8) + \ 2500 ((png_uint_32)(*((buf) + 1)))) 2501 #ifdef PNG_GET_INT_32_SUPPORTED 2502 # define png_get_int_32(buf) \ 2503 (((png_int_32)(*(buf)) << 24) + \ 2504 ((png_int_32)(*((buf) + 1)) << 16) + \ 2505 ((png_int_32)(*((buf) + 2)) << 8) + \ 2506 ((png_int_32)(*((buf) + 3)))) 2507 #endif 2838 2508 #else 2839 2509 extern PNG_EXPORT(png_uint_32,png_get_uint_32) PNGARG((png_bytep buf)); 2840 2510 extern PNG_EXPORT(png_uint_16,png_get_uint_16) PNGARG((png_bytep buf)); 2511 #ifdef PNG_GET_INT_32_SUPPORTED 2841 2512 extern PNG_EXPORT(png_int_32,png_get_int_32) PNGARG((png_bytep buf)); 2842 #endif /* !PNG_READ_BIG_ENDIAN_SUPPORTED */ 2513 #endif 2514 #endif 2843 2515 extern PNG_EXPORT(png_uint_32,png_get_uint_31) 2844 2516 PNGARG((png_structp png_ptr, png_bytep buf)); 2845 2517 /* No png_get_int_16 -- may be added if there's a real need for it. */ 2846 2518 2847 /* Place a 32-bit number into a buffer in PNG byte order (big-endian). 2848 */ 2519 /* Place a 32-bit number into a buffer in PNG byte order (big-endian). */ 2849 2520 extern PNG_EXPORT(void,png_save_uint_32) 2850 2521 PNGARG((png_bytep buf, png_uint_32 i)); … … 2862 2533 /* ************************************************************************* */ 2863 2534 2864 /* These next functions are used internally in the code. They generally 2865 * shouldn't be used unless you are writing code to add or replace some 2866 * functionality in libpng. More information about most functions can 2867 * be found in the files where the functions are located. 2868 */ 2869 2870 2871 /* Various modes of operation, that are visible to applications because 2872 * they are used for unknown chunk location. 2535 /* Various modes of operation. Note that after an init, mode is set to 2536 * zero automatically when the structure is created. 2873 2537 */ 2874 2538 #define PNG_HAVE_IHDR 0x01 … … 2877 2541 #define PNG_AFTER_IDAT 0x08 /* Have complete zlib datastream */ 2878 2542 #define PNG_HAVE_IEND 0x10 2879 2880 #if defined(PNG_INTERNAL)2881 2882 /* More modes of operation. Note that after an init, mode is set to2883 * zero automatically when the structure is created.2884 */2885 2543 #define PNG_HAVE_gAMA 0x20 2886 2544 #define PNG_HAVE_cHRM 0x40 2887 #define PNG_HAVE_sRGB 0x802888 #define PNG_HAVE_CHUNK_HEADER 0x1002889 #define PNG_WROTE_tIME 0x2002890 #define PNG_WROTE_INFO_BEFORE_PLTE 0x4002891 #define PNG_BACKGROUND_IS_GRAY 0x8002892 #define PNG_HAVE_PNG_SIGNATURE 0x10002893 #define PNG_HAVE_CHUNK_AFTER_IDAT 0x2000 /* Have another chunk after IDAT */2894 2895 /* Flags for the transformations the PNG library does on the image data */2896 #define PNG_BGR 0x00012897 #define PNG_INTERLACE 0x00022898 #define PNG_PACK 0x00042899 #define PNG_SHIFT 0x00082900 #define PNG_SWAP_BYTES 0x00102901 #define PNG_INVERT_MONO 0x00202902 #define PNG_DITHER 0x00402903 #define PNG_BACKGROUND 0x00802904 #define PNG_BACKGROUND_EXPAND 0x01002905 /* 0x0200 unused */2906 #define PNG_16_TO_8 0x04002907 #define PNG_RGBA 0x08002908 #define PNG_EXPAND 0x10002909 #define PNG_GAMMA 0x20002910 #define PNG_GRAY_TO_RGB 0x40002911 #define PNG_FILLER 0x8000L2912 #define PNG_PACKSWAP 0x10000L2913 #define PNG_SWAP_ALPHA 0x20000L2914 #define PNG_STRIP_ALPHA 0x40000L2915 #define PNG_INVERT_ALPHA 0x80000L2916 #define PNG_USER_TRANSFORM 0x100000L2917 #define PNG_RGB_TO_GRAY_ERR 0x200000L2918 #define PNG_RGB_TO_GRAY_WARN 0x400000L2919 #define PNG_RGB_TO_GRAY 0x600000L /* two bits, RGB_TO_GRAY_ERR|WARN */2920 /* 0x800000L Unused */2921 #define PNG_ADD_ALPHA 0x1000000L /* Added to libpng-1.2.7 */2922 #define PNG_EXPAND_tRNS 0x2000000L /* Added to libpng-1.2.9 */2923 /* 0x4000000L unused */2924 /* 0x8000000L unused */2925 /* 0x10000000L unused */2926 /* 0x20000000L unused */2927 /* 0x40000000L unused */2928 2929 /* Flags for png_create_struct */2930 #define PNG_STRUCT_PNG 0x00012931 #define PNG_STRUCT_INFO 0x00022932 2933 /* Scaling factor for filter heuristic weighting calculations */2934 #define PNG_WEIGHT_SHIFT 82935 #define PNG_WEIGHT_FACTOR (1<<(PNG_WEIGHT_SHIFT))2936 #define PNG_COST_SHIFT 32937 #define PNG_COST_FACTOR (1<<(PNG_COST_SHIFT))2938 2939 /* Flags for the png_ptr->flags rather than declaring a byte for each one */2940 #define PNG_FLAG_ZLIB_CUSTOM_STRATEGY 0x00012941 #define PNG_FLAG_ZLIB_CUSTOM_LEVEL 0x00022942 #define PNG_FLAG_ZLIB_CUSTOM_MEM_LEVEL 0x00042943 #define PNG_FLAG_ZLIB_CUSTOM_WINDOW_BITS 0x00082944 #define PNG_FLAG_ZLIB_CUSTOM_METHOD 0x00102945 #define PNG_FLAG_ZLIB_FINISHED 0x00202946 #define PNG_FLAG_ROW_INIT 0x00402947 #define PNG_FLAG_FILLER_AFTER 0x00802948 #define PNG_FLAG_CRC_ANCILLARY_USE 0x01002949 #define PNG_FLAG_CRC_ANCILLARY_NOWARN 0x02002950 #define PNG_FLAG_CRC_CRITICAL_USE 0x04002951 #define PNG_FLAG_CRC_CRITICAL_IGNORE 0x08002952 #define PNG_FLAG_FREE_PLTE 0x10002953 #define PNG_FLAG_FREE_TRNS 0x20002954 #define PNG_FLAG_FREE_HIST 0x40002955 #define PNG_FLAG_KEEP_UNKNOWN_CHUNKS 0x8000L2956 #define PNG_FLAG_KEEP_UNSAFE_CHUNKS 0x10000L2957 #define PNG_FLAG_LIBRARY_MISMATCH 0x20000L2958 #define PNG_FLAG_STRIP_ERROR_NUMBERS 0x40000L2959 #define PNG_FLAG_STRIP_ERROR_TEXT 0x80000L2960 #define PNG_FLAG_MALLOC_NULL_MEM_OK 0x100000L2961 #define PNG_FLAG_ADD_ALPHA 0x200000L /* Added to libpng-1.2.8 */2962 #define PNG_FLAG_STRIP_ALPHA 0x400000L /* Added to libpng-1.2.8 */2963 /* 0x800000L unused */2964 /* 0x1000000L unused */2965 /* 0x2000000L unused */2966 /* 0x4000000L unused */2967 /* 0x8000000L unused */2968 /* 0x10000000L unused */2969 /* 0x20000000L unused */2970 /* 0x40000000L unused */2971 2972 #define PNG_FLAG_CRC_ANCILLARY_MASK (PNG_FLAG_CRC_ANCILLARY_USE | \2973 PNG_FLAG_CRC_ANCILLARY_NOWARN)2974 2975 #define PNG_FLAG_CRC_CRITICAL_MASK (PNG_FLAG_CRC_CRITICAL_USE | \2976 PNG_FLAG_CRC_CRITICAL_IGNORE)2977 2978 #define PNG_FLAG_CRC_MASK (PNG_FLAG_CRC_ANCILLARY_MASK | \2979 PNG_FLAG_CRC_CRITICAL_MASK)2980 2981 /* Save typing and make code easier to understand */2982 2983 #define PNG_COLOR_DIST(c1, c2) (abs((int)((c1).red) - (int)((c2).red)) + \2984 abs((int)((c1).green) - (int)((c2).green)) + \2985 abs((int)((c1).blue) - (int)((c2).blue)))2986 2987 /* Added to libpng-1.2.6 JB */2988 #define PNG_ROWBYTES(pixel_bits, width) \2989 ((pixel_bits) >= 8 ? \2990 ((width) * (((png_uint_32)(pixel_bits)) >> 3)) : \2991 (( ((width) * ((png_uint_32)(pixel_bits))) + 7) >> 3) )2992 2993 /* PNG_OUT_OF_RANGE returns true if value is outside the range2994 * ideal-delta..ideal+delta. Each argument is evaluated twice.2995 * "ideal" and "delta" should be constants, normally simple2996 * integers, "value" a variable. Added to libpng-1.2.6 JB2997 */2998 #define PNG_OUT_OF_RANGE(value, ideal, delta) \2999 ( (value) < (ideal)-(delta) || (value) > (ideal)+(delta) )3000 3001 /* Variables declared in png.c - only it needs to define PNG_NO_EXTERN */3002 #if !defined(PNG_NO_EXTERN) || defined(PNG_ALWAYS_EXTERN)3003 /* Place to hold the signature string for a PNG file. */3004 #ifdef PNG_USE_GLOBAL_ARRAYS3005 PNG_EXPORT_VAR (PNG_CONST png_byte FARDATA) png_sig[8];3006 #else3007 #endif3008 #endif /* PNG_NO_EXTERN */3009 3010 /* Constant strings for known chunk types. If you need to add a chunk,3011 * define the name here, and add an invocation of the macro in png.c and3012 * wherever it's needed.3013 */3014 #define PNG_IHDR png_byte png_IHDR[5] = { 73, 72, 68, 82, '\0'}3015 #define PNG_IDAT png_byte png_IDAT[5] = { 73, 68, 65, 84, '\0'}3016 #define PNG_IEND png_byte png_IEND[5] = { 73, 69, 78, 68, '\0'}3017 #define PNG_PLTE png_byte png_PLTE[5] = { 80, 76, 84, 69, '\0'}3018 #define PNG_bKGD png_byte png_bKGD[5] = { 98, 75, 71, 68, '\0'}3019 #define PNG_cHRM png_byte png_cHRM[5] = { 99, 72, 82, 77, '\0'}3020 #define PNG_gAMA png_byte png_gAMA[5] = {103, 65, 77, 65, '\0'}3021 #define PNG_hIST png_byte png_hIST[5] = {104, 73, 83, 84, '\0'}3022 #define PNG_iCCP png_byte png_iCCP[5] = {105, 67, 67, 80, '\0'}3023 #define PNG_iTXt png_byte png_iTXt[5] = {105, 84, 88, 116, '\0'}3024 #define PNG_oFFs png_byte png_oFFs[5] = {111, 70, 70, 115, '\0'}3025 #define PNG_pCAL png_byte png_pCAL[5] = {112, 67, 65, 76, '\0'}3026 #define PNG_sCAL png_byte png_sCAL[5] = {115, 67, 65, 76, '\0'}3027 #define PNG_pHYs png_byte png_pHYs[5] = {112, 72, 89, 115, '\0'}3028 #define PNG_sBIT png_byte png_sBIT[5] = {115, 66, 73, 84, '\0'}3029 #define PNG_sPLT png_byte png_sPLT[5] = {115, 80, 76, 84, '\0'}3030 #define PNG_sRGB png_byte png_sRGB[5] = {115, 82, 71, 66, '\0'}3031 #define PNG_tEXt png_byte png_tEXt[5] = {116, 69, 88, 116, '\0'}3032 #define PNG_tIME png_byte png_tIME[5] = {116, 73, 77, 69, '\0'}3033 #define PNG_tRNS png_byte png_tRNS[5] = {116, 82, 78, 83, '\0'}3034 #define PNG_zTXt png_byte png_zTXt[5] = {122, 84, 88, 116, '\0'}3035 3036 #ifdef PNG_USE_GLOBAL_ARRAYS3037 PNG_EXPORT_VAR (png_byte FARDATA) png_IHDR[5];3038 PNG_EXPORT_VAR (png_byte FARDATA) png_IDAT[5];3039 PNG_EXPORT_VAR (png_byte FARDATA) png_IEND[5];3040 PNG_EXPORT_VAR (png_byte FARDATA) png_PLTE[5];3041 PNG_EXPORT_VAR (png_byte FARDATA) png_bKGD[5];3042 PNG_EXPORT_VAR (png_byte FARDATA) png_cHRM[5];3043 PNG_EXPORT_VAR (png_byte FARDATA) png_gAMA[5];3044 PNG_EXPORT_VAR (png_byte FARDATA) png_hIST[5];3045 PNG_EXPORT_VAR (png_byte FARDATA) png_iCCP[5];3046 PNG_EXPORT_VAR (png_byte FARDATA) png_iTXt[5];3047 PNG_EXPORT_VAR (png_byte FARDATA) png_oFFs[5];3048 PNG_EXPORT_VAR (png_byte FARDATA) png_pCAL[5];3049 PNG_EXPORT_VAR (png_byte FARDATA) png_sCAL[5];3050 PNG_EXPORT_VAR (png_byte FARDATA) png_pHYs[5];3051 PNG_EXPORT_VAR (png_byte FARDATA) png_sBIT[5];3052 PNG_EXPORT_VAR (png_byte FARDATA) png_sPLT[5];3053 PNG_EXPORT_VAR (png_byte FARDATA) png_sRGB[5];3054 PNG_EXPORT_VAR (png_byte FARDATA) png_tEXt[5];3055 PNG_EXPORT_VAR (png_byte FARDATA) png_tIME[5];3056 PNG_EXPORT_VAR (png_byte FARDATA) png_tRNS[5];3057 PNG_EXPORT_VAR (png_byte FARDATA) png_zTXt[5];3058 #endif /* PNG_USE_GLOBAL_ARRAYS */3059 3060 #if defined(PNG_1_0_X) || defined (PNG_1_2_X)3061 /* Initialize png_ptr struct for reading, and allocate any other memory.3062 * (old interface - DEPRECATED - use png_create_read_struct instead).3063 */3064 extern PNG_EXPORT(void,png_read_init) PNGARG((png_structp png_ptr));3065 #undef png_read_init3066 #define png_read_init(png_ptr) png_read_init_3(&png_ptr, \3067 PNG_LIBPNG_VER_STRING, png_sizeof(png_struct));3068 #endif3069 3070 extern PNG_EXPORT(void,png_read_init_3) PNGARG((png_structpp ptr_ptr,3071 png_const_charp user_png_ver, png_size_t png_struct_size));3072 #if defined(PNG_1_0_X) || defined (PNG_1_2_X)3073 extern PNG_EXPORT(void,png_read_init_2) PNGARG((png_structp png_ptr,3074 png_const_charp user_png_ver, png_size_t png_struct_size, png_size_t3075 png_info_size));3076 #endif3077 3078 #if defined(PNG_1_0_X) || defined (PNG_1_2_X)3079 /* Initialize png_ptr struct for writing, and allocate any other memory.3080 * (old interface - DEPRECATED - use png_create_write_struct instead).3081 */3082 extern PNG_EXPORT(void,png_write_init) PNGARG((png_structp png_ptr));3083 #undef png_write_init3084 #define png_write_init(png_ptr) png_write_init_3(&png_ptr, \3085 PNG_LIBPNG_VER_STRING, png_sizeof(png_struct));3086 #endif3087 3088 extern PNG_EXPORT(void,png_write_init_3) PNGARG((png_structpp ptr_ptr,3089 png_const_charp user_png_ver, png_size_t png_struct_size));3090 extern PNG_EXPORT(void,png_write_init_2) PNGARG((png_structp png_ptr,3091 png_const_charp user_png_ver, png_size_t png_struct_size, png_size_t3092 png_info_size));3093 3094 /* Allocate memory for an internal libpng struct */3095 PNG_EXTERN png_voidp png_create_struct PNGARG((int type));3096 3097 /* Free memory from internal libpng struct */3098 PNG_EXTERN void png_destroy_struct PNGARG((png_voidp struct_ptr));3099 3100 PNG_EXTERN png_voidp png_create_struct_2 PNGARG((int type, png_malloc_ptr3101 malloc_fn, png_voidp mem_ptr));3102 PNG_EXTERN void png_destroy_struct_2 PNGARG((png_voidp struct_ptr,3103 png_free_ptr free_fn, png_voidp mem_ptr));3104 3105 /* Free any memory that info_ptr points to and reset struct. */3106 PNG_EXTERN void png_info_destroy PNGARG((png_structp png_ptr,3107 png_infop info_ptr));3108 3109 #ifndef PNG_1_0_X3110 /* Function to allocate memory for zlib. */3111 PNG_EXTERN voidpf png_zalloc PNGARG((voidpf png_ptr, uInt items, uInt size));3112 3113 /* Function to free memory for zlib */3114 PNG_EXTERN void png_zfree PNGARG((voidpf png_ptr, voidpf ptr));3115 3116 #ifdef PNG_SIZE_T3117 /* Function to convert a sizeof an item to png_sizeof item */3118 PNG_EXTERN png_size_t PNGAPI png_convert_size PNGARG((size_t size));3119 #endif3120 3121 /* Next four functions are used internally as callbacks. PNGAPI is required3122 * but not PNG_EXPORT. PNGAPI added at libpng version 1.2.3.3123 */3124 3125 PNG_EXTERN void PNGAPI png_default_read_data PNGARG((png_structp png_ptr,3126 png_bytep data, png_size_t length));3127 3128 #ifdef PNG_PROGRESSIVE_READ_SUPPORTED3129 PNG_EXTERN void PNGAPI png_push_fill_buffer PNGARG((png_structp png_ptr,3130 png_bytep buffer, png_size_t length));3131 #endif3132 3133 PNG_EXTERN void PNGAPI png_default_write_data PNGARG((png_structp png_ptr,3134 png_bytep data, png_size_t length));3135 3136 #if defined(PNG_WRITE_FLUSH_SUPPORTED)3137 #if !defined(PNG_NO_STDIO)3138 PNG_EXTERN void PNGAPI png_default_flush PNGARG((png_structp png_ptr));3139 #endif3140 #endif3141 #else /* PNG_1_0_X */3142 #ifdef PNG_PROGRESSIVE_READ_SUPPORTED3143 PNG_EXTERN void png_push_fill_buffer PNGARG((png_structp png_ptr,3144 png_bytep buffer, png_size_t length));3145 #endif3146 #endif /* PNG_1_0_X */3147 3148 /* Reset the CRC variable */3149 PNG_EXTERN void png_reset_crc PNGARG((png_structp png_ptr));3150 3151 /* Write the "data" buffer to whatever output you are using. */3152 PNG_EXTERN void png_write_data PNGARG((png_structp png_ptr, png_bytep data,3153 png_size_t length));3154 3155 /* Read data from whatever input you are using into the "data" buffer */3156 PNG_EXTERN void png_read_data PNGARG((png_structp png_ptr, png_bytep data,3157 png_size_t length));3158 3159 /* Read bytes into buf, and update png_ptr->crc */3160 PNG_EXTERN void png_crc_read PNGARG((png_structp png_ptr, png_bytep buf,3161 png_size_t length));3162 3163 /* Decompress data in a chunk that uses compression */3164 #if defined(PNG_zTXt_SUPPORTED) || defined(PNG_iTXt_SUPPORTED) || \3165 defined(PNG_iCCP_SUPPORTED) || defined(PNG_sPLT_SUPPORTED)3166 PNG_EXTERN void png_decompress_chunk PNGARG((png_structp png_ptr,3167 int comp_type, png_size_t chunklength,3168 png_size_t prefix_length, png_size_t *data_length));3169 #endif3170 3171 /* Read "skip" bytes, read the file crc, and (optionally) verify png_ptr->crc */3172 PNG_EXTERN int png_crc_finish PNGARG((png_structp png_ptr, png_uint_32 skip));3173 3174 /* Read the CRC from the file and compare it to the libpng calculated CRC */3175 PNG_EXTERN int png_crc_error PNGARG((png_structp png_ptr));3176 3177 /* Calculate the CRC over a section of data. Note that we are only3178 * passing a maximum of 64K on systems that have this as a memory limit,3179 * since this is the maximum buffer size we can specify.3180 */3181 PNG_EXTERN void png_calculate_crc PNGARG((png_structp png_ptr, png_bytep ptr,3182 png_size_t length));3183 3184 #if defined(PNG_WRITE_FLUSH_SUPPORTED)3185 PNG_EXTERN void png_flush PNGARG((png_structp png_ptr));3186 #endif3187 3188 /* Simple function to write the signature */3189 PNG_EXTERN void png_write_sig PNGARG((png_structp png_ptr));3190 3191 /* Write various chunks */3192 3193 /* Write the IHDR chunk, and update the png_struct with the necessary3194 * information.3195 */3196 PNG_EXTERN void png_write_IHDR PNGARG((png_structp png_ptr, png_uint_32 width,3197 png_uint_32 height,3198 int bit_depth, int color_type, int compression_method, int filter_method,3199 int interlace_method));3200 3201 PNG_EXTERN void png_write_PLTE PNGARG((png_structp png_ptr, png_colorp palette,3202 png_uint_32 num_pal));3203 3204 PNG_EXTERN void png_write_IDAT PNGARG((png_structp png_ptr, png_bytep data,3205 png_size_t length));3206 3207 PNG_EXTERN void png_write_IEND PNGARG((png_structp png_ptr));3208 3209 #if defined(PNG_WRITE_gAMA_SUPPORTED)3210 #ifdef PNG_FLOATING_POINT_SUPPORTED3211 PNG_EXTERN void png_write_gAMA PNGARG((png_structp png_ptr, double file_gamma));3212 #endif3213 #ifdef PNG_FIXED_POINT_SUPPORTED3214 PNG_EXTERN void png_write_gAMA_fixed PNGARG((png_structp png_ptr, png_fixed_point3215 file_gamma));3216 #endif3217 #endif3218 3219 #if defined(PNG_WRITE_sBIT_SUPPORTED)3220 PNG_EXTERN void png_write_sBIT PNGARG((png_structp png_ptr, png_color_8p sbit,3221 int color_type));3222 #endif3223 3224 #if defined(PNG_WRITE_cHRM_SUPPORTED)3225 #ifdef PNG_FLOATING_POINT_SUPPORTED3226 PNG_EXTERN void png_write_cHRM PNGARG((png_structp png_ptr,3227 double white_x, double white_y,3228 double red_x, double red_y, double green_x, double green_y,3229 double blue_x, double blue_y));3230 #endif3231 #ifdef PNG_FIXED_POINT_SUPPORTED3232 PNG_EXTERN void png_write_cHRM_fixed PNGARG((png_structp png_ptr,3233 png_fixed_point int_white_x, png_fixed_point int_white_y,3234 png_fixed_point int_red_x, png_fixed_point int_red_y, png_fixed_point3235 int_green_x, png_fixed_point int_green_y, png_fixed_point int_blue_x,3236 png_fixed_point int_blue_y));3237 #endif3238 #endif3239 3240 #if defined(PNG_WRITE_sRGB_SUPPORTED)3241 PNG_EXTERN void png_write_sRGB PNGARG((png_structp png_ptr,3242 int intent));3243 #endif3244 3245 #if defined(PNG_WRITE_iCCP_SUPPORTED)3246 PNG_EXTERN void png_write_iCCP PNGARG((png_structp png_ptr,3247 png_charp name, int compression_type,3248 png_charp profile, int proflen));3249 /* Note to maintainer: profile should be png_bytep */3250 #endif3251 3252 #if defined(PNG_WRITE_sPLT_SUPPORTED)3253 PNG_EXTERN void png_write_sPLT PNGARG((png_structp png_ptr,3254 png_sPLT_tp palette));3255 #endif3256 3257 #if defined(PNG_WRITE_tRNS_SUPPORTED)3258 PNG_EXTERN void png_write_tRNS PNGARG((png_structp png_ptr, png_bytep trans,3259 png_color_16p values, int number, int color_type));3260 #endif3261 3262 #if defined(PNG_WRITE_bKGD_SUPPORTED)3263 PNG_EXTERN void png_write_bKGD PNGARG((png_structp png_ptr,3264 png_color_16p values, int color_type));3265 #endif3266 3267 #if defined(PNG_WRITE_hIST_SUPPORTED)3268 PNG_EXTERN void png_write_hIST PNGARG((png_structp png_ptr, png_uint_16p hist,3269 int num_hist));3270 #endif3271 3272 #if defined(PNG_WRITE_TEXT_SUPPORTED) || defined(PNG_WRITE_pCAL_SUPPORTED) || \3273 defined(PNG_WRITE_iCCP_SUPPORTED) || defined(PNG_WRITE_sPLT_SUPPORTED)3274 PNG_EXTERN png_size_t png_check_keyword PNGARG((png_structp png_ptr,3275 png_charp key, png_charpp new_key));3276 #endif3277 3278 #if defined(PNG_WRITE_tEXt_SUPPORTED)3279 PNG_EXTERN void png_write_tEXt PNGARG((png_structp png_ptr, png_charp key,3280 png_charp text, png_size_t text_len));3281 #endif3282 3283 #if defined(PNG_WRITE_zTXt_SUPPORTED)3284 PNG_EXTERN void png_write_zTXt PNGARG((png_structp png_ptr, png_charp key,3285 png_charp text, png_size_t text_len, int compression));3286 #endif3287 3288 #if defined(PNG_WRITE_iTXt_SUPPORTED)3289 PNG_EXTERN void png_write_iTXt PNGARG((png_structp png_ptr,3290 int compression, png_charp key, png_charp lang, png_charp lang_key,3291 png_charp text));3292 #endif3293 3294 #if defined(PNG_TEXT_SUPPORTED) /* Added at version 1.0.14 and 1.2.4 */3295 PNG_EXTERN int png_set_text_2 PNGARG((png_structp png_ptr,3296 png_infop info_ptr, png_textp text_ptr, int num_text));3297 #endif3298 3299 #if defined(PNG_WRITE_oFFs_SUPPORTED)3300 PNG_EXTERN void png_write_oFFs PNGARG((png_structp png_ptr,3301 png_int_32 x_offset, png_int_32 y_offset, int unit_type));3302 #endif3303 3304 #if defined(PNG_WRITE_pCAL_SUPPORTED)3305 PNG_EXTERN void png_write_pCAL PNGARG((png_structp png_ptr, png_charp purpose,3306 png_int_32 X0, png_int_32 X1, int type, int nparams,3307 png_charp units, png_charpp params));3308 #endif3309 3310 #if defined(PNG_WRITE_pHYs_SUPPORTED)3311 PNG_EXTERN void png_write_pHYs PNGARG((png_structp png_ptr,3312 png_uint_32 x_pixels_per_unit, png_uint_32 y_pixels_per_unit,3313 int unit_type));3314 #endif3315 3316 #if defined(PNG_WRITE_tIME_SUPPORTED)3317 PNG_EXTERN void png_write_tIME PNGARG((png_structp png_ptr,3318 png_timep mod_time));3319 #endif3320 3321 #if defined(PNG_WRITE_sCAL_SUPPORTED)3322 #if defined(PNG_FLOATING_POINT_SUPPORTED) && !defined(PNG_NO_STDIO)3323 PNG_EXTERN void png_write_sCAL PNGARG((png_structp png_ptr,3324 int unit, double width, double height));3325 #else3326 #ifdef PNG_FIXED_POINT_SUPPORTED3327 PNG_EXTERN void png_write_sCAL_s PNGARG((png_structp png_ptr,3328 int unit, png_charp width, png_charp height));3329 #endif3330 #endif3331 #endif3332 3333 /* Called when finished processing a row of data */3334 PNG_EXTERN void png_write_finish_row PNGARG((png_structp png_ptr));3335 3336 /* Internal use only. Called before first row of data */3337 PNG_EXTERN void png_write_start_row PNGARG((png_structp png_ptr));3338 3339 #if defined(PNG_READ_GAMMA_SUPPORTED)3340 PNG_EXTERN void png_build_gamma_table PNGARG((png_structp png_ptr));3341 #endif3342 3343 /* Combine a row of data, dealing with alpha, etc. if requested */3344 PNG_EXTERN void png_combine_row PNGARG((png_structp png_ptr, png_bytep row,3345 int mask));3346 3347 #if defined(PNG_READ_INTERLACING_SUPPORTED)3348 /* Expand an interlaced row */3349 /* OLD pre-1.0.9 interface:3350 PNG_EXTERN void png_do_read_interlace PNGARG((png_row_infop row_info,3351 png_bytep row, int pass, png_uint_32 transformations));3352 */3353 PNG_EXTERN void png_do_read_interlace PNGARG((png_structp png_ptr));3354 #endif3355 3356 /* GRR TO DO (2.0 or whenever): simplify other internal calling interfaces */3357 3358 #if defined(PNG_WRITE_INTERLACING_SUPPORTED)3359 /* Grab pixels out of a row for an interlaced pass */3360 PNG_EXTERN void png_do_write_interlace PNGARG((png_row_infop row_info,3361 png_bytep row, int pass));3362 #endif3363 3364 /* Unfilter a row */3365 PNG_EXTERN void png_read_filter_row PNGARG((png_structp png_ptr,3366 png_row_infop row_info, png_bytep row, png_bytep prev_row, int filter));3367 3368 /* Choose the best filter to use and filter the row data */3369 PNG_EXTERN void png_write_find_filter PNGARG((png_structp png_ptr,3370 png_row_infop row_info));3371 3372 /* Write out the filtered row. */3373 PNG_EXTERN void png_write_filtered_row PNGARG((png_structp png_ptr,3374 png_bytep filtered_row));3375 /* Finish a row while reading, dealing with interlacing passes, etc. */3376 PNG_EXTERN void png_read_finish_row PNGARG((png_structp png_ptr));3377 3378 /* Initialize the row buffers, etc. */3379 PNG_EXTERN void png_read_start_row PNGARG((png_structp png_ptr));3380 /* Optional call to update the users info structure */3381 PNG_EXTERN void png_read_transform_info PNGARG((png_structp png_ptr,3382 png_infop info_ptr));3383 3384 /* These are the functions that do the transformations */3385 #if defined(PNG_READ_FILLER_SUPPORTED)3386 PNG_EXTERN void png_do_read_filler PNGARG((png_row_infop row_info,3387 png_bytep row, png_uint_32 filler, png_uint_32 flags));3388 #endif3389 3390 #if defined(PNG_READ_SWAP_ALPHA_SUPPORTED)3391 PNG_EXTERN void png_do_read_swap_alpha PNGARG((png_row_infop row_info,3392 png_bytep row));3393 #endif3394 3395 #if defined(PNG_WRITE_SWAP_ALPHA_SUPPORTED)3396 PNG_EXTERN void png_do_write_swap_alpha PNGARG((png_row_infop row_info,3397 png_bytep row));3398 #endif3399 3400 #if defined(PNG_READ_INVERT_ALPHA_SUPPORTED)3401 PNG_EXTERN void png_do_read_invert_alpha PNGARG((png_row_infop row_info,3402 png_bytep row));3403 #endif3404 3405 #if defined(PNG_WRITE_INVERT_ALPHA_SUPPORTED)3406 PNG_EXTERN void png_do_write_invert_alpha PNGARG((png_row_infop row_info,3407 png_bytep row));3408 #endif3409 3410 #if defined(PNG_WRITE_FILLER_SUPPORTED) || \3411 defined(PNG_READ_STRIP_ALPHA_SUPPORTED)3412 PNG_EXTERN void png_do_strip_filler PNGARG((png_row_infop row_info,3413 png_bytep row, png_uint_32 flags));3414 #endif3415 3416 #if defined(PNG_READ_SWAP_SUPPORTED) || defined(PNG_WRITE_SWAP_SUPPORTED)3417 PNG_EXTERN void png_do_swap PNGARG((png_row_infop row_info, png_bytep row));3418 #endif3419 3420 #if defined(PNG_READ_PACKSWAP_SUPPORTED) || defined(PNG_WRITE_PACKSWAP_SUPPORTED)3421 PNG_EXTERN void png_do_packswap PNGARG((png_row_infop row_info, png_bytep row));3422 #endif3423 3424 #if defined(PNG_READ_RGB_TO_GRAY_SUPPORTED)3425 PNG_EXTERN int png_do_rgb_to_gray PNGARG((png_structp png_ptr, png_row_infop3426 row_info, png_bytep row));3427 #endif3428 3429 #if defined(PNG_READ_GRAY_TO_RGB_SUPPORTED)3430 PNG_EXTERN void png_do_gray_to_rgb PNGARG((png_row_infop row_info,3431 png_bytep row));3432 #endif3433 3434 #if defined(PNG_READ_PACK_SUPPORTED)3435 PNG_EXTERN void png_do_unpack PNGARG((png_row_infop row_info, png_bytep row));3436 #endif3437 3438 #if defined(PNG_READ_SHIFT_SUPPORTED)3439 PNG_EXTERN void png_do_unshift PNGARG((png_row_infop row_info, png_bytep row,3440 png_color_8p sig_bits));3441 #endif3442 3443 #if defined(PNG_READ_INVERT_SUPPORTED) || defined(PNG_WRITE_INVERT_SUPPORTED)3444 PNG_EXTERN void png_do_invert PNGARG((png_row_infop row_info, png_bytep row));3445 #endif3446 3447 #if defined(PNG_READ_16_TO_8_SUPPORTED)3448 PNG_EXTERN void png_do_chop PNGARG((png_row_infop row_info, png_bytep row));3449 #endif3450 3451 #if defined(PNG_READ_DITHER_SUPPORTED)3452 PNG_EXTERN void png_do_dither PNGARG((png_row_infop row_info,3453 png_bytep row, png_bytep palette_lookup, png_bytep dither_lookup));3454 3455 # if defined(PNG_CORRECT_PALETTE_SUPPORTED)3456 PNG_EXTERN void png_correct_palette PNGARG((png_structp png_ptr,3457 png_colorp palette, int num_palette));3458 # endif3459 #endif3460 3461 #if defined(PNG_READ_BGR_SUPPORTED) || defined(PNG_WRITE_BGR_SUPPORTED)3462 PNG_EXTERN void png_do_bgr PNGARG((png_row_infop row_info, png_bytep row));3463 #endif3464 3465 #if defined(PNG_WRITE_PACK_SUPPORTED)3466 PNG_EXTERN void png_do_pack PNGARG((png_row_infop row_info,3467 png_bytep row, png_uint_32 bit_depth));3468 #endif3469 3470 #if defined(PNG_WRITE_SHIFT_SUPPORTED)3471 PNG_EXTERN void png_do_shift PNGARG((png_row_infop row_info, png_bytep row,3472 png_color_8p bit_depth));3473 #endif3474 3475 #if defined(PNG_READ_BACKGROUND_SUPPORTED)3476 #if defined(PNG_READ_GAMMA_SUPPORTED)3477 PNG_EXTERN void png_do_background PNGARG((png_row_infop row_info, png_bytep row,3478 png_color_16p trans_values, png_color_16p background,3479 png_color_16p background_1,3480 png_bytep gamma_table, png_bytep gamma_from_1, png_bytep gamma_to_1,3481 png_uint_16pp gamma_16, png_uint_16pp gamma_16_from_1,3482 png_uint_16pp gamma_16_to_1, int gamma_shift));3483 #else3484 PNG_EXTERN void png_do_background PNGARG((png_row_infop row_info, png_bytep row,3485 png_color_16p trans_values, png_color_16p background));3486 #endif3487 #endif3488 3489 #if defined(PNG_READ_GAMMA_SUPPORTED)3490 PNG_EXTERN void png_do_gamma PNGARG((png_row_infop row_info, png_bytep row,3491 png_bytep gamma_table, png_uint_16pp gamma_16_table,3492 int gamma_shift));3493 #endif3494 3495 #if defined(PNG_READ_EXPAND_SUPPORTED)3496 PNG_EXTERN void png_do_expand_palette PNGARG((png_row_infop row_info,3497 png_bytep row, png_colorp palette, png_bytep trans, int num_trans));3498 PNG_EXTERN void png_do_expand PNGARG((png_row_infop row_info,3499 png_bytep row, png_color_16p trans_value));3500 #endif3501 3502 /* The following decodes the appropriate chunks, and does error correction,3503 * then calls the appropriate callback for the chunk if it is valid.3504 */3505 3506 /* Decode the IHDR chunk */3507 PNG_EXTERN void png_handle_IHDR PNGARG((png_structp png_ptr, png_infop info_ptr,3508 png_uint_32 length));3509 PNG_EXTERN void png_handle_PLTE PNGARG((png_structp png_ptr, png_infop info_ptr,3510 png_uint_32 length));3511 PNG_EXTERN void png_handle_IEND PNGARG((png_structp png_ptr, png_infop info_ptr,3512 png_uint_32 length));3513 3514 #if defined(PNG_READ_bKGD_SUPPORTED)3515 PNG_EXTERN void png_handle_bKGD PNGARG((png_structp png_ptr, png_infop info_ptr,3516 png_uint_32 length));3517 #endif3518 3519 #if defined(PNG_READ_cHRM_SUPPORTED)3520 PNG_EXTERN void png_handle_cHRM PNGARG((png_structp png_ptr, png_infop info_ptr,3521 png_uint_32 length));3522 #endif3523 3524 #if defined(PNG_READ_gAMA_SUPPORTED)3525 PNG_EXTERN void png_handle_gAMA PNGARG((png_structp png_ptr, png_infop info_ptr,3526 png_uint_32 length));3527 #endif3528 3529 #if defined(PNG_READ_hIST_SUPPORTED)3530 PNG_EXTERN void png_handle_hIST PNGARG((png_structp png_ptr, png_infop info_ptr,3531 png_uint_32 length));3532 #endif3533 3534 #if defined(PNG_READ_iCCP_SUPPORTED)3535 extern void png_handle_iCCP PNGARG((png_structp png_ptr, png_infop info_ptr,3536 png_uint_32 length));3537 #endif /* PNG_READ_iCCP_SUPPORTED */3538 3539 #if defined(PNG_READ_iTXt_SUPPORTED)3540 PNG_EXTERN void png_handle_iTXt PNGARG((png_structp png_ptr, png_infop info_ptr,3541 png_uint_32 length));3542 #endif3543 3544 #if defined(PNG_READ_oFFs_SUPPORTED)3545 PNG_EXTERN void png_handle_oFFs PNGARG((png_structp png_ptr, png_infop info_ptr,3546 png_uint_32 length));3547 #endif3548 3549 #if defined(PNG_READ_pCAL_SUPPORTED)3550 PNG_EXTERN void png_handle_pCAL PNGARG((png_structp png_ptr, png_infop info_ptr,3551 png_uint_32 length));3552 #endif3553 3554 #if defined(PNG_READ_pHYs_SUPPORTED)3555 PNG_EXTERN void png_handle_pHYs PNGARG((png_structp png_ptr, png_infop info_ptr,3556 png_uint_32 length));3557 #endif3558 3559 #if defined(PNG_READ_sBIT_SUPPORTED)3560 PNG_EXTERN void png_handle_sBIT PNGARG((png_structp png_ptr, png_infop info_ptr,3561 png_uint_32 length));3562 #endif3563 3564 #if defined(PNG_READ_sCAL_SUPPORTED)3565 PNG_EXTERN void png_handle_sCAL PNGARG((png_structp png_ptr, png_infop info_ptr,3566 png_uint_32 length));3567 #endif3568 3569 #if defined(PNG_READ_sPLT_SUPPORTED)3570 extern void png_handle_sPLT PNGARG((png_structp png_ptr, png_infop info_ptr,3571 png_uint_32 length));3572 #endif /* PNG_READ_sPLT_SUPPORTED */3573 3574 #if defined(PNG_READ_sRGB_SUPPORTED)3575 PNG_EXTERN void png_handle_sRGB PNGARG((png_structp png_ptr, png_infop info_ptr,3576 png_uint_32 length));3577 #endif3578 3579 #if defined(PNG_READ_tEXt_SUPPORTED)3580 PNG_EXTERN void png_handle_tEXt PNGARG((png_structp png_ptr, png_infop info_ptr,3581 png_uint_32 length));3582 #endif3583 3584 #if defined(PNG_READ_tIME_SUPPORTED)3585 PNG_EXTERN void png_handle_tIME PNGARG((png_structp png_ptr, png_infop info_ptr,3586 png_uint_32 length));3587 #endif3588 3589 #if defined(PNG_READ_tRNS_SUPPORTED)3590 PNG_EXTERN void png_handle_tRNS PNGARG((png_structp png_ptr, png_infop info_ptr,3591 png_uint_32 length));3592 #endif3593 3594 #if defined(PNG_READ_zTXt_SUPPORTED)3595 PNG_EXTERN void png_handle_zTXt PNGARG((png_structp png_ptr, png_infop info_ptr,3596 png_uint_32 length));3597 #endif3598 3599 PNG_EXTERN void png_handle_unknown PNGARG((png_structp png_ptr,3600 png_infop info_ptr, png_uint_32 length));3601 3602 PNG_EXTERN void png_check_chunk_name PNGARG((png_structp png_ptr,3603 png_bytep chunk_name));3604 3605 /* Handle the transformations for reading and writing */3606 PNG_EXTERN void png_do_read_transformations PNGARG((png_structp png_ptr));3607 PNG_EXTERN void png_do_write_transformations PNGARG((png_structp png_ptr));3608 3609 PNG_EXTERN void png_init_read_transformations PNGARG((png_structp png_ptr));3610 3611 #ifdef PNG_PROGRESSIVE_READ_SUPPORTED3612 PNG_EXTERN void png_push_read_chunk PNGARG((png_structp png_ptr,3613 png_infop info_ptr));3614 PNG_EXTERN void png_push_read_sig PNGARG((png_structp png_ptr,3615 png_infop info_ptr));3616 PNG_EXTERN void png_push_check_crc PNGARG((png_structp png_ptr));3617 PNG_EXTERN void png_push_crc_skip PNGARG((png_structp png_ptr,3618 png_uint_32 length));3619 PNG_EXTERN void png_push_crc_finish PNGARG((png_structp png_ptr));3620 PNG_EXTERN void png_push_save_buffer PNGARG((png_structp png_ptr));3621 PNG_EXTERN void png_push_restore_buffer PNGARG((png_structp png_ptr,3622 png_bytep buffer, png_size_t buffer_length));3623 PNG_EXTERN void png_push_read_IDAT PNGARG((png_structp png_ptr));3624 PNG_EXTERN void png_process_IDAT_data PNGARG((png_structp png_ptr,3625 png_bytep buffer, png_size_t buffer_length));3626 PNG_EXTERN void png_push_process_row PNGARG((png_structp png_ptr));3627 PNG_EXTERN void png_push_handle_unknown PNGARG((png_structp png_ptr,3628 png_infop info_ptr, png_uint_32 length));3629 PNG_EXTERN void png_push_have_info PNGARG((png_structp png_ptr,3630 png_infop info_ptr));3631 PNG_EXTERN void png_push_have_end PNGARG((png_structp png_ptr,3632 png_infop info_ptr));3633 PNG_EXTERN void png_push_have_row PNGARG((png_structp png_ptr, png_bytep row));3634 PNG_EXTERN void png_push_read_end PNGARG((png_structp png_ptr,3635 png_infop info_ptr));3636 PNG_EXTERN void png_process_some_data PNGARG((png_structp png_ptr,3637 png_infop info_ptr));3638 PNG_EXTERN void png_read_push_finish_row PNGARG((png_structp png_ptr));3639 #if defined(PNG_READ_tEXt_SUPPORTED)3640 PNG_EXTERN void png_push_handle_tEXt PNGARG((png_structp png_ptr,3641 png_infop info_ptr, png_uint_32 length));3642 PNG_EXTERN void png_push_read_tEXt PNGARG((png_structp png_ptr,3643 png_infop info_ptr));3644 #endif3645 #if defined(PNG_READ_zTXt_SUPPORTED)3646 PNG_EXTERN void png_push_handle_zTXt PNGARG((png_structp png_ptr,3647 png_infop info_ptr, png_uint_32 length));3648 PNG_EXTERN void png_push_read_zTXt PNGARG((png_structp png_ptr,3649 png_infop info_ptr));3650 #endif3651 #if defined(PNG_READ_iTXt_SUPPORTED)3652 PNG_EXTERN void png_push_handle_iTXt PNGARG((png_structp png_ptr,3653 png_infop info_ptr, png_uint_32 length));3654 PNG_EXTERN void png_push_read_iTXt PNGARG((png_structp png_ptr,3655 png_infop info_ptr));3656 #endif3657 3658 #endif /* PNG_PROGRESSIVE_READ_SUPPORTED */3659 3660 #ifdef PNG_MNG_FEATURES_SUPPORTED3661 PNG_EXTERN void png_do_read_intrapixel PNGARG((png_row_infop row_info,3662 png_bytep row));3663 PNG_EXTERN void png_do_write_intrapixel PNGARG((png_row_infop row_info,3664 png_bytep row));3665 #endif3666 3667 #if defined(PNG_ASSEMBLER_CODE_SUPPORTED)3668 #if defined(PNG_MMX_CODE_SUPPORTED)3669 /* png.c */ /* PRIVATE */3670 PNG_EXTERN void png_init_mmx_flags PNGARG((png_structp png_ptr));3671 #endif3672 #endif3673 3674 #if defined(PNG_INCH_CONVERSIONS) && defined(PNG_FLOATING_POINT_SUPPORTED)3675 PNG_EXTERN png_uint_32 png_get_pixels_per_inch PNGARG((png_structp png_ptr,3676 png_infop info_ptr));3677 3678 PNG_EXTERN png_uint_32 png_get_x_pixels_per_inch PNGARG((png_structp png_ptr,3679 png_infop info_ptr));3680 3681 PNG_EXTERN png_uint_32 png_get_y_pixels_per_inch PNGARG((png_structp png_ptr,3682 png_infop info_ptr));3683 3684 PNG_EXTERN float png_get_x_offset_inches PNGARG((png_structp png_ptr,3685 png_infop info_ptr));3686 3687 PNG_EXTERN float png_get_y_offset_inches PNGARG((png_structp png_ptr,3688 png_infop info_ptr));3689 3690 #if defined(PNG_pHYs_SUPPORTED)3691 PNG_EXTERN png_uint_32 png_get_pHYs_dpi PNGARG((png_structp png_ptr,3692 png_infop info_ptr, png_uint_32 *res_x, png_uint_32 *res_y, int *unit_type));3693 #endif /* PNG_pHYs_SUPPORTED */3694 #endif /* PNG_INCH_CONVERSIONS && PNG_FLOATING_POINT_SUPPORTED */3695 3696 /* Read the chunk header (length + type name) */3697 PNG_EXTERN png_uint_32 png_read_chunk_header PNGARG((png_structp png_ptr));3698 3699 /* Added at libpng version 1.2.34 */3700 #if defined(PNG_cHRM_SUPPORTED)3701 PNG_EXTERN int png_check_cHRM_fixed PNGARG((png_structp png_ptr,3702 png_fixed_point int_white_x, png_fixed_point int_white_y,3703 png_fixed_point int_red_x, png_fixed_point int_red_y, png_fixed_point3704 int_green_x, png_fixed_point int_green_y, png_fixed_point int_blue_x,3705 png_fixed_point int_blue_y));3706 #endif3707 3708 #if defined(PNG_cHRM_SUPPORTED)3709 #if !defined(PNG_NO_CHECK_cHRM)3710 /* Added at libpng version 1.2.34 */3711 PNG_EXTERN void png_64bit_product (long v1, long v2, unsigned long *hi_product,3712 unsigned long *lo_product);3713 #endif3714 #endif3715 3716 /* Maintainer: Put new private prototypes here ^ and in libpngpf.3 */3717 3718 #endif /* PNG_INTERNAL */3719 2545 3720 2546 #ifdef __cplusplus
Note:
See TracChangeset
for help on using the changeset viewer.