Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(141)

Side by Side Diff: third_party/libpng/png.h

Issue 1118002: libpng: update to 1.2.43 (Closed)
Patch Set: Created 10 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* png.h - header file for PNG reference library 1 /* png.h - header file for PNG reference library
2 * 2 *
3 * libpng version 1.2.37 - June 4, 2009 3 * libpng version 1.2.43 - February 25, 2010
4 * Copyright (c) 1998-2009 Glenn Randers-Pehrson 4 * Copyright (c) 1998-2010 Glenn Randers-Pehrson
5 * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) 5 * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
6 * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) 6 * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
7 * 7 *
8 * This code is released under the libpng license (See LICENSE, below)
9 *
8 * Authors and maintainers: 10 * Authors and maintainers:
9 * libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat 11 * libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat
10 * libpng versions 0.89c, June 1996, through 0.96, May 1997: Andreas Dilger 12 * libpng versions 0.89c, June 1996, through 0.96, May 1997: Andreas Dilger
11 * libpng versions 0.97, January 1998, through 1.2.37 - June 4, 2009: Glenn 13 * libpng versions 0.97, January 1998, through 1.2.43 - February 25, 2010: Glen n
12 * See also "Contributing Authors", below. 14 * See also "Contributing Authors", below.
13 * 15 *
14 * Note about libpng version numbers: 16 * Note about libpng version numbers:
15 * 17 *
16 * Due to various miscommunications, unforeseen code incompatibilities 18 * Due to various miscommunications, unforeseen code incompatibilities
17 * and occasional factors outside the authors' control, version numbering 19 * and occasional factors outside the authors' control, version numbering
18 * on the library has not always been consistent and straightforward. 20 * on the library has not always been consistent and straightforward.
19 * The following table summarizes matters since version 0.89c, which was 21 * The following table summarizes matters since version 0.89c, which was
20 * the first widely used release: 22 * the first widely used release:
21 * 23 *
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after
222 * 1.2.35rc01-02 13 10235 12.so.0.35[.0] 224 * 1.2.35rc01-02 13 10235 12.so.0.35[.0]
223 * 1.0.43 10 10043 10.so.0.43[.0] 225 * 1.0.43 10 10043 10.so.0.43[.0]
224 * 1.2.35 13 10235 12.so.0.35[.0] 226 * 1.2.35 13 10235 12.so.0.35[.0]
225 * 1.2.36beta01-05 13 10236 12.so.0.36[.0] 227 * 1.2.36beta01-05 13 10236 12.so.0.36[.0]
226 * 1.2.36rc01 13 10236 12.so.0.36[.0] 228 * 1.2.36rc01 13 10236 12.so.0.36[.0]
227 * 1.0.44 10 10044 10.so.0.44[.0] 229 * 1.0.44 10 10044 10.so.0.44[.0]
228 * 1.2.36 13 10236 12.so.0.36[.0] 230 * 1.2.36 13 10236 12.so.0.36[.0]
229 * 1.2.37beta01-03 13 10237 12.so.0.37[.0] 231 * 1.2.37beta01-03 13 10237 12.so.0.37[.0]
230 * 1.2.37rc01 13 10237 12.so.0.37[.0] 232 * 1.2.37rc01 13 10237 12.so.0.37[.0]
231 * 1.2.37 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]
248 * 1.2.41beta01-18 13 10241 12.so.0.41[.0]
249 * 1.0.51rc01 10 10051 10.so.0.51[.0]
250 * 1.2.41rc01-03 13 10241 12.so.0.41[.0]
251 * 1.0.51 10 10051 10.so.0.51[.0]
252 * 1.2.41 13 10241 12.so.0.41[.0]
253 * 1.2.42beta01-02 13 10242 12.so.0.42[.0]
254 * 1.2.42rc01-05 13 10242 12.so.0.42[.0]
255 * 1.0.52 10 10052 10.so.0.52[.0]
256 * 1.2.42 13 10242 12.so.0.42[.0]
257 * 1.2.43beta01-05 13 10243 12.so.0.43[.0]
258 * 1.0.53rc01-02 10 10053 10.so.0.53[.0]
259 * 1.2.43rc01-02 13 10243 12.so.0.43[.0]
260 * 1.0.53 10 10053 10.so.0.53[.0]
261 * 1.2.43 13 10243 12.so.0.43[.0]
232 * 262 *
233 * Henceforth the source version will match the shared-library major 263 * Henceforth the source version will match the shared-library major
234 * and minor numbers; the shared-library major version number will be 264 * and minor numbers; the shared-library major version number will be
235 * used for changes in backward compatibility, as it is intended. The 265 * used for changes in backward compatibility, as it is intended. The
236 * PNG_LIBPNG_VER macro, which is not used within libpng but is available 266 * PNG_LIBPNG_VER macro, which is not used within libpng but is available
237 * for applications, is an unsigned integer of the form xyyzz corresponding 267 * for applications, is an unsigned integer of the form xyyzz corresponding
238 * to the source version x.y.z (leading zeros in y and z). Beta versions 268 * to the source version x.y.z (leading zeros in y and z). Beta versions
239 * were given the previous public release number plus a letter, until 269 * were given the previous public release number plus a letter, until
240 * version 1.0.6j; from then on they were given the upcoming public 270 * version 1.0.6j; from then on they were given the upcoming public
241 * release number plus "betaNN" or "rcNN". 271 * release number plus "betaNN" or "rcNN".
242 * 272 *
243 * Binary incompatibility exists only when applications make direct access 273 * Binary incompatibility exists only when applications make direct access
244 * to the info_ptr or png_ptr members through png.h, and the compiled 274 * to the info_ptr or png_ptr members through png.h, and the compiled
245 * application is loaded with a different version of the library. 275 * application is loaded with a different version of the library.
246 * 276 *
247 * DLLNUM will change each time there are forward or backward changes 277 * DLLNUM will change each time there are forward or backward changes
248 * in binary compatibility (e.g., when a new feature is added). 278 * in binary compatibility (e.g., when a new feature is added).
249 * 279 *
250 * See libpng.txt or libpng.3 for more information. The PNG specification 280 * See libpng.txt or libpng.3 for more information. The PNG specification
251 * is available as a W3C Recommendation and as an ISO Specification, 281 * is available as a W3C Recommendation and as an ISO Specification,
252 * <http://www.w3.org/TR/2003/REC-PNG-20031110/ 282 * <http://www.w3.org/TR/2003/REC-PNG-20031110/
253 */ 283 */
254 284
255 /* 285 /*
256 * COPYRIGHT NOTICE, DISCLAIMER, and LICENSE: 286 * COPYRIGHT NOTICE, DISCLAIMER, and LICENSE:
257 * 287 *
258 * If you modify libpng you may insert additional notices immediately following 288 * If you modify libpng you may insert additional notices immediately following
259 * this sentence. 289 * this sentence.
260 * 290 *
261 * libpng versions 1.2.6, August 15, 2004, through 1.2.37, June 4, 2009, are 291 * This code is released under the libpng license.
262 * Copyright (c) 2004, 2006-2009 Glenn Randers-Pehrson, and are 292 *
293 * libpng versions 1.2.6, August 15, 2004, through 1.2.43, February 25, 2010, ar e
294 * Copyright (c) 2004, 2006-2010 Glenn Randers-Pehrson, and are
263 * distributed according to the same disclaimer and license as libpng-1.2.5 295 * distributed according to the same disclaimer and license as libpng-1.2.5
264 * with the following individual added to the list of Contributing Authors: 296 * with the following individual added to the list of Contributing Authors:
265 * 297 *
266 * Cosmin Truta 298 * Cosmin Truta
267 * 299 *
268 * libpng versions 1.0.7, July 1, 2000, through 1.2.5, October 3, 2002, are 300 * libpng versions 1.0.7, July 1, 2000, through 1.2.5, October 3, 2002, are
269 * Copyright (c) 2000-2002 Glenn Randers-Pehrson, and are 301 * Copyright (c) 2000-2002 Glenn Randers-Pehrson, and are
270 * distributed according to the same disclaimer and license as libpng-1.0.6 302 * distributed according to the same disclaimer and license as libpng-1.0.6
271 * with the following individuals added to the list of Contributing Authors: 303 * with the following individuals added to the list of Contributing Authors:
272 * 304 *
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
363 * with testing, bug fixes, and patience. This wouldn't have been 395 * with testing, bug fixes, and patience. This wouldn't have been
364 * possible without all of you. 396 * possible without all of you.
365 * 397 *
366 * Thanks to Frank J. T. Wojcik for helping with the documentation. 398 * Thanks to Frank J. T. Wojcik for helping with the documentation.
367 */ 399 */
368 400
369 /* 401 /*
370 * Y2K compliance in libpng: 402 * Y2K compliance in libpng:
371 * ========================= 403 * =========================
372 * 404 *
373 * June 4, 2009 405 * February 25, 2010
374 * 406 *
375 * Since the PNG Development group is an ad-hoc body, we can't make 407 * Since the PNG Development group is an ad-hoc body, we can't make
376 * an official declaration. 408 * an official declaration.
377 * 409 *
378 * This is your unofficial assurance that libpng from version 0.71 and 410 * This is your unofficial assurance that libpng from version 0.71 and
379 * upward through 1.2.37 are Y2K compliant. It is my belief that earlier 411 * upward through 1.2.43 are Y2K compliant. It is my belief that earlier
380 * versions were also Y2K compliant. 412 * versions were also Y2K compliant.
381 * 413 *
382 * Libpng only has three year fields. One is a 2-byte unsigned integer 414 * Libpng only has three year fields. One is a 2-byte unsigned integer
383 * that will hold years up to 65535. The other two hold the date in text 415 * that will hold years up to 65535. The other two hold the date in text
384 * format, and will hold years up to 9999. 416 * format, and will hold years up to 9999.
385 * 417 *
386 * The integer is 418 * The integer is
387 * "png_uint_16 year" in png_time_struct. 419 * "png_uint_16 year" in png_time_struct.
388 * 420 *
389 * The strings are 421 * The strings are
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
425 #ifndef PNG_H 457 #ifndef PNG_H
426 #define PNG_H 458 #define PNG_H
427 459
428 /* This is not the place to learn how to use libpng. The file libpng.txt 460 /* This is not the place to learn how to use libpng. The file libpng.txt
429 * describes how to use libpng, and the file example.c summarizes it 461 * describes how to use libpng, and the file example.c summarizes it
430 * with some code on which to build. This file is useful for looking 462 * with some code on which to build. This file is useful for looking
431 * at the actual function definitions and structure components. 463 * at the actual function definitions and structure components.
432 */ 464 */
433 465
434 /* Version information for png.h - this should match the version in png.c */ 466 /* Version information for png.h - this should match the version in png.c */
435 #define PNG_LIBPNG_VER_STRING "1.2.37" 467 #define PNG_LIBPNG_VER_STRING "1.2.43"
436 #define PNG_HEADER_VERSION_STRING \ 468 #define PNG_HEADER_VERSION_STRING \
437 " libpng version 1.2.37 - June 4, 2009\n" 469 " libpng version 1.2.43 - February 25, 2010\n"
438 470
439 #define PNG_LIBPNG_VER_SONUM 0 471 #define PNG_LIBPNG_VER_SONUM 0
440 #define PNG_LIBPNG_VER_DLLNUM 13 472 #define PNG_LIBPNG_VER_DLLNUM 13
441 473
442 /* These should match the first 3 components of PNG_LIBPNG_VER_STRING: */ 474 /* These should match the first 3 components of PNG_LIBPNG_VER_STRING: */
443 #define PNG_LIBPNG_VER_MAJOR 1 475 #define PNG_LIBPNG_VER_MAJOR 1
444 #define PNG_LIBPNG_VER_MINOR 2 476 #define PNG_LIBPNG_VER_MINOR 2
445 #define PNG_LIBPNG_VER_RELEASE 37 477 #define PNG_LIBPNG_VER_RELEASE 43
446 /* This should match the numeric part of the final component of 478 /* This should match the numeric part of the final component of
447 * PNG_LIBPNG_VER_STRING, omitting any leading zero: */ 479 * PNG_LIBPNG_VER_STRING, omitting any leading zero:
480 */
448 481
449 #define PNG_LIBPNG_VER_BUILD 0 482 #define PNG_LIBPNG_VER_BUILD 0
450 483
451 /* Release Status */ 484 /* Release Status */
452 #define PNG_LIBPNG_BUILD_ALPHA 1 485 #define PNG_LIBPNG_BUILD_ALPHA 1
453 #define PNG_LIBPNG_BUILD_BETA 2 486 #define PNG_LIBPNG_BUILD_BETA 2
454 #define PNG_LIBPNG_BUILD_RC 3 487 #define PNG_LIBPNG_BUILD_RC 3
455 #define PNG_LIBPNG_BUILD_STABLE 4 488 #define PNG_LIBPNG_BUILD_STABLE 4
456 #define PNG_LIBPNG_BUILD_RELEASE_STATUS_MASK 7 489 #define PNG_LIBPNG_BUILD_RELEASE_STATUS_MASK 7
457 490
458 /* Release-Specific Flags */ 491 /* Release-Specific Flags */
459 #define PNG_LIBPNG_BUILD_PATCH 8 /* Can be OR'ed with 492 #define PNG_LIBPNG_BUILD_PATCH 8 /* Can be OR'ed with
460 PNG_LIBPNG_BUILD_STABLE only */ 493 PNG_LIBPNG_BUILD_STABLE only */
461 #define PNG_LIBPNG_BUILD_PRIVATE 16 /* Cannot be OR'ed with 494 #define PNG_LIBPNG_BUILD_PRIVATE 16 /* Cannot be OR'ed with
462 PNG_LIBPNG_BUILD_SPECIAL */ 495 PNG_LIBPNG_BUILD_SPECIAL */
463 #define PNG_LIBPNG_BUILD_SPECIAL 32 /* Cannot be OR'ed with 496 #define PNG_LIBPNG_BUILD_SPECIAL 32 /* Cannot be OR'ed with
464 PNG_LIBPNG_BUILD_PRIVATE */ 497 PNG_LIBPNG_BUILD_PRIVATE */
465 498
466 #define PNG_LIBPNG_BUILD_BASE_TYPE PNG_LIBPNG_BUILD_STABLE 499 #define PNG_LIBPNG_BUILD_BASE_TYPE PNG_LIBPNG_BUILD_STABLE
467 500
468 /* Careful here. At one time, Guy wanted to use 082, but that would be octal. 501 /* Careful here. At one time, Guy wanted to use 082, but that would be octal.
469 * We must not include leading zeros. 502 * We must not include leading zeros.
470 * Versions 0.7 through 1.0.0 were in the range 0 to 100 here (only 503 * Versions 0.7 through 1.0.0 were in the range 0 to 100 here (only
471 * version 1.0.0 was mis-numbered 100 instead of 10000). From 504 * version 1.0.0 was mis-numbered 100 instead of 10000). From
472 * version 1.0.1 it's xxyyzz, where x=major, y=minor, z=release */ 505 * version 1.0.1 it's xxyyzz, where x=major, y=minor, z=release
473 #define PNG_LIBPNG_VER 10237 /* 1.2.37 */ 506 */
507 #define PNG_LIBPNG_VER 10243 /* 1.2.43 */
474 508
475 #ifndef PNG_VERSION_INFO_ONLY 509 #ifndef PNG_VERSION_INFO_ONLY
476 /* include the compression library's header */ 510 /* Include the compression library's header */
477 #include "zlib.h" 511 #include "zlib.h"
478 #endif 512 #endif
479 513
480 /* include all user configurable info, including optional assembler routines */ 514 /* Include all user configurable info, including optional assembler routines */
481 #include "pngconf.h" 515 #include "pngconf.h"
482 516
483 /* 517 /*
484 * Added at libpng-1.2.8 */ 518 * Added at libpng-1.2.8 */
485 /* Ref MSDN: Private as priority over Special 519 /* Ref MSDN: Private as priority over Special
486 * VS_FF_PRIVATEBUILD File *was not* built using standard release 520 * VS_FF_PRIVATEBUILD File *was not* built using standard release
487 * procedures. If this value is given, the StringFileInfo block must 521 * procedures. If this value is given, the StringFileInfo block must
488 * contain a PrivateBuild string. 522 * contain a PrivateBuild string.
489 * 523 *
490 * VS_FF_SPECIALBUILD File *was* built by the original company using 524 * VS_FF_SPECIALBUILD File *was* built by the original company using
491 * standard release procedures but is a variation of the standard 525 * standard release procedures but is a variation of the standard
492 * file of the same version number. If this value is given, the 526 * file of the same version number. If this value is given, the
493 * StringFileInfo block must contain a SpecialBuild string. 527 * StringFileInfo block must contain a SpecialBuild string.
494 */ 528 */
495 529
496 #if defined(PNG_USER_PRIVATEBUILD) 530 #ifdef PNG_USER_PRIVATEBUILD
497 # define PNG_LIBPNG_BUILD_TYPE \ 531 # define PNG_LIBPNG_BUILD_TYPE \
498 (PNG_LIBPNG_BUILD_BASE_TYPE | PNG_LIBPNG_BUILD_PRIVATE) 532 (PNG_LIBPNG_BUILD_BASE_TYPE | PNG_LIBPNG_BUILD_PRIVATE)
499 #else 533 #else
500 # if defined(PNG_LIBPNG_SPECIALBUILD) 534 # ifdef PNG_LIBPNG_SPECIALBUILD
501 # define PNG_LIBPNG_BUILD_TYPE \ 535 # define PNG_LIBPNG_BUILD_TYPE \
502 (PNG_LIBPNG_BUILD_BASE_TYPE | PNG_LIBPNG_BUILD_SPECIAL) 536 (PNG_LIBPNG_BUILD_BASE_TYPE | PNG_LIBPNG_BUILD_SPECIAL)
503 # else 537 # else
504 # define PNG_LIBPNG_BUILD_TYPE (PNG_LIBPNG_BUILD_BASE_TYPE) 538 # define PNG_LIBPNG_BUILD_TYPE (PNG_LIBPNG_BUILD_BASE_TYPE)
505 # endif 539 # endif
506 #endif 540 #endif
507 541
508 #ifndef PNG_VERSION_INFO_ONLY 542 #ifndef PNG_VERSION_INFO_ONLY
509 543
510 /* Inhibit C++ name-mangling for libpng functions but not for system calls. */ 544 /* Inhibit C++ name-mangling for libpng functions but not for system calls. */
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
545 #define png_infopp_NULL NULL 579 #define png_infopp_NULL NULL
546 #define png_malloc_ptr_NULL NULL 580 #define png_malloc_ptr_NULL NULL
547 #define png_read_status_ptr_NULL NULL 581 #define png_read_status_ptr_NULL NULL
548 #define png_rw_ptr_NULL NULL 582 #define png_rw_ptr_NULL NULL
549 #define png_structp_NULL NULL 583 #define png_structp_NULL NULL
550 #define png_uint_16p_NULL NULL 584 #define png_uint_16p_NULL NULL
551 #define png_voidp_NULL NULL 585 #define png_voidp_NULL NULL
552 #define png_write_status_ptr_NULL NULL 586 #define png_write_status_ptr_NULL NULL
553 #endif 587 #endif
554 588
555 /* variables declared in png.c - only it needs to define PNG_NO_EXTERN */ 589 /* Variables declared in png.c - only it needs to define PNG_NO_EXTERN */
556 #if !defined(PNG_NO_EXTERN) || defined(PNG_ALWAYS_EXTERN) 590 #if !defined(PNG_NO_EXTERN) || defined(PNG_ALWAYS_EXTERN)
557 /* Version information for C files, stored in png.c. This had better match 591 /* Version information for C files, stored in png.c. This had better match
558 * the version above. 592 * the version above.
559 */ 593 */
560 #ifdef PNG_USE_GLOBAL_ARRAYS 594 #ifdef PNG_USE_GLOBAL_ARRAYS
561 PNG_EXPORT_VAR (PNG_CONST char) png_libpng_ver[18]; 595 PNG_EXPORT_VAR (PNG_CONST char) png_libpng_ver[18];
562 /* need room for 99.99.99beta99z */ 596 /* Need room for 99.99.99beta99z */
563 #else 597 #else
564 #define png_libpng_ver png_get_header_ver(NULL) 598 #define png_libpng_ver png_get_header_ver(NULL)
565 #endif 599 #endif
566 600
567 #ifdef PNG_USE_GLOBAL_ARRAYS 601 #ifdef PNG_USE_GLOBAL_ARRAYS
568 /* This was removed in version 1.0.5c */ 602 /* This was removed in version 1.0.5c */
569 /* Structures to facilitate easy interlacing. See png.c for more details */ 603 /* Structures to facilitate easy interlacing. See png.c for more details */
570 PNG_EXPORT_VAR (PNG_CONST int FARDATA) png_pass_start[7]; 604 PNG_EXPORT_VAR (PNG_CONST int FARDATA) png_pass_start[7];
571 PNG_EXPORT_VAR (PNG_CONST int FARDATA) png_pass_inc[7]; 605 PNG_EXPORT_VAR (PNG_CONST int FARDATA) png_pass_inc[7];
572 PNG_EXPORT_VAR (PNG_CONST int FARDATA) png_pass_ystart[7]; 606 PNG_EXPORT_VAR (PNG_CONST int FARDATA) png_pass_ystart[7];
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
671 or a NULL pointer */ 705 or a NULL pointer */
672 png_charp lang_key; /* keyword translated UTF-8 string, 0 or more 706 png_charp lang_key; /* keyword translated UTF-8 string, 0 or more
673 chars or a NULL pointer */ 707 chars or a NULL pointer */
674 #endif 708 #endif
675 } png_text; 709 } png_text;
676 typedef png_text FAR * png_textp; 710 typedef png_text FAR * png_textp;
677 typedef png_text FAR * FAR * png_textpp; 711 typedef png_text FAR * FAR * png_textpp;
678 #endif 712 #endif
679 713
680 /* Supported compression types for text in PNG files (tEXt, and zTXt). 714 /* Supported compression types for text in PNG files (tEXt, and zTXt).
681 * The values of the PNG_TEXT_COMPRESSION_ defines should NOT be changed. */ 715 * The values of the PNG_TEXT_COMPRESSION_ defines should NOT be changed.
716 */
682 #define PNG_TEXT_COMPRESSION_NONE_WR -3 717 #define PNG_TEXT_COMPRESSION_NONE_WR -3
683 #define PNG_TEXT_COMPRESSION_zTXt_WR -2 718 #define PNG_TEXT_COMPRESSION_zTXt_WR -2
684 #define PNG_TEXT_COMPRESSION_NONE -1 719 #define PNG_TEXT_COMPRESSION_NONE -1
685 #define PNG_TEXT_COMPRESSION_zTXt 0 720 #define PNG_TEXT_COMPRESSION_zTXt 0
686 #define PNG_ITXT_COMPRESSION_NONE 1 721 #define PNG_ITXT_COMPRESSION_NONE 1
687 #define PNG_ITXT_COMPRESSION_zTXt 2 722 #define PNG_ITXT_COMPRESSION_zTXt 2
688 #define PNG_TEXT_COMPRESSION_LAST 3 /* Not a valid value */ 723 #define PNG_TEXT_COMPRESSION_LAST 3 /* Not a valid value */
689 724
690 /* png_time is a way to hold the time in an machine independent way. 725 /* png_time is a way to hold the time in an machine independent way.
691 * Two conversions are provided, both from time_t and struct tm. There 726 * Two conversions are provided, both from time_t and struct tm. There
692 * is no portable way to convert to either of these structures, as far 727 * is no portable way to convert to either of these structures, as far
693 * as I know. If you know of a portable way, send it to me. As a side 728 * as I know. If you know of a portable way, send it to me. As a side
694 * note - PNG has always been Year 2000 compliant! 729 * note - PNG has always been Year 2000 compliant!
695 */ 730 */
696 typedef struct png_time_struct 731 typedef struct png_time_struct
697 { 732 {
698 png_uint_16 year; /* full year, as in, 1995 */ 733 png_uint_16 year; /* full year, as in, 1995 */
699 png_byte month; /* month of year, 1 - 12 */ 734 png_byte month; /* month of year, 1 - 12 */
700 png_byte day; /* day of month, 1 - 31 */ 735 png_byte day; /* day of month, 1 - 31 */
701 png_byte hour; /* hour of day, 0 - 23 */ 736 png_byte hour; /* hour of day, 0 - 23 */
702 png_byte minute; /* minute of hour, 0 - 59 */ 737 png_byte minute; /* minute of hour, 0 - 59 */
703 png_byte second; /* second of minute, 0 - 60 (for leap seconds) */ 738 png_byte second; /* second of minute, 0 - 60 (for leap seconds) */
704 } png_time; 739 } png_time;
705 typedef png_time FAR * png_timep; 740 typedef png_time FAR * png_timep;
706 typedef png_time FAR * FAR * png_timepp; 741 typedef png_time FAR * FAR * png_timepp;
707 742
708 #if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED) 743 #if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED) || \
744 defined(PNG_HANDLE_AS_UNKNOWN_SUPPORTED)
709 /* png_unknown_chunk is a structure to hold queued chunks for which there is 745 /* png_unknown_chunk is a structure to hold queued chunks for which there is
710 * no specific support. The idea is that we can use this to queue 746 * no specific support. The idea is that we can use this to queue
711 * up private chunks for output even though the library doesn't actually 747 * up private chunks for output even though the library doesn't actually
712 * know about their semantics. 748 * know about their semantics.
713 */ 749 */
714 #define PNG_CHUNK_NAME_LENGTH 5 750 #define PNG_CHUNK_NAME_LENGTH 5
715 typedef struct png_unknown_chunk_t 751 typedef struct png_unknown_chunk_t
716 { 752 {
717 png_byte name[PNG_CHUNK_NAME_LENGTH]; 753 png_byte name[PNG_CHUNK_NAME_LENGTH];
718 png_byte *data; 754 png_byte *data;
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
760 * functions. A function to clear these members is available: see 796 * functions. A function to clear these members is available: see
761 * png_free_data(). The png_set_* functions do not depend on being 797 * png_free_data(). The png_set_* functions do not depend on being
762 * able to point info structure members to any of the storage they are 798 * able to point info structure members to any of the storage they are
763 * passed (they make their own copies), EXCEPT that the png_set_text 799 * passed (they make their own copies), EXCEPT that the png_set_text
764 * functions use the same storage passed to them in the text_ptr or 800 * functions use the same storage passed to them in the text_ptr or
765 * itxt_ptr structure argument, and the png_set_rows and png_set_unknowns 801 * itxt_ptr structure argument, and the png_set_rows and png_set_unknowns
766 * functions do not make their own copies. 802 * functions do not make their own copies.
767 */ 803 */
768 typedef struct png_info_struct 804 typedef struct png_info_struct
769 { 805 {
770 /* the following are necessary for every PNG file */ 806 /* The following are necessary for every PNG file */
771 png_uint_32 width; /* width of image in pixels (from IHDR) */ 807 png_uint_32 width PNG_DEPSTRUCT; /* width of image in pixels (from IHDR ) */
772 png_uint_32 height; /* height of image in pixels (from IHDR) */ 808 png_uint_32 height PNG_DEPSTRUCT; /* height of image in pixels (from IHD R) */
773 png_uint_32 valid; /* valid chunk data (see PNG_INFO_ below) */ 809 png_uint_32 valid PNG_DEPSTRUCT; /* valid chunk data (see PNG_INFO_ bel ow) */
774 png_uint_32 rowbytes; /* bytes needed to hold an untransformed row */ 810 png_uint_32 rowbytes PNG_DEPSTRUCT; /* bytes needed to hold an untransform ed row */
775 png_colorp palette; /* array of color values (valid & PNG_INFO_PLTE) */ 811 png_colorp palette PNG_DEPSTRUCT; /* array of color values (valid & PNG_ INFO_PLTE) */
776 png_uint_16 num_palette; /* number of color entries in "palette" (PLTE) */ 812 png_uint_16 num_palette PNG_DEPSTRUCT; /* number of color entries in "palette " (PLTE) */
777 png_uint_16 num_trans; /* number of transparent palette color (tRNS) */ 813 png_uint_16 num_trans PNG_DEPSTRUCT; /* number of transparent palette color (tRNS) */
778 png_byte bit_depth; /* 1, 2, 4, 8, or 16 bits/channel (from IHDR) */ 814 png_byte bit_depth PNG_DEPSTRUCT; /* 1, 2, 4, 8, or 16 bits/channel (fro m IHDR) */
779 png_byte color_type; /* see PNG_COLOR_TYPE_ below (from IHDR) */ 815 png_byte color_type PNG_DEPSTRUCT; /* see PNG_COLOR_TYPE_ below (from IHD R) */
780 /* The following three should have been named *_method not *_type */ 816 /* The following three should have been named *_method not *_type */
781 png_byte compression_type; /* must be PNG_COMPRESSION_TYPE_BASE (IHDR) */ 817 png_byte compression_type PNG_DEPSTRUCT; /* must be PNG_COMPRESSION_TYPE_BASE (IHDR) */
782 png_byte filter_type; /* must be PNG_FILTER_TYPE_BASE (from IHDR) */ 818 png_byte filter_type PNG_DEPSTRUCT; /* must be PNG_FILTER_TYPE_BASE (from IHDR) */
783 png_byte interlace_type; /* One of PNG_INTERLACE_NONE, PNG_INTERLACE_ADAM7 */ 819 png_byte interlace_type PNG_DEPSTRUCT; /* One of PNG_INTERLACE_NONE, PNG_INTE RLACE_ADAM7 */
784 820
785 /* The following is informational only on read, and not used on writes. */ 821 /* The following is informational only on read, and not used on writes. */
786 png_byte channels; /* number of data channels per pixel (1, 2, 3, 4) */ 822 png_byte channels PNG_DEPSTRUCT; /* number of data channels per pixel ( 1, 2, 3, 4) */
787 png_byte pixel_depth; /* number of bits per pixel */ 823 png_byte pixel_depth PNG_DEPSTRUCT; /* number of bits per pixel */
788 png_byte spare_byte; /* to align the data, and for future use */ 824 png_byte spare_byte PNG_DEPSTRUCT; /* to align the data, and for future u se */
789 png_byte signature[8]; /* magic bytes read by libpng from start of file */ 825 png_byte signature[8] PNG_DEPSTRUCT; /* magic bytes read by libpng from sta rt of file */
790 826
791 /* The rest of the data is optional. If you are reading, check the 827 /* The rest of the data is optional. If you are reading, check the
792 * valid field to see if the information in these are valid. If you 828 * valid field to see if the information in these are valid. If you
793 * are writing, set the valid field to those chunks you want written, 829 * are writing, set the valid field to those chunks you want written,
794 * and initialize the appropriate fields below. 830 * and initialize the appropriate fields below.
795 */ 831 */
796 832
797 #if defined(PNG_gAMA_SUPPORTED) && defined(PNG_FLOATING_POINT_SUPPORTED) 833 #if defined(PNG_gAMA_SUPPORTED) && defined(PNG_FLOATING_POINT_SUPPORTED)
798 /* The gAMA chunk describes the gamma characteristics of the system 834 /* The gAMA chunk describes the gamma characteristics of the system
799 * on which the image was created, normally in the range [1.0, 2.5]. 835 * on which the image was created, normally in the range [1.0, 2.5].
800 * Data is valid if (valid & PNG_INFO_gAMA) is non-zero. 836 * Data is valid if (valid & PNG_INFO_gAMA) is non-zero.
801 */ 837 */
802 float gamma; /* gamma value of image, if (valid & PNG_INFO_gAMA) */ 838 float gamma PNG_DEPSTRUCT; /* gamma value of image, if (valid & PNG_INFO_gAMA ) */
803 #endif 839 #endif
804 840
805 #if defined(PNG_sRGB_SUPPORTED) 841 #ifdef PNG_sRGB_SUPPORTED
806 /* GR-P, 0.96a */ 842 /* GR-P, 0.96a */
807 /* Data valid if (valid & PNG_INFO_sRGB) non-zero. */ 843 /* Data valid if (valid & PNG_INFO_sRGB) non-zero. */
808 png_byte srgb_intent; /* sRGB rendering intent [0, 1, 2, or 3] */ 844 png_byte srgb_intent PNG_DEPSTRUCT; /* sRGB rendering intent [0, 1, 2, or 3] */
809 #endif 845 #endif
810 846
811 #if defined(PNG_TEXT_SUPPORTED) 847 #ifdef PNG_TEXT_SUPPORTED
812 /* The tEXt, and zTXt chunks contain human-readable textual data in 848 /* The tEXt, and zTXt chunks contain human-readable textual data in
813 * uncompressed, compressed, and optionally compressed forms, respectively. 849 * uncompressed, compressed, and optionally compressed forms, respectively.
814 * The data in "text" is an array of pointers to uncompressed, 850 * The data in "text" is an array of pointers to uncompressed,
815 * null-terminated C strings. Each chunk has a keyword that describes the 851 * null-terminated C strings. Each chunk has a keyword that describes the
816 * textual data contained in that chunk. Keywords are not required to be 852 * textual data contained in that chunk. Keywords are not required to be
817 * unique, and the text string may be empty. Any number of text chunks may 853 * unique, and the text string may be empty. Any number of text chunks may
818 * be in an image. 854 * be in an image.
819 */ 855 */
820 int num_text; /* number of comments read/to write */ 856 int num_text PNG_DEPSTRUCT; /* number of comments read/to write */
821 int max_text; /* current size of text array */ 857 int max_text PNG_DEPSTRUCT; /* current size of text array */
822 png_textp text; /* array of comments read/to write */ 858 png_textp text PNG_DEPSTRUCT; /* array of comments read/to write */
823 #endif /* PNG_TEXT_SUPPORTED */ 859 #endif /* PNG_TEXT_SUPPORTED */
824 860
825 #if defined(PNG_tIME_SUPPORTED) 861 #ifdef PNG_tIME_SUPPORTED
826 /* The tIME chunk holds the last time the displayed image data was 862 /* The tIME chunk holds the last time the displayed image data was
827 * modified. See the png_time struct for the contents of this struct. 863 * modified. See the png_time struct for the contents of this struct.
828 */ 864 */
829 png_time mod_time; 865 png_time mod_time PNG_DEPSTRUCT;
830 #endif 866 #endif
831 867
832 #if defined(PNG_sBIT_SUPPORTED) 868 #ifdef PNG_sBIT_SUPPORTED
833 /* The sBIT chunk specifies the number of significant high-order bits 869 /* The sBIT chunk specifies the number of significant high-order bits
834 * in the pixel data. Values are in the range [1, bit_depth], and are 870 * in the pixel data. Values are in the range [1, bit_depth], and are
835 * only specified for the channels in the pixel data. The contents of 871 * only specified for the channels in the pixel data. The contents of
836 * the low-order bits is not specified. Data is valid if 872 * the low-order bits is not specified. Data is valid if
837 * (valid & PNG_INFO_sBIT) is non-zero. 873 * (valid & PNG_INFO_sBIT) is non-zero.
838 */ 874 */
839 png_color_8 sig_bit; /* significant bits in color channels */ 875 png_color_8 sig_bit PNG_DEPSTRUCT; /* significant bits in color channels */
840 #endif 876 #endif
841 877
842 #if defined(PNG_tRNS_SUPPORTED) || defined(PNG_READ_EXPAND_SUPPORTED) || \ 878 #if defined(PNG_tRNS_SUPPORTED) || defined(PNG_READ_EXPAND_SUPPORTED) || \
843 defined(PNG_READ_BACKGROUND_SUPPORTED) 879 defined(PNG_READ_BACKGROUND_SUPPORTED)
844 /* The tRNS chunk supplies transparency data for paletted images and 880 /* The tRNS chunk supplies transparency data for paletted images and
845 * other image types that don't need a full alpha channel. There are 881 * other image types that don't need a full alpha channel. There are
846 * "num_trans" transparency values for a paletted image, stored in the 882 * "num_trans" transparency values for a paletted image, stored in the
847 * same order as the palette colors, starting from index 0. Values 883 * same order as the palette colors, starting from index 0. Values
848 * for the data are in the range [0, 255], ranging from fully transparent 884 * for the data are in the range [0, 255], ranging from fully transparent
849 * to fully opaque, respectively. For non-paletted images, there is a 885 * to fully opaque, respectively. For non-paletted images, there is a
850 * single color specified that should be treated as fully transparent. 886 * single color specified that should be treated as fully transparent.
851 * Data is valid if (valid & PNG_INFO_tRNS) is non-zero. 887 * Data is valid if (valid & PNG_INFO_tRNS) is non-zero.
852 */ 888 */
853 png_bytep trans; /* transparent values for paletted image */ 889 png_bytep trans PNG_DEPSTRUCT; /* transparent values for paletted image */
854 png_color_16 trans_values; /* transparent color for non-palette image */ 890 png_color_16 trans_values PNG_DEPSTRUCT; /* transparent color for non-palette image */
855 #endif 891 #endif
856 892
857 #if defined(PNG_bKGD_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) 893 #if defined(PNG_bKGD_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED)
858 /* The bKGD chunk gives the suggested image background color if the 894 /* The bKGD chunk gives the suggested image background color if the
859 * display program does not have its own background color and the image 895 * display program does not have its own background color and the image
860 * is needs to composited onto a background before display. The colors 896 * is needs to composited onto a background before display. The colors
861 * in "background" are normally in the same color space/depth as the 897 * in "background" are normally in the same color space/depth as the
862 * pixel data. Data is valid if (valid & PNG_INFO_bKGD) is non-zero. 898 * pixel data. Data is valid if (valid & PNG_INFO_bKGD) is non-zero.
863 */ 899 */
864 png_color_16 background; 900 png_color_16 background PNG_DEPSTRUCT;
865 #endif 901 #endif
866 902
867 #if defined(PNG_oFFs_SUPPORTED) 903 #ifdef PNG_oFFs_SUPPORTED
868 /* The oFFs chunk gives the offset in "offset_unit_type" units rightwards 904 /* The oFFs chunk gives the offset in "offset_unit_type" units rightwards
869 * and downwards from the top-left corner of the display, page, or other 905 * and downwards from the top-left corner of the display, page, or other
870 * application-specific co-ordinate space. See the PNG_OFFSET_ defines 906 * application-specific co-ordinate space. See the PNG_OFFSET_ defines
871 * below for the unit types. Valid if (valid & PNG_INFO_oFFs) non-zero. 907 * below for the unit types. Valid if (valid & PNG_INFO_oFFs) non-zero.
872 */ 908 */
873 png_int_32 x_offset; /* x offset on page */ 909 png_int_32 x_offset PNG_DEPSTRUCT; /* x offset on page */
874 png_int_32 y_offset; /* y offset on page */ 910 png_int_32 y_offset PNG_DEPSTRUCT; /* y offset on page */
875 png_byte offset_unit_type; /* offset units type */ 911 png_byte offset_unit_type PNG_DEPSTRUCT; /* offset units type */
876 #endif 912 #endif
877 913
878 #if defined(PNG_pHYs_SUPPORTED) 914 #ifdef PNG_pHYs_SUPPORTED
879 /* The pHYs chunk gives the physical pixel density of the image for 915 /* The pHYs chunk gives the physical pixel density of the image for
880 * display or printing in "phys_unit_type" units (see PNG_RESOLUTION_ 916 * display or printing in "phys_unit_type" units (see PNG_RESOLUTION_
881 * defines below). Data is valid if (valid & PNG_INFO_pHYs) is non-zero. 917 * defines below). Data is valid if (valid & PNG_INFO_pHYs) is non-zero.
882 */ 918 */
883 png_uint_32 x_pixels_per_unit; /* horizontal pixel density */ 919 png_uint_32 x_pixels_per_unit PNG_DEPSTRUCT; /* horizontal pixel density */
884 png_uint_32 y_pixels_per_unit; /* vertical pixel density */ 920 png_uint_32 y_pixels_per_unit PNG_DEPSTRUCT; /* vertical pixel density */
885 png_byte phys_unit_type; /* resolution type (see PNG_RESOLUTION_ below) */ 921 png_byte phys_unit_type PNG_DEPSTRUCT; /* resolution type (see PNG_RESOLUTION _ below) */
886 #endif 922 #endif
887 923
888 #if defined(PNG_hIST_SUPPORTED) 924 #ifdef PNG_hIST_SUPPORTED
889 /* The hIST chunk contains the relative frequency or importance of the 925 /* The hIST chunk contains the relative frequency or importance of the
890 * various palette entries, so that a viewer can intelligently select a 926 * various palette entries, so that a viewer can intelligently select a
891 * reduced-color palette, if required. Data is an array of "num_palette" 927 * reduced-color palette, if required. Data is an array of "num_palette"
892 * values in the range [0,65535]. Data valid if (valid & PNG_INFO_hIST) 928 * values in the range [0,65535]. Data valid if (valid & PNG_INFO_hIST)
893 * is non-zero. 929 * is non-zero.
894 */ 930 */
895 png_uint_16p hist; 931 png_uint_16p hist PNG_DEPSTRUCT;
896 #endif 932 #endif
897 933
898 #ifdef PNG_cHRM_SUPPORTED 934 #ifdef PNG_cHRM_SUPPORTED
899 /* The cHRM chunk describes the CIE color characteristics of the monitor 935 /* The cHRM chunk describes the CIE color characteristics of the monitor
900 * on which the PNG was created. This data allows the viewer to do gamut 936 * on which the PNG was created. This data allows the viewer to do gamut
901 * mapping of the input image to ensure that the viewer sees the same 937 * mapping of the input image to ensure that the viewer sees the same
902 * colors in the image as the creator. Values are in the range 938 * colors in the image as the creator. Values are in the range
903 * [0.0, 0.8]. Data valid if (valid & PNG_INFO_cHRM) non-zero. 939 * [0.0, 0.8]. Data valid if (valid & PNG_INFO_cHRM) non-zero.
904 */ 940 */
905 #ifdef PNG_FLOATING_POINT_SUPPORTED 941 #ifdef PNG_FLOATING_POINT_SUPPORTED
906 float x_white; 942 float x_white PNG_DEPSTRUCT;
907 float y_white; 943 float y_white PNG_DEPSTRUCT;
908 float x_red; 944 float x_red PNG_DEPSTRUCT;
909 float y_red; 945 float y_red PNG_DEPSTRUCT;
910 float x_green; 946 float x_green PNG_DEPSTRUCT;
911 float y_green; 947 float y_green PNG_DEPSTRUCT;
912 float x_blue; 948 float x_blue PNG_DEPSTRUCT;
913 float y_blue; 949 float y_blue PNG_DEPSTRUCT;
914 #endif 950 #endif
915 #endif 951 #endif
916 952
917 #if defined(PNG_pCAL_SUPPORTED) 953 #ifdef PNG_pCAL_SUPPORTED
918 /* The pCAL chunk describes a transformation between the stored pixel 954 /* The pCAL chunk describes a transformation between the stored pixel
919 * values and original physical data values used to create the image. 955 * values and original physical data values used to create the image.
920 * The integer range [0, 2^bit_depth - 1] maps to the floating-point 956 * The integer range [0, 2^bit_depth - 1] maps to the floating-point
921 * range given by [pcal_X0, pcal_X1], and are further transformed by a 957 * range given by [pcal_X0, pcal_X1], and are further transformed by a
922 * (possibly non-linear) transformation function given by "pcal_type" 958 * (possibly non-linear) transformation function given by "pcal_type"
923 * and "pcal_params" into "pcal_units". Please see the PNG_EQUATION_ 959 * and "pcal_params" into "pcal_units". Please see the PNG_EQUATION_
924 * defines below, and the PNG-Group's PNG extensions document for a 960 * defines below, and the PNG-Group's PNG extensions document for a
925 * complete description of the transformations and how they should be 961 * complete description of the transformations and how they should be
926 * implemented, and for a description of the ASCII parameter strings. 962 * implemented, and for a description of the ASCII parameter strings.
927 * Data values are valid if (valid & PNG_INFO_pCAL) non-zero. 963 * Data values are valid if (valid & PNG_INFO_pCAL) non-zero.
928 */ 964 */
929 png_charp pcal_purpose; /* pCAL chunk description string */ 965 png_charp pcal_purpose PNG_DEPSTRUCT; /* pCAL chunk description string */
930 png_int_32 pcal_X0; /* minimum value */ 966 png_int_32 pcal_X0 PNG_DEPSTRUCT; /* minimum value */
931 png_int_32 pcal_X1; /* maximum value */ 967 png_int_32 pcal_X1 PNG_DEPSTRUCT; /* maximum value */
932 png_charp pcal_units; /* Latin-1 string giving physical units */ 968 png_charp pcal_units PNG_DEPSTRUCT; /* Latin-1 string giving physical unit s */
933 png_charpp pcal_params; /* ASCII strings containing parameter values */ 969 png_charpp pcal_params PNG_DEPSTRUCT; /* ASCII strings containing parameter values */
934 png_byte pcal_type; /* equation type (see PNG_EQUATION_ below) */ 970 png_byte pcal_type PNG_DEPSTRUCT; /* equation type (see PNG_EQUATION_ be low) */
935 png_byte pcal_nparams; /* number of parameters given in pcal_params */ 971 png_byte pcal_nparams PNG_DEPSTRUCT; /* number of parameters given in pcal_ params */
936 #endif 972 #endif
937 973
938 /* New members added in libpng-1.0.6 */ 974 /* New members added in libpng-1.0.6 */
939 #ifdef PNG_FREE_ME_SUPPORTED 975 #ifdef PNG_FREE_ME_SUPPORTED
940 png_uint_32 free_me; /* flags items libpng is responsible for freeing */ 976 png_uint_32 free_me PNG_DEPSTRUCT; /* flags items libpng is responsible f or freeing */
941 #endif 977 #endif
942 978
943 #if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED) 979 #if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED) || \
944 /* storage for unknown chunks that the library doesn't recognize. */ 980 defined(PNG_HANDLE_AS_UNKNOWN_SUPPORTED)
945 png_unknown_chunkp unknown_chunks; 981 /* Storage for unknown chunks that the library doesn't recognize. */
946 png_size_t unknown_chunks_num; 982 png_unknown_chunkp unknown_chunks PNG_DEPSTRUCT;
983 png_size_t unknown_chunks_num PNG_DEPSTRUCT;
947 #endif 984 #endif
948 985
949 #if defined(PNG_iCCP_SUPPORTED) 986 #ifdef PNG_iCCP_SUPPORTED
950 /* iCCP chunk data. */ 987 /* iCCP chunk data. */
951 png_charp iccp_name; /* profile name */ 988 png_charp iccp_name PNG_DEPSTRUCT; /* profile name */
952 png_charp iccp_profile; /* International Color Consortium profile data */ 989 png_charp iccp_profile PNG_DEPSTRUCT; /* International Color Consortium prof ile data */
953 /* Note to maintainer: should be png_bytep */ 990 /* Note to maintainer: should be png_bytep */
954 png_uint_32 iccp_proflen; /* ICC profile data length */ 991 png_uint_32 iccp_proflen PNG_DEPSTRUCT; /* ICC profile data length */
955 png_byte iccp_compression; /* Always zero */ 992 png_byte iccp_compression PNG_DEPSTRUCT; /* Always zero */
956 #endif 993 #endif
957 994
958 #if defined(PNG_sPLT_SUPPORTED) 995 #ifdef PNG_sPLT_SUPPORTED
959 /* data on sPLT chunks (there may be more than one). */ 996 /* Data on sPLT chunks (there may be more than one). */
960 png_sPLT_tp splt_palettes; 997 png_sPLT_tp splt_palettes PNG_DEPSTRUCT;
961 png_uint_32 splt_palettes_num; 998 png_uint_32 splt_palettes_num PNG_DEPSTRUCT;
962 #endif 999 #endif
963 1000
964 #if defined(PNG_sCAL_SUPPORTED) 1001 #ifdef PNG_sCAL_SUPPORTED
965 /* The sCAL chunk describes the actual physical dimensions of the 1002 /* The sCAL chunk describes the actual physical dimensions of the
966 * subject matter of the graphic. The chunk contains a unit specification 1003 * subject matter of the graphic. The chunk contains a unit specification
967 * a byte value, and two ASCII strings representing floating-point 1004 * a byte value, and two ASCII strings representing floating-point
968 * values. The values are width and height corresponsing to one pixel 1005 * values. The values are width and height corresponsing to one pixel
969 * in the image. This external representation is converted to double 1006 * in the image. This external representation is converted to double
970 * here. Data values are valid if (valid & PNG_INFO_sCAL) is non-zero. 1007 * here. Data values are valid if (valid & PNG_INFO_sCAL) is non-zero.
971 */ 1008 */
972 png_byte scal_unit; /* unit of physical scale */ 1009 png_byte scal_unit PNG_DEPSTRUCT; /* unit of physical scale */
973 #ifdef PNG_FLOATING_POINT_SUPPORTED 1010 #ifdef PNG_FLOATING_POINT_SUPPORTED
974 double scal_pixel_width; /* width of one pixel */ 1011 double scal_pixel_width PNG_DEPSTRUCT; /* width of one pixel */
975 double scal_pixel_height; /* height of one pixel */ 1012 double scal_pixel_height PNG_DEPSTRUCT; /* height of one pixel */
976 #endif 1013 #endif
977 #ifdef PNG_FIXED_POINT_SUPPORTED 1014 #ifdef PNG_FIXED_POINT_SUPPORTED
978 png_charp scal_s_width; /* string containing height */ 1015 png_charp scal_s_width PNG_DEPSTRUCT; /* string containing height */
979 png_charp scal_s_height; /* string containing width */ 1016 png_charp scal_s_height PNG_DEPSTRUCT; /* string containing width */
980 #endif 1017 #endif
981 #endif 1018 #endif
982 1019
983 #if defined(PNG_INFO_IMAGE_SUPPORTED) 1020 #ifdef PNG_INFO_IMAGE_SUPPORTED
984 /* Memory has been allocated if (valid & PNG_ALLOCATED_INFO_ROWS) non-zero */ 1021 /* Memory has been allocated if (valid & PNG_ALLOCATED_INFO_ROWS) non-zero */
985 /* Data valid if (valid & PNG_INFO_IDAT) non-zero */ 1022 /* Data valid if (valid & PNG_INFO_IDAT) non-zero */
986 png_bytepp row_pointers; /* the image bits */ 1023 png_bytepp row_pointers PNG_DEPSTRUCT; /* the image bits */
987 #endif 1024 #endif
988 1025
989 #if defined(PNG_FIXED_POINT_SUPPORTED) && defined(PNG_gAMA_SUPPORTED) 1026 #if defined(PNG_FIXED_POINT_SUPPORTED) && defined(PNG_gAMA_SUPPORTED)
990 png_fixed_point int_gamma; /* gamma of image, if (valid & PNG_INFO_gAMA) */ 1027 png_fixed_point int_gamma PNG_DEPSTRUCT; /* gamma of image, if (valid & PNG_I NFO_gAMA) */
991 #endif 1028 #endif
992 1029
993 #if defined(PNG_cHRM_SUPPORTED) && defined(PNG_FIXED_POINT_SUPPORTED) 1030 #if defined(PNG_cHRM_SUPPORTED) && defined(PNG_FIXED_POINT_SUPPORTED)
994 png_fixed_point int_x_white; 1031 png_fixed_point int_x_white PNG_DEPSTRUCT;
995 png_fixed_point int_y_white; 1032 png_fixed_point int_y_white PNG_DEPSTRUCT;
996 png_fixed_point int_x_red; 1033 png_fixed_point int_x_red PNG_DEPSTRUCT;
997 png_fixed_point int_y_red; 1034 png_fixed_point int_y_red PNG_DEPSTRUCT;
998 png_fixed_point int_x_green; 1035 png_fixed_point int_x_green PNG_DEPSTRUCT;
999 png_fixed_point int_y_green; 1036 png_fixed_point int_y_green PNG_DEPSTRUCT;
1000 png_fixed_point int_x_blue; 1037 png_fixed_point int_x_blue PNG_DEPSTRUCT;
1001 png_fixed_point int_y_blue; 1038 png_fixed_point int_y_blue PNG_DEPSTRUCT;
1002 #endif 1039 #endif
1003 1040
1004 } png_info; 1041 } png_info;
1005 1042
1006 typedef png_info FAR * png_infop; 1043 typedef png_info FAR * png_infop;
1007 typedef png_info FAR * FAR * png_infopp; 1044 typedef png_info FAR * FAR * png_infopp;
1008 1045
1009 /* Maximum positive integer used in PNG is (2^31)-1 */ 1046 /* Maximum positive integer used in PNG is (2^31)-1 */
1010 #define PNG_UINT_31_MAX ((png_uint_32)0x7fffffffL) 1047 #define PNG_UINT_31_MAX ((png_uint_32)0x7fffffffL)
1011 #define PNG_UINT_32_MAX ((png_uint_32)(-1)) 1048 #define PNG_UINT_32_MAX ((png_uint_32)(-1))
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
1144 png_uint_32, int)); 1181 png_uint_32, int));
1145 #endif 1182 #endif
1146 1183
1147 #if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \ 1184 #if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \
1148 defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) || \ 1185 defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) || \
1149 defined(PNG_LEGACY_SUPPORTED) 1186 defined(PNG_LEGACY_SUPPORTED)
1150 typedef void (PNGAPI *png_user_transform_ptr) PNGARG((png_structp, 1187 typedef void (PNGAPI *png_user_transform_ptr) PNGARG((png_structp,
1151 png_row_infop, png_bytep)); 1188 png_row_infop, png_bytep));
1152 #endif 1189 #endif
1153 1190
1154 #if defined(PNG_USER_CHUNKS_SUPPORTED) 1191 #ifdef PNG_USER_CHUNKS_SUPPORTED
1155 typedef int (PNGAPI *png_user_chunk_ptr) PNGARG((png_structp, png_unknown_chunkp )); 1192 typedef int (PNGAPI *png_user_chunk_ptr) PNGARG((png_structp, png_unknown_chunkp ));
1156 #endif 1193 #endif
1157 #if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED) 1194 #ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED
1158 typedef void (PNGAPI *png_unknown_chunk_ptr) PNGARG((png_structp)); 1195 typedef void (PNGAPI *png_unknown_chunk_ptr) PNGARG((png_structp));
1159 #endif 1196 #endif
1160 1197
1161 /* Transform masks for the high-level interface */ 1198 /* Transform masks for the high-level interface */
1162 #define PNG_TRANSFORM_IDENTITY 0x0000 /* read and write */ 1199 #define PNG_TRANSFORM_IDENTITY 0x0000 /* read and write */
1163 #define PNG_TRANSFORM_STRIP_16 0x0001 /* read only */ 1200 #define PNG_TRANSFORM_STRIP_16 0x0001 /* read only */
1164 #define PNG_TRANSFORM_STRIP_ALPHA 0x0002 /* read only */ 1201 #define PNG_TRANSFORM_STRIP_ALPHA 0x0002 /* read only */
1165 #define PNG_TRANSFORM_PACKING 0x0004 /* read and write */ 1202 #define PNG_TRANSFORM_PACKING 0x0004 /* read and write */
1166 #define PNG_TRANSFORM_PACKSWAP 0x0008 /* read and write */ 1203 #define PNG_TRANSFORM_PACKSWAP 0x0008 /* read and write */
1167 #define PNG_TRANSFORM_EXPAND 0x0010 /* read only */ 1204 #define PNG_TRANSFORM_EXPAND 0x0010 /* read only */
1168 #define PNG_TRANSFORM_INVERT_MONO 0x0020 /* read and write */ 1205 #define PNG_TRANSFORM_INVERT_MONO 0x0020 /* read and write */
1169 #define PNG_TRANSFORM_SHIFT 0x0040 /* read and write */ 1206 #define PNG_TRANSFORM_SHIFT 0x0040 /* read and write */
1170 #define PNG_TRANSFORM_BGR 0x0080 /* read and write */ 1207 #define PNG_TRANSFORM_BGR 0x0080 /* read and write */
1171 #define PNG_TRANSFORM_SWAP_ALPHA 0x0100 /* read and write */ 1208 #define PNG_TRANSFORM_SWAP_ALPHA 0x0100 /* read and write */
1172 #define PNG_TRANSFORM_SWAP_ENDIAN 0x0200 /* read and write */ 1209 #define PNG_TRANSFORM_SWAP_ENDIAN 0x0200 /* read and write */
1173 #define PNG_TRANSFORM_INVERT_ALPHA 0x0400 /* read and write */ 1210 #define PNG_TRANSFORM_INVERT_ALPHA 0x0400 /* read and write */
1174 #define PNG_TRANSFORM_STRIP_FILLER 0x0800 /* WRITE only, deprecated */ 1211 #define PNG_TRANSFORM_STRIP_FILLER 0x0800 /* write only, deprecated */
1175 /* Added to libpng-1.2.34 */ 1212 /* Added to libpng-1.2.34 */
1176 #define PNG_TRANSFORM_STRIP_FILLER_BEFORE 0x0800 /* WRITE only */ 1213 #define PNG_TRANSFORM_STRIP_FILLER_BEFORE 0x0800 /* write only */
1177 #define PNG_TRANSFORM_STRIP_FILLER_AFTER 0x1000 /* WRITE only */ 1214 #define PNG_TRANSFORM_STRIP_FILLER_AFTER 0x1000 /* write only */
1215 /* Added to libpng-1.2.41 */
1216 #define PNG_TRANSFORM_GRAY_TO_RGB 0x2000 /* read only */
1178 1217
1179 /* Flags for MNG supported features */ 1218 /* Flags for MNG supported features */
1180 #define PNG_FLAG_MNG_EMPTY_PLTE 0x01 1219 #define PNG_FLAG_MNG_EMPTY_PLTE 0x01
1181 #define PNG_FLAG_MNG_FILTER_64 0x04 1220 #define PNG_FLAG_MNG_FILTER_64 0x04
1182 #define PNG_ALL_MNG_FEATURES 0x05 1221 #define PNG_ALL_MNG_FEATURES 0x05
1183 1222
1184 typedef png_voidp (*png_malloc_ptr) PNGARG((png_structp, png_size_t)); 1223 typedef png_voidp (*png_malloc_ptr) PNGARG((png_structp, png_size_t));
1185 typedef void (*png_free_ptr) PNGARG((png_structp, png_voidp)); 1224 typedef void (*png_free_ptr) PNGARG((png_structp, png_voidp));
1186 1225
1187 /* The structure that holds the information to read and write PNG files. 1226 /* The structure that holds the information to read and write PNG files.
1188 * The only people who need to care about what is inside of this are the 1227 * The only people who need to care about what is inside of this are the
1189 * people who will be modifying the library for their own special needs. 1228 * people who will be modifying the library for their own special needs.
1190 * It should NOT be accessed directly by an application, except to store 1229 * It should NOT be accessed directly by an application, except to store
1191 * the jmp_buf. 1230 * the jmp_buf.
1192 */ 1231 */
1193 1232
1194 struct png_struct_def 1233 struct png_struct_def
1195 { 1234 {
1196 #ifdef PNG_SETJMP_SUPPORTED 1235 #ifdef PNG_SETJMP_SUPPORTED
1197 jmp_buf jmpbuf; /* used in png_error */ 1236 jmp_buf jmpbuf; /* used in png_error */
1198 #endif 1237 #endif
1199 png_error_ptr error_fn; /* function for printing errors and aborting */ 1238 png_error_ptr error_fn PNG_DEPSTRUCT; /* function for printing errors and aborting */
1200 png_error_ptr warning_fn; /* function for printing warnings */ 1239 png_error_ptr warning_fn PNG_DEPSTRUCT; /* function for printing warnings */
1201 png_voidp error_ptr; /* user supplied struct for error functions */ 1240 png_voidp error_ptr PNG_DEPSTRUCT; /* user supplied struct for error fu nctions */
1202 png_rw_ptr write_data_fn; /* function for writing output data */ 1241 png_rw_ptr write_data_fn PNG_DEPSTRUCT; /* function for writing output data */
1203 png_rw_ptr read_data_fn; /* function for reading input data */ 1242 png_rw_ptr read_data_fn PNG_DEPSTRUCT; /* function for reading input data * /
1204 png_voidp io_ptr; /* ptr to application struct for I/O functions */ 1243 png_voidp io_ptr PNG_DEPSTRUCT; /* ptr to application struct for I/O functions */
1205 1244
1206 #if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) 1245 #ifdef PNG_READ_USER_TRANSFORM_SUPPORTED
1207 png_user_transform_ptr read_user_transform_fn; /* user read transform */ 1246 png_user_transform_ptr read_user_transform_fn PNG_DEPSTRUCT; /* user read tra nsform */
1208 #endif 1247 #endif
1209 1248
1210 #if defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) 1249 #ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED
1211 png_user_transform_ptr write_user_transform_fn; /* user write transform */ 1250 png_user_transform_ptr write_user_transform_fn PNG_DEPSTRUCT; /* user write t ransform */
1212 #endif 1251 #endif
1213 1252
1214 /* These were added in libpng-1.0.2 */ 1253 /* These were added in libpng-1.0.2 */
1215 #if defined(PNG_USER_TRANSFORM_PTR_SUPPORTED) 1254 #ifdef PNG_USER_TRANSFORM_PTR_SUPPORTED
1216 #if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \ 1255 #if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \
1217 defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) 1256 defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED)
1218 png_voidp user_transform_ptr; /* user supplied struct for user transform */ 1257 png_voidp user_transform_ptr PNG_DEPSTRUCT; /* user supplied struct for user transform */
1219 png_byte user_transform_depth; /* bit depth of user transformed pixels */ 1258 png_byte user_transform_depth PNG_DEPSTRUCT; /* bit depth of user transfor med pixels */
1220 png_byte user_transform_channels; /* channels in user transformed pixels */ 1259 png_byte user_transform_channels PNG_DEPSTRUCT; /* channels in user transform ed pixels */
1221 #endif 1260 #endif
1222 #endif 1261 #endif
1223 1262
1224 png_uint_32 mode; /* tells us where we are in the PNG file */ 1263 png_uint_32 mode PNG_DEPSTRUCT; /* tells us where we are in the PNG file */
1225 png_uint_32 flags; /* flags indicating various things to libpng */ 1264 png_uint_32 flags PNG_DEPSTRUCT; /* flags indicating various things t o libpng */
1226 png_uint_32 transformations; /* which transformations to perform */ 1265 png_uint_32 transformations PNG_DEPSTRUCT; /* which transformations to perfor m */
1227 1266
1228 z_stream zstream; /* pointer to decompression structure (below) */ 1267 z_stream zstream PNG_DEPSTRUCT; /* pointer to decompression structur e (below) */
1229 png_bytep zbuf; /* buffer for zlib */ 1268 png_bytep zbuf PNG_DEPSTRUCT; /* buffer for zlib */
1230 png_size_t zbuf_size; /* size of zbuf */ 1269 png_size_t zbuf_size PNG_DEPSTRUCT; /* size of zbuf */
1231 int zlib_level; /* holds zlib compression level */ 1270 int zlib_level PNG_DEPSTRUCT; /* holds zlib compression level */
1232 int zlib_method; /* holds zlib compression method */ 1271 int zlib_method PNG_DEPSTRUCT; /* holds zlib compression method */
1233 int zlib_window_bits; /* holds zlib compression window bits */ 1272 int zlib_window_bits PNG_DEPSTRUCT; /* holds zlib compression window bit s */
1234 int zlib_mem_level; /* holds zlib compression memory level */ 1273 int zlib_mem_level PNG_DEPSTRUCT; /* holds zlib compression memory lev el */
1235 int zlib_strategy; /* holds zlib compression strategy */ 1274 int zlib_strategy PNG_DEPSTRUCT; /* holds zlib compression strategy * /
1236 1275
1237 png_uint_32 width; /* width of image in pixels */ 1276 png_uint_32 width PNG_DEPSTRUCT; /* width of image in pixels */
1238 png_uint_32 height; /* height of image in pixels */ 1277 png_uint_32 height PNG_DEPSTRUCT; /* height of image in pixels */
1239 png_uint_32 num_rows; /* number of rows in current pass */ 1278 png_uint_32 num_rows PNG_DEPSTRUCT; /* number of rows in current pass */
1240 png_uint_32 usr_width; /* width of row at start of write */ 1279 png_uint_32 usr_width PNG_DEPSTRUCT; /* width of row at start of write */
1241 png_uint_32 rowbytes; /* size of row in bytes */ 1280 png_uint_32 rowbytes PNG_DEPSTRUCT; /* size of row in bytes */
1242 png_uint_32 irowbytes; /* size of current interlaced row in bytes */ 1281 #if 0 /* Replaced with the following in libpng-1.2.43 */
1243 png_uint_32 iwidth; /* width of current interlaced row in pixels */ 1282 png_size_t irowbytes PNG_DEPSTRUCT;
1244 png_uint_32 row_number; /* current row in interlace pass */ 1283 #endif
1245 png_bytep prev_row; /* buffer to save previous (unfiltered) row */ 1284 /* Added in libpng-1.2.43 */
1246 png_bytep row_buf; /* buffer to save current (unfiltered) row */ 1285 #ifdef PNG_USER_LIMITS_SUPPORTED
1286 /* Added in libpng-1.4.0: Total number of sPLT, text, and unknown
1287 * chunks that can be stored (0 means unlimited).
1288 */
1289 png_uint_32 user_chunk_cache_max PNG_DEPSTRUCT;
1290 #endif
1291 png_uint_32 iwidth PNG_DEPSTRUCT; /* width of current interlaced row i n pixels */
1292 png_uint_32 row_number PNG_DEPSTRUCT; /* current row in interlace pass */
1293 png_bytep prev_row PNG_DEPSTRUCT; /* buffer to save previous (unfilter ed) row */
1294 png_bytep row_buf PNG_DEPSTRUCT; /* buffer to save current (unfiltere d) row */
1247 #ifndef PNG_NO_WRITE_FILTER 1295 #ifndef PNG_NO_WRITE_FILTER
1248 png_bytep sub_row; /* buffer to save "sub" row when filtering */ 1296 png_bytep sub_row PNG_DEPSTRUCT; /* buffer to save "sub" row when fil tering */
1249 png_bytep up_row; /* buffer to save "up" row when filtering */ 1297 png_bytep up_row PNG_DEPSTRUCT; /* buffer to save "up" row when filt ering */
1250 png_bytep avg_row; /* buffer to save "avg" row when filtering */ 1298 png_bytep avg_row PNG_DEPSTRUCT; /* buffer to save "avg" row when fil tering */
1251 png_bytep paeth_row; /* buffer to save "Paeth" row when filtering */ 1299 png_bytep paeth_row PNG_DEPSTRUCT; /* buffer to save "Paeth" row when f iltering */
1252 #endif 1300 #endif
1253 png_row_info row_info; /* used for transformation routines */ 1301 png_row_info row_info PNG_DEPSTRUCT; /* used for transformation routines */
1254 1302
1255 png_uint_32 idat_size; /* current IDAT size for read */ 1303 png_uint_32 idat_size PNG_DEPSTRUCT; /* current IDAT size for read */
1256 png_uint_32 crc; /* current chunk CRC value */ 1304 png_uint_32 crc PNG_DEPSTRUCT; /* current chunk CRC value */
1257 png_colorp palette; /* palette from the input file */ 1305 png_colorp palette PNG_DEPSTRUCT; /* palette from the input file */
1258 png_uint_16 num_palette; /* number of color entries in palette */ 1306 png_uint_16 num_palette PNG_DEPSTRUCT; /* number of color entries in palett e */
1259 png_uint_16 num_trans; /* number of transparency values */ 1307 png_uint_16 num_trans PNG_DEPSTRUCT; /* number of transparency values */
1260 png_byte chunk_name[5]; /* null-terminated name of current chunk */ 1308 png_byte chunk_name[5] PNG_DEPSTRUCT; /* null-terminated name of current c hunk */
1261 png_byte compression; /* file compression type (always 0) */ 1309 png_byte compression PNG_DEPSTRUCT; /* file compression type (always 0) */
1262 png_byte filter; /* file filter type (always 0) */ 1310 png_byte filter PNG_DEPSTRUCT; /* file filter type (always 0) */
1263 png_byte interlaced; /* PNG_INTERLACE_NONE, PNG_INTERLACE_ADAM7 */ 1311 png_byte interlaced PNG_DEPSTRUCT; /* PNG_INTERLACE_NONE, PNG_INTERLACE _ADAM7 */
1264 png_byte pass; /* current interlace pass (0 - 6) */ 1312 png_byte pass PNG_DEPSTRUCT; /* current interlace pass (0 - 6) */
1265 png_byte do_filter; /* row filter flags (see PNG_FILTER_ below ) */ 1313 png_byte do_filter PNG_DEPSTRUCT; /* row filter flags (see PNG_FILTER_ below ) */
1266 png_byte color_type; /* color type of file */ 1314 png_byte color_type PNG_DEPSTRUCT; /* color type of file */
1267 png_byte bit_depth; /* bit depth of file */ 1315 png_byte bit_depth PNG_DEPSTRUCT; /* bit depth of file */
1268 png_byte usr_bit_depth; /* bit depth of users row */ 1316 png_byte usr_bit_depth PNG_DEPSTRUCT; /* bit depth of users row */
1269 png_byte pixel_depth; /* number of bits per pixel */ 1317 png_byte pixel_depth PNG_DEPSTRUCT; /* number of bits per pixel */
1270 png_byte channels; /* number of channels in file */ 1318 png_byte channels PNG_DEPSTRUCT; /* number of channels in file */
1271 png_byte usr_channels; /* channels at start of write */ 1319 png_byte usr_channels PNG_DEPSTRUCT; /* channels at start of write */
1272 png_byte sig_bytes; /* magic bytes read/written from start of file */ 1320 png_byte sig_bytes PNG_DEPSTRUCT; /* magic bytes read/written from sta rt of file */
1273 1321
1274 #if defined(PNG_READ_FILLER_SUPPORTED) || defined(PNG_WRITE_FILLER_SUPPORTED) 1322 #if defined(PNG_READ_FILLER_SUPPORTED) || defined(PNG_WRITE_FILLER_SUPPORTED)
1275 #ifdef PNG_LEGACY_SUPPORTED 1323 #ifdef PNG_LEGACY_SUPPORTED
1276 png_byte filler; /* filler byte for pixel expansion */ 1324 png_byte filler PNG_DEPSTRUCT; /* filler byte for pixel expansion * /
1277 #else 1325 #else
1278 png_uint_16 filler; /* filler bytes for pixel expansion */ 1326 png_uint_16 filler PNG_DEPSTRUCT; /* filler bytes for pixel expansi on */
1279 #endif 1327 #endif
1280 #endif 1328 #endif
1281 1329
1282 #if defined(PNG_bKGD_SUPPORTED) 1330 #ifdef PNG_bKGD_SUPPORTED
1283 png_byte background_gamma_type; 1331 png_byte background_gamma_type PNG_DEPSTRUCT;
1284 # ifdef PNG_FLOATING_POINT_SUPPORTED 1332 # ifdef PNG_FLOATING_POINT_SUPPORTED
1285 float background_gamma; 1333 float background_gamma PNG_DEPSTRUCT;
1286 # endif 1334 # endif
1287 png_color_16 background; /* background color in screen gamma space */ 1335 png_color_16 background PNG_DEPSTRUCT; /* background color in screen gamma space */
1288 #if defined(PNG_READ_GAMMA_SUPPORTED) 1336 #ifdef PNG_READ_GAMMA_SUPPORTED
1289 png_color_16 background_1; /* background normalized to gamma 1.0 */ 1337 png_color_16 background_1 PNG_DEPSTRUCT; /* background normalized to gamma 1. 0 */
1290 #endif 1338 #endif
1291 #endif /* PNG_bKGD_SUPPORTED */ 1339 #endif /* PNG_bKGD_SUPPORTED */
1292 1340
1293 #if defined(PNG_WRITE_FLUSH_SUPPORTED) 1341 #ifdef PNG_WRITE_FLUSH_SUPPORTED
1294 png_flush_ptr output_flush_fn;/* Function for flushing output */ 1342 png_flush_ptr output_flush_fn PNG_DEPSTRUCT; /* Function for flushing output */
1295 png_uint_32 flush_dist; /* how many rows apart to flush, 0 - no flush */ 1343 png_uint_32 flush_dist PNG_DEPSTRUCT; /* how many rows apart to flush, 0 - no flush */
1296 png_uint_32 flush_rows; /* number of rows written since last flush */ 1344 png_uint_32 flush_rows PNG_DEPSTRUCT; /* number of rows written since last flush */
1297 #endif 1345 #endif
1298 1346
1299 #if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) 1347 #if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED)
1300 int gamma_shift; /* number of "insignificant" bits 16-bit gamma */ 1348 int gamma_shift PNG_DEPSTRUCT; /* number of "insignificant" bits 16-bit gamma */
1301 #ifdef PNG_FLOATING_POINT_SUPPORTED 1349 #ifdef PNG_FLOATING_POINT_SUPPORTED
1302 float gamma; /* file gamma value */ 1350 float gamma PNG_DEPSTRUCT; /* file gamma value */
1303 float screen_gamma; /* screen gamma value (display_exponent) */ 1351 float screen_gamma PNG_DEPSTRUCT; /* screen gamma value (display_exponent) */
1304 #endif 1352 #endif
1305 #endif 1353 #endif
1306 1354
1307 #if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) 1355 #if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED)
1308 png_bytep gamma_table; /* gamma table for 8-bit depth files */ 1356 png_bytep gamma_table PNG_DEPSTRUCT; /* gamma table for 8-bit depth files */
1309 png_bytep gamma_from_1; /* converts from 1.0 to screen */ 1357 png_bytep gamma_from_1 PNG_DEPSTRUCT; /* converts from 1.0 to screen */
1310 png_bytep gamma_to_1; /* converts from file to 1.0 */ 1358 png_bytep gamma_to_1 PNG_DEPSTRUCT; /* converts from file to 1.0 */
1311 png_uint_16pp gamma_16_table; /* gamma table for 16-bit depth files */ 1359 png_uint_16pp gamma_16_table PNG_DEPSTRUCT; /* gamma table for 16-bit depth f iles */
1312 png_uint_16pp gamma_16_from_1; /* converts from 1.0 to screen */ 1360 png_uint_16pp gamma_16_from_1 PNG_DEPSTRUCT; /* converts from 1.0 to screen * /
1313 png_uint_16pp gamma_16_to_1; /* converts from file to 1.0 */ 1361 png_uint_16pp gamma_16_to_1 PNG_DEPSTRUCT; /* converts from file to 1.0 */
1314 #endif 1362 #endif
1315 1363
1316 #if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_sBIT_SUPPORTED) 1364 #if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_sBIT_SUPPORTED)
1317 png_color_8 sig_bit; /* significant bits in each available channel */ 1365 png_color_8 sig_bit PNG_DEPSTRUCT; /* significant bits in each availabl e channel */
1318 #endif 1366 #endif
1319 1367
1320 #if defined(PNG_READ_SHIFT_SUPPORTED) || defined(PNG_WRITE_SHIFT_SUPPORTED) 1368 #if defined(PNG_READ_SHIFT_SUPPORTED) || defined(PNG_WRITE_SHIFT_SUPPORTED)
1321 png_color_8 shift; /* shift for significant bit tranformation */ 1369 png_color_8 shift PNG_DEPSTRUCT; /* shift for significant bit tranfor mation */
1322 #endif 1370 #endif
1323 1371
1324 #if defined(PNG_tRNS_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) \ 1372 #if defined(PNG_tRNS_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) \
1325 || defined(PNG_READ_EXPAND_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) 1373 || defined(PNG_READ_EXPAND_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED)
1326 png_bytep trans; /* transparency values for paletted files */ 1374 png_bytep trans PNG_DEPSTRUCT; /* transparency values for paletted files */
1327 png_color_16 trans_values; /* transparency values for non-paletted files */ 1375 png_color_16 trans_values PNG_DEPSTRUCT; /* transparency values for non-palet ted files */
1328 #endif 1376 #endif
1329 1377
1330 png_read_status_ptr read_row_fn; /* called after each row is decoded */ 1378 png_read_status_ptr read_row_fn PNG_DEPSTRUCT; /* called after each row is decoded */
1331 png_write_status_ptr write_row_fn; /* called after each row is encoded */ 1379 png_write_status_ptr write_row_fn PNG_DEPSTRUCT; /* called after each row is encoded */
1332 #ifdef PNG_PROGRESSIVE_READ_SUPPORTED 1380 #ifdef PNG_PROGRESSIVE_READ_SUPPORTED
1333 png_progressive_info_ptr info_fn; /* called after header data fully read */ 1381 png_progressive_info_ptr info_fn PNG_DEPSTRUCT; /* called after header data f ully read */
1334 png_progressive_row_ptr row_fn; /* called after each prog. row is decoded * / 1382 png_progressive_row_ptr row_fn PNG_DEPSTRUCT; /* called after each prog. ro w is decoded */
1335 png_progressive_end_ptr end_fn; /* called after image is complete */ 1383 png_progressive_end_ptr end_fn PNG_DEPSTRUCT; /* called after image is comp lete */
1336 png_bytep save_buffer_ptr; /* current location in save_buffer */ 1384 png_bytep save_buffer_ptr PNG_DEPSTRUCT; /* current location in save_b uffer */
1337 png_bytep save_buffer; /* buffer for previously read data */ 1385 png_bytep save_buffer PNG_DEPSTRUCT; /* buffer for previously read data */
1338 png_bytep current_buffer_ptr; /* current location in current_buffer */ 1386 png_bytep current_buffer_ptr PNG_DEPSTRUCT; /* current location in curren t_buffer */
1339 png_bytep current_buffer; /* buffer for recently used data */ 1387 png_bytep current_buffer PNG_DEPSTRUCT; /* buffer for recently used d ata */
1340 png_uint_32 push_length; /* size of current input chunk */ 1388 png_uint_32 push_length PNG_DEPSTRUCT; /* size of current input chun k */
1341 png_uint_32 skip_length; /* bytes to skip in input data */ 1389 png_uint_32 skip_length PNG_DEPSTRUCT; /* bytes to skip in input dat a */
1342 png_size_t save_buffer_size; /* amount of data now in save_buffer */ 1390 png_size_t save_buffer_size PNG_DEPSTRUCT; /* amount of data now in save _buffer */
1343 png_size_t save_buffer_max; /* total size of save_buffer */ 1391 png_size_t save_buffer_max PNG_DEPSTRUCT; /* total size of save_buffer */
1344 png_size_t buffer_size; /* total amount of available input data */ 1392 png_size_t buffer_size PNG_DEPSTRUCT; /* total amount of available input data */
1345 png_size_t current_buffer_size; /* amount of data now in current_buffer */ 1393 png_size_t current_buffer_size PNG_DEPSTRUCT; /* amount of data now in curr ent_buffer */
1346 int process_mode; /* what push library is currently doing */ 1394 int process_mode PNG_DEPSTRUCT; /* what push library is curre ntly doing */
1347 int cur_palette; /* current push library palette index */ 1395 int cur_palette PNG_DEPSTRUCT; /* current push library palet te index */
1348 1396
1349 # if defined(PNG_TEXT_SUPPORTED) 1397 # ifdef PNG_TEXT_SUPPORTED
1350 png_size_t current_text_size; /* current size of text input data */ 1398 png_size_t current_text_size PNG_DEPSTRUCT; /* current size of text input data */
1351 png_size_t current_text_left; /* how much text left to read in input */ 1399 png_size_t current_text_left PNG_DEPSTRUCT; /* how much text left to read in input */
1352 png_charp current_text; /* current text chunk buffer */ 1400 png_charp current_text PNG_DEPSTRUCT; /* current text chunk buffer */
1353 png_charp current_text_ptr; /* current location in current_text */ 1401 png_charp current_text_ptr PNG_DEPSTRUCT; /* current location in curren t_text */
1354 # endif /* PNG_TEXT_SUPPORTED */ 1402 # endif /* PNG_TEXT_SUPPORTED */
1355 #endif /* PNG_PROGRESSIVE_READ_SUPPORTED */ 1403 #endif /* PNG_PROGRESSIVE_READ_SUPPORTED */
1356 1404
1357 #if defined(__TURBOC__) && !defined(_Windows) && !defined(__FLAT__) 1405 #if defined(__TURBOC__) && !defined(_Windows) && !defined(__FLAT__)
1358 /* for the Borland special 64K segment handler */ 1406 /* for the Borland special 64K segment handler */
1359 png_bytepp offset_table_ptr; 1407 png_bytepp offset_table_ptr PNG_DEPSTRUCT;
1360 png_bytep offset_table; 1408 png_bytep offset_table PNG_DEPSTRUCT;
1361 png_uint_16 offset_table_number; 1409 png_uint_16 offset_table_number PNG_DEPSTRUCT;
1362 png_uint_16 offset_table_count; 1410 png_uint_16 offset_table_count PNG_DEPSTRUCT;
1363 png_uint_16 offset_table_count_free; 1411 png_uint_16 offset_table_count_free PNG_DEPSTRUCT;
1364 #endif 1412 #endif
1365 1413
1366 #if defined(PNG_READ_DITHER_SUPPORTED) 1414 #ifdef PNG_READ_DITHER_SUPPORTED
1367 png_bytep palette_lookup; /* lookup table for dithering */ 1415 png_bytep palette_lookup PNG_DEPSTRUCT; /* lookup table for dithering */
1368 png_bytep dither_index; /* index translation for palette files */ 1416 png_bytep dither_index PNG_DEPSTRUCT; /* index translation for pale tte files */
1369 #endif 1417 #endif
1370 1418
1371 #if defined(PNG_READ_DITHER_SUPPORTED) || defined(PNG_hIST_SUPPORTED) 1419 #if defined(PNG_READ_DITHER_SUPPORTED) || defined(PNG_hIST_SUPPORTED)
1372 png_uint_16p hist; /* histogram */ 1420 png_uint_16p hist PNG_DEPSTRUCT; /* histogram */
1373 #endif 1421 #endif
1374 1422
1375 #if defined(PNG_WRITE_WEIGHTED_FILTER_SUPPORTED) 1423 #ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED
1376 png_byte heuristic_method; /* heuristic for row filter selection */ 1424 png_byte heuristic_method PNG_DEPSTRUCT; /* heuristic for row filter s election */
1377 png_byte num_prev_filters; /* number of weights for previous rows */ 1425 png_byte num_prev_filters PNG_DEPSTRUCT; /* number of weights for prev ious rows */
1378 png_bytep prev_filters; /* filter type(s) of previous row(s) */ 1426 png_bytep prev_filters PNG_DEPSTRUCT; /* filter type(s) of previous row(s) */
1379 png_uint_16p filter_weights; /* weight(s) for previous line(s) */ 1427 png_uint_16p filter_weights PNG_DEPSTRUCT; /* weight(s) for previous lin e(s) */
1380 png_uint_16p inv_filter_weights; /* 1/weight(s) for previous line(s) */ 1428 png_uint_16p inv_filter_weights PNG_DEPSTRUCT; /* 1/weight(s) for previous l ine(s) */
1381 png_uint_16p filter_costs; /* relative filter calculation cost */ 1429 png_uint_16p filter_costs PNG_DEPSTRUCT; /* relative filter calculatio n cost */
1382 png_uint_16p inv_filter_costs; /* 1/relative filter calculation cost */ 1430 png_uint_16p inv_filter_costs PNG_DEPSTRUCT; /* 1/relative filter calculat ion cost */
1383 #endif 1431 #endif
1384 1432
1385 #if defined(PNG_TIME_RFC1123_SUPPORTED) 1433 #ifdef PNG_TIME_RFC1123_SUPPORTED
1386 png_charp time_buffer; /* String to hold RFC 1123 time text */ 1434 png_charp time_buffer PNG_DEPSTRUCT; /* String to hold RFC 1123 ti me text */
1387 #endif 1435 #endif
1388 1436
1389 /* New members added in libpng-1.0.6 */ 1437 /* New members added in libpng-1.0.6 */
1390 1438
1391 #ifdef PNG_FREE_ME_SUPPORTED 1439 #ifdef PNG_FREE_ME_SUPPORTED
1392 png_uint_32 free_me; /* flags items libpng is responsible for freeing * / 1440 png_uint_32 free_me PNG_DEPSTRUCT; /* flags items libpng is responsible for freeing */
1393 #endif 1441 #endif
1394 1442
1395 #if defined(PNG_USER_CHUNKS_SUPPORTED) 1443 #ifdef PNG_USER_CHUNKS_SUPPORTED
1396 png_voidp user_chunk_ptr; 1444 png_voidp user_chunk_ptr PNG_DEPSTRUCT;
1397 png_user_chunk_ptr read_user_chunk_fn; /* user read chunk handler */ 1445 png_user_chunk_ptr read_user_chunk_fn PNG_DEPSTRUCT; /* user read chunk handl er */
1398 #endif 1446 #endif
1399 1447
1400 #if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED) 1448 #ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED
1401 int num_chunk_list; 1449 int num_chunk_list PNG_DEPSTRUCT;
1402 png_bytep chunk_list; 1450 png_bytep chunk_list PNG_DEPSTRUCT;
1403 #endif 1451 #endif
1404 1452
1405 /* New members added in libpng-1.0.3 */ 1453 /* New members added in libpng-1.0.3 */
1406 #if defined(PNG_READ_RGB_TO_GRAY_SUPPORTED) 1454 #ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED
1407 png_byte rgb_to_gray_status; 1455 png_byte rgb_to_gray_status PNG_DEPSTRUCT;
1408 /* These were changed from png_byte in libpng-1.0.6 */ 1456 /* These were changed from png_byte in libpng-1.0.6 */
1409 png_uint_16 rgb_to_gray_red_coeff; 1457 png_uint_16 rgb_to_gray_red_coeff PNG_DEPSTRUCT;
1410 png_uint_16 rgb_to_gray_green_coeff; 1458 png_uint_16 rgb_to_gray_green_coeff PNG_DEPSTRUCT;
1411 png_uint_16 rgb_to_gray_blue_coeff; 1459 png_uint_16 rgb_to_gray_blue_coeff PNG_DEPSTRUCT;
1412 #endif 1460 #endif
1413 1461
1414 /* New member added in libpng-1.0.4 (renamed in 1.0.9) */ 1462 /* New member added in libpng-1.0.4 (renamed in 1.0.9) */
1415 #if defined(PNG_MNG_FEATURES_SUPPORTED) || \ 1463 #if defined(PNG_MNG_FEATURES_SUPPORTED) || \
1416 defined(PNG_READ_EMPTY_PLTE_SUPPORTED) || \ 1464 defined(PNG_READ_EMPTY_PLTE_SUPPORTED) || \
1417 defined(PNG_WRITE_EMPTY_PLTE_SUPPORTED) 1465 defined(PNG_WRITE_EMPTY_PLTE_SUPPORTED)
1418 /* changed from png_byte to png_uint_32 at version 1.2.0 */ 1466 /* Changed from png_byte to png_uint_32 at version 1.2.0 */
1419 #ifdef PNG_1_0_X 1467 #ifdef PNG_1_0_X
1420 png_byte mng_features_permitted; 1468 png_byte mng_features_permitted PNG_DEPSTRUCT;
1421 #else 1469 #else
1422 png_uint_32 mng_features_permitted; 1470 png_uint_32 mng_features_permitted PNG_DEPSTRUCT;
1423 #endif /* PNG_1_0_X */ 1471 #endif /* PNG_1_0_X */
1424 #endif 1472 #endif
1425 1473
1426 /* New member added in libpng-1.0.7 */ 1474 /* New member added in libpng-1.0.7 */
1427 #if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) 1475 #if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED)
1428 png_fixed_point int_gamma; 1476 png_fixed_point int_gamma PNG_DEPSTRUCT;
1429 #endif 1477 #endif
1430 1478
1431 /* New member added in libpng-1.0.9, ifdef'ed out in 1.0.12, enabled in 1.2.0 */ 1479 /* New member added in libpng-1.0.9, ifdef'ed out in 1.0.12, enabled in 1.2.0 */
1432 #if defined(PNG_MNG_FEATURES_SUPPORTED) 1480 #ifdef PNG_MNG_FEATURES_SUPPORTED
1433 png_byte filter_type; 1481 png_byte filter_type PNG_DEPSTRUCT;
1434 #endif 1482 #endif
1435 1483
1436 #if defined(PNG_1_0_X) 1484 #ifdef PNG_1_0_X
1437 /* New member added in libpng-1.0.10, ifdef'ed out in 1.2.0 */ 1485 /* New member added in libpng-1.0.10, ifdef'ed out in 1.2.0 */
1438 png_uint_32 row_buf_size; 1486 png_uint_32 row_buf_size PNG_DEPSTRUCT;
1439 #endif 1487 #endif
1440 1488
1441 /* New members added in libpng-1.2.0 */ 1489 /* New members added in libpng-1.2.0 */
1442 #if defined(PNG_ASSEMBLER_CODE_SUPPORTED) 1490 #ifdef PNG_ASSEMBLER_CODE_SUPPORTED
1443 # if !defined(PNG_1_0_X) 1491 # ifndef PNG_1_0_X
1444 # if defined(PNG_MMX_CODE_SUPPORTED) 1492 # ifdef PNG_MMX_CODE_SUPPORTED
1445 png_byte mmx_bitdepth_threshold; 1493 png_byte mmx_bitdepth_threshold PNG_DEPSTRUCT;
1446 png_uint_32 mmx_rowbytes_threshold; 1494 png_uint_32 mmx_rowbytes_threshold PNG_DEPSTRUCT;
1447 # endif 1495 # endif
1448 png_uint_32 asm_flags; 1496 png_uint_32 asm_flags PNG_DEPSTRUCT;
1449 # endif 1497 # endif
1450 #endif 1498 #endif
1451 1499
1452 /* New members added in libpng-1.0.2 but first enabled by default in 1.2.0 */ 1500 /* New members added in libpng-1.0.2 but first enabled by default in 1.2.0 */
1453 #ifdef PNG_USER_MEM_SUPPORTED 1501 #ifdef PNG_USER_MEM_SUPPORTED
1454 png_voidp mem_ptr; /* user supplied struct for mem functions * / 1502 png_voidp mem_ptr PNG_DEPSTRUCT; /* user supplied struct for mem f unctions */
1455 png_malloc_ptr malloc_fn; /* function for allocating memory */ 1503 png_malloc_ptr malloc_fn PNG_DEPSTRUCT; /* function for allocating memory */
1456 png_free_ptr free_fn; /* function for freeing memory */ 1504 png_free_ptr free_fn PNG_DEPSTRUCT; /* function for freeing memory */
1457 #endif 1505 #endif
1458 1506
1459 /* New member added in libpng-1.0.13 and 1.2.0 */ 1507 /* New member added in libpng-1.0.13 and 1.2.0 */
1460 png_bytep big_row_buf; /* buffer to save current (unfiltered) row */ 1508 png_bytep big_row_buf PNG_DEPSTRUCT; /* buffer to save current (unfilt ered) row */
1461 1509
1462 #if defined(PNG_READ_DITHER_SUPPORTED) 1510 #ifdef PNG_READ_DITHER_SUPPORTED
1463 /* The following three members were added at version 1.0.14 and 1.2.4 */ 1511 /* The following three members were added at version 1.0.14 and 1.2.4 */
1464 png_bytep dither_sort; /* working sort array */ 1512 png_bytep dither_sort PNG_DEPSTRUCT; /* working sort array */
1465 png_bytep index_to_palette; /* where the original index currently is */ 1513 png_bytep index_to_palette PNG_DEPSTRUCT; /* where the original index curre ntly is */
1466 /* in the palette */ 1514 /* in the palette */
1467 png_bytep palette_to_index; /* which original index points to this */ 1515 png_bytep palette_to_index PNG_DEPSTRUCT; /* which original index points to this */
1468 /* palette color */ 1516 /* palette color */
1469 #endif 1517 #endif
1470 1518
1471 /* New members added in libpng-1.0.16 and 1.2.6 */ 1519 /* New members added in libpng-1.0.16 and 1.2.6 */
1472 png_byte compression_type; 1520 png_byte compression_type PNG_DEPSTRUCT;
1473 1521
1474 #ifdef PNG_SET_USER_LIMITS_SUPPORTED 1522 #ifdef PNG_USER_LIMITS_SUPPORTED
1475 png_uint_32 user_width_max; 1523 png_uint_32 user_width_max PNG_DEPSTRUCT;
1476 png_uint_32 user_height_max; 1524 png_uint_32 user_height_max PNG_DEPSTRUCT;
1477 #endif 1525 #endif
1478 1526
1479 /* New member added in libpng-1.0.25 and 1.2.17 */ 1527 /* New member added in libpng-1.0.25 and 1.2.17 */
1480 #if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED) 1528 #ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED
1481 /* storage for unknown chunk that the library doesn't recognize. */ 1529 /* Storage for unknown chunk that the library doesn't recognize. */
1482 png_unknown_chunk unknown_chunk; 1530 png_unknown_chunk unknown_chunk PNG_DEPSTRUCT;
1483 #endif 1531 #endif
1484 1532
1485 /* New members added in libpng-1.2.26 */ 1533 /* New members added in libpng-1.2.26 */
1486 png_uint_32 old_big_row_buf_size, old_prev_row_size; 1534 png_uint_32 old_big_row_buf_size PNG_DEPSTRUCT;
1535 png_uint_32 old_prev_row_size PNG_DEPSTRUCT;
1487 1536
1488 /* New member added in libpng-1.2.30 */ 1537 /* New member added in libpng-1.2.30 */
1489 png_charp chunkdata; /* buffer for reading chunk data */ 1538 png_charp chunkdata PNG_DEPSTRUCT; /* buffer for reading chunk data */
1539
1490 1540
1491 }; 1541 };
1492 1542
1493 1543
1494 /* This triggers a compiler error in png.c, if png.c and png.h 1544 /* This triggers a compiler error in png.c, if png.c and png.h
1495 * do not agree upon the version number. 1545 * do not agree upon the version number.
1496 */ 1546 */
1497 typedef png_structp version_1_2_37; 1547 typedef png_structp version_1_2_43;
1498 1548
1499 typedef png_struct FAR * FAR * png_structpp; 1549 typedef png_struct FAR * FAR * png_structpp;
1500 1550
1501 /* Here are the function definitions most commonly used. This is not 1551 /* Here are the function definitions most commonly used. This is not
1502 * the place to find out how to use libpng. See libpng.txt for the 1552 * the place to find out how to use libpng. See libpng.txt for the
1503 * full explanation, see example.c for the summary. This just provides 1553 * full explanation, see example.c for the summary. This just provides
1504 * a simple one line description of the use of each function. 1554 * a simple one line description of the use of each function.
1505 */ 1555 */
1506 1556
1507 /* Returns the version number of the library */ 1557 /* Returns the version number of the library */
1508 extern PNG_EXPORT(png_uint_32,png_access_version_number) PNGARG((void)); 1558 extern PNG_EXPORT(png_uint_32,png_access_version_number) PNGARG((void));
1509 1559
1510 /* Tell lib we have already handled the first <num_bytes> magic bytes. 1560 /* Tell lib we have already handled the first <num_bytes> magic bytes.
1511 * Handling more than 8 bytes from the beginning of the file is an error. 1561 * Handling more than 8 bytes from the beginning of the file is an error.
1512 */ 1562 */
1513 extern PNG_EXPORT(void,png_set_sig_bytes) PNGARG((png_structp png_ptr, 1563 extern PNG_EXPORT(void,png_set_sig_bytes) PNGARG((png_structp png_ptr,
1514 int num_bytes)); 1564 int num_bytes));
1515 1565
1516 /* Check sig[start] through sig[start + num_to_check - 1] to see if it's a 1566 /* Check sig[start] through sig[start + num_to_check - 1] to see if it's a
1517 * PNG file. Returns zero if the supplied bytes match the 8-byte PNG 1567 * PNG file. Returns zero if the supplied bytes match the 8-byte PNG
1518 * signature, and non-zero otherwise. Having num_to_check == 0 or 1568 * signature, and non-zero otherwise. Having num_to_check == 0 or
1519 * start > 7 will always fail (ie return non-zero). 1569 * start > 7 will always fail (ie return non-zero).
1520 */ 1570 */
1521 extern PNG_EXPORT(int,png_sig_cmp) PNGARG((png_bytep sig, png_size_t start, 1571 extern PNG_EXPORT(int,png_sig_cmp) PNGARG((png_bytep sig, png_size_t start,
1522 png_size_t num_to_check)); 1572 png_size_t num_to_check));
1523 1573
1524 /* Simple signature checking function. This is the same as calling 1574 /* Simple signature checking function. This is the same as calling
1525 * png_check_sig(sig, n) := !png_sig_cmp(sig, 0, n). 1575 * png_check_sig(sig, n) := !png_sig_cmp(sig, 0, n).
1526 */ 1576 */
1527 extern PNG_EXPORT(int,png_check_sig) PNGARG((png_bytep sig, int num)); 1577 extern PNG_EXPORT(int,png_check_sig) PNGARG((png_bytep sig, int num)) PNG_DEPREC ATED;
1528 1578
1529 /* Allocate and initialize png_ptr struct for reading, and any other memory. */ 1579 /* Allocate and initialize png_ptr struct for reading, and any other memory. */
1530 extern PNG_EXPORT(png_structp,png_create_read_struct) 1580 extern PNG_EXPORT(png_structp,png_create_read_struct)
1531 PNGARG((png_const_charp user_png_ver, png_voidp error_ptr, 1581 PNGARG((png_const_charp user_png_ver, png_voidp error_ptr,
1532 png_error_ptr error_fn, png_error_ptr warn_fn)); 1582 png_error_ptr error_fn, png_error_ptr warn_fn)) PNG_ALLOCATED;
1533 1583
1534 /* Allocate and initialize png_ptr struct for writing, and any other memory */ 1584 /* Allocate and initialize png_ptr struct for writing, and any other memory */
1535 extern PNG_EXPORT(png_structp,png_create_write_struct) 1585 extern PNG_EXPORT(png_structp,png_create_write_struct)
1536 PNGARG((png_const_charp user_png_ver, png_voidp error_ptr, 1586 PNGARG((png_const_charp user_png_ver, png_voidp error_ptr,
1537 png_error_ptr error_fn, png_error_ptr warn_fn)); 1587 png_error_ptr error_fn, png_error_ptr warn_fn)) PNG_ALLOCATED;
1538 1588
1539 #ifdef PNG_WRITE_SUPPORTED 1589 #ifdef PNG_WRITE_SUPPORTED
1540 extern PNG_EXPORT(png_uint_32,png_get_compression_buffer_size) 1590 extern PNG_EXPORT(png_uint_32,png_get_compression_buffer_size)
1541 PNGARG((png_structp png_ptr)); 1591 PNGARG((png_structp png_ptr));
1542 #endif 1592 #endif
1543 1593
1544 #ifdef PNG_WRITE_SUPPORTED 1594 #ifdef PNG_WRITE_SUPPORTED
1545 extern PNG_EXPORT(void,png_set_compression_buffer_size) 1595 extern PNG_EXPORT(void,png_set_compression_buffer_size)
1546 PNGARG((png_structp png_ptr, png_uint_32 size)); 1596 PNGARG((png_structp png_ptr, png_uint_32 size));
1547 #endif 1597 #endif
1548 1598
1549 /* Reset the compression stream */ 1599 /* Reset the compression stream */
1550 extern PNG_EXPORT(int,png_reset_zstream) PNGARG((png_structp png_ptr)); 1600 extern PNG_EXPORT(int,png_reset_zstream) PNGARG((png_structp png_ptr));
1551 1601
1552 /* New functions added in libpng-1.0.2 (not enabled by default until 1.2.0) */ 1602 /* New functions added in libpng-1.0.2 (not enabled by default until 1.2.0) */
1553 #ifdef PNG_USER_MEM_SUPPORTED 1603 #ifdef PNG_USER_MEM_SUPPORTED
1554 extern PNG_EXPORT(png_structp,png_create_read_struct_2) 1604 extern PNG_EXPORT(png_structp,png_create_read_struct_2)
1555 PNGARG((png_const_charp user_png_ver, png_voidp error_ptr, 1605 PNGARG((png_const_charp user_png_ver, png_voidp error_ptr,
1556 png_error_ptr error_fn, png_error_ptr warn_fn, png_voidp mem_ptr, 1606 png_error_ptr error_fn, png_error_ptr warn_fn, png_voidp mem_ptr,
1557 png_malloc_ptr malloc_fn, png_free_ptr free_fn)); 1607 png_malloc_ptr malloc_fn, png_free_ptr free_fn)) PNG_ALLOCATED;
1558 extern PNG_EXPORT(png_structp,png_create_write_struct_2) 1608 extern PNG_EXPORT(png_structp,png_create_write_struct_2)
1559 PNGARG((png_const_charp user_png_ver, png_voidp error_ptr, 1609 PNGARG((png_const_charp user_png_ver, png_voidp error_ptr,
1560 png_error_ptr error_fn, png_error_ptr warn_fn, png_voidp mem_ptr, 1610 png_error_ptr error_fn, png_error_ptr warn_fn, png_voidp mem_ptr,
1561 png_malloc_ptr malloc_fn, png_free_ptr free_fn)); 1611 png_malloc_ptr malloc_fn, png_free_ptr free_fn)) PNG_ALLOCATED;
1562 #endif 1612 #endif
1563 1613
1564 /* Write a PNG chunk - size, type, (optional) data, CRC. */ 1614 /* Write a PNG chunk - size, type, (optional) data, CRC. */
1565 extern PNG_EXPORT(void,png_write_chunk) PNGARG((png_structp png_ptr, 1615 extern PNG_EXPORT(void,png_write_chunk) PNGARG((png_structp png_ptr,
1566 png_bytep chunk_name, png_bytep data, png_size_t length)); 1616 png_bytep chunk_name, png_bytep data, png_size_t length));
1567 1617
1568 /* Write the start of a PNG chunk - length and chunk name. */ 1618 /* Write the start of a PNG chunk - length and chunk name. */
1569 extern PNG_EXPORT(void,png_write_chunk_start) PNGARG((png_structp png_ptr, 1619 extern PNG_EXPORT(void,png_write_chunk_start) PNGARG((png_structp png_ptr,
1570 png_bytep chunk_name, png_uint_32 length)); 1620 png_bytep chunk_name, png_uint_32 length));
1571 1621
1572 /* Write the data of a PNG chunk started with png_write_chunk_start(). */ 1622 /* Write the data of a PNG chunk started with png_write_chunk_start(). */
1573 extern PNG_EXPORT(void,png_write_chunk_data) PNGARG((png_structp png_ptr, 1623 extern PNG_EXPORT(void,png_write_chunk_data) PNGARG((png_structp png_ptr,
1574 png_bytep data, png_size_t length)); 1624 png_bytep data, png_size_t length));
1575 1625
1576 /* Finish a chunk started with png_write_chunk_start() (includes CRC). */ 1626 /* Finish a chunk started with png_write_chunk_start() (includes CRC). */
1577 extern PNG_EXPORT(void,png_write_chunk_end) PNGARG((png_structp png_ptr)); 1627 extern PNG_EXPORT(void,png_write_chunk_end) PNGARG((png_structp png_ptr));
1578 1628
1579 /* Allocate and initialize the info structure */ 1629 /* Allocate and initialize the info structure */
1580 extern PNG_EXPORT(png_infop,png_create_info_struct) 1630 extern PNG_EXPORT(png_infop,png_create_info_struct)
1581 PNGARG((png_structp png_ptr)); 1631 PNGARG((png_structp png_ptr)) PNG_ALLOCATED;
1582 1632
1583 #if defined(PNG_1_0_X) || defined (PNG_1_2_X) 1633 #if defined(PNG_1_0_X) || defined (PNG_1_2_X)
1584 /* Initialize the info structure (old interface - DEPRECATED) */ 1634 /* Initialize the info structure (old interface - DEPRECATED) */
1585 extern PNG_EXPORT(void,png_info_init) PNGARG((png_infop info_ptr)); 1635 extern PNG_EXPORT(void,png_info_init) PNGARG((png_infop info_ptr))
1636 PNG_DEPRECATED;
1586 #undef png_info_init 1637 #undef png_info_init
1587 #define png_info_init(info_ptr) png_info_init_3(&info_ptr,\ 1638 #define png_info_init(info_ptr) png_info_init_3(&info_ptr,\
1588 png_sizeof(png_info)); 1639 png_sizeof(png_info));
1589 #endif 1640 #endif
1590 1641
1591 extern PNG_EXPORT(void,png_info_init_3) PNGARG((png_infopp info_ptr, 1642 extern PNG_EXPORT(void,png_info_init_3) PNGARG((png_infopp info_ptr,
1592 png_size_t png_info_struct_size)); 1643 png_size_t png_info_struct_size));
1593 1644
1594 /* Writes all the PNG information before the image. */ 1645 /* Writes all the PNG information before the image. */
1595 extern PNG_EXPORT(void,png_write_info_before_PLTE) PNGARG((png_structp png_ptr, 1646 extern PNG_EXPORT(void,png_write_info_before_PLTE) PNGARG((png_structp png_ptr,
1596 png_infop info_ptr)); 1647 png_infop info_ptr));
1597 extern PNG_EXPORT(void,png_write_info) PNGARG((png_structp png_ptr, 1648 extern PNG_EXPORT(void,png_write_info) PNGARG((png_structp png_ptr,
1598 png_infop info_ptr)); 1649 png_infop info_ptr));
1599 1650
1600 #ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED 1651 #ifdef PNG_SEQUENTIAL_READ_SUPPORTED
1601 /* read the information before the actual image data. */ 1652 /* Read the information before the actual image data. */
1602 extern PNG_EXPORT(void,png_read_info) PNGARG((png_structp png_ptr, 1653 extern PNG_EXPORT(void,png_read_info) PNGARG((png_structp png_ptr,
1603 png_infop info_ptr)); 1654 png_infop info_ptr));
1604 #endif 1655 #endif
1605 1656
1606 #if defined(PNG_TIME_RFC1123_SUPPORTED) 1657 #ifdef PNG_TIME_RFC1123_SUPPORTED
1607 extern PNG_EXPORT(png_charp,png_convert_to_rfc1123) 1658 extern PNG_EXPORT(png_charp,png_convert_to_rfc1123)
1608 PNGARG((png_structp png_ptr, png_timep ptime)); 1659 PNGARG((png_structp png_ptr, png_timep ptime));
1609 #endif 1660 #endif
1610 1661
1611 #if !defined(_WIN32_WCE) 1662 #ifdef PNG_CONVERT_tIME_SUPPORTED
1612 /* "time.h" functions are not supported on WindowsCE */ 1663 /* Convert from a struct tm to png_time */
1613 #if defined(PNG_WRITE_tIME_SUPPORTED)
1614 /* convert from a struct tm to png_time */
1615 extern PNG_EXPORT(void,png_convert_from_struct_tm) PNGARG((png_timep ptime, 1664 extern PNG_EXPORT(void,png_convert_from_struct_tm) PNGARG((png_timep ptime,
1616 struct tm FAR * ttime)); 1665 struct tm FAR * ttime));
1617 1666
1618 /* convert from time_t to png_time. Uses gmtime() */ 1667 /* Convert from time_t to png_time. Uses gmtime() */
1619 extern PNG_EXPORT(void,png_convert_from_time_t) PNGARG((png_timep ptime, 1668 extern PNG_EXPORT(void,png_convert_from_time_t) PNGARG((png_timep ptime,
1620 time_t ttime)); 1669 time_t ttime));
1621 #endif /* PNG_WRITE_tIME_SUPPORTED */ 1670 #endif /* PNG_CONVERT_tIME_SUPPORTED */
1622 #endif /* _WIN32_WCE */
1623 1671
1624 #if defined(PNG_READ_EXPAND_SUPPORTED) 1672 #ifdef PNG_READ_EXPAND_SUPPORTED
1625 /* Expand data to 24-bit RGB, or 8-bit grayscale, with alpha if available. */ 1673 /* Expand data to 24-bit RGB, or 8-bit grayscale, with alpha if available. */
1626 extern PNG_EXPORT(void,png_set_expand) PNGARG((png_structp png_ptr)); 1674 extern PNG_EXPORT(void,png_set_expand) PNGARG((png_structp png_ptr));
1627 #if !defined(PNG_1_0_X) 1675 #ifndef PNG_1_0_X
1628 extern PNG_EXPORT(void,png_set_expand_gray_1_2_4_to_8) PNGARG((png_structp 1676 extern PNG_EXPORT(void,png_set_expand_gray_1_2_4_to_8) PNGARG((png_structp
1629 png_ptr)); 1677 png_ptr));
1630 #endif 1678 #endif
1631 extern PNG_EXPORT(void,png_set_palette_to_rgb) PNGARG((png_structp png_ptr)); 1679 extern PNG_EXPORT(void,png_set_palette_to_rgb) PNGARG((png_structp png_ptr));
1632 extern PNG_EXPORT(void,png_set_tRNS_to_alpha) PNGARG((png_structp png_ptr)); 1680 extern PNG_EXPORT(void,png_set_tRNS_to_alpha) PNGARG((png_structp png_ptr));
1633 #if defined(PNG_1_0_X) || defined (PNG_1_2_X) 1681 #if defined(PNG_1_0_X) || defined (PNG_1_2_X)
1634 /* Deprecated */ 1682 /* Deprecated */
1635 extern PNG_EXPORT(void,png_set_gray_1_2_4_to_8) PNGARG((png_structp png_ptr)); 1683 extern PNG_EXPORT(void,png_set_gray_1_2_4_to_8) PNGARG((png_structp
1684 png_ptr)) PNG_DEPRECATED;
1636 #endif 1685 #endif
1637 #endif 1686 #endif
1638 1687
1639 #if defined(PNG_READ_BGR_SUPPORTED) || defined(PNG_WRITE_BGR_SUPPORTED) 1688 #if defined(PNG_READ_BGR_SUPPORTED) || defined(PNG_WRITE_BGR_SUPPORTED)
1640 /* Use blue, green, red order for pixels. */ 1689 /* Use blue, green, red order for pixels. */
1641 extern PNG_EXPORT(void,png_set_bgr) PNGARG((png_structp png_ptr)); 1690 extern PNG_EXPORT(void,png_set_bgr) PNGARG((png_structp png_ptr));
1642 #endif 1691 #endif
1643 1692
1644 #if defined(PNG_READ_GRAY_TO_RGB_SUPPORTED) 1693 #ifdef PNG_READ_GRAY_TO_RGB_SUPPORTED
1645 /* Expand the grayscale to 24-bit RGB if necessary. */ 1694 /* Expand the grayscale to 24-bit RGB if necessary. */
1646 extern PNG_EXPORT(void,png_set_gray_to_rgb) PNGARG((png_structp png_ptr)); 1695 extern PNG_EXPORT(void,png_set_gray_to_rgb) PNGARG((png_structp png_ptr));
1647 #endif 1696 #endif
1648 1697
1649 #if defined(PNG_READ_RGB_TO_GRAY_SUPPORTED) 1698 #ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED
1650 /* Reduce RGB to grayscale. */ 1699 /* Reduce RGB to grayscale. */
1651 #ifdef PNG_FLOATING_POINT_SUPPORTED 1700 #ifdef PNG_FLOATING_POINT_SUPPORTED
1652 extern PNG_EXPORT(void,png_set_rgb_to_gray) PNGARG((png_structp png_ptr, 1701 extern PNG_EXPORT(void,png_set_rgb_to_gray) PNGARG((png_structp png_ptr,
1653 int error_action, double red, double green )); 1702 int error_action, double red, double green ));
1654 #endif 1703 #endif
1655 extern PNG_EXPORT(void,png_set_rgb_to_gray_fixed) PNGARG((png_structp png_ptr, 1704 extern PNG_EXPORT(void,png_set_rgb_to_gray_fixed) PNGARG((png_structp png_ptr,
1656 int error_action, png_fixed_point red, png_fixed_point green )); 1705 int error_action, png_fixed_point red, png_fixed_point green ));
1657 extern PNG_EXPORT(png_byte,png_get_rgb_to_gray_status) PNGARG((png_structp 1706 extern PNG_EXPORT(png_byte,png_get_rgb_to_gray_status) PNGARG((png_structp
1658 png_ptr)); 1707 png_ptr));
1659 #endif 1708 #endif
1660 1709
1661 extern PNG_EXPORT(void,png_build_grayscale_palette) PNGARG((int bit_depth, 1710 extern PNG_EXPORT(void,png_build_grayscale_palette) PNGARG((int bit_depth,
1662 png_colorp palette)); 1711 png_colorp palette));
1663 1712
1664 #if defined(PNG_READ_STRIP_ALPHA_SUPPORTED) 1713 #ifdef PNG_READ_STRIP_ALPHA_SUPPORTED
1665 extern PNG_EXPORT(void,png_set_strip_alpha) PNGARG((png_structp png_ptr)); 1714 extern PNG_EXPORT(void,png_set_strip_alpha) PNGARG((png_structp png_ptr));
1666 #endif 1715 #endif
1667 1716
1668 #if defined(PNG_READ_SWAP_ALPHA_SUPPORTED) || \ 1717 #if defined(PNG_READ_SWAP_ALPHA_SUPPORTED) || \
1669 defined(PNG_WRITE_SWAP_ALPHA_SUPPORTED) 1718 defined(PNG_WRITE_SWAP_ALPHA_SUPPORTED)
1670 extern PNG_EXPORT(void,png_set_swap_alpha) PNGARG((png_structp png_ptr)); 1719 extern PNG_EXPORT(void,png_set_swap_alpha) PNGARG((png_structp png_ptr));
1671 #endif 1720 #endif
1672 1721
1673 #if defined(PNG_READ_INVERT_ALPHA_SUPPORTED) || \ 1722 #if defined(PNG_READ_INVERT_ALPHA_SUPPORTED) || \
1674 defined(PNG_WRITE_INVERT_ALPHA_SUPPORTED) 1723 defined(PNG_WRITE_INVERT_ALPHA_SUPPORTED)
1675 extern PNG_EXPORT(void,png_set_invert_alpha) PNGARG((png_structp png_ptr)); 1724 extern PNG_EXPORT(void,png_set_invert_alpha) PNGARG((png_structp png_ptr));
1676 #endif 1725 #endif
1677 1726
1678 #if defined(PNG_READ_FILLER_SUPPORTED) || defined(PNG_WRITE_FILLER_SUPPORTED) 1727 #if defined(PNG_READ_FILLER_SUPPORTED) || defined(PNG_WRITE_FILLER_SUPPORTED)
1679 /* Add a filler byte to 8-bit Gray or 24-bit RGB images. */ 1728 /* Add a filler byte to 8-bit Gray or 24-bit RGB images. */
1680 extern PNG_EXPORT(void,png_set_filler) PNGARG((png_structp png_ptr, 1729 extern PNG_EXPORT(void,png_set_filler) PNGARG((png_structp png_ptr,
1681 png_uint_32 filler, int flags)); 1730 png_uint_32 filler, int flags));
1682 /* The values of the PNG_FILLER_ defines should NOT be changed */ 1731 /* The values of the PNG_FILLER_ defines should NOT be changed */
1683 #define PNG_FILLER_BEFORE 0 1732 #define PNG_FILLER_BEFORE 0
1684 #define PNG_FILLER_AFTER 1 1733 #define PNG_FILLER_AFTER 1
1685 /* Add an alpha byte to 8-bit Gray or 24-bit RGB images. */ 1734 /* Add an alpha byte to 8-bit Gray or 24-bit RGB images. */
1686 #if !defined(PNG_1_0_X) 1735 #ifndef PNG_1_0_X
1687 extern PNG_EXPORT(void,png_set_add_alpha) PNGARG((png_structp png_ptr, 1736 extern PNG_EXPORT(void,png_set_add_alpha) PNGARG((png_structp png_ptr,
1688 png_uint_32 filler, int flags)); 1737 png_uint_32 filler, int flags));
1689 #endif 1738 #endif
1690 #endif /* PNG_READ_FILLER_SUPPORTED || PNG_WRITE_FILLER_SUPPORTED */ 1739 #endif /* PNG_READ_FILLER_SUPPORTED || PNG_WRITE_FILLER_SUPPORTED */
1691 1740
1692 #if defined(PNG_READ_SWAP_SUPPORTED) || defined(PNG_WRITE_SWAP_SUPPORTED) 1741 #if defined(PNG_READ_SWAP_SUPPORTED) || defined(PNG_WRITE_SWAP_SUPPORTED)
1693 /* Swap bytes in 16-bit depth files. */ 1742 /* Swap bytes in 16-bit depth files. */
1694 extern PNG_EXPORT(void,png_set_swap) PNGARG((png_structp png_ptr)); 1743 extern PNG_EXPORT(void,png_set_swap) PNGARG((png_structp png_ptr));
1695 #endif 1744 #endif
1696 1745
(...skipping 17 matching lines...) Expand all
1714 defined(PNG_WRITE_INTERLACING_SUPPORTED) 1763 defined(PNG_WRITE_INTERLACING_SUPPORTED)
1715 /* Have the code handle the interlacing. Returns the number of passes. */ 1764 /* Have the code handle the interlacing. Returns the number of passes. */
1716 extern PNG_EXPORT(int,png_set_interlace_handling) PNGARG((png_structp png_ptr)); 1765 extern PNG_EXPORT(int,png_set_interlace_handling) PNGARG((png_structp png_ptr));
1717 #endif 1766 #endif
1718 1767
1719 #if defined(PNG_READ_INVERT_SUPPORTED) || defined(PNG_WRITE_INVERT_SUPPORTED) 1768 #if defined(PNG_READ_INVERT_SUPPORTED) || defined(PNG_WRITE_INVERT_SUPPORTED)
1720 /* Invert monochrome files */ 1769 /* Invert monochrome files */
1721 extern PNG_EXPORT(void,png_set_invert_mono) PNGARG((png_structp png_ptr)); 1770 extern PNG_EXPORT(void,png_set_invert_mono) PNGARG((png_structp png_ptr));
1722 #endif 1771 #endif
1723 1772
1724 #if defined(PNG_READ_BACKGROUND_SUPPORTED) 1773 #ifdef PNG_READ_BACKGROUND_SUPPORTED
1725 /* Handle alpha and tRNS by replacing with a background color. */ 1774 /* Handle alpha and tRNS by replacing with a background color. */
1726 #ifdef PNG_FLOATING_POINT_SUPPORTED 1775 #ifdef PNG_FLOATING_POINT_SUPPORTED
1727 extern PNG_EXPORT(void,png_set_background) PNGARG((png_structp png_ptr, 1776 extern PNG_EXPORT(void,png_set_background) PNGARG((png_structp png_ptr,
1728 png_color_16p background_color, int background_gamma_code, 1777 png_color_16p background_color, int background_gamma_code,
1729 int need_expand, double background_gamma)); 1778 int need_expand, double background_gamma));
1730 #endif 1779 #endif
1731 #define PNG_BACKGROUND_GAMMA_UNKNOWN 0 1780 #define PNG_BACKGROUND_GAMMA_UNKNOWN 0
1732 #define PNG_BACKGROUND_GAMMA_SCREEN 1 1781 #define PNG_BACKGROUND_GAMMA_SCREEN 1
1733 #define PNG_BACKGROUND_GAMMA_FILE 2 1782 #define PNG_BACKGROUND_GAMMA_FILE 2
1734 #define PNG_BACKGROUND_GAMMA_UNIQUE 3 1783 #define PNG_BACKGROUND_GAMMA_UNIQUE 3
1735 #endif 1784 #endif
1736 1785
1737 #if defined(PNG_READ_16_TO_8_SUPPORTED) 1786 #ifdef PNG_READ_16_TO_8_SUPPORTED
1738 /* strip the second byte of information from a 16-bit depth file. */ 1787 /* Strip the second byte of information from a 16-bit depth file. */
1739 extern PNG_EXPORT(void,png_set_strip_16) PNGARG((png_structp png_ptr)); 1788 extern PNG_EXPORT(void,png_set_strip_16) PNGARG((png_structp png_ptr));
1740 #endif 1789 #endif
1741 1790
1742 #if defined(PNG_READ_DITHER_SUPPORTED) 1791 #ifdef PNG_READ_DITHER_SUPPORTED
1743 /* Turn on dithering, and reduce the palette to the number of colors available. */ 1792 /* Turn on dithering, and reduce the palette to the number of colors available. */
1744 extern PNG_EXPORT(void,png_set_dither) PNGARG((png_structp png_ptr, 1793 extern PNG_EXPORT(void,png_set_dither) PNGARG((png_structp png_ptr,
1745 png_colorp palette, int num_palette, int maximum_colors, 1794 png_colorp palette, int num_palette, int maximum_colors,
1746 png_uint_16p histogram, int full_dither)); 1795 png_uint_16p histogram, int full_dither));
1747 #endif 1796 #endif
1748 1797
1749 #if defined(PNG_READ_GAMMA_SUPPORTED) 1798 #ifdef PNG_READ_GAMMA_SUPPORTED
1750 /* Handle gamma correction. Screen_gamma=(display_exponent) */ 1799 /* Handle gamma correction. Screen_gamma=(display_exponent) */
1751 #ifdef PNG_FLOATING_POINT_SUPPORTED 1800 #ifdef PNG_FLOATING_POINT_SUPPORTED
1752 extern PNG_EXPORT(void,png_set_gamma) PNGARG((png_structp png_ptr, 1801 extern PNG_EXPORT(void,png_set_gamma) PNGARG((png_structp png_ptr,
1753 double screen_gamma, double default_file_gamma)); 1802 double screen_gamma, double default_file_gamma));
1754 #endif 1803 #endif
1755 #endif 1804 #endif
1756 1805
1757 #if defined(PNG_1_0_X) || defined (PNG_1_2_X) 1806 #if defined(PNG_1_0_X) || defined (PNG_1_2_X)
1758 #if defined(PNG_READ_EMPTY_PLTE_SUPPORTED) || \ 1807 #if defined(PNG_READ_EMPTY_PLTE_SUPPORTED) || \
1759 defined(PNG_WRITE_EMPTY_PLTE_SUPPORTED) 1808 defined(PNG_WRITE_EMPTY_PLTE_SUPPORTED)
1760 /* Permit or disallow empty PLTE (0: not permitted, 1: permitted) */ 1809 /* Permit or disallow empty PLTE (0: not permitted, 1: permitted) */
1761 /* Deprecated and will be removed. Use png_permit_mng_features() instead. */ 1810 /* Deprecated and will be removed. Use png_permit_mng_features() instead. */
1762 extern PNG_EXPORT(void,png_permit_empty_plte) PNGARG((png_structp png_ptr, 1811 extern PNG_EXPORT(void,png_permit_empty_plte) PNGARG((png_structp png_ptr,
1763 int empty_plte_permitted)); 1812 int empty_plte_permitted)) PNG_DEPRECATED;
1764 #endif 1813 #endif
1765 #endif 1814 #endif
1766 1815
1767 #if defined(PNG_WRITE_FLUSH_SUPPORTED) 1816 #ifdef PNG_WRITE_FLUSH_SUPPORTED
1768 /* Set how many lines between output flushes - 0 for no flushing */ 1817 /* Set how many lines between output flushes - 0 for no flushing */
1769 extern PNG_EXPORT(void,png_set_flush) PNGARG((png_structp png_ptr, int nrows)); 1818 extern PNG_EXPORT(void,png_set_flush) PNGARG((png_structp png_ptr, int nrows));
1770 /* Flush the current PNG output buffer */ 1819 /* Flush the current PNG output buffer */
1771 extern PNG_EXPORT(void,png_write_flush) PNGARG((png_structp png_ptr)); 1820 extern PNG_EXPORT(void,png_write_flush) PNGARG((png_structp png_ptr));
1772 #endif 1821 #endif
1773 1822
1774 /* optional update palette with requested transformations */ 1823 /* Optional update palette with requested transformations */
1775 extern PNG_EXPORT(void,png_start_read_image) PNGARG((png_structp png_ptr)); 1824 extern PNG_EXPORT(void,png_start_read_image) PNGARG((png_structp png_ptr));
1776 1825
1777 /* optional call to update the users info structure */ 1826 /* Optional call to update the users info structure */
1778 extern PNG_EXPORT(void,png_read_update_info) PNGARG((png_structp png_ptr, 1827 extern PNG_EXPORT(void,png_read_update_info) PNGARG((png_structp png_ptr,
1779 png_infop info_ptr)); 1828 png_infop info_ptr));
1780 1829
1781 #ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED 1830 #ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED
1782 /* read one or more rows of image data. */ 1831 /* Read one or more rows of image data. */
1783 extern PNG_EXPORT(void,png_read_rows) PNGARG((png_structp png_ptr, 1832 extern PNG_EXPORT(void,png_read_rows) PNGARG((png_structp png_ptr,
1784 png_bytepp row, png_bytepp display_row, png_uint_32 num_rows)); 1833 png_bytepp row, png_bytepp display_row, png_uint_32 num_rows));
1785 #endif 1834 #endif
1786 1835
1787 #ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED 1836 #ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED
1788 /* read a row of data. */ 1837 /* Read a row of data. */
1789 extern PNG_EXPORT(void,png_read_row) PNGARG((png_structp png_ptr, 1838 extern PNG_EXPORT(void,png_read_row) PNGARG((png_structp png_ptr,
1790 png_bytep row, 1839 png_bytep row,
1791 png_bytep display_row)); 1840 png_bytep display_row));
1792 #endif 1841 #endif
1793 1842
1794 #ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED 1843 #ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED
1795 /* read the whole image into memory at once. */ 1844 /* Read the whole image into memory at once. */
1796 extern PNG_EXPORT(void,png_read_image) PNGARG((png_structp png_ptr, 1845 extern PNG_EXPORT(void,png_read_image) PNGARG((png_structp png_ptr,
1797 png_bytepp image)); 1846 png_bytepp image));
1798 #endif 1847 #endif
1799 1848
1800 /* write a row of image data */ 1849 /* Write a row of image data */
1801 extern PNG_EXPORT(void,png_write_row) PNGARG((png_structp png_ptr, 1850 extern PNG_EXPORT(void,png_write_row) PNGARG((png_structp png_ptr,
1802 png_bytep row)); 1851 png_bytep row));
1803 1852
1804 /* write a few rows of image data */ 1853 /* Write a few rows of image data */
1805 extern PNG_EXPORT(void,png_write_rows) PNGARG((png_structp png_ptr, 1854 extern PNG_EXPORT(void,png_write_rows) PNGARG((png_structp png_ptr,
1806 png_bytepp row, png_uint_32 num_rows)); 1855 png_bytepp row, png_uint_32 num_rows));
1807 1856
1808 /* write the image data */ 1857 /* Write the image data */
1809 extern PNG_EXPORT(void,png_write_image) PNGARG((png_structp png_ptr, 1858 extern PNG_EXPORT(void,png_write_image) PNGARG((png_structp png_ptr,
1810 png_bytepp image)); 1859 png_bytepp image));
1811 1860
1812 /* writes the end of the PNG file. */ 1861 /* Writes the end of the PNG file. */
1813 extern PNG_EXPORT(void,png_write_end) PNGARG((png_structp png_ptr, 1862 extern PNG_EXPORT(void,png_write_end) PNGARG((png_structp png_ptr,
1814 png_infop info_ptr)); 1863 png_infop info_ptr));
1815 1864
1816 #ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED 1865 #ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED
1817 /* read the end of the PNG file. */ 1866 /* Read the end of the PNG file. */
1818 extern PNG_EXPORT(void,png_read_end) PNGARG((png_structp png_ptr, 1867 extern PNG_EXPORT(void,png_read_end) PNGARG((png_structp png_ptr,
1819 png_infop info_ptr)); 1868 png_infop info_ptr));
1820 #endif 1869 #endif
1821 1870
1822 /* free any memory associated with the png_info_struct */ 1871 /* Free any memory associated with the png_info_struct */
1823 extern PNG_EXPORT(void,png_destroy_info_struct) PNGARG((png_structp png_ptr, 1872 extern PNG_EXPORT(void,png_destroy_info_struct) PNGARG((png_structp png_ptr,
1824 png_infopp info_ptr_ptr)); 1873 png_infopp info_ptr_ptr));
1825 1874
1826 /* free any memory associated with the png_struct and the png_info_structs */ 1875 /* Free any memory associated with the png_struct and the png_info_structs */
1827 extern PNG_EXPORT(void,png_destroy_read_struct) PNGARG((png_structpp 1876 extern PNG_EXPORT(void,png_destroy_read_struct) PNGARG((png_structpp
1828 png_ptr_ptr, png_infopp info_ptr_ptr, png_infopp end_info_ptr_ptr)); 1877 png_ptr_ptr, png_infopp info_ptr_ptr, png_infopp end_info_ptr_ptr));
1829 1878
1830 /* free all memory used by the read (old method - NOT DLL EXPORTED) */ 1879 /* Free all memory used by the read (old method - NOT DLL EXPORTED) */
1831 extern void png_read_destroy PNGARG((png_structp png_ptr, png_infop info_ptr, 1880 extern void png_read_destroy PNGARG((png_structp png_ptr, png_infop info_ptr,
1832 png_infop end_info_ptr)); 1881 png_infop end_info_ptr)) PNG_DEPRECATED;
1833 1882
1834 /* free any memory associated with the png_struct and the png_info_structs */ 1883 /* Free any memory associated with the png_struct and the png_info_structs */
1835 extern PNG_EXPORT(void,png_destroy_write_struct) 1884 extern PNG_EXPORT(void,png_destroy_write_struct)
1836 PNGARG((png_structpp png_ptr_ptr, png_infopp info_ptr_ptr)); 1885 PNGARG((png_structpp png_ptr_ptr, png_infopp info_ptr_ptr));
1837 1886
1838 /* free any memory used in png_ptr struct (old method - NOT DLL EXPORTED) */ 1887 /* Free any memory used in png_ptr struct (old method - NOT DLL EXPORTED) */
1839 extern void png_write_destroy PNGARG((png_structp png_ptr)); 1888 extern void png_write_destroy PNGARG((png_structp png_ptr)) PNG_DEPRECATED;
1840 1889
1841 /* set the libpng method of handling chunk CRC errors */ 1890 /* Set the libpng method of handling chunk CRC errors */
1842 extern PNG_EXPORT(void,png_set_crc_action) PNGARG((png_structp png_ptr, 1891 extern PNG_EXPORT(void,png_set_crc_action) PNGARG((png_structp png_ptr,
1843 int crit_action, int ancil_action)); 1892 int crit_action, int ancil_action));
1844 1893
1845 /* Values for png_set_crc_action() to say how to handle CRC errors in 1894 /* Values for png_set_crc_action() to say how to handle CRC errors in
1846 * ancillary and critical chunks, and whether to use the data contained 1895 * ancillary and critical chunks, and whether to use the data contained
1847 * therein. Note that it is impossible to "discard" data in a critical 1896 * therein. Note that it is impossible to "discard" data in a critical
1848 * chunk. For versions prior to 0.90, the action was always error/quit, 1897 * chunk. For versions prior to 0.90, the action was always error/quit,
1849 * whereas in version 0.90 and later, the action for CRC errors in ancillary 1898 * whereas in version 0.90 and later, the action for CRC errors in ancillary
1850 * chunks is warn/discard. These values should NOT be changed. 1899 * chunks is warn/discard. These values should NOT be changed.
1851 * 1900 *
1852 * value action:critical action:ancillary 1901 * value action:critical action:ancillary
1853 */ 1902 */
1854 #define PNG_CRC_DEFAULT 0 /* error/quit warn/discard data */ 1903 #define PNG_CRC_DEFAULT 0 /* error/quit warn/discard data */
1855 #define PNG_CRC_ERROR_QUIT 1 /* error/quit error/quit */ 1904 #define PNG_CRC_ERROR_QUIT 1 /* error/quit error/quit */
1856 #define PNG_CRC_WARN_DISCARD 2 /* (INVALID) warn/discard data */ 1905 #define PNG_CRC_WARN_DISCARD 2 /* (INVALID) warn/discard data */
1857 #define PNG_CRC_WARN_USE 3 /* warn/use data warn/use data */ 1906 #define PNG_CRC_WARN_USE 3 /* warn/use data warn/use data */
1858 #define PNG_CRC_QUIET_USE 4 /* quiet/use data quiet/use data */ 1907 #define PNG_CRC_QUIET_USE 4 /* quiet/use data quiet/use data */
1859 #define PNG_CRC_NO_CHANGE 5 /* use current value use current value */ 1908 #define PNG_CRC_NO_CHANGE 5 /* use current value use current value */
1860 1909
1861 /* These functions give the user control over the scan-line filtering in 1910 /* These functions give the user control over the scan-line filtering in
1862 * libpng and the compression methods used by zlib. These functions are 1911 * libpng and the compression methods used by zlib. These functions are
1863 * mainly useful for testing, as the defaults should work with most users. 1912 * mainly useful for testing, as the defaults should work with most users.
1864 * Those users who are tight on memory or want faster performance at the 1913 * Those users who are tight on memory or want faster performance at the
1865 * expense of compression can modify them. See the compression library 1914 * expense of compression can modify them. See the compression library
1866 * header file (zlib.h) for an explination of the compression functions. 1915 * header file (zlib.h) for an explination of the compression functions.
1867 */ 1916 */
1868 1917
1869 /* set the filtering method(s) used by libpng. Currently, the only valid 1918 /* Set the filtering method(s) used by libpng. Currently, the only valid
1870 * value for "method" is 0. 1919 * value for "method" is 0.
1871 */ 1920 */
1872 extern PNG_EXPORT(void,png_set_filter) PNGARG((png_structp png_ptr, int method, 1921 extern PNG_EXPORT(void,png_set_filter) PNGARG((png_structp png_ptr, int method,
1873 int filters)); 1922 int filters));
1874 1923
1875 /* Flags for png_set_filter() to say which filters to use. The flags 1924 /* Flags for png_set_filter() to say which filters to use. The flags
1876 * are chosen so that they don't conflict with real filter types 1925 * are chosen so that they don't conflict with real filter types
1877 * below, in case they are supplied instead of the #defined constants. 1926 * below, in case they are supplied instead of the #defined constants.
1878 * These values should NOT be changed. 1927 * These values should NOT be changed.
1879 */ 1928 */
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
1964 2013
1965 /* These next functions are called for input/output, memory, and error 2014 /* These next functions are called for input/output, memory, and error
1966 * handling. They are in the file pngrio.c, pngwio.c, and pngerror.c, 2015 * handling. They are in the file pngrio.c, pngwio.c, and pngerror.c,
1967 * and call standard C I/O routines such as fread(), fwrite(), and 2016 * and call standard C I/O routines such as fread(), fwrite(), and
1968 * fprintf(). These functions can be made to use other I/O routines 2017 * fprintf(). These functions can be made to use other I/O routines
1969 * at run time for those applications that need to handle I/O in a 2018 * at run time for those applications that need to handle I/O in a
1970 * different manner by calling png_set_???_fn(). See libpng.txt for 2019 * different manner by calling png_set_???_fn(). See libpng.txt for
1971 * more information. 2020 * more information.
1972 */ 2021 */
1973 2022
1974 #if !defined(PNG_NO_STDIO) 2023 #ifdef PNG_STDIO_SUPPORTED
1975 /* Initialize the input/output for the PNG file to the default functions. */ 2024 /* Initialize the input/output for the PNG file to the default functions. */
1976 extern PNG_EXPORT(void,png_init_io) PNGARG((png_structp png_ptr, png_FILE_p fp)) ; 2025 extern PNG_EXPORT(void,png_init_io) PNGARG((png_structp png_ptr, png_FILE_p fp)) ;
1977 #endif 2026 #endif
1978 2027
1979 /* Replace the (error and abort), and warning functions with user 2028 /* Replace the (error and abort), and warning functions with user
1980 * supplied functions. If no messages are to be printed you must still 2029 * supplied functions. If no messages are to be printed you must still
1981 * write and use replacement functions. The replacement error_fn should 2030 * write and use replacement functions. The replacement error_fn should
1982 * still do a longjmp to the last setjmp location if you are using this 2031 * still do a longjmp to the last setjmp location if you are using this
1983 * method of error handling. If error_fn or warning_fn is NULL, the 2032 * method of error handling. If error_fn or warning_fn is NULL, the
1984 * default function will be used. 2033 * default function will be used.
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
2056 2105
2057 #ifdef PNG_PROGRESSIVE_READ_SUPPORTED 2106 #ifdef PNG_PROGRESSIVE_READ_SUPPORTED
2058 /* Sets the function callbacks for the push reader, and a pointer to a 2107 /* Sets the function callbacks for the push reader, and a pointer to a
2059 * user-defined structure available to the callback functions. 2108 * user-defined structure available to the callback functions.
2060 */ 2109 */
2061 extern PNG_EXPORT(void,png_set_progressive_read_fn) PNGARG((png_structp png_ptr, 2110 extern PNG_EXPORT(void,png_set_progressive_read_fn) PNGARG((png_structp png_ptr,
2062 png_voidp progressive_ptr, 2111 png_voidp progressive_ptr,
2063 png_progressive_info_ptr info_fn, png_progressive_row_ptr row_fn, 2112 png_progressive_info_ptr info_fn, png_progressive_row_ptr row_fn,
2064 png_progressive_end_ptr end_fn)); 2113 png_progressive_end_ptr end_fn));
2065 2114
2066 /* returns the user pointer associated with the push read functions */ 2115 /* Returns the user pointer associated with the push read functions */
2067 extern PNG_EXPORT(png_voidp,png_get_progressive_ptr) 2116 extern PNG_EXPORT(png_voidp,png_get_progressive_ptr)
2068 PNGARG((png_structp png_ptr)); 2117 PNGARG((png_structp png_ptr));
2069 2118
2070 /* function to be called when data becomes available */ 2119 /* Function to be called when data becomes available */
2071 extern PNG_EXPORT(void,png_process_data) PNGARG((png_structp png_ptr, 2120 extern PNG_EXPORT(void,png_process_data) PNGARG((png_structp png_ptr,
2072 png_infop info_ptr, png_bytep buffer, png_size_t buffer_size)); 2121 png_infop info_ptr, png_bytep buffer, png_size_t buffer_size));
2073 2122
2074 /* function that combines rows. Not very much different than the 2123 /* Function that combines rows. Not very much different than the
2075 * png_combine_row() call. Is this even used????? 2124 * png_combine_row() call. Is this even used?????
2076 */ 2125 */
2077 extern PNG_EXPORT(void,png_progressive_combine_row) PNGARG((png_structp png_ptr, 2126 extern PNG_EXPORT(void,png_progressive_combine_row) PNGARG((png_structp png_ptr,
2078 png_bytep old_row, png_bytep new_row)); 2127 png_bytep old_row, png_bytep new_row));
2079 #endif /* PNG_PROGRESSIVE_READ_SUPPORTED */ 2128 #endif /* PNG_PROGRESSIVE_READ_SUPPORTED */
2080 2129
2081 extern PNG_EXPORT(png_voidp,png_malloc) PNGARG((png_structp png_ptr, 2130 extern PNG_EXPORT(png_voidp,png_malloc) PNGARG((png_structp png_ptr,
2082 png_uint_32 size)); 2131 png_uint_32 size)) PNG_ALLOCATED;
2083 2132
2084 #if defined(PNG_1_0_X) 2133 #ifdef PNG_1_0_X
2085 # define png_malloc_warn png_malloc 2134 # define png_malloc_warn png_malloc
2086 #else 2135 #else
2087 /* Added at libpng version 1.2.4 */ 2136 /* Added at libpng version 1.2.4 */
2088 extern PNG_EXPORT(png_voidp,png_malloc_warn) PNGARG((png_structp png_ptr, 2137 extern PNG_EXPORT(png_voidp,png_malloc_warn) PNGARG((png_structp png_ptr,
2089 png_uint_32 size)); 2138 png_uint_32 size)) PNG_ALLOCATED;
2090 #endif 2139 #endif
2091 2140
2092 /* frees a pointer allocated by png_malloc() */ 2141 /* Frees a pointer allocated by png_malloc() */
2093 extern PNG_EXPORT(void,png_free) PNGARG((png_structp png_ptr, png_voidp ptr)); 2142 extern PNG_EXPORT(void,png_free) PNGARG((png_structp png_ptr, png_voidp ptr));
2094 2143
2095 #if defined(PNG_1_0_X) 2144 #ifdef PNG_1_0_X
2096 /* Function to allocate memory for zlib. */ 2145 /* Function to allocate memory for zlib. */
2097 extern PNG_EXPORT(voidpf,png_zalloc) PNGARG((voidpf png_ptr, uInt items, 2146 extern PNG_EXPORT(voidpf,png_zalloc) PNGARG((voidpf png_ptr, uInt items,
2098 uInt size)); 2147 uInt size));
2099 2148
2100 /* Function to free memory for zlib */ 2149 /* Function to free memory for zlib */
2101 extern PNG_EXPORT(void,png_zfree) PNGARG((voidpf png_ptr, voidpf ptr)); 2150 extern PNG_EXPORT(void,png_zfree) PNGARG((voidpf png_ptr, voidpf ptr));
2102 #endif 2151 #endif
2103 2152
2104 /* Free data that was allocated internally */ 2153 /* Free data that was allocated internally */
2105 extern PNG_EXPORT(void,png_free_data) PNGARG((png_structp png_ptr, 2154 extern PNG_EXPORT(void,png_free_data) PNGARG((png_structp png_ptr,
2106 png_infop info_ptr, png_uint_32 free_me, int num)); 2155 png_infop info_ptr, png_uint_32 free_me, int num));
2107 #ifdef PNG_FREE_ME_SUPPORTED 2156 #ifdef PNG_FREE_ME_SUPPORTED
2108 /* Reassign responsibility for freeing existing data, whether allocated 2157 /* Reassign responsibility for freeing existing data, whether allocated
2109 * by libpng or by the application */ 2158 * by libpng or by the application
2159 */
2110 extern PNG_EXPORT(void,png_data_freer) PNGARG((png_structp png_ptr, 2160 extern PNG_EXPORT(void,png_data_freer) PNGARG((png_structp png_ptr,
2111 png_infop info_ptr, int freer, png_uint_32 mask)); 2161 png_infop info_ptr, int freer, png_uint_32 mask));
2112 #endif 2162 #endif
2113 /* assignments for png_data_freer */ 2163 /* Assignments for png_data_freer */
2114 #define PNG_DESTROY_WILL_FREE_DATA 1 2164 #define PNG_DESTROY_WILL_FREE_DATA 1
2115 #define PNG_SET_WILL_FREE_DATA 1 2165 #define PNG_SET_WILL_FREE_DATA 1
2116 #define PNG_USER_WILL_FREE_DATA 2 2166 #define PNG_USER_WILL_FREE_DATA 2
2117 /* Flags for png_ptr->free_me and info_ptr->free_me */ 2167 /* Flags for png_ptr->free_me and info_ptr->free_me */
2118 #define PNG_FREE_HIST 0x0008 2168 #define PNG_FREE_HIST 0x0008
2119 #define PNG_FREE_ICCP 0x0010 2169 #define PNG_FREE_ICCP 0x0010
2120 #define PNG_FREE_SPLT 0x0020 2170 #define PNG_FREE_SPLT 0x0020
2121 #define PNG_FREE_ROWS 0x0040 2171 #define PNG_FREE_ROWS 0x0040
2122 #define PNG_FREE_PCAL 0x0080 2172 #define PNG_FREE_PCAL 0x0080
2123 #define PNG_FREE_SCAL 0x0100 2173 #define PNG_FREE_SCAL 0x0100
2124 #define PNG_FREE_UNKN 0x0200 2174 #define PNG_FREE_UNKN 0x0200
2125 #define PNG_FREE_LIST 0x0400 2175 #define PNG_FREE_LIST 0x0400
2126 #define PNG_FREE_PLTE 0x1000 2176 #define PNG_FREE_PLTE 0x1000
2127 #define PNG_FREE_TRNS 0x2000 2177 #define PNG_FREE_TRNS 0x2000
2128 #define PNG_FREE_TEXT 0x4000 2178 #define PNG_FREE_TEXT 0x4000
2129 #define PNG_FREE_ALL 0x7fff 2179 #define PNG_FREE_ALL 0x7fff
2130 #define PNG_FREE_MUL 0x4220 /* PNG_FREE_SPLT|PNG_FREE_TEXT|PNG_FREE_UNKN */ 2180 #define PNG_FREE_MUL 0x4220 /* PNG_FREE_SPLT|PNG_FREE_TEXT|PNG_FREE_UNKN */
2131 2181
2132 #ifdef PNG_USER_MEM_SUPPORTED 2182 #ifdef PNG_USER_MEM_SUPPORTED
2133 extern PNG_EXPORT(png_voidp,png_malloc_default) PNGARG((png_structp png_ptr, 2183 extern PNG_EXPORT(png_voidp,png_malloc_default) PNGARG((png_structp png_ptr,
2134 png_uint_32 size)); 2184 png_uint_32 size)) PNG_ALLOCATED;
2135 extern PNG_EXPORT(void,png_free_default) PNGARG((png_structp png_ptr, 2185 extern PNG_EXPORT(void,png_free_default) PNGARG((png_structp png_ptr,
2136 png_voidp ptr)); 2186 png_voidp ptr));
2137 #endif 2187 #endif
2138 2188
2139 extern PNG_EXPORT(png_voidp,png_memcpy_check) PNGARG((png_structp png_ptr, 2189 extern PNG_EXPORT(png_voidp,png_memcpy_check) PNGARG((png_structp png_ptr,
2140 png_voidp s1, png_voidp s2, png_uint_32 size)); 2190 png_voidp s1, png_voidp s2, png_uint_32 size)) PNG_DEPRECATED;
2141 2191
2142 extern PNG_EXPORT(png_voidp,png_memset_check) PNGARG((png_structp png_ptr, 2192 extern PNG_EXPORT(png_voidp,png_memset_check) PNGARG((png_structp png_ptr,
2143 png_voidp s1, int value, png_uint_32 size)); 2193 png_voidp s1, int value, png_uint_32 size)) PNG_DEPRECATED;
2144 2194
2145 #if defined(USE_FAR_KEYWORD) /* memory model conversion function */ 2195 #if defined(USE_FAR_KEYWORD) /* memory model conversion function */
2146 extern void *png_far_to_near PNGARG((png_structp png_ptr,png_voidp ptr, 2196 extern void *png_far_to_near PNGARG((png_structp png_ptr,png_voidp ptr,
2147 int check)); 2197 int check));
2148 #endif /* USE_FAR_KEYWORD */ 2198 #endif /* USE_FAR_KEYWORD */
2149 2199
2150 #ifndef PNG_NO_ERROR_TEXT 2200 #ifndef PNG_NO_ERROR_TEXT
2151 /* Fatal error in PNG image of libpng - can't continue */ 2201 /* Fatal error in PNG image of libpng - can't continue */
2152 extern PNG_EXPORT(void,png_error) PNGARG((png_structp png_ptr, 2202 extern PNG_EXPORT(void,png_error) PNGARG((png_structp png_ptr,
2153 png_const_charp error_message)); 2203 png_const_charp error_message)) PNG_NORETURN;
2154 2204
2155 /* The same, but the chunk name is prepended to the error string. */ 2205 /* The same, but the chunk name is prepended to the error string. */
2156 extern PNG_EXPORT(void,png_chunk_error) PNGARG((png_structp png_ptr, 2206 extern PNG_EXPORT(void,png_chunk_error) PNGARG((png_structp png_ptr,
2157 png_const_charp error_message)); 2207 png_const_charp error_message)) PNG_NORETURN;
2158 #else 2208 #else
2159 /* Fatal error in PNG image of libpng - can't continue */ 2209 /* Fatal error in PNG image of libpng - can't continue */
2160 extern PNG_EXPORT(void,png_err) PNGARG((png_structp png_ptr)); 2210 extern PNG_EXPORT(void,png_err) PNGARG((png_structp png_ptr)) PNG_NORETURN;
2161 #endif 2211 #endif
2162 2212
2163 #ifndef PNG_NO_WARNINGS 2213 #ifndef PNG_NO_WARNINGS
2164 /* Non-fatal error in libpng. Can continue, but may have a problem. */ 2214 /* Non-fatal error in libpng. Can continue, but may have a problem. */
2165 extern PNG_EXPORT(void,png_warning) PNGARG((png_structp png_ptr, 2215 extern PNG_EXPORT(void,png_warning) PNGARG((png_structp png_ptr,
2166 png_const_charp warning_message)); 2216 png_const_charp warning_message));
2167 2217
2168 #ifdef PNG_READ_SUPPORTED 2218 #ifdef PNG_READ_SUPPORTED
2169 /* Non-fatal error in libpng, chunk name is prepended to message. */ 2219 /* Non-fatal error in libpng, chunk name is prepended to message. */
2170 extern PNG_EXPORT(void,png_chunk_warning) PNGARG((png_structp png_ptr, 2220 extern PNG_EXPORT(void,png_chunk_warning) PNGARG((png_structp png_ptr,
(...skipping 14 matching lines...) Expand all
2185 * png_info_struct. 2235 * png_info_struct.
2186 */ 2236 */
2187 /* Returns "flag" if chunk data is valid in info_ptr. */ 2237 /* Returns "flag" if chunk data is valid in info_ptr. */
2188 extern PNG_EXPORT(png_uint_32,png_get_valid) PNGARG((png_structp png_ptr, 2238 extern PNG_EXPORT(png_uint_32,png_get_valid) PNGARG((png_structp png_ptr,
2189 png_infop info_ptr, png_uint_32 flag)); 2239 png_infop info_ptr, png_uint_32 flag));
2190 2240
2191 /* Returns number of bytes needed to hold a transformed row. */ 2241 /* Returns number of bytes needed to hold a transformed row. */
2192 extern PNG_EXPORT(png_uint_32,png_get_rowbytes) PNGARG((png_structp png_ptr, 2242 extern PNG_EXPORT(png_uint_32,png_get_rowbytes) PNGARG((png_structp png_ptr,
2193 png_infop info_ptr)); 2243 png_infop info_ptr));
2194 2244
2195 #if defined(PNG_INFO_IMAGE_SUPPORTED) 2245 #ifdef PNG_INFO_IMAGE_SUPPORTED
2196 /* Returns row_pointers, which is an array of pointers to scanlines that was 2246 /* Returns row_pointers, which is an array of pointers to scanlines that was
2197 returned from png_read_png(). */ 2247 * returned from png_read_png().
2248 */
2198 extern PNG_EXPORT(png_bytepp,png_get_rows) PNGARG((png_structp png_ptr, 2249 extern PNG_EXPORT(png_bytepp,png_get_rows) PNGARG((png_structp png_ptr,
2199 png_infop info_ptr)); 2250 png_infop info_ptr));
2200 /* Set row_pointers, which is an array of pointers to scanlines for use 2251 /* Set row_pointers, which is an array of pointers to scanlines for use
2201 by png_write_png(). */ 2252 * by png_write_png().
2253 */
2202 extern PNG_EXPORT(void,png_set_rows) PNGARG((png_structp png_ptr, 2254 extern PNG_EXPORT(void,png_set_rows) PNGARG((png_structp png_ptr,
2203 png_infop info_ptr, png_bytepp row_pointers)); 2255 png_infop info_ptr, png_bytepp row_pointers));
2204 #endif 2256 #endif
2205 2257
2206 /* Returns number of color channels in image. */ 2258 /* Returns number of color channels in image. */
2207 extern PNG_EXPORT(png_byte,png_get_channels) PNGARG((png_structp png_ptr, 2259 extern PNG_EXPORT(png_byte,png_get_channels) PNGARG((png_structp png_ptr,
2208 png_infop info_ptr)); 2260 png_infop info_ptr));
2209 2261
2210 #ifdef PNG_EASY_ACCESS_SUPPORTED 2262 #ifdef PNG_EASY_ACCESS_SUPPORTED
2211 /* Returns image width in pixels. */ 2263 /* Returns image width in pixels. */
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
2259 png_ptr, png_infop info_ptr)); 2311 png_ptr, png_infop info_ptr));
2260 extern PNG_EXPORT(png_int_32, png_get_y_offset_microns) PNGARG((png_structp 2312 extern PNG_EXPORT(png_int_32, png_get_y_offset_microns) PNGARG((png_structp
2261 png_ptr, png_infop info_ptr)); 2313 png_ptr, png_infop info_ptr));
2262 2314
2263 #endif /* PNG_EASY_ACCESS_SUPPORTED */ 2315 #endif /* PNG_EASY_ACCESS_SUPPORTED */
2264 2316
2265 /* Returns pointer to signature string read from PNG header */ 2317 /* Returns pointer to signature string read from PNG header */
2266 extern PNG_EXPORT(png_bytep,png_get_signature) PNGARG((png_structp png_ptr, 2318 extern PNG_EXPORT(png_bytep,png_get_signature) PNGARG((png_structp png_ptr,
2267 png_infop info_ptr)); 2319 png_infop info_ptr));
2268 2320
2269 #if defined(PNG_bKGD_SUPPORTED) 2321 #ifdef PNG_bKGD_SUPPORTED
2270 extern PNG_EXPORT(png_uint_32,png_get_bKGD) PNGARG((png_structp png_ptr, 2322 extern PNG_EXPORT(png_uint_32,png_get_bKGD) PNGARG((png_structp png_ptr,
2271 png_infop info_ptr, png_color_16p *background)); 2323 png_infop info_ptr, png_color_16p *background));
2272 #endif 2324 #endif
2273 2325
2274 #if defined(PNG_bKGD_SUPPORTED) 2326 #ifdef PNG_bKGD_SUPPORTED
2275 extern PNG_EXPORT(void,png_set_bKGD) PNGARG((png_structp png_ptr, 2327 extern PNG_EXPORT(void,png_set_bKGD) PNGARG((png_structp png_ptr,
2276 png_infop info_ptr, png_color_16p background)); 2328 png_infop info_ptr, png_color_16p background));
2277 #endif 2329 #endif
2278 2330
2279 #if defined(PNG_cHRM_SUPPORTED) 2331 #ifdef PNG_cHRM_SUPPORTED
2280 #ifdef PNG_FLOATING_POINT_SUPPORTED 2332 #ifdef PNG_FLOATING_POINT_SUPPORTED
2281 extern PNG_EXPORT(png_uint_32,png_get_cHRM) PNGARG((png_structp png_ptr, 2333 extern PNG_EXPORT(png_uint_32,png_get_cHRM) PNGARG((png_structp png_ptr,
2282 png_infop info_ptr, double *white_x, double *white_y, double *red_x, 2334 png_infop info_ptr, double *white_x, double *white_y, double *red_x,
2283 double *red_y, double *green_x, double *green_y, double *blue_x, 2335 double *red_y, double *green_x, double *green_y, double *blue_x,
2284 double *blue_y)); 2336 double *blue_y));
2285 #endif 2337 #endif
2286 #ifdef PNG_FIXED_POINT_SUPPORTED 2338 #ifdef PNG_FIXED_POINT_SUPPORTED
2287 extern PNG_EXPORT(png_uint_32,png_get_cHRM_fixed) PNGARG((png_structp png_ptr, 2339 extern PNG_EXPORT(png_uint_32,png_get_cHRM_fixed) PNGARG((png_structp png_ptr,
2288 png_infop info_ptr, png_fixed_point *int_white_x, png_fixed_point 2340 png_infop info_ptr, png_fixed_point *int_white_x, png_fixed_point
2289 *int_white_y, png_fixed_point *int_red_x, png_fixed_point *int_red_y, 2341 *int_white_y, png_fixed_point *int_red_x, png_fixed_point *int_red_y,
2290 png_fixed_point *int_green_x, png_fixed_point *int_green_y, png_fixed_point 2342 png_fixed_point *int_green_x, png_fixed_point *int_green_y, png_fixed_point
2291 *int_blue_x, png_fixed_point *int_blue_y)); 2343 *int_blue_x, png_fixed_point *int_blue_y));
2292 #endif 2344 #endif
2293 #endif 2345 #endif
2294 2346
2295 #if defined(PNG_cHRM_SUPPORTED) 2347 #ifdef PNG_cHRM_SUPPORTED
2296 #ifdef PNG_FLOATING_POINT_SUPPORTED 2348 #ifdef PNG_FLOATING_POINT_SUPPORTED
2297 extern PNG_EXPORT(void,png_set_cHRM) PNGARG((png_structp png_ptr, 2349 extern PNG_EXPORT(void,png_set_cHRM) PNGARG((png_structp png_ptr,
2298 png_infop info_ptr, double white_x, double white_y, double red_x, 2350 png_infop info_ptr, double white_x, double white_y, double red_x,
2299 double red_y, double green_x, double green_y, double blue_x, double blue_y)); 2351 double red_y, double green_x, double green_y, double blue_x, double blue_y));
2300 #endif 2352 #endif
2301 #ifdef PNG_FIXED_POINT_SUPPORTED 2353 #ifdef PNG_FIXED_POINT_SUPPORTED
2302 extern PNG_EXPORT(void,png_set_cHRM_fixed) PNGARG((png_structp png_ptr, 2354 extern PNG_EXPORT(void,png_set_cHRM_fixed) PNGARG((png_structp png_ptr,
2303 png_infop info_ptr, png_fixed_point int_white_x, png_fixed_point int_white_y, 2355 png_infop info_ptr, png_fixed_point int_white_x, png_fixed_point int_white_y,
2304 png_fixed_point int_red_x, png_fixed_point int_red_y, png_fixed_point 2356 png_fixed_point int_red_x, png_fixed_point int_red_y, png_fixed_point
2305 int_green_x, png_fixed_point int_green_y, png_fixed_point int_blue_x, 2357 int_green_x, png_fixed_point int_green_y, png_fixed_point int_blue_x,
2306 png_fixed_point int_blue_y)); 2358 png_fixed_point int_blue_y));
2307 #endif 2359 #endif
2308 #endif 2360 #endif
2309 2361
2310 #if defined(PNG_gAMA_SUPPORTED) 2362 #ifdef PNG_gAMA_SUPPORTED
2311 #ifdef PNG_FLOATING_POINT_SUPPORTED 2363 #ifdef PNG_FLOATING_POINT_SUPPORTED
2312 extern PNG_EXPORT(png_uint_32,png_get_gAMA) PNGARG((png_structp png_ptr, 2364 extern PNG_EXPORT(png_uint_32,png_get_gAMA) PNGARG((png_structp png_ptr,
2313 png_infop info_ptr, double *file_gamma)); 2365 png_infop info_ptr, double *file_gamma));
2314 #endif 2366 #endif
2315 extern PNG_EXPORT(png_uint_32,png_get_gAMA_fixed) PNGARG((png_structp png_ptr, 2367 extern PNG_EXPORT(png_uint_32,png_get_gAMA_fixed) PNGARG((png_structp png_ptr,
2316 png_infop info_ptr, png_fixed_point *int_file_gamma)); 2368 png_infop info_ptr, png_fixed_point *int_file_gamma));
2317 #endif 2369 #endif
2318 2370
2319 #if defined(PNG_gAMA_SUPPORTED) 2371 #ifdef PNG_gAMA_SUPPORTED
2320 #ifdef PNG_FLOATING_POINT_SUPPORTED 2372 #ifdef PNG_FLOATING_POINT_SUPPORTED
2321 extern PNG_EXPORT(void,png_set_gAMA) PNGARG((png_structp png_ptr, 2373 extern PNG_EXPORT(void,png_set_gAMA) PNGARG((png_structp png_ptr,
2322 png_infop info_ptr, double file_gamma)); 2374 png_infop info_ptr, double file_gamma));
2323 #endif 2375 #endif
2324 extern PNG_EXPORT(void,png_set_gAMA_fixed) PNGARG((png_structp png_ptr, 2376 extern PNG_EXPORT(void,png_set_gAMA_fixed) PNGARG((png_structp png_ptr,
2325 png_infop info_ptr, png_fixed_point int_file_gamma)); 2377 png_infop info_ptr, png_fixed_point int_file_gamma));
2326 #endif 2378 #endif
2327 2379
2328 #if defined(PNG_hIST_SUPPORTED) 2380 #ifdef PNG_hIST_SUPPORTED
2329 extern PNG_EXPORT(png_uint_32,png_get_hIST) PNGARG((png_structp png_ptr, 2381 extern PNG_EXPORT(png_uint_32,png_get_hIST) PNGARG((png_structp png_ptr,
2330 png_infop info_ptr, png_uint_16p *hist)); 2382 png_infop info_ptr, png_uint_16p *hist));
2331 #endif 2383 #endif
2332 2384
2333 #if defined(PNG_hIST_SUPPORTED) 2385 #ifdef PNG_hIST_SUPPORTED
2334 extern PNG_EXPORT(void,png_set_hIST) PNGARG((png_structp png_ptr, 2386 extern PNG_EXPORT(void,png_set_hIST) PNGARG((png_structp png_ptr,
2335 png_infop info_ptr, png_uint_16p hist)); 2387 png_infop info_ptr, png_uint_16p hist));
2336 #endif 2388 #endif
2337 2389
2338 extern PNG_EXPORT(png_uint_32,png_get_IHDR) PNGARG((png_structp png_ptr, 2390 extern PNG_EXPORT(png_uint_32,png_get_IHDR) PNGARG((png_structp png_ptr,
2339 png_infop info_ptr, png_uint_32 *width, png_uint_32 *height, 2391 png_infop info_ptr, png_uint_32 *width, png_uint_32 *height,
2340 int *bit_depth, int *color_type, int *interlace_method, 2392 int *bit_depth, int *color_type, int *interlace_method,
2341 int *compression_method, int *filter_method)); 2393 int *compression_method, int *filter_method));
2342 2394
2343 extern PNG_EXPORT(void,png_set_IHDR) PNGARG((png_structp png_ptr, 2395 extern PNG_EXPORT(void,png_set_IHDR) PNGARG((png_structp png_ptr,
2344 png_infop info_ptr, png_uint_32 width, png_uint_32 height, int bit_depth, 2396 png_infop info_ptr, png_uint_32 width, png_uint_32 height, int bit_depth,
2345 int color_type, int interlace_method, int compression_method, 2397 int color_type, int interlace_method, int compression_method,
2346 int filter_method)); 2398 int filter_method));
2347 2399
2348 #if defined(PNG_oFFs_SUPPORTED) 2400 #ifdef PNG_oFFs_SUPPORTED
2349 extern PNG_EXPORT(png_uint_32,png_get_oFFs) PNGARG((png_structp png_ptr, 2401 extern PNG_EXPORT(png_uint_32,png_get_oFFs) PNGARG((png_structp png_ptr,
2350 png_infop info_ptr, png_int_32 *offset_x, png_int_32 *offset_y, 2402 png_infop info_ptr, png_int_32 *offset_x, png_int_32 *offset_y,
2351 int *unit_type)); 2403 int *unit_type));
2352 #endif 2404 #endif
2353 2405
2354 #if defined(PNG_oFFs_SUPPORTED) 2406 #ifdef PNG_oFFs_SUPPORTED
2355 extern PNG_EXPORT(void,png_set_oFFs) PNGARG((png_structp png_ptr, 2407 extern PNG_EXPORT(void,png_set_oFFs) PNGARG((png_structp png_ptr,
2356 png_infop info_ptr, png_int_32 offset_x, png_int_32 offset_y, 2408 png_infop info_ptr, png_int_32 offset_x, png_int_32 offset_y,
2357 int unit_type)); 2409 int unit_type));
2358 #endif 2410 #endif
2359 2411
2360 #if defined(PNG_pCAL_SUPPORTED) 2412 #ifdef PNG_pCAL_SUPPORTED
2361 extern PNG_EXPORT(png_uint_32,png_get_pCAL) PNGARG((png_structp png_ptr, 2413 extern PNG_EXPORT(png_uint_32,png_get_pCAL) PNGARG((png_structp png_ptr,
2362 png_infop info_ptr, png_charp *purpose, png_int_32 *X0, png_int_32 *X1, 2414 png_infop info_ptr, png_charp *purpose, png_int_32 *X0, png_int_32 *X1,
2363 int *type, int *nparams, png_charp *units, png_charpp *params)); 2415 int *type, int *nparams, png_charp *units, png_charpp *params));
2364 #endif 2416 #endif
2365 2417
2366 #if defined(PNG_pCAL_SUPPORTED) 2418 #ifdef PNG_pCAL_SUPPORTED
2367 extern PNG_EXPORT(void,png_set_pCAL) PNGARG((png_structp png_ptr, 2419 extern PNG_EXPORT(void,png_set_pCAL) PNGARG((png_structp png_ptr,
2368 png_infop info_ptr, png_charp purpose, png_int_32 X0, png_int_32 X1, 2420 png_infop info_ptr, png_charp purpose, png_int_32 X0, png_int_32 X1,
2369 int type, int nparams, png_charp units, png_charpp params)); 2421 int type, int nparams, png_charp units, png_charpp params));
2370 #endif 2422 #endif
2371 2423
2372 #if defined(PNG_pHYs_SUPPORTED) 2424 #ifdef PNG_pHYs_SUPPORTED
2373 extern PNG_EXPORT(png_uint_32,png_get_pHYs) PNGARG((png_structp png_ptr, 2425 extern PNG_EXPORT(png_uint_32,png_get_pHYs) PNGARG((png_structp png_ptr,
2374 png_infop info_ptr, png_uint_32 *res_x, png_uint_32 *res_y, int *unit_type)); 2426 png_infop info_ptr, png_uint_32 *res_x, png_uint_32 *res_y, int *unit_type));
2375 #endif 2427 #endif
2376 2428
2377 #if defined(PNG_pHYs_SUPPORTED) 2429 #ifdef PNG_pHYs_SUPPORTED
2378 extern PNG_EXPORT(void,png_set_pHYs) PNGARG((png_structp png_ptr, 2430 extern PNG_EXPORT(void,png_set_pHYs) PNGARG((png_structp png_ptr,
2379 png_infop info_ptr, png_uint_32 res_x, png_uint_32 res_y, int unit_type)); 2431 png_infop info_ptr, png_uint_32 res_x, png_uint_32 res_y, int unit_type));
2380 #endif 2432 #endif
2381 2433
2382 extern PNG_EXPORT(png_uint_32,png_get_PLTE) PNGARG((png_structp png_ptr, 2434 extern PNG_EXPORT(png_uint_32,png_get_PLTE) PNGARG((png_structp png_ptr,
2383 png_infop info_ptr, png_colorp *palette, int *num_palette)); 2435 png_infop info_ptr, png_colorp *palette, int *num_palette));
2384 2436
2385 extern PNG_EXPORT(void,png_set_PLTE) PNGARG((png_structp png_ptr, 2437 extern PNG_EXPORT(void,png_set_PLTE) PNGARG((png_structp png_ptr,
2386 png_infop info_ptr, png_colorp palette, int num_palette)); 2438 png_infop info_ptr, png_colorp palette, int num_palette));
2387 2439
2388 #if defined(PNG_sBIT_SUPPORTED) 2440 #ifdef PNG_sBIT_SUPPORTED
2389 extern PNG_EXPORT(png_uint_32,png_get_sBIT) PNGARG((png_structp png_ptr, 2441 extern PNG_EXPORT(png_uint_32,png_get_sBIT) PNGARG((png_structp png_ptr,
2390 png_infop info_ptr, png_color_8p *sig_bit)); 2442 png_infop info_ptr, png_color_8p *sig_bit));
2391 #endif 2443 #endif
2392 2444
2393 #if defined(PNG_sBIT_SUPPORTED) 2445 #ifdef PNG_sBIT_SUPPORTED
2394 extern PNG_EXPORT(void,png_set_sBIT) PNGARG((png_structp png_ptr, 2446 extern PNG_EXPORT(void,png_set_sBIT) PNGARG((png_structp png_ptr,
2395 png_infop info_ptr, png_color_8p sig_bit)); 2447 png_infop info_ptr, png_color_8p sig_bit));
2396 #endif 2448 #endif
2397 2449
2398 #if defined(PNG_sRGB_SUPPORTED) 2450 #ifdef PNG_sRGB_SUPPORTED
2399 extern PNG_EXPORT(png_uint_32,png_get_sRGB) PNGARG((png_structp png_ptr, 2451 extern PNG_EXPORT(png_uint_32,png_get_sRGB) PNGARG((png_structp png_ptr,
2400 png_infop info_ptr, int *intent)); 2452 png_infop info_ptr, int *intent));
2401 #endif 2453 #endif
2402 2454
2403 #if defined(PNG_sRGB_SUPPORTED) 2455 #ifdef PNG_sRGB_SUPPORTED
2404 extern PNG_EXPORT(void,png_set_sRGB) PNGARG((png_structp png_ptr, 2456 extern PNG_EXPORT(void,png_set_sRGB) PNGARG((png_structp png_ptr,
2405 png_infop info_ptr, int intent)); 2457 png_infop info_ptr, int intent));
2406 extern PNG_EXPORT(void,png_set_sRGB_gAMA_and_cHRM) PNGARG((png_structp png_ptr, 2458 extern PNG_EXPORT(void,png_set_sRGB_gAMA_and_cHRM) PNGARG((png_structp png_ptr,
2407 png_infop info_ptr, int intent)); 2459 png_infop info_ptr, int intent));
2408 #endif 2460 #endif
2409 2461
2410 #if defined(PNG_iCCP_SUPPORTED) 2462 #ifdef PNG_iCCP_SUPPORTED
2411 extern PNG_EXPORT(png_uint_32,png_get_iCCP) PNGARG((png_structp png_ptr, 2463 extern PNG_EXPORT(png_uint_32,png_get_iCCP) PNGARG((png_structp png_ptr,
2412 png_infop info_ptr, png_charpp name, int *compression_type, 2464 png_infop info_ptr, png_charpp name, int *compression_type,
2413 png_charpp profile, png_uint_32 *proflen)); 2465 png_charpp profile, png_uint_32 *proflen));
2414 /* Note to maintainer: profile should be png_bytepp */ 2466 /* Note to maintainer: profile should be png_bytepp */
2415 #endif 2467 #endif
2416 2468
2417 #if defined(PNG_iCCP_SUPPORTED) 2469 #ifdef PNG_iCCP_SUPPORTED
2418 extern PNG_EXPORT(void,png_set_iCCP) PNGARG((png_structp png_ptr, 2470 extern PNG_EXPORT(void,png_set_iCCP) PNGARG((png_structp png_ptr,
2419 png_infop info_ptr, png_charp name, int compression_type, 2471 png_infop info_ptr, png_charp name, int compression_type,
2420 png_charp profile, png_uint_32 proflen)); 2472 png_charp profile, png_uint_32 proflen));
2421 /* Note to maintainer: profile should be png_bytep */ 2473 /* Note to maintainer: profile should be png_bytep */
2422 #endif 2474 #endif
2423 2475
2424 #if defined(PNG_sPLT_SUPPORTED) 2476 #ifdef PNG_sPLT_SUPPORTED
2425 extern PNG_EXPORT(png_uint_32,png_get_sPLT) PNGARG((png_structp png_ptr, 2477 extern PNG_EXPORT(png_uint_32,png_get_sPLT) PNGARG((png_structp png_ptr,
2426 png_infop info_ptr, png_sPLT_tpp entries)); 2478 png_infop info_ptr, png_sPLT_tpp entries));
2427 #endif 2479 #endif
2428 2480
2429 #if defined(PNG_sPLT_SUPPORTED) 2481 #ifdef PNG_sPLT_SUPPORTED
2430 extern PNG_EXPORT(void,png_set_sPLT) PNGARG((png_structp png_ptr, 2482 extern PNG_EXPORT(void,png_set_sPLT) PNGARG((png_structp png_ptr,
2431 png_infop info_ptr, png_sPLT_tp entries, int nentries)); 2483 png_infop info_ptr, png_sPLT_tp entries, int nentries));
2432 #endif 2484 #endif
2433 2485
2434 #if defined(PNG_TEXT_SUPPORTED) 2486 #ifdef PNG_TEXT_SUPPORTED
2435 /* png_get_text also returns the number of text chunks in *num_text */ 2487 /* png_get_text also returns the number of text chunks in *num_text */
2436 extern PNG_EXPORT(png_uint_32,png_get_text) PNGARG((png_structp png_ptr, 2488 extern PNG_EXPORT(png_uint_32,png_get_text) PNGARG((png_structp png_ptr,
2437 png_infop info_ptr, png_textp *text_ptr, int *num_text)); 2489 png_infop info_ptr, png_textp *text_ptr, int *num_text));
2438 #endif 2490 #endif
2439 2491
2440 /* 2492 /*
2441 * Note while png_set_text() will accept a structure whose text, 2493 * Note while png_set_text() will accept a structure whose text,
2442 * language, and translated keywords are NULL pointers, the structure 2494 * language, and translated keywords are NULL pointers, the structure
2443 * returned by png_get_text will always contain regular 2495 * returned by png_get_text will always contain regular
2444 * zero-terminated C strings. They might be empty strings but 2496 * zero-terminated C strings. They might be empty strings but
2445 * they will never be NULL pointers. 2497 * they will never be NULL pointers.
2446 */ 2498 */
2447 2499
2448 #if defined(PNG_TEXT_SUPPORTED) 2500 #ifdef PNG_TEXT_SUPPORTED
2449 extern PNG_EXPORT(void,png_set_text) PNGARG((png_structp png_ptr, 2501 extern PNG_EXPORT(void,png_set_text) PNGARG((png_structp png_ptr,
2450 png_infop info_ptr, png_textp text_ptr, int num_text)); 2502 png_infop info_ptr, png_textp text_ptr, int num_text));
2451 #endif 2503 #endif
2452 2504
2453 #if defined(PNG_tIME_SUPPORTED) 2505 #ifdef PNG_tIME_SUPPORTED
2454 extern PNG_EXPORT(png_uint_32,png_get_tIME) PNGARG((png_structp png_ptr, 2506 extern PNG_EXPORT(png_uint_32,png_get_tIME) PNGARG((png_structp png_ptr,
2455 png_infop info_ptr, png_timep *mod_time)); 2507 png_infop info_ptr, png_timep *mod_time));
2456 #endif 2508 #endif
2457 2509
2458 #if defined(PNG_tIME_SUPPORTED) 2510 #ifdef PNG_tIME_SUPPORTED
2459 extern PNG_EXPORT(void,png_set_tIME) PNGARG((png_structp png_ptr, 2511 extern PNG_EXPORT(void,png_set_tIME) PNGARG((png_structp png_ptr,
2460 png_infop info_ptr, png_timep mod_time)); 2512 png_infop info_ptr, png_timep mod_time));
2461 #endif 2513 #endif
2462 2514
2463 #if defined(PNG_tRNS_SUPPORTED) 2515 #ifdef PNG_tRNS_SUPPORTED
2464 extern PNG_EXPORT(png_uint_32,png_get_tRNS) PNGARG((png_structp png_ptr, 2516 extern PNG_EXPORT(png_uint_32,png_get_tRNS) PNGARG((png_structp png_ptr,
2465 png_infop info_ptr, png_bytep *trans, int *num_trans, 2517 png_infop info_ptr, png_bytep *trans, int *num_trans,
2466 png_color_16p *trans_values)); 2518 png_color_16p *trans_values));
2467 #endif 2519 #endif
2468 2520
2469 #if defined(PNG_tRNS_SUPPORTED) 2521 #ifdef PNG_tRNS_SUPPORTED
2470 extern PNG_EXPORT(void,png_set_tRNS) PNGARG((png_structp png_ptr, 2522 extern PNG_EXPORT(void,png_set_tRNS) PNGARG((png_structp png_ptr,
2471 png_infop info_ptr, png_bytep trans, int num_trans, 2523 png_infop info_ptr, png_bytep trans, int num_trans,
2472 png_color_16p trans_values)); 2524 png_color_16p trans_values));
2473 #endif 2525 #endif
2474 2526
2475 #if defined(PNG_tRNS_SUPPORTED) 2527 #ifdef PNG_tRNS_SUPPORTED
2476 #endif 2528 #endif
2477 2529
2478 #if defined(PNG_sCAL_SUPPORTED) 2530 #ifdef PNG_sCAL_SUPPORTED
2479 #ifdef PNG_FLOATING_POINT_SUPPORTED 2531 #ifdef PNG_FLOATING_POINT_SUPPORTED
2480 extern PNG_EXPORT(png_uint_32,png_get_sCAL) PNGARG((png_structp png_ptr, 2532 extern PNG_EXPORT(png_uint_32,png_get_sCAL) PNGARG((png_structp png_ptr,
2481 png_infop info_ptr, int *unit, double *width, double *height)); 2533 png_infop info_ptr, int *unit, double *width, double *height));
2482 #else 2534 #else
2483 #ifdef PNG_FIXED_POINT_SUPPORTED 2535 #ifdef PNG_FIXED_POINT_SUPPORTED
2484 extern PNG_EXPORT(png_uint_32,png_get_sCAL_s) PNGARG((png_structp png_ptr, 2536 extern PNG_EXPORT(png_uint_32,png_get_sCAL_s) PNGARG((png_structp png_ptr,
2485 png_infop info_ptr, int *unit, png_charpp swidth, png_charpp sheight)); 2537 png_infop info_ptr, int *unit, png_charpp swidth, png_charpp sheight));
2486 #endif 2538 #endif
2487 #endif 2539 #endif
2488 #endif /* PNG_sCAL_SUPPORTED */ 2540 #endif /* PNG_sCAL_SUPPORTED */
2489 2541
2490 #if defined(PNG_sCAL_SUPPORTED) 2542 #ifdef PNG_sCAL_SUPPORTED
2491 #ifdef PNG_FLOATING_POINT_SUPPORTED 2543 #ifdef PNG_FLOATING_POINT_SUPPORTED
2492 extern PNG_EXPORT(void,png_set_sCAL) PNGARG((png_structp png_ptr, 2544 extern PNG_EXPORT(void,png_set_sCAL) PNGARG((png_structp png_ptr,
2493 png_infop info_ptr, int unit, double width, double height)); 2545 png_infop info_ptr, int unit, double width, double height));
2494 #else 2546 #else
2495 #ifdef PNG_FIXED_POINT_SUPPORTED 2547 #ifdef PNG_FIXED_POINT_SUPPORTED
2496 extern PNG_EXPORT(void,png_set_sCAL_s) PNGARG((png_structp png_ptr, 2548 extern PNG_EXPORT(void,png_set_sCAL_s) PNGARG((png_structp png_ptr,
2497 png_infop info_ptr, int unit, png_charp swidth, png_charp sheight)); 2549 png_infop info_ptr, int unit, png_charp swidth, png_charp sheight));
2498 #endif 2550 #endif
2499 #endif 2551 #endif
2500 #endif /* PNG_sCAL_SUPPORTED || PNG_WRITE_sCAL_SUPPORTED */ 2552 #endif /* PNG_sCAL_SUPPORTED || PNG_WRITE_sCAL_SUPPORTED */
2501 2553
2502 #if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED) 2554 #ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED
2503 /* provide a list of chunks and how they are to be handled, if the built-in 2555 /* Provide a list of chunks and how they are to be handled, if the built-in
2504 handling or default unknown chunk handling is not desired. Any chunks not 2556 handling or default unknown chunk handling is not desired. Any chunks not
2505 listed will be handled in the default manner. The IHDR and IEND chunks 2557 listed will be handled in the default manner. The IHDR and IEND chunks
2506 must not be listed. 2558 must not be listed.
2507 keep = 0: follow default behaviour 2559 keep = 0: follow default behaviour
2508 = 1: do not keep 2560 = 1: do not keep
2509 = 2: keep only if safe-to-copy 2561 = 2: keep only if safe-to-copy
2510 = 3: keep even if unsafe-to-copy 2562 = 3: keep even if unsafe-to-copy
2511 */ 2563 */
2512 extern PNG_EXPORT(void, png_set_keep_unknown_chunks) PNGARG((png_structp 2564 extern PNG_EXPORT(void, png_set_keep_unknown_chunks) PNGARG((png_structp
2513 png_ptr, int keep, png_bytep chunk_list, int num_chunks)); 2565 png_ptr, int keep, png_bytep chunk_list, int num_chunks));
2566 PNG_EXPORT(int,png_handle_as_unknown) PNGARG((png_structp png_ptr, png_bytep
2567 chunk_name));
2568 #endif
2569 #ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED
2514 extern PNG_EXPORT(void, png_set_unknown_chunks) PNGARG((png_structp png_ptr, 2570 extern PNG_EXPORT(void, png_set_unknown_chunks) PNGARG((png_structp png_ptr,
2515 png_infop info_ptr, png_unknown_chunkp unknowns, int num_unknowns)); 2571 png_infop info_ptr, png_unknown_chunkp unknowns, int num_unknowns));
2516 extern PNG_EXPORT(void, png_set_unknown_chunk_location) 2572 extern PNG_EXPORT(void, png_set_unknown_chunk_location)
2517 PNGARG((png_structp png_ptr, png_infop info_ptr, int chunk, int location)); 2573 PNGARG((png_structp png_ptr, png_infop info_ptr, int chunk, int location));
2518 extern PNG_EXPORT(png_uint_32,png_get_unknown_chunks) PNGARG((png_structp 2574 extern PNG_EXPORT(png_uint_32,png_get_unknown_chunks) PNGARG((png_structp
2519 png_ptr, png_infop info_ptr, png_unknown_chunkpp entries)); 2575 png_ptr, png_infop info_ptr, png_unknown_chunkpp entries));
2520 #endif 2576 #endif
2521 #ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED
2522 PNG_EXPORT(int,png_handle_as_unknown) PNGARG((png_structp png_ptr, png_bytep
2523 chunk_name));
2524 #endif
2525 2577
2526 /* Png_free_data() will turn off the "valid" flag for anything it frees. 2578 /* Png_free_data() will turn off the "valid" flag for anything it frees.
2527 If you need to turn it off for a chunk that your application has freed, 2579 * If you need to turn it off for a chunk that your application has freed,
2528 you can use png_set_invalid(png_ptr, info_ptr, PNG_INFO_CHNK); */ 2580 * you can use png_set_invalid(png_ptr, info_ptr, PNG_INFO_CHNK);
2581 */
2529 extern PNG_EXPORT(void, png_set_invalid) PNGARG((png_structp png_ptr, 2582 extern PNG_EXPORT(void, png_set_invalid) PNGARG((png_structp png_ptr,
2530 png_infop info_ptr, int mask)); 2583 png_infop info_ptr, int mask));
2531 2584
2532 #if defined(PNG_INFO_IMAGE_SUPPORTED) 2585 #ifdef PNG_INFO_IMAGE_SUPPORTED
2533 /* The "params" pointer is currently not used and is for future expansion. */ 2586 /* The "params" pointer is currently not used and is for future expansion. */
2534 extern PNG_EXPORT(void, png_read_png) PNGARG((png_structp png_ptr, 2587 extern PNG_EXPORT(void, png_read_png) PNGARG((png_structp png_ptr,
2535 png_infop info_ptr, 2588 png_infop info_ptr,
2536 int transforms, 2589 int transforms,
2537 png_voidp params)); 2590 png_voidp params));
2538 extern PNG_EXPORT(void, png_write_png) PNGARG((png_structp png_ptr, 2591 extern PNG_EXPORT(void, png_write_png) PNGARG((png_structp png_ptr,
2539 png_infop info_ptr, 2592 png_infop info_ptr,
2540 int transforms, 2593 int transforms,
2541 png_voidp params)); 2594 png_voidp params));
2542 #endif 2595 #endif
(...skipping 20 matching lines...) Expand all
2563 #ifndef png_debug2 2616 #ifndef png_debug2
2564 #define png_debug2(l,m,p1,p2) _RPT2(_CRT_WARN,m PNG_STRING_NEWLINE,p1,p2) 2617 #define png_debug2(l,m,p1,p2) _RPT2(_CRT_WARN,m PNG_STRING_NEWLINE,p1,p2)
2565 #endif 2618 #endif
2566 #endif 2619 #endif
2567 #else /* PNG_DEBUG_FILE || !_MSC_VER */ 2620 #else /* PNG_DEBUG_FILE || !_MSC_VER */
2568 #ifndef PNG_DEBUG_FILE 2621 #ifndef PNG_DEBUG_FILE
2569 #define PNG_DEBUG_FILE stderr 2622 #define PNG_DEBUG_FILE stderr
2570 #endif /* PNG_DEBUG_FILE */ 2623 #endif /* PNG_DEBUG_FILE */
2571 2624
2572 #if (PNG_DEBUG > 1) 2625 #if (PNG_DEBUG > 1)
2573 /* Note: ["%s"m PNG_STRING_NEWLINE] probably does not work on 2626 /* Note: ["%s"m PNG_STRING_NEWLINE] probably does not work on non-ISO
2574 * non-ISO compilers */ 2627 * compilers.
2628 */
2575 # ifdef __STDC__ 2629 # ifdef __STDC__
2576 # ifndef png_debug 2630 # ifndef png_debug
2577 # define png_debug(l,m) \ 2631 # define png_debug(l,m) \
2578 { \ 2632 { \
2579 int num_tabs=l; \ 2633 int num_tabs=l; \
2580 fprintf(PNG_DEBUG_FILE,"%s"m PNG_STRING_NEWLINE,(num_tabs==1 ? "\t" : \ 2634 fprintf(PNG_DEBUG_FILE,"%s"m PNG_STRING_NEWLINE,(num_tabs==1 ? "\t" : \
2581 (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":"")))); \ 2635 (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":"")))); \
2582 } 2636 }
2583 # endif 2637 # endif
2584 # ifndef png_debug1 2638 # ifndef png_debug1
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
2657 png_ptr, png_uint_32 mng_features_permitted)); 2711 png_ptr, png_uint_32 mng_features_permitted));
2658 #endif 2712 #endif
2659 2713
2660 /* For use in png_set_keep_unknown, added to version 1.2.6 */ 2714 /* For use in png_set_keep_unknown, added to version 1.2.6 */
2661 #define PNG_HANDLE_CHUNK_AS_DEFAULT 0 2715 #define PNG_HANDLE_CHUNK_AS_DEFAULT 0
2662 #define PNG_HANDLE_CHUNK_NEVER 1 2716 #define PNG_HANDLE_CHUNK_NEVER 1
2663 #define PNG_HANDLE_CHUNK_IF_SAFE 2 2717 #define PNG_HANDLE_CHUNK_IF_SAFE 2
2664 #define PNG_HANDLE_CHUNK_ALWAYS 3 2718 #define PNG_HANDLE_CHUNK_ALWAYS 3
2665 2719
2666 /* Added to version 1.2.0 */ 2720 /* Added to version 1.2.0 */
2667 #if defined(PNG_ASSEMBLER_CODE_SUPPORTED) 2721 #ifdef PNG_ASSEMBLER_CODE_SUPPORTED
2668 #if defined(PNG_MMX_CODE_SUPPORTED) 2722 #ifdef PNG_MMX_CODE_SUPPORTED
2669 #define PNG_ASM_FLAG_MMX_SUPPORT_COMPILED 0x01 /* not user-settable */ 2723 #define PNG_ASM_FLAG_MMX_SUPPORT_COMPILED 0x01 /* not user-settable */
2670 #define PNG_ASM_FLAG_MMX_SUPPORT_IN_CPU 0x02 /* not user-settable */ 2724 #define PNG_ASM_FLAG_MMX_SUPPORT_IN_CPU 0x02 /* not user-settable */
2671 #define PNG_ASM_FLAG_MMX_READ_COMBINE_ROW 0x04 2725 #define PNG_ASM_FLAG_MMX_READ_COMBINE_ROW 0x04
2672 #define PNG_ASM_FLAG_MMX_READ_INTERLACE 0x08 2726 #define PNG_ASM_FLAG_MMX_READ_INTERLACE 0x08
2673 #define PNG_ASM_FLAG_MMX_READ_FILTER_SUB 0x10 2727 #define PNG_ASM_FLAG_MMX_READ_FILTER_SUB 0x10
2674 #define PNG_ASM_FLAG_MMX_READ_FILTER_UP 0x20 2728 #define PNG_ASM_FLAG_MMX_READ_FILTER_UP 0x20
2675 #define PNG_ASM_FLAG_MMX_READ_FILTER_AVG 0x40 2729 #define PNG_ASM_FLAG_MMX_READ_FILTER_AVG 0x40
2676 #define PNG_ASM_FLAG_MMX_READ_FILTER_PAETH 0x80 2730 #define PNG_ASM_FLAG_MMX_READ_FILTER_PAETH 0x80
2677 #define PNG_ASM_FLAGS_INITIALIZED 0x80000000 /* not user-settable */ 2731 #define PNG_ASM_FLAGS_INITIALIZED 0x80000000 /* not user-settable */
2678 2732
2679 #define PNG_MMX_READ_FLAGS ( PNG_ASM_FLAG_MMX_READ_COMBINE_ROW \ 2733 #define PNG_MMX_READ_FLAGS ( PNG_ASM_FLAG_MMX_READ_COMBINE_ROW \
2680 | PNG_ASM_FLAG_MMX_READ_INTERLACE \ 2734 | PNG_ASM_FLAG_MMX_READ_INTERLACE \
2681 | PNG_ASM_FLAG_MMX_READ_FILTER_SUB \ 2735 | PNG_ASM_FLAG_MMX_READ_FILTER_SUB \
2682 | PNG_ASM_FLAG_MMX_READ_FILTER_UP \ 2736 | PNG_ASM_FLAG_MMX_READ_FILTER_UP \
2683 | PNG_ASM_FLAG_MMX_READ_FILTER_AVG \ 2737 | PNG_ASM_FLAG_MMX_READ_FILTER_AVG \
2684 | PNG_ASM_FLAG_MMX_READ_FILTER_PAETH ) 2738 | PNG_ASM_FLAG_MMX_READ_FILTER_PAETH )
2685 #define PNG_MMX_WRITE_FLAGS ( 0 ) 2739 #define PNG_MMX_WRITE_FLAGS ( 0 )
2686 2740
2687 #define PNG_MMX_FLAGS ( PNG_ASM_FLAG_MMX_SUPPORT_COMPILED \ 2741 #define PNG_MMX_FLAGS ( PNG_ASM_FLAG_MMX_SUPPORT_COMPILED \
2688 | PNG_ASM_FLAG_MMX_SUPPORT_IN_CPU \ 2742 | PNG_ASM_FLAG_MMX_SUPPORT_IN_CPU \
2689 | PNG_MMX_READ_FLAGS \ 2743 | PNG_MMX_READ_FLAGS \
2690 | PNG_MMX_WRITE_FLAGS ) 2744 | PNG_MMX_WRITE_FLAGS )
2691 2745
2692 #define PNG_SELECT_READ 1 2746 #define PNG_SELECT_READ 1
2693 #define PNG_SELECT_WRITE 2 2747 #define PNG_SELECT_WRITE 2
2694 #endif /* PNG_MMX_CODE_SUPPORTED */ 2748 #endif /* PNG_MMX_CODE_SUPPORTED */
2695 2749
2696 #if !defined(PNG_1_0_X) 2750 #ifndef PNG_1_0_X
2697 /* pngget.c */ 2751 /* pngget.c */
2698 extern PNG_EXPORT(png_uint_32,png_get_mmx_flagmask) 2752 extern PNG_EXPORT(png_uint_32,png_get_mmx_flagmask)
2699 PNGARG((int flag_select, int *compilerID)); 2753 PNGARG((int flag_select, int *compilerID));
2700 2754
2701 /* pngget.c */ 2755 /* pngget.c */
2702 extern PNG_EXPORT(png_uint_32,png_get_asm_flagmask) 2756 extern PNG_EXPORT(png_uint_32,png_get_asm_flagmask)
2703 PNGARG((int flag_select)); 2757 PNGARG((int flag_select));
2704 2758
2705 /* pngget.c */ 2759 /* pngget.c */
2706 extern PNG_EXPORT(png_uint_32,png_get_asm_flags) 2760 extern PNG_EXPORT(png_uint_32,png_get_asm_flags)
(...skipping 11 matching lines...) Expand all
2718 extern PNG_EXPORT(void,png_set_asm_flags) 2772 extern PNG_EXPORT(void,png_set_asm_flags)
2719 PNGARG((png_structp png_ptr, png_uint_32 asm_flags)); 2773 PNGARG((png_structp png_ptr, png_uint_32 asm_flags));
2720 2774
2721 /* pngset.c */ 2775 /* pngset.c */
2722 extern PNG_EXPORT(void,png_set_mmx_thresholds) 2776 extern PNG_EXPORT(void,png_set_mmx_thresholds)
2723 PNGARG((png_structp png_ptr, png_byte mmx_bitdepth_threshold, 2777 PNGARG((png_structp png_ptr, png_byte mmx_bitdepth_threshold,
2724 png_uint_32 mmx_rowbytes_threshold)); 2778 png_uint_32 mmx_rowbytes_threshold));
2725 2779
2726 #endif /* PNG_1_0_X */ 2780 #endif /* PNG_1_0_X */
2727 2781
2728 #if !defined(PNG_1_0_X) 2782 #ifndef PNG_1_0_X
2729 /* png.c, pnggccrd.c, or pngvcrd.c */ 2783 /* png.c, pnggccrd.c, or pngvcrd.c */
2730 extern PNG_EXPORT(int,png_mmx_support) PNGARG((void)); 2784 extern PNG_EXPORT(int,png_mmx_support) PNGARG((void));
2731 #endif /* PNG_1_0_X */ 2785 #endif /* PNG_1_0_X */
2732 #endif /* PNG_ASSEMBLER_CODE_SUPPORTED */ 2786 #endif /* PNG_ASSEMBLER_CODE_SUPPORTED */
2733 2787
2734 /* Strip the prepended error numbers ("#nnn ") from error and warning 2788 /* Strip the prepended error numbers ("#nnn ") from error and warning
2735 * messages before passing them to the error or warning handler. */ 2789 * messages before passing them to the error or warning handler.
2790 */
2736 #ifdef PNG_ERROR_NUMBERS_SUPPORTED 2791 #ifdef PNG_ERROR_NUMBERS_SUPPORTED
2737 extern PNG_EXPORT(void,png_set_strip_error_numbers) PNGARG((png_structp 2792 extern PNG_EXPORT(void,png_set_strip_error_numbers) PNGARG((png_structp
2738 png_ptr, png_uint_32 strip_mode)); 2793 png_ptr, png_uint_32 strip_mode));
2739 #endif 2794 #endif
2740 2795
2741 /* Added at libpng-1.2.6 */ 2796 /* Added at libpng-1.2.6 */
2742 #ifdef PNG_SET_USER_LIMITS_SUPPORTED 2797 #ifdef PNG_SET_USER_LIMITS_SUPPORTED
2743 extern PNG_EXPORT(void,png_set_user_limits) PNGARG((png_structp 2798 extern PNG_EXPORT(void,png_set_user_limits) PNGARG((png_structp
2744 png_ptr, png_uint_32 user_width_max, png_uint_32 user_height_max)); 2799 png_ptr, png_uint_32 user_width_max, png_uint_32 user_height_max));
2745 extern PNG_EXPORT(png_uint_32,png_get_user_width_max) PNGARG((png_structp 2800 extern PNG_EXPORT(png_uint_32,png_get_user_width_max) PNGARG((png_structp
2746 png_ptr)); 2801 png_ptr));
2747 extern PNG_EXPORT(png_uint_32,png_get_user_height_max) PNGARG((png_structp 2802 extern PNG_EXPORT(png_uint_32,png_get_user_height_max) PNGARG((png_structp
2748 png_ptr)); 2803 png_ptr));
2749 #endif 2804 #endif
2750 2805 /* Maintainer: Put new public prototypes here ^, in libpng.3, and in
2751 2806 * project defs
2752 /* Maintainer: Put new public prototypes here ^, in libpng.3, and project defs * / 2807 */
2753 2808
2754 #ifdef PNG_READ_COMPOSITE_NODIV_SUPPORTED 2809 #ifdef PNG_READ_COMPOSITE_NODIV_SUPPORTED
2755 /* With these routines we avoid an integer divide, which will be slower on 2810 /* With these routines we avoid an integer divide, which will be slower on
2756 * most machines. However, it does take more operations than the corresponding 2811 * most machines. However, it does take more operations than the corresponding
2757 * divide method, so it may be slower on a few RISC systems. There are two 2812 * divide method, so it may be slower on a few RISC systems. There are two
2758 * shifts (by 8 or 16 bits) and an addition, versus a single integer divide. 2813 * shifts (by 8 or 16 bits) and an addition, versus a single integer divide.
2759 * 2814 *
2760 * Note that the rounding factors are NOT supposed to be the same! 128 and 2815 * Note that the rounding factors are NOT supposed to be the same! 128 and
2761 * 32768 are correct for the NODIV code; 127 and 32767 are correct for the 2816 * 32768 are correct for the NODIV code; 127 and 32767 are correct for the
2762 * standard method. 2817 * standard method.
2763 * 2818 *
2764 * [Optimized code by Greg Roelofs and Mark Adler...blame us for bugs. :-) ] 2819 * [Optimized code by Greg Roelofs and Mark Adler...blame us for bugs. :-) ]
2765 */ 2820 */
2766 2821
2767 /* fg and bg should be in `gamma 1.0' space; alpha is the opacity */ 2822 /* fg and bg should be in `gamma 1.0' space; alpha is the opacity */
2768 2823
2769 # define png_composite(composite, fg, alpha, bg) \ 2824 # define png_composite(composite, fg, alpha, bg) \
2770 { png_uint_16 temp = (png_uint_16)((png_uint_16)(fg) * (png_uint_16)(alpha) \ 2825 { png_uint_16 temp = (png_uint_16)((png_uint_16)(fg) * (png_uint_16)(alpha) \
2771 + (png_uint_16)(bg)*(png_uint_16)(255 - \ 2826 + (png_uint_16)(bg)*(png_uint_16)(255 - \
2772 (png_uint_16)(alpha)) + (png_uint_16)128); \ 2827 (png_uint_16)(alpha)) + (png_uint_16)128); \
2773 (composite) = (png_byte)((temp + (temp >> 8)) >> 8); } 2828 (composite) = (png_byte)((temp + (temp >> 8)) >> 8); }
2774 2829
2775 # define png_composite_16(composite, fg, alpha, bg) \ 2830 # define png_composite_16(composite, fg, alpha, bg) \
2776 { png_uint_32 temp = (png_uint_32)((png_uint_32)(fg) * (png_uint_32)(alpha) \ 2831 { png_uint_32 temp = (png_uint_32)((png_uint_32)(fg) * (png_uint_32)(alpha) \
2777 + (png_uint_32)(bg)*(png_uint_32)(65535L - \ 2832 + (png_uint_32)(bg)*(png_uint_32)(65535L - \
2778 (png_uint_32)(alpha)) + (png_uint_32)32768L); \ 2833 (png_uint_32)(alpha)) + (png_uint_32)32768L); \
2779 (composite) = (png_uint_16)((temp + (temp >> 16)) >> 16); } 2834 (composite) = (png_uint_16)((temp + (temp >> 16)) >> 16); }
2780 2835
2781 #else /* standard method using integer division */ 2836 #else /* Standard method using integer division */
2782 2837
2783 # define png_composite(composite, fg, alpha, bg) \ 2838 # define png_composite(composite, fg, alpha, bg) \
2784 (composite) = (png_byte)(((png_uint_16)(fg) * (png_uint_16)(alpha) + \ 2839 (composite) = (png_byte)(((png_uint_16)(fg) * (png_uint_16)(alpha) + \
2785 (png_uint_16)(bg) * (png_uint_16)(255 - (png_uint_16)(alpha)) + \ 2840 (png_uint_16)(bg) * (png_uint_16)(255 - (png_uint_16)(alpha)) + \
2786 (png_uint_16)127) / 255) 2841 (png_uint_16)127) / 255)
2787 2842
2788 # define png_composite_16(composite, fg, alpha, bg) \ 2843 # define png_composite_16(composite, fg, alpha, bg) \
2789 (composite) = (png_uint_16)(((png_uint_32)(fg) * (png_uint_32)(alpha) + \ 2844 (composite) = (png_uint_16)(((png_uint_32)(fg) * (png_uint_32)(alpha) + \
2790 (png_uint_32)(bg)*(png_uint_32)(65535L - (png_uint_32)(alpha)) + \ 2845 (png_uint_32)(bg)*(png_uint_32)(65535L - (png_uint_32)(alpha)) + \
2791 (png_uint_32)32767) / (png_uint_32)65535L) 2846 (png_uint_32)32767) / (png_uint_32)65535L)
2792 2847
2793 #endif /* PNG_READ_COMPOSITE_NODIV_SUPPORTED */ 2848 #endif /* PNG_READ_COMPOSITE_NODIV_SUPPORTED */
2794 2849
2795 /* Inline macros to do direct reads of bytes from the input buffer. These 2850 /* Inline macros to do direct reads of bytes from the input buffer. These
2796 * require that you are using an architecture that uses PNG byte ordering 2851 * require that you are using an architecture that uses PNG byte ordering
2797 * (MSB first) and supports unaligned data storage. I think that PowerPC 2852 * (MSB first) and supports unaligned data storage. I think that PowerPC
2798 * in big-endian mode and 680x0 are the only ones that will support this. 2853 * in big-endian mode and 680x0 are the only ones that will support this.
2799 * The x86 line of processors definitely do not. The png_get_int_32() 2854 * The x86 line of processors definitely do not. The png_get_int_32()
2800 * routine also assumes we are using two's complement format for negative 2855 * routine also assumes we are using two's complement format for negative
2801 * values, which is almost certainly true. 2856 * values, which is almost certainly true.
2802 */ 2857 */
2803 #if defined(PNG_READ_BIG_ENDIAN_SUPPORTED) 2858 #ifdef PNG_READ_BIG_ENDIAN_SUPPORTED
2804 # define png_get_uint_32(buf) ( *((png_uint_32p) (buf))) 2859 # define png_get_uint_32(buf) ( *((png_uint_32p) (buf)))
2805 # define png_get_uint_16(buf) ( *((png_uint_16p) (buf))) 2860 # define png_get_uint_16(buf) ( *((png_uint_16p) (buf)))
2806 # define png_get_int_32(buf) ( *((png_int_32p) (buf))) 2861 # define png_get_int_32(buf) ( *((png_int_32p) (buf)))
2807 #else 2862 #else
2808 extern PNG_EXPORT(png_uint_32,png_get_uint_32) PNGARG((png_bytep buf)); 2863 extern PNG_EXPORT(png_uint_32,png_get_uint_32) PNGARG((png_bytep buf));
2809 extern PNG_EXPORT(png_uint_16,png_get_uint_16) PNGARG((png_bytep buf)); 2864 extern PNG_EXPORT(png_uint_16,png_get_uint_16) PNGARG((png_bytep buf));
2810 extern PNG_EXPORT(png_int_32,png_get_int_32) PNGARG((png_bytep buf)); 2865 extern PNG_EXPORT(png_int_32,png_get_int_32) PNGARG((png_bytep buf));
2811 #endif /* !PNG_READ_BIG_ENDIAN_SUPPORTED */ 2866 #endif /* !PNG_READ_BIG_ENDIAN_SUPPORTED */
2812 extern PNG_EXPORT(png_uint_32,png_get_uint_31) 2867 extern PNG_EXPORT(png_uint_32,png_get_uint_31)
2813 PNGARG((png_structp png_ptr, png_bytep buf)); 2868 PNGARG((png_structp png_ptr, png_bytep buf));
(...skipping 25 matching lines...) Expand all
2839 2894
2840 /* Various modes of operation, that are visible to applications because 2895 /* Various modes of operation, that are visible to applications because
2841 * they are used for unknown chunk location. 2896 * they are used for unknown chunk location.
2842 */ 2897 */
2843 #define PNG_HAVE_IHDR 0x01 2898 #define PNG_HAVE_IHDR 0x01
2844 #define PNG_HAVE_PLTE 0x02 2899 #define PNG_HAVE_PLTE 0x02
2845 #define PNG_HAVE_IDAT 0x04 2900 #define PNG_HAVE_IDAT 0x04
2846 #define PNG_AFTER_IDAT 0x08 /* Have complete zlib datastream */ 2901 #define PNG_AFTER_IDAT 0x08 /* Have complete zlib datastream */
2847 #define PNG_HAVE_IEND 0x10 2902 #define PNG_HAVE_IEND 0x10
2848 2903
2849 #if defined(PNG_INTERNAL) 2904 #ifdef PNG_INTERNAL
2850 2905
2851 /* More modes of operation. Note that after an init, mode is set to 2906 /* More modes of operation. Note that after an init, mode is set to
2852 * zero automatically when the structure is created. 2907 * zero automatically when the structure is created.
2853 */ 2908 */
2854 #define PNG_HAVE_gAMA 0x20 2909 #define PNG_HAVE_gAMA 0x20
2855 #define PNG_HAVE_cHRM 0x40 2910 #define PNG_HAVE_cHRM 0x40
2856 #define PNG_HAVE_sRGB 0x80 2911 #define PNG_HAVE_sRGB 0x80
2857 #define PNG_HAVE_CHUNK_HEADER 0x100 2912 #define PNG_HAVE_CHUNK_HEADER 0x100
2858 #define PNG_WROTE_tIME 0x200 2913 #define PNG_WROTE_tIME 0x200
2859 #define PNG_WROTE_INFO_BEFORE_PLTE 0x400 2914 #define PNG_WROTE_INFO_BEFORE_PLTE 0x400
2860 #define PNG_BACKGROUND_IS_GRAY 0x800 2915 #define PNG_BACKGROUND_IS_GRAY 0x800
2861 #define PNG_HAVE_PNG_SIGNATURE 0x1000 2916 #define PNG_HAVE_PNG_SIGNATURE 0x1000
2862 #define PNG_HAVE_CHUNK_AFTER_IDAT 0x2000 /* Have another chunk after IDAT */ 2917 #define PNG_HAVE_CHUNK_AFTER_IDAT 0x2000 /* Have another chunk after IDAT */
2863 2918
2864 /* flags for the transformations the PNG library does on the image data */ 2919 /* Flags for the transformations the PNG library does on the image data */
2865 #define PNG_BGR 0x0001 2920 #define PNG_BGR 0x0001
2866 #define PNG_INTERLACE 0x0002 2921 #define PNG_INTERLACE 0x0002
2867 #define PNG_PACK 0x0004 2922 #define PNG_PACK 0x0004
2868 #define PNG_SHIFT 0x0008 2923 #define PNG_SHIFT 0x0008
2869 #define PNG_SWAP_BYTES 0x0010 2924 #define PNG_SWAP_BYTES 0x0010
2870 #define PNG_INVERT_MONO 0x0020 2925 #define PNG_INVERT_MONO 0x0020
2871 #define PNG_DITHER 0x0040 2926 #define PNG_DITHER 0x0040
2872 #define PNG_BACKGROUND 0x0080 2927 #define PNG_BACKGROUND 0x0080
2873 #define PNG_BACKGROUND_EXPAND 0x0100 2928 #define PNG_BACKGROUND_EXPAND 0x0100
2874 /* 0x0200 unused */ 2929 /* 0x0200 unused */
2875 #define PNG_16_TO_8 0x0400 2930 #define PNG_16_TO_8 0x0400
2876 #define PNG_RGBA 0x0800 2931 #define PNG_RGBA 0x0800
2877 #define PNG_EXPAND 0x1000 2932 #define PNG_EXPAND 0x1000
2878 #define PNG_GAMMA 0x2000 2933 #define PNG_GAMMA 0x2000
2879 #define PNG_GRAY_TO_RGB 0x4000 2934 #define PNG_GRAY_TO_RGB 0x4000
2880 #define PNG_FILLER 0x8000L 2935 #define PNG_FILLER 0x8000L
2881 #define PNG_PACKSWAP 0x10000L 2936 #define PNG_PACKSWAP 0x10000L
2882 #define PNG_SWAP_ALPHA 0x20000L 2937 #define PNG_SWAP_ALPHA 0x20000L
2883 #define PNG_STRIP_ALPHA 0x40000L 2938 #define PNG_STRIP_ALPHA 0x40000L
2884 #define PNG_INVERT_ALPHA 0x80000L 2939 #define PNG_INVERT_ALPHA 0x80000L
2885 #define PNG_USER_TRANSFORM 0x100000L 2940 #define PNG_USER_TRANSFORM 0x100000L
2886 #define PNG_RGB_TO_GRAY_ERR 0x200000L 2941 #define PNG_RGB_TO_GRAY_ERR 0x200000L
2887 #define PNG_RGB_TO_GRAY_WARN 0x400000L 2942 #define PNG_RGB_TO_GRAY_WARN 0x400000L
2888 #define PNG_RGB_TO_GRAY 0x600000L /* two bits, RGB_TO_GRAY_ERR|WARN */ 2943 #define PNG_RGB_TO_GRAY 0x600000L /* two bits, RGB_TO_GRAY_ERR|WARN */
2889 /* 0x800000L Unused */ 2944 /* 0x800000L Unused */
2890 #define PNG_ADD_ALPHA 0x1000000L /* Added to libpng-1.2.7 */ 2945 #define PNG_ADD_ALPHA 0x1000000L /* Added to libpng-1.2.7 */
2891 #define PNG_EXPAND_tRNS 0x2000000L /* Added to libpng-1.2.9 */ 2946 #define PNG_EXPAND_tRNS 0x2000000L /* Added to libpng-1.2.9 */
2892 /* 0x4000000L unused */ 2947 #define PNG_PREMULTIPLY_ALPHA 0x4000000L /* Added to libpng-1.2.41 */
2948 /* by volker */
2893 /* 0x8000000L unused */ 2949 /* 0x8000000L unused */
2894 /* 0x10000000L unused */ 2950 /* 0x10000000L unused */
2895 /* 0x20000000L unused */ 2951 /* 0x20000000L unused */
2896 /* 0x40000000L unused */ 2952 /* 0x40000000L unused */
2897 2953
2898 /* flags for png_create_struct */ 2954 /* Flags for png_create_struct */
2899 #define PNG_STRUCT_PNG 0x0001 2955 #define PNG_STRUCT_PNG 0x0001
2900 #define PNG_STRUCT_INFO 0x0002 2956 #define PNG_STRUCT_INFO 0x0002
2901 2957
2902 /* Scaling factor for filter heuristic weighting calculations */ 2958 /* Scaling factor for filter heuristic weighting calculations */
2903 #define PNG_WEIGHT_SHIFT 8 2959 #define PNG_WEIGHT_SHIFT 8
2904 #define PNG_WEIGHT_FACTOR (1<<(PNG_WEIGHT_SHIFT)) 2960 #define PNG_WEIGHT_FACTOR (1<<(PNG_WEIGHT_SHIFT))
2905 #define PNG_COST_SHIFT 3 2961 #define PNG_COST_SHIFT 3
2906 #define PNG_COST_FACTOR (1<<(PNG_COST_SHIFT)) 2962 #define PNG_COST_FACTOR (1<<(PNG_COST_SHIFT))
2907 2963
2908 /* flags for the png_ptr->flags rather than declaring a byte for each one */ 2964 /* Flags for the png_ptr->flags rather than declaring a byte for each one */
2909 #define PNG_FLAG_ZLIB_CUSTOM_STRATEGY 0x0001 2965 #define PNG_FLAG_ZLIB_CUSTOM_STRATEGY 0x0001
2910 #define PNG_FLAG_ZLIB_CUSTOM_LEVEL 0x0002 2966 #define PNG_FLAG_ZLIB_CUSTOM_LEVEL 0x0002
2911 #define PNG_FLAG_ZLIB_CUSTOM_MEM_LEVEL 0x0004 2967 #define PNG_FLAG_ZLIB_CUSTOM_MEM_LEVEL 0x0004
2912 #define PNG_FLAG_ZLIB_CUSTOM_WINDOW_BITS 0x0008 2968 #define PNG_FLAG_ZLIB_CUSTOM_WINDOW_BITS 0x0008
2913 #define PNG_FLAG_ZLIB_CUSTOM_METHOD 0x0010 2969 #define PNG_FLAG_ZLIB_CUSTOM_METHOD 0x0010
2914 #define PNG_FLAG_ZLIB_FINISHED 0x0020 2970 #define PNG_FLAG_ZLIB_FINISHED 0x0020
2915 #define PNG_FLAG_ROW_INIT 0x0040 2971 #define PNG_FLAG_ROW_INIT 0x0040
2916 #define PNG_FLAG_FILLER_AFTER 0x0080 2972 #define PNG_FLAG_FILLER_AFTER 0x0080
2917 #define PNG_FLAG_CRC_ANCILLARY_USE 0x0100 2973 #define PNG_FLAG_CRC_ANCILLARY_USE 0x0100
2918 #define PNG_FLAG_CRC_ANCILLARY_NOWARN 0x0200 2974 #define PNG_FLAG_CRC_ANCILLARY_NOWARN 0x0200
(...skipping 21 matching lines...) Expand all
2940 2996
2941 #define PNG_FLAG_CRC_ANCILLARY_MASK (PNG_FLAG_CRC_ANCILLARY_USE | \ 2997 #define PNG_FLAG_CRC_ANCILLARY_MASK (PNG_FLAG_CRC_ANCILLARY_USE | \
2942 PNG_FLAG_CRC_ANCILLARY_NOWARN) 2998 PNG_FLAG_CRC_ANCILLARY_NOWARN)
2943 2999
2944 #define PNG_FLAG_CRC_CRITICAL_MASK (PNG_FLAG_CRC_CRITICAL_USE | \ 3000 #define PNG_FLAG_CRC_CRITICAL_MASK (PNG_FLAG_CRC_CRITICAL_USE | \
2945 PNG_FLAG_CRC_CRITICAL_IGNORE) 3001 PNG_FLAG_CRC_CRITICAL_IGNORE)
2946 3002
2947 #define PNG_FLAG_CRC_MASK (PNG_FLAG_CRC_ANCILLARY_MASK | \ 3003 #define PNG_FLAG_CRC_MASK (PNG_FLAG_CRC_ANCILLARY_MASK | \
2948 PNG_FLAG_CRC_CRITICAL_MASK) 3004 PNG_FLAG_CRC_CRITICAL_MASK)
2949 3005
2950 /* save typing and make code easier to understand */ 3006 /* Save typing and make code easier to understand */
2951 3007
2952 #define PNG_COLOR_DIST(c1, c2) (abs((int)((c1).red) - (int)((c2).red)) + \ 3008 #define PNG_COLOR_DIST(c1, c2) (abs((int)((c1).red) - (int)((c2).red)) + \
2953 abs((int)((c1).green) - (int)((c2).green)) + \ 3009 abs((int)((c1).green) - (int)((c2).green)) + \
2954 abs((int)((c1).blue) - (int)((c2).blue))) 3010 abs((int)((c1).blue) - (int)((c2).blue)))
2955 3011
2956 /* Added to libpng-1.2.6 JB */ 3012 /* Added to libpng-1.2.6 JB */
2957 #define PNG_ROWBYTES(pixel_bits, width) \ 3013 #define PNG_ROWBYTES(pixel_bits, width) \
2958 ((pixel_bits) >= 8 ? \ 3014 ((pixel_bits) >= 8 ? \
2959 ((width) * (((png_uint_32)(pixel_bits)) >> 3)) : \ 3015 ((width) * (((png_uint_32)(pixel_bits)) >> 3)) : \
2960 (( ((width) * ((png_uint_32)(pixel_bits))) + 7) >> 3) ) 3016 (( ((width) * ((png_uint_32)(pixel_bits))) + 7) >> 3) )
2961 3017
2962 /* PNG_OUT_OF_RANGE returns true if value is outside the range 3018 /* PNG_OUT_OF_RANGE returns true if value is outside the range
2963 ideal-delta..ideal+delta. Each argument is evaluated twice. 3019 * ideal-delta..ideal+delta. Each argument is evaluated twice.
2964 "ideal" and "delta" should be constants, normally simple 3020 * "ideal" and "delta" should be constants, normally simple
2965 integers, "value" a variable. Added to libpng-1.2.6 JB */ 3021 * integers, "value" a variable. Added to libpng-1.2.6 JB
3022 */
2966 #define PNG_OUT_OF_RANGE(value, ideal, delta) \ 3023 #define PNG_OUT_OF_RANGE(value, ideal, delta) \
2967 ( (value) < (ideal)-(delta) || (value) > (ideal)+(delta) ) 3024 ( (value) < (ideal)-(delta) || (value) > (ideal)+(delta) )
2968 3025
2969 /* variables declared in png.c - only it needs to define PNG_NO_EXTERN */ 3026 /* Variables declared in png.c - only it needs to define PNG_NO_EXTERN */
2970 #if !defined(PNG_NO_EXTERN) || defined(PNG_ALWAYS_EXTERN) 3027 #if !defined(PNG_NO_EXTERN) || defined(PNG_ALWAYS_EXTERN)
2971 /* place to hold the signature string for a PNG file. */ 3028 /* Place to hold the signature string for a PNG file. */
2972 #ifdef PNG_USE_GLOBAL_ARRAYS 3029 #ifdef PNG_USE_GLOBAL_ARRAYS
2973 PNG_EXPORT_VAR (PNG_CONST png_byte FARDATA) png_sig[8]; 3030 PNG_EXPORT_VAR (PNG_CONST png_byte FARDATA) png_sig[8];
2974 #else 3031 #else
2975 #endif 3032 #endif
2976 #endif /* PNG_NO_EXTERN */ 3033 #endif /* PNG_NO_EXTERN */
2977 3034
2978 /* Constant strings for known chunk types. If you need to add a chunk, 3035 /* Constant strings for known chunk types. If you need to add a chunk,
2979 * define the name here, and add an invocation of the macro in png.c and 3036 * define the name here, and add an invocation of the macro in png.c and
2980 * wherever it's needed. 3037 * wherever it's needed.
2981 */ 3038 */
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
3022 PNG_EXPORT_VAR (png_byte FARDATA) png_tEXt[5]; 3079 PNG_EXPORT_VAR (png_byte FARDATA) png_tEXt[5];
3023 PNG_EXPORT_VAR (png_byte FARDATA) png_tIME[5]; 3080 PNG_EXPORT_VAR (png_byte FARDATA) png_tIME[5];
3024 PNG_EXPORT_VAR (png_byte FARDATA) png_tRNS[5]; 3081 PNG_EXPORT_VAR (png_byte FARDATA) png_tRNS[5];
3025 PNG_EXPORT_VAR (png_byte FARDATA) png_zTXt[5]; 3082 PNG_EXPORT_VAR (png_byte FARDATA) png_zTXt[5];
3026 #endif /* PNG_USE_GLOBAL_ARRAYS */ 3083 #endif /* PNG_USE_GLOBAL_ARRAYS */
3027 3084
3028 #if defined(PNG_1_0_X) || defined (PNG_1_2_X) 3085 #if defined(PNG_1_0_X) || defined (PNG_1_2_X)
3029 /* Initialize png_ptr struct for reading, and allocate any other memory. 3086 /* Initialize png_ptr struct for reading, and allocate any other memory.
3030 * (old interface - DEPRECATED - use png_create_read_struct instead). 3087 * (old interface - DEPRECATED - use png_create_read_struct instead).
3031 */ 3088 */
3032 extern PNG_EXPORT(void,png_read_init) PNGARG((png_structp png_ptr)); 3089 extern PNG_EXPORT(void,png_read_init) PNGARG((png_structp png_ptr))
3090 PNG_DEPRECATED;
3033 #undef png_read_init 3091 #undef png_read_init
3034 #define png_read_init(png_ptr) png_read_init_3(&png_ptr, \ 3092 #define png_read_init(png_ptr) png_read_init_3(&png_ptr, \
3035 PNG_LIBPNG_VER_STRING, png_sizeof(png_struct)); 3093 PNG_LIBPNG_VER_STRING, png_sizeof(png_struct));
3036 #endif 3094 #endif
3037 3095
3038 extern PNG_EXPORT(void,png_read_init_3) PNGARG((png_structpp ptr_ptr, 3096 extern PNG_EXPORT(void,png_read_init_3) PNGARG((png_structpp ptr_ptr,
3039 png_const_charp user_png_ver, png_size_t png_struct_size)); 3097 png_const_charp user_png_ver, png_size_t png_struct_size));
3040 #if defined(PNG_1_0_X) || defined (PNG_1_2_X) 3098 #if defined(PNG_1_0_X) || defined (PNG_1_2_X)
3041 extern PNG_EXPORT(void,png_read_init_2) PNGARG((png_structp png_ptr, 3099 extern PNG_EXPORT(void,png_read_init_2) PNGARG((png_structp png_ptr,
3042 png_const_charp user_png_ver, png_size_t png_struct_size, png_size_t 3100 png_const_charp user_png_ver, png_size_t png_struct_size, png_size_t
3043 png_info_size)); 3101 png_info_size));
3044 #endif 3102 #endif
3045 3103
3046 #if defined(PNG_1_0_X) || defined (PNG_1_2_X) 3104 #if defined(PNG_1_0_X) || defined (PNG_1_2_X)
3047 /* Initialize png_ptr struct for writing, and allocate any other memory. 3105 /* Initialize png_ptr struct for writing, and allocate any other memory.
3048 * (old interface - DEPRECATED - use png_create_write_struct instead). 3106 * (old interface - DEPRECATED - use png_create_write_struct instead).
3049 */ 3107 */
3050 extern PNG_EXPORT(void,png_write_init) PNGARG((png_structp png_ptr)); 3108 extern PNG_EXPORT(void,png_write_init) PNGARG((png_structp png_ptr))
3109 PNG_DEPRECATED;
3051 #undef png_write_init 3110 #undef png_write_init
3052 #define png_write_init(png_ptr) png_write_init_3(&png_ptr, \ 3111 #define png_write_init(png_ptr) png_write_init_3(&png_ptr, \
3053 PNG_LIBPNG_VER_STRING, png_sizeof(png_struct)); 3112 PNG_LIBPNG_VER_STRING, png_sizeof(png_struct));
3054 #endif 3113 #endif
3055 3114
3056 extern PNG_EXPORT(void,png_write_init_3) PNGARG((png_structpp ptr_ptr, 3115 extern PNG_EXPORT(void,png_write_init_3) PNGARG((png_structpp ptr_ptr,
3057 png_const_charp user_png_ver, png_size_t png_struct_size)); 3116 png_const_charp user_png_ver, png_size_t png_struct_size));
3058 extern PNG_EXPORT(void,png_write_init_2) PNGARG((png_structp png_ptr, 3117 extern PNG_EXPORT(void,png_write_init_2) PNGARG((png_structp png_ptr,
3059 png_const_charp user_png_ver, png_size_t png_struct_size, png_size_t 3118 png_const_charp user_png_ver, png_size_t png_struct_size, png_size_t
3060 png_info_size)); 3119 png_info_size));
3061 3120
3062 /* Allocate memory for an internal libpng struct */ 3121 /* Allocate memory for an internal libpng struct */
3063 PNG_EXTERN png_voidp png_create_struct PNGARG((int type)); 3122 PNG_EXTERN png_voidp png_create_struct PNGARG((int type)) PNG_PRIVATE;
3064 3123
3065 /* Free memory from internal libpng struct */ 3124 /* Free memory from internal libpng struct */
3066 PNG_EXTERN void png_destroy_struct PNGARG((png_voidp struct_ptr)); 3125 PNG_EXTERN void png_destroy_struct PNGARG((png_voidp struct_ptr)) PNG_PRIVATE;
3067 3126
3068 PNG_EXTERN png_voidp png_create_struct_2 PNGARG((int type, png_malloc_ptr 3127 PNG_EXTERN png_voidp png_create_struct_2 PNGARG((int type, png_malloc_ptr
3069 malloc_fn, png_voidp mem_ptr)); 3128 malloc_fn, png_voidp mem_ptr)) PNG_PRIVATE;
3070 PNG_EXTERN void png_destroy_struct_2 PNGARG((png_voidp struct_ptr, 3129 PNG_EXTERN void png_destroy_struct_2 PNGARG((png_voidp struct_ptr,
3071 png_free_ptr free_fn, png_voidp mem_ptr)); 3130 png_free_ptr free_fn, png_voidp mem_ptr)) PNG_PRIVATE;
3072 3131
3073 /* Free any memory that info_ptr points to and reset struct. */ 3132 /* Free any memory that info_ptr points to and reset struct. */
3074 PNG_EXTERN void png_info_destroy PNGARG((png_structp png_ptr, 3133 PNG_EXTERN void png_info_destroy PNGARG((png_structp png_ptr,
3075 png_infop info_ptr)); 3134 png_infop info_ptr)) PNG_PRIVATE;
3076 3135
3077 #ifndef PNG_1_0_X 3136 #ifndef PNG_1_0_X
3078 /* Function to allocate memory for zlib. */ 3137 /* Function to allocate memory for zlib. */
3079 PNG_EXTERN voidpf png_zalloc PNGARG((voidpf png_ptr, uInt items, uInt size)); 3138 PNG_EXTERN voidpf png_zalloc PNGARG((voidpf png_ptr, uInt items,
3139 uInt size)) PNG_PRIVATE;
3080 3140
3081 /* Function to free memory for zlib */ 3141 /* Function to free memory for zlib */
3082 PNG_EXTERN void png_zfree PNGARG((voidpf png_ptr, voidpf ptr)); 3142 PNG_EXTERN void png_zfree PNGARG((voidpf png_ptr, voidpf ptr)) PNG_PRIVATE;
3083 3143
3084 #ifdef PNG_SIZE_T 3144 #ifdef PNG_SIZE_T
3085 /* Function to convert a sizeof an item to png_sizeof item */ 3145 /* Function to convert a sizeof an item to png_sizeof item */
3086 PNG_EXTERN png_size_t PNGAPI png_convert_size PNGARG((size_t size)); 3146 PNG_EXTERN png_size_t PNGAPI png_convert_size PNGARG((size_t size))
3147 PNG_PRIVATE;
3087 #endif 3148 #endif
3088 3149
3089 /* Next four functions are used internally as callbacks. PNGAPI is required 3150 /* Next four functions are used internally as callbacks. PNGAPI is required
3090 * but not PNG_EXPORT. PNGAPI added at libpng version 1.2.3. */ 3151 * but not PNG_EXPORT. PNGAPI added at libpng version 1.2.3.
3152 */
3091 3153
3092 PNG_EXTERN void PNGAPI png_default_read_data PNGARG((png_structp png_ptr, 3154 PNG_EXTERN void PNGAPI png_default_read_data PNGARG((png_structp png_ptr,
3093 png_bytep data, png_size_t length)); 3155 png_bytep data, png_size_t length)) PNG_PRIVATE;
3094 3156
3095 #ifdef PNG_PROGRESSIVE_READ_SUPPORTED 3157 #ifdef PNG_PROGRESSIVE_READ_SUPPORTED
3096 PNG_EXTERN void PNGAPI png_push_fill_buffer PNGARG((png_structp png_ptr, 3158 PNG_EXTERN void PNGAPI png_push_fill_buffer PNGARG((png_structp png_ptr,
3097 png_bytep buffer, png_size_t length)); 3159 png_bytep buffer, png_size_t length)) PNG_PRIVATE;
3098 #endif 3160 #endif
3099 3161
3100 PNG_EXTERN void PNGAPI png_default_write_data PNGARG((png_structp png_ptr, 3162 PNG_EXTERN void PNGAPI png_default_write_data PNGARG((png_structp png_ptr,
3101 png_bytep data, png_size_t length)); 3163 png_bytep data, png_size_t length)) PNG_PRIVATE;
3102 3164
3103 #if defined(PNG_WRITE_FLUSH_SUPPORTED) 3165 #ifdef PNG_WRITE_FLUSH_SUPPORTED
3104 #if !defined(PNG_NO_STDIO) 3166 #ifdef PNG_STDIO_SUPPORTED
3105 PNG_EXTERN void PNGAPI png_default_flush PNGARG((png_structp png_ptr)); 3167 PNG_EXTERN void PNGAPI png_default_flush PNGARG((png_structp png_ptr))
3168 PNG_PRIVATE;
3106 #endif 3169 #endif
3107 #endif 3170 #endif
3108 #else /* PNG_1_0_X */ 3171 #else /* PNG_1_0_X */
3109 #ifdef PNG_PROGRESSIVE_READ_SUPPORTED 3172 #ifdef PNG_PROGRESSIVE_READ_SUPPORTED
3110 PNG_EXTERN void png_push_fill_buffer PNGARG((png_structp png_ptr, 3173 PNG_EXTERN void png_push_fill_buffer PNGARG((png_structp png_ptr,
3111 png_bytep buffer, png_size_t length)); 3174 png_bytep buffer, png_size_t length)) PNG_PRIVATE;
3112 #endif 3175 #endif
3113 #endif /* PNG_1_0_X */ 3176 #endif /* PNG_1_0_X */
3114 3177
3115 /* Reset the CRC variable */ 3178 /* Reset the CRC variable */
3116 PNG_EXTERN void png_reset_crc PNGARG((png_structp png_ptr)); 3179 PNG_EXTERN void png_reset_crc PNGARG((png_structp png_ptr)) PNG_PRIVATE;
3117 3180
3118 /* Write the "data" buffer to whatever output you are using. */ 3181 /* Write the "data" buffer to whatever output you are using. */
3119 PNG_EXTERN void png_write_data PNGARG((png_structp png_ptr, png_bytep data, 3182 PNG_EXTERN void png_write_data PNGARG((png_structp png_ptr, png_bytep data,
3120 png_size_t length)); 3183 png_size_t length)) PNG_PRIVATE;
3121 3184
3122 /* Read data from whatever input you are using into the "data" buffer */ 3185 /* Read data from whatever input you are using into the "data" buffer */
3123 PNG_EXTERN void png_read_data PNGARG((png_structp png_ptr, png_bytep data, 3186 PNG_EXTERN void png_read_data PNGARG((png_structp png_ptr, png_bytep data,
3124 png_size_t length)); 3187 png_size_t length)) PNG_PRIVATE;
3125 3188
3126 /* Read bytes into buf, and update png_ptr->crc */ 3189 /* Read bytes into buf, and update png_ptr->crc */
3127 PNG_EXTERN void png_crc_read PNGARG((png_structp png_ptr, png_bytep buf, 3190 PNG_EXTERN void png_crc_read PNGARG((png_structp png_ptr, png_bytep buf,
3128 png_size_t length)); 3191 png_size_t length)) PNG_PRIVATE;
3129 3192
3130 /* Decompress data in a chunk that uses compression */ 3193 /* Decompress data in a chunk that uses compression */
3131 #if defined(PNG_zTXt_SUPPORTED) || defined(PNG_iTXt_SUPPORTED) || \ 3194 #if defined(PNG_zTXt_SUPPORTED) || defined(PNG_iTXt_SUPPORTED) || \
3132 defined(PNG_iCCP_SUPPORTED) || defined(PNG_sPLT_SUPPORTED) 3195 defined(PNG_iCCP_SUPPORTED) || defined(PNG_sPLT_SUPPORTED)
3133 PNG_EXTERN void png_decompress_chunk PNGARG((png_structp png_ptr, 3196 PNG_EXTERN void png_decompress_chunk PNGARG((png_structp png_ptr,
3134 int comp_type, png_size_t chunklength, 3197 int comp_type, png_size_t chunklength,
3135 png_size_t prefix_length, png_size_t *data_length)); 3198 png_size_t prefix_length, png_size_t *data_length)) PNG_PRIVATE;
3136 #endif 3199 #endif
3137 3200
3138 /* Read "skip" bytes, read the file crc, and (optionally) verify png_ptr->crc */ 3201 /* Read "skip" bytes, read the file crc, and (optionally) verify png_ptr->crc */
3139 PNG_EXTERN int png_crc_finish PNGARG((png_structp png_ptr, png_uint_32 skip)); 3202 PNG_EXTERN int png_crc_finish PNGARG((png_structp png_ptr, png_uint_32 skip)
3203 PNG_PRIVATE);
3140 3204
3141 /* Read the CRC from the file and compare it to the libpng calculated CRC */ 3205 /* Read the CRC from the file and compare it to the libpng calculated CRC */
3142 PNG_EXTERN int png_crc_error PNGARG((png_structp png_ptr)); 3206 PNG_EXTERN int png_crc_error PNGARG((png_structp png_ptr)) PNG_PRIVATE;
3143 3207
3144 /* Calculate the CRC over a section of data. Note that we are only 3208 /* Calculate the CRC over a section of data. Note that we are only
3145 * passing a maximum of 64K on systems that have this as a memory limit, 3209 * passing a maximum of 64K on systems that have this as a memory limit,
3146 * since this is the maximum buffer size we can specify. 3210 * since this is the maximum buffer size we can specify.
3147 */ 3211 */
3148 PNG_EXTERN void png_calculate_crc PNGARG((png_structp png_ptr, png_bytep ptr, 3212 PNG_EXTERN void png_calculate_crc PNGARG((png_structp png_ptr, png_bytep ptr,
3149 png_size_t length)); 3213 png_size_t length)) PNG_PRIVATE;
3150 3214
3151 #if defined(PNG_WRITE_FLUSH_SUPPORTED) 3215 #ifdef PNG_WRITE_FLUSH_SUPPORTED
3152 PNG_EXTERN void png_flush PNGARG((png_structp png_ptr)); 3216 PNG_EXTERN void png_flush PNGARG((png_structp png_ptr)) PNG_PRIVATE;
3153 #endif 3217 #endif
3154 3218
3155 /* simple function to write the signature */ 3219 /* Simple function to write the signature */
3156 PNG_EXTERN void png_write_sig PNGARG((png_structp png_ptr)); 3220 PNG_EXTERN void png_write_sig PNGARG((png_structp png_ptr)) PNG_PRIVATE;
3157 3221
3158 /* write various chunks */ 3222 /* Write various chunks */
3159 3223
3160 /* Write the IHDR chunk, and update the png_struct with the necessary 3224 /* Write the IHDR chunk, and update the png_struct with the necessary
3161 * information. 3225 * information.
3162 */ 3226 */
3163 PNG_EXTERN void png_write_IHDR PNGARG((png_structp png_ptr, png_uint_32 width, 3227 PNG_EXTERN void png_write_IHDR PNGARG((png_structp png_ptr, png_uint_32 width,
3164 png_uint_32 height, 3228 png_uint_32 height,
3165 int bit_depth, int color_type, int compression_method, int filter_method, 3229 int bit_depth, int color_type, int compression_method, int filter_method,
3166 int interlace_method)); 3230 int interlace_method)) PNG_PRIVATE;
3167 3231
3168 PNG_EXTERN void png_write_PLTE PNGARG((png_structp png_ptr, png_colorp palette, 3232 PNG_EXTERN void png_write_PLTE PNGARG((png_structp png_ptr, png_colorp palette,
3169 png_uint_32 num_pal)); 3233 png_uint_32 num_pal)) PNG_PRIVATE;
3170 3234
3171 PNG_EXTERN void png_write_IDAT PNGARG((png_structp png_ptr, png_bytep data, 3235 PNG_EXTERN void png_write_IDAT PNGARG((png_structp png_ptr, png_bytep data,
3172 png_size_t length)); 3236 png_size_t length)) PNG_PRIVATE;
3173 3237
3174 PNG_EXTERN void png_write_IEND PNGARG((png_structp png_ptr)); 3238 PNG_EXTERN void png_write_IEND PNGARG((png_structp png_ptr)) PNG_PRIVATE;
3175 3239
3176 #if defined(PNG_WRITE_gAMA_SUPPORTED) 3240 #ifdef PNG_WRITE_gAMA_SUPPORTED
3177 #ifdef PNG_FLOATING_POINT_SUPPORTED 3241 #ifdef PNG_FLOATING_POINT_SUPPORTED
3178 PNG_EXTERN void png_write_gAMA PNGARG((png_structp png_ptr, double file_gamma)); 3242 PNG_EXTERN void png_write_gAMA PNGARG((png_structp png_ptr, double file_gamma))
3243 PNG_PRIVATE;
3179 #endif 3244 #endif
3180 #ifdef PNG_FIXED_POINT_SUPPORTED 3245 #ifdef PNG_FIXED_POINT_SUPPORTED
3181 PNG_EXTERN void png_write_gAMA_fixed PNGARG((png_structp png_ptr, png_fixed_poin t 3246 PNG_EXTERN void png_write_gAMA_fixed PNGARG((png_structp png_ptr,
3182 file_gamma)); 3247 png_fixed_point file_gamma)) PNG_PRIVATE;
3183 #endif 3248 #endif
3184 #endif 3249 #endif
3185 3250
3186 #if defined(PNG_WRITE_sBIT_SUPPORTED) 3251 #ifdef PNG_WRITE_sBIT_SUPPORTED
3187 PNG_EXTERN void png_write_sBIT PNGARG((png_structp png_ptr, png_color_8p sbit, 3252 PNG_EXTERN void png_write_sBIT PNGARG((png_structp png_ptr, png_color_8p sbit,
3188 int color_type)); 3253 int color_type)) PNG_PRIVATE;
3189 #endif 3254 #endif
3190 3255
3191 #if defined(PNG_WRITE_cHRM_SUPPORTED) 3256 #ifdef PNG_WRITE_cHRM_SUPPORTED
3192 #ifdef PNG_FLOATING_POINT_SUPPORTED 3257 #ifdef PNG_FLOATING_POINT_SUPPORTED
3193 PNG_EXTERN void png_write_cHRM PNGARG((png_structp png_ptr, 3258 PNG_EXTERN void png_write_cHRM PNGARG((png_structp png_ptr,
3194 double white_x, double white_y, 3259 double white_x, double white_y,
3195 double red_x, double red_y, double green_x, double green_y, 3260 double red_x, double red_y, double green_x, double green_y,
3196 double blue_x, double blue_y)); 3261 double blue_x, double blue_y)) PNG_PRIVATE;
3197 #endif 3262 #endif
3198 #ifdef PNG_FIXED_POINT_SUPPORTED 3263 #ifdef PNG_FIXED_POINT_SUPPORTED
3199 PNG_EXTERN void png_write_cHRM_fixed PNGARG((png_structp png_ptr, 3264 PNG_EXTERN void png_write_cHRM_fixed PNGARG((png_structp png_ptr,
3200 png_fixed_point int_white_x, png_fixed_point int_white_y, 3265 png_fixed_point int_white_x, png_fixed_point int_white_y,
3201 png_fixed_point int_red_x, png_fixed_point int_red_y, png_fixed_point 3266 png_fixed_point int_red_x, png_fixed_point int_red_y, png_fixed_point
3202 int_green_x, png_fixed_point int_green_y, png_fixed_point int_blue_x, 3267 int_green_x, png_fixed_point int_green_y, png_fixed_point int_blue_x,
3203 png_fixed_point int_blue_y)); 3268 png_fixed_point int_blue_y)) PNG_PRIVATE;
3204 #endif 3269 #endif
3205 #endif 3270 #endif
3206 3271
3207 #if defined(PNG_WRITE_sRGB_SUPPORTED) 3272 #ifdef PNG_WRITE_sRGB_SUPPORTED
3208 PNG_EXTERN void png_write_sRGB PNGARG((png_structp png_ptr, 3273 PNG_EXTERN void png_write_sRGB PNGARG((png_structp png_ptr,
3209 int intent)); 3274 int intent)) PNG_PRIVATE;
3210 #endif 3275 #endif
3211 3276
3212 #if defined(PNG_WRITE_iCCP_SUPPORTED) 3277 #ifdef PNG_WRITE_iCCP_SUPPORTED
3213 PNG_EXTERN void png_write_iCCP PNGARG((png_structp png_ptr, 3278 PNG_EXTERN void png_write_iCCP PNGARG((png_structp png_ptr,
3214 png_charp name, int compression_type, 3279 png_charp name, int compression_type,
3215 png_charp profile, int proflen)); 3280 png_charp profile, int proflen)) PNG_PRIVATE;
3216 /* Note to maintainer: profile should be png_bytep */ 3281 /* Note to maintainer: profile should be png_bytep */
3217 #endif 3282 #endif
3218 3283
3219 #if defined(PNG_WRITE_sPLT_SUPPORTED) 3284 #ifdef PNG_WRITE_sPLT_SUPPORTED
3220 PNG_EXTERN void png_write_sPLT PNGARG((png_structp png_ptr, 3285 PNG_EXTERN void png_write_sPLT PNGARG((png_structp png_ptr,
3221 png_sPLT_tp palette)); 3286 png_sPLT_tp palette)) PNG_PRIVATE;
3222 #endif 3287 #endif
3223 3288
3224 #if defined(PNG_WRITE_tRNS_SUPPORTED) 3289 #ifdef PNG_WRITE_tRNS_SUPPORTED
3225 PNG_EXTERN void png_write_tRNS PNGARG((png_structp png_ptr, png_bytep trans, 3290 PNG_EXTERN void png_write_tRNS PNGARG((png_structp png_ptr, png_bytep trans,
3226 png_color_16p values, int number, int color_type)); 3291 png_color_16p values, int number, int color_type)) PNG_PRIVATE;
3227 #endif 3292 #endif
3228 3293
3229 #if defined(PNG_WRITE_bKGD_SUPPORTED) 3294 #ifdef PNG_WRITE_bKGD_SUPPORTED
3230 PNG_EXTERN void png_write_bKGD PNGARG((png_structp png_ptr, 3295 PNG_EXTERN void png_write_bKGD PNGARG((png_structp png_ptr,
3231 png_color_16p values, int color_type)); 3296 png_color_16p values, int color_type)) PNG_PRIVATE;
3232 #endif 3297 #endif
3233 3298
3234 #if defined(PNG_WRITE_hIST_SUPPORTED) 3299 #ifdef PNG_WRITE_hIST_SUPPORTED
3235 PNG_EXTERN void png_write_hIST PNGARG((png_structp png_ptr, png_uint_16p hist, 3300 PNG_EXTERN void png_write_hIST PNGARG((png_structp png_ptr, png_uint_16p hist,
3236 int num_hist)); 3301 int num_hist)) PNG_PRIVATE;
3237 #endif 3302 #endif
3238 3303
3239 #if defined(PNG_WRITE_TEXT_SUPPORTED) || defined(PNG_WRITE_pCAL_SUPPORTED) || \ 3304 #if defined(PNG_WRITE_TEXT_SUPPORTED) || defined(PNG_WRITE_pCAL_SUPPORTED) || \
3240 defined(PNG_WRITE_iCCP_SUPPORTED) || defined(PNG_WRITE_sPLT_SUPPORTED) 3305 defined(PNG_WRITE_iCCP_SUPPORTED) || defined(PNG_WRITE_sPLT_SUPPORTED)
3241 PNG_EXTERN png_size_t png_check_keyword PNGARG((png_structp png_ptr, 3306 PNG_EXTERN png_size_t png_check_keyword PNGARG((png_structp png_ptr,
3242 png_charp key, png_charpp new_key)); 3307 png_charp key, png_charpp new_key)) PNG_PRIVATE;
3243 #endif 3308 #endif
3244 3309
3245 #if defined(PNG_WRITE_tEXt_SUPPORTED) 3310 #ifdef PNG_WRITE_tEXt_SUPPORTED
3246 PNG_EXTERN void png_write_tEXt PNGARG((png_structp png_ptr, png_charp key, 3311 PNG_EXTERN void png_write_tEXt PNGARG((png_structp png_ptr, png_charp key,
3247 png_charp text, png_size_t text_len)); 3312 png_charp text, png_size_t text_len)) PNG_PRIVATE;
3248 #endif 3313 #endif
3249 3314
3250 #if defined(PNG_WRITE_zTXt_SUPPORTED) 3315 #ifdef PNG_WRITE_zTXt_SUPPORTED
3251 PNG_EXTERN void png_write_zTXt PNGARG((png_structp png_ptr, png_charp key, 3316 PNG_EXTERN void png_write_zTXt PNGARG((png_structp png_ptr, png_charp key,
3252 png_charp text, png_size_t text_len, int compression)); 3317 png_charp text, png_size_t text_len, int compression)) PNG_PRIVATE;
3253 #endif 3318 #endif
3254 3319
3255 #if defined(PNG_WRITE_iTXt_SUPPORTED) 3320 #ifdef PNG_WRITE_iTXt_SUPPORTED
3256 PNG_EXTERN void png_write_iTXt PNGARG((png_structp png_ptr, 3321 PNG_EXTERN void png_write_iTXt PNGARG((png_structp png_ptr,
3257 int compression, png_charp key, png_charp lang, png_charp lang_key, 3322 int compression, png_charp key, png_charp lang, png_charp lang_key,
3258 png_charp text)); 3323 png_charp text)) PNG_PRIVATE;
3259 #endif 3324 #endif
3260 3325
3261 #if defined(PNG_TEXT_SUPPORTED) /* Added at version 1.0.14 and 1.2.4 */ 3326 #ifdef PNG_TEXT_SUPPORTED /* Added at version 1.0.14 and 1.2.4 */
3262 PNG_EXTERN int png_set_text_2 PNGARG((png_structp png_ptr, 3327 PNG_EXTERN int png_set_text_2 PNGARG((png_structp png_ptr,
3263 png_infop info_ptr, png_textp text_ptr, int num_text)); 3328 png_infop info_ptr, png_textp text_ptr, int num_text)) PNG_PRIVATE;
3264 #endif 3329 #endif
3265 3330
3266 #if defined(PNG_WRITE_oFFs_SUPPORTED) 3331 #ifdef PNG_WRITE_oFFs_SUPPORTED
3267 PNG_EXTERN void png_write_oFFs PNGARG((png_structp png_ptr, 3332 PNG_EXTERN void png_write_oFFs PNGARG((png_structp png_ptr,
3268 png_int_32 x_offset, png_int_32 y_offset, int unit_type)); 3333 png_int_32 x_offset, png_int_32 y_offset, int unit_type)) PNG_PRIVATE;
3269 #endif 3334 #endif
3270 3335
3271 #if defined(PNG_WRITE_pCAL_SUPPORTED) 3336 #ifdef PNG_WRITE_pCAL_SUPPORTED
3272 PNG_EXTERN void png_write_pCAL PNGARG((png_structp png_ptr, png_charp purpose, 3337 PNG_EXTERN void png_write_pCAL PNGARG((png_structp png_ptr, png_charp purpose,
3273 png_int_32 X0, png_int_32 X1, int type, int nparams, 3338 png_int_32 X0, png_int_32 X1, int type, int nparams,
3274 png_charp units, png_charpp params)); 3339 png_charp units, png_charpp params)) PNG_PRIVATE;
3275 #endif 3340 #endif
3276 3341
3277 #if defined(PNG_WRITE_pHYs_SUPPORTED) 3342 #ifdef PNG_WRITE_pHYs_SUPPORTED
3278 PNG_EXTERN void png_write_pHYs PNGARG((png_structp png_ptr, 3343 PNG_EXTERN void png_write_pHYs PNGARG((png_structp png_ptr,
3279 png_uint_32 x_pixels_per_unit, png_uint_32 y_pixels_per_unit, 3344 png_uint_32 x_pixels_per_unit, png_uint_32 y_pixels_per_unit,
3280 int unit_type)); 3345 int unit_type)) PNG_PRIVATE;
3281 #endif 3346 #endif
3282 3347
3283 #if defined(PNG_WRITE_tIME_SUPPORTED) 3348 #ifdef PNG_WRITE_tIME_SUPPORTED
3284 PNG_EXTERN void png_write_tIME PNGARG((png_structp png_ptr, 3349 PNG_EXTERN void png_write_tIME PNGARG((png_structp png_ptr,
3285 png_timep mod_time)); 3350 png_timep mod_time)) PNG_PRIVATE;
3286 #endif 3351 #endif
3287 3352
3288 #if defined(PNG_WRITE_sCAL_SUPPORTED) 3353 #ifdef PNG_WRITE_sCAL_SUPPORTED
3289 #if defined(PNG_FLOATING_POINT_SUPPORTED) && !defined(PNG_NO_STDIO) 3354 #if defined(PNG_FLOATING_POINT_SUPPORTED) && !defined(PNG_NO_STDIO)
3290 PNG_EXTERN void png_write_sCAL PNGARG((png_structp png_ptr, 3355 PNG_EXTERN void png_write_sCAL PNGARG((png_structp png_ptr,
3291 int unit, double width, double height)); 3356 int unit, double width, double height)) PNG_PRIVATE;
3292 #else 3357 #else
3293 #ifdef PNG_FIXED_POINT_SUPPORTED 3358 #ifdef PNG_FIXED_POINT_SUPPORTED
3294 PNG_EXTERN void png_write_sCAL_s PNGARG((png_structp png_ptr, 3359 PNG_EXTERN void png_write_sCAL_s PNGARG((png_structp png_ptr,
3295 int unit, png_charp width, png_charp height)); 3360 int unit, png_charp width, png_charp height)) PNG_PRIVATE;
3296 #endif 3361 #endif
3297 #endif 3362 #endif
3298 #endif 3363 #endif
3299 3364
3300 /* Called when finished processing a row of data */ 3365 /* Called when finished processing a row of data */
3301 PNG_EXTERN void png_write_finish_row PNGARG((png_structp png_ptr)); 3366 PNG_EXTERN void png_write_finish_row PNGARG((png_structp png_ptr)) PNG_PRIVATE;
3302 3367
3303 /* Internal use only. Called before first row of data */ 3368 /* Internal use only. Called before first row of data */
3304 PNG_EXTERN void png_write_start_row PNGARG((png_structp png_ptr)); 3369 PNG_EXTERN void png_write_start_row PNGARG((png_structp png_ptr)) PNG_PRIVATE;
3305 3370
3306 #if defined(PNG_READ_GAMMA_SUPPORTED) 3371 #ifdef PNG_READ_GAMMA_SUPPORTED
3307 PNG_EXTERN void png_build_gamma_table PNGARG((png_structp png_ptr)); 3372 PNG_EXTERN void png_build_gamma_table PNGARG((png_structp png_ptr)) PNG_PRIVATE;
3308 #endif 3373 #endif
3309 3374
3310 /* combine a row of data, dealing with alpha, etc. if requested */ 3375 /* Combine a row of data, dealing with alpha, etc. if requested */
3311 PNG_EXTERN void png_combine_row PNGARG((png_structp png_ptr, png_bytep row, 3376 PNG_EXTERN void png_combine_row PNGARG((png_structp png_ptr, png_bytep row,
3312 int mask)); 3377 int mask)) PNG_PRIVATE;
3313 3378
3314 #if defined(PNG_READ_INTERLACING_SUPPORTED) 3379 #ifdef PNG_READ_INTERLACING_SUPPORTED
3315 /* expand an interlaced row */ 3380 /* Expand an interlaced row */
3316 /* OLD pre-1.0.9 interface: 3381 /* OLD pre-1.0.9 interface:
3317 PNG_EXTERN void png_do_read_interlace PNGARG((png_row_infop row_info, 3382 PNG_EXTERN void png_do_read_interlace PNGARG((png_row_infop row_info,
3318 png_bytep row, int pass, png_uint_32 transformations)); 3383 png_bytep row, int pass, png_uint_32 transformations)) PNG_PRIVATE;
3319 */ 3384 */
3320 PNG_EXTERN void png_do_read_interlace PNGARG((png_structp png_ptr)); 3385 PNG_EXTERN void png_do_read_interlace PNGARG((png_structp png_ptr)) PNG_PRIVATE;
3321 #endif 3386 #endif
3322 3387
3323 /* GRR TO DO (2.0 or whenever): simplify other internal calling interfaces */ 3388 /* GRR TO DO (2.0 or whenever): simplify other internal calling interfaces */
3324 3389
3325 #if defined(PNG_WRITE_INTERLACING_SUPPORTED) 3390 #ifdef PNG_WRITE_INTERLACING_SUPPORTED
3326 /* grab pixels out of a row for an interlaced pass */ 3391 /* Grab pixels out of a row for an interlaced pass */
3327 PNG_EXTERN void png_do_write_interlace PNGARG((png_row_infop row_info, 3392 PNG_EXTERN void png_do_write_interlace PNGARG((png_row_infop row_info,
3328 png_bytep row, int pass)); 3393 png_bytep row, int pass)) PNG_PRIVATE;
3329 #endif 3394 #endif
3330 3395
3331 /* unfilter a row */ 3396 /* Unfilter a row */
3332 PNG_EXTERN void png_read_filter_row PNGARG((png_structp png_ptr, 3397 PNG_EXTERN void png_read_filter_row PNGARG((png_structp png_ptr,
3333 png_row_infop row_info, png_bytep row, png_bytep prev_row, int filter)); 3398 png_row_infop row_info, png_bytep row, png_bytep prev_row,
3399 int filter)) PNG_PRIVATE;
3334 3400
3335 /* Choose the best filter to use and filter the row data */ 3401 /* Choose the best filter to use and filter the row data */
3336 PNG_EXTERN void png_write_find_filter PNGARG((png_structp png_ptr, 3402 PNG_EXTERN void png_write_find_filter PNGARG((png_structp png_ptr,
3337 png_row_infop row_info)); 3403 png_row_infop row_info)) PNG_PRIVATE;
3338 3404
3339 /* Write out the filtered row. */ 3405 /* Write out the filtered row. */
3340 PNG_EXTERN void png_write_filtered_row PNGARG((png_structp png_ptr, 3406 PNG_EXTERN void png_write_filtered_row PNGARG((png_structp png_ptr,
3341 png_bytep filtered_row)); 3407 png_bytep filtered_row)) PNG_PRIVATE;
3342 /* finish a row while reading, dealing with interlacing passes, etc. */ 3408 /* Finish a row while reading, dealing with interlacing passes, etc. */
3343 PNG_EXTERN void png_read_finish_row PNGARG((png_structp png_ptr)); 3409 PNG_EXTERN void png_read_finish_row PNGARG((png_structp png_ptr));
3344 3410
3345 /* initialize the row buffers, etc. */ 3411 /* Initialize the row buffers, etc. */
3346 PNG_EXTERN void png_read_start_row PNGARG((png_structp png_ptr)); 3412 PNG_EXTERN void png_read_start_row PNGARG((png_structp png_ptr)) PNG_PRIVATE;
3347 /* optional call to update the users info structure */ 3413 /* Optional call to update the users info structure */
3348 PNG_EXTERN void png_read_transform_info PNGARG((png_structp png_ptr, 3414 PNG_EXTERN void png_read_transform_info PNGARG((png_structp png_ptr,
3349 png_infop info_ptr)); 3415 png_infop info_ptr)) PNG_PRIVATE;
3350 3416
3351 /* these are the functions that do the transformations */ 3417 /* These are the functions that do the transformations */
3352 #if defined(PNG_READ_FILLER_SUPPORTED) 3418 #ifdef PNG_READ_FILLER_SUPPORTED
3353 PNG_EXTERN void png_do_read_filler PNGARG((png_row_infop row_info, 3419 PNG_EXTERN void png_do_read_filler PNGARG((png_row_infop row_info,
3354 png_bytep row, png_uint_32 filler, png_uint_32 flags)); 3420 png_bytep row, png_uint_32 filler, png_uint_32 flags)) PNG_PRIVATE;
3355 #endif 3421 #endif
3356 3422
3357 #if defined(PNG_READ_SWAP_ALPHA_SUPPORTED) 3423 #ifdef PNG_READ_SWAP_ALPHA_SUPPORTED
3358 PNG_EXTERN void png_do_read_swap_alpha PNGARG((png_row_infop row_info, 3424 PNG_EXTERN void png_do_read_swap_alpha PNGARG((png_row_infop row_info,
3359 png_bytep row)); 3425 png_bytep row)) PNG_PRIVATE;
3360 #endif 3426 #endif
3361 3427
3362 #if defined(PNG_WRITE_SWAP_ALPHA_SUPPORTED) 3428 #ifdef PNG_WRITE_SWAP_ALPHA_SUPPORTED
3363 PNG_EXTERN void png_do_write_swap_alpha PNGARG((png_row_infop row_info, 3429 PNG_EXTERN void png_do_write_swap_alpha PNGARG((png_row_infop row_info,
3364 png_bytep row)); 3430 png_bytep row)) PNG_PRIVATE;
3365 #endif 3431 #endif
3366 3432
3367 #if defined(PNG_READ_INVERT_ALPHA_SUPPORTED) 3433 #ifdef PNG_READ_INVERT_ALPHA_SUPPORTED
3368 PNG_EXTERN void png_do_read_invert_alpha PNGARG((png_row_infop row_info, 3434 PNG_EXTERN void png_do_read_invert_alpha PNGARG((png_row_infop row_info,
3369 png_bytep row)); 3435 png_bytep row)) PNG_PRIVATE;
3370 #endif 3436 #endif
3371 3437
3372 #if defined(PNG_WRITE_INVERT_ALPHA_SUPPORTED) 3438 #ifdef PNG_WRITE_INVERT_ALPHA_SUPPORTED
3373 PNG_EXTERN void png_do_write_invert_alpha PNGARG((png_row_infop row_info, 3439 PNG_EXTERN void png_do_write_invert_alpha PNGARG((png_row_infop row_info,
3374 png_bytep row)); 3440 png_bytep row)) PNG_PRIVATE;
3375 #endif 3441 #endif
3376 3442
3377 #if defined(PNG_WRITE_FILLER_SUPPORTED) || \ 3443 #if defined(PNG_WRITE_FILLER_SUPPORTED) || \
3378 defined(PNG_READ_STRIP_ALPHA_SUPPORTED) 3444 defined(PNG_READ_STRIP_ALPHA_SUPPORTED)
3379 PNG_EXTERN void png_do_strip_filler PNGARG((png_row_infop row_info, 3445 PNG_EXTERN void png_do_strip_filler PNGARG((png_row_infop row_info,
3380 png_bytep row, png_uint_32 flags)); 3446 png_bytep row, png_uint_32 flags)) PNG_PRIVATE;
3381 #endif 3447 #endif
3382 3448
3383 #if defined(PNG_READ_SWAP_SUPPORTED) || defined(PNG_WRITE_SWAP_SUPPORTED) 3449 #if defined(PNG_READ_SWAP_SUPPORTED) || defined(PNG_WRITE_SWAP_SUPPORTED)
3384 PNG_EXTERN void png_do_swap PNGARG((png_row_infop row_info, png_bytep row)); 3450 PNG_EXTERN void png_do_swap PNGARG((png_row_infop row_info,
3451 png_bytep row)) PNG_PRIVATE;
3385 #endif 3452 #endif
3386 3453
3387 #if defined(PNG_READ_PACKSWAP_SUPPORTED) || defined(PNG_WRITE_PACKSWAP_SUPPORTED ) 3454 #if defined(PNG_READ_PACKSWAP_SUPPORTED) || defined(PNG_WRITE_PACKSWAP_SUPPORTED )
3388 PNG_EXTERN void png_do_packswap PNGARG((png_row_infop row_info, png_bytep row)); 3455 PNG_EXTERN void png_do_packswap PNGARG((png_row_infop row_info,
3389 #endif 3456 png_bytep row)) PNG_PRIVATE;
3390 3457 #endif
3391 #if defined(PNG_READ_RGB_TO_GRAY_SUPPORTED) 3458
3459 #ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED
3392 PNG_EXTERN int png_do_rgb_to_gray PNGARG((png_structp png_ptr, png_row_infop 3460 PNG_EXTERN int png_do_rgb_to_gray PNGARG((png_structp png_ptr, png_row_infop
3393 row_info, png_bytep row)); 3461 row_info, png_bytep row)) PNG_PRIVATE;
3394 #endif 3462 #endif
3395 3463
3396 #if defined(PNG_READ_GRAY_TO_RGB_SUPPORTED) 3464 #ifdef PNG_READ_GRAY_TO_RGB_SUPPORTED
3397 PNG_EXTERN void png_do_gray_to_rgb PNGARG((png_row_infop row_info, 3465 PNG_EXTERN void png_do_gray_to_rgb PNGARG((png_row_infop row_info,
3398 png_bytep row)); 3466 png_bytep row)) PNG_PRIVATE;
3399 #endif 3467 #endif
3400 3468
3401 #if defined(PNG_READ_PACK_SUPPORTED) 3469 #ifdef PNG_READ_PACK_SUPPORTED
3402 PNG_EXTERN void png_do_unpack PNGARG((png_row_infop row_info, png_bytep row)); 3470 PNG_EXTERN void png_do_unpack PNGARG((png_row_infop row_info,
3403 #endif 3471 png_bytep row)) PNG_PRIVATE;
3404 3472 #endif
3405 #if defined(PNG_READ_SHIFT_SUPPORTED) 3473
3474 #ifdef PNG_READ_SHIFT_SUPPORTED
3406 PNG_EXTERN void png_do_unshift PNGARG((png_row_infop row_info, png_bytep row, 3475 PNG_EXTERN void png_do_unshift PNGARG((png_row_infop row_info, png_bytep row,
3407 png_color_8p sig_bits)); 3476 png_color_8p sig_bits)) PNG_PRIVATE;
3408 #endif 3477 #endif
3409 3478
3410 #if defined(PNG_READ_INVERT_SUPPORTED) || defined(PNG_WRITE_INVERT_SUPPORTED) 3479 #if defined(PNG_READ_INVERT_SUPPORTED) || defined(PNG_WRITE_INVERT_SUPPORTED)
3411 PNG_EXTERN void png_do_invert PNGARG((png_row_infop row_info, png_bytep row)); 3480 PNG_EXTERN void png_do_invert PNGARG((png_row_infop row_info,
3412 #endif 3481 png_bytep row)) PNG_PRIVATE;
3413 3482 #endif
3414 #if defined(PNG_READ_16_TO_8_SUPPORTED) 3483
3415 PNG_EXTERN void png_do_chop PNGARG((png_row_infop row_info, png_bytep row)); 3484 #ifdef PNG_READ_16_TO_8_SUPPORTED
3416 #endif 3485 PNG_EXTERN void png_do_chop PNGARG((png_row_infop row_info,
3417 3486 png_bytep row)) PNG_PRIVATE;
3418 #if defined(PNG_READ_DITHER_SUPPORTED) 3487 #endif
3488
3489 #ifdef PNG_READ_DITHER_SUPPORTED
3419 PNG_EXTERN void png_do_dither PNGARG((png_row_infop row_info, 3490 PNG_EXTERN void png_do_dither PNGARG((png_row_infop row_info,
3420 png_bytep row, png_bytep palette_lookup, png_bytep dither_lookup)); 3491 png_bytep row, png_bytep palette_lookup,
3421 3492 png_bytep dither_lookup)) PNG_PRIVATE;
3422 # if defined(PNG_CORRECT_PALETTE_SUPPORTED) 3493
3494 # ifdef PNG_CORRECT_PALETTE_SUPPORTED
3423 PNG_EXTERN void png_correct_palette PNGARG((png_structp png_ptr, 3495 PNG_EXTERN void png_correct_palette PNGARG((png_structp png_ptr,
3424 png_colorp palette, int num_palette)); 3496 png_colorp palette, int num_palette)) PNG_PRIVATE;
3425 # endif 3497 # endif
3426 #endif 3498 #endif
3427 3499
3428 #if defined(PNG_READ_BGR_SUPPORTED) || defined(PNG_WRITE_BGR_SUPPORTED) 3500 #if defined(PNG_READ_BGR_SUPPORTED) || defined(PNG_WRITE_BGR_SUPPORTED)
3429 PNG_EXTERN void png_do_bgr PNGARG((png_row_infop row_info, png_bytep row)); 3501 PNG_EXTERN void png_do_bgr PNGARG((png_row_infop row_info,
3430 #endif 3502 png_bytep row)) PNG_PRIVATE;
3431 3503 #endif
3432 #if defined(PNG_WRITE_PACK_SUPPORTED) 3504
3505 #ifdef PNG_WRITE_PACK_SUPPORTED
3433 PNG_EXTERN void png_do_pack PNGARG((png_row_infop row_info, 3506 PNG_EXTERN void png_do_pack PNGARG((png_row_infop row_info,
3434 png_bytep row, png_uint_32 bit_depth)); 3507 png_bytep row, png_uint_32 bit_depth)) PNG_PRIVATE;
3435 #endif 3508 #endif
3436 3509
3437 #if defined(PNG_WRITE_SHIFT_SUPPORTED) 3510 #ifdef PNG_WRITE_SHIFT_SUPPORTED
3438 PNG_EXTERN void png_do_shift PNGARG((png_row_infop row_info, png_bytep row, 3511 PNG_EXTERN void png_do_shift PNGARG((png_row_infop row_info, png_bytep row,
3439 png_color_8p bit_depth)); 3512 png_color_8p bit_depth)) PNG_PRIVATE;
3440 #endif 3513 #endif
3441 3514
3442 #if defined(PNG_READ_BACKGROUND_SUPPORTED) 3515 #ifdef PNG_READ_BACKGROUND_SUPPORTED
3443 #if defined(PNG_READ_GAMMA_SUPPORTED) 3516 #ifdef PNG_READ_GAMMA_SUPPORTED
3444 PNG_EXTERN void png_do_background PNGARG((png_row_infop row_info, png_bytep row, 3517 PNG_EXTERN void png_do_background PNGARG((png_row_infop row_info, png_bytep row,
3445 png_color_16p trans_values, png_color_16p background, 3518 png_color_16p trans_values, png_color_16p background,
3446 png_color_16p background_1, 3519 png_color_16p background_1,
3447 png_bytep gamma_table, png_bytep gamma_from_1, png_bytep gamma_to_1, 3520 png_bytep gamma_table, png_bytep gamma_from_1, png_bytep gamma_to_1,
3448 png_uint_16pp gamma_16, png_uint_16pp gamma_16_from_1, 3521 png_uint_16pp gamma_16, png_uint_16pp gamma_16_from_1,
3449 png_uint_16pp gamma_16_to_1, int gamma_shift)); 3522 png_uint_16pp gamma_16_to_1, int gamma_shift)) PNG_PRIVATE;
3450 #else 3523 #else
3451 PNG_EXTERN void png_do_background PNGARG((png_row_infop row_info, png_bytep row, 3524 PNG_EXTERN void png_do_background PNGARG((png_row_infop row_info, png_bytep row,
3452 png_color_16p trans_values, png_color_16p background)); 3525 png_color_16p trans_values, png_color_16p background)) PNG_PRIVATE;
3453 #endif 3526 #endif
3454 #endif 3527 #endif
3455 3528
3456 #if defined(PNG_READ_GAMMA_SUPPORTED) 3529 #ifdef PNG_READ_GAMMA_SUPPORTED
3457 PNG_EXTERN void png_do_gamma PNGARG((png_row_infop row_info, png_bytep row, 3530 PNG_EXTERN void png_do_gamma PNGARG((png_row_infop row_info, png_bytep row,
3458 png_bytep gamma_table, png_uint_16pp gamma_16_table, 3531 png_bytep gamma_table, png_uint_16pp gamma_16_table,
3459 int gamma_shift)); 3532 int gamma_shift)) PNG_PRIVATE;
3460 #endif 3533 #endif
3461 3534
3462 #if defined(PNG_READ_EXPAND_SUPPORTED) 3535 #ifdef PNG_READ_EXPAND_SUPPORTED
3463 PNG_EXTERN void png_do_expand_palette PNGARG((png_row_infop row_info, 3536 PNG_EXTERN void png_do_expand_palette PNGARG((png_row_infop row_info,
3464 png_bytep row, png_colorp palette, png_bytep trans, int num_trans)); 3537 png_bytep row, png_colorp palette, png_bytep trans,
3538 int num_trans)) PNG_PRIVATE;
3465 PNG_EXTERN void png_do_expand PNGARG((png_row_infop row_info, 3539 PNG_EXTERN void png_do_expand PNGARG((png_row_infop row_info,
3466 png_bytep row, png_color_16p trans_value)); 3540 png_bytep row, png_color_16p trans_value)) PNG_PRIVATE;
3467 #endif 3541 #endif
3468 3542
3469 /* The following decodes the appropriate chunks, and does error correction, 3543 /* The following decodes the appropriate chunks, and does error correction,
3470 * then calls the appropriate callback for the chunk if it is valid. 3544 * then calls the appropriate callback for the chunk if it is valid.
3471 */ 3545 */
3472 3546
3473 /* decode the IHDR chunk */ 3547 /* Decode the IHDR chunk */
3474 PNG_EXTERN void png_handle_IHDR PNGARG((png_structp png_ptr, png_infop info_ptr, 3548 PNG_EXTERN void png_handle_IHDR PNGARG((png_structp png_ptr, png_infop info_ptr,
3475 png_uint_32 length)); 3549 png_uint_32 length)) PNG_PRIVATE;
3476 PNG_EXTERN void png_handle_PLTE PNGARG((png_structp png_ptr, png_infop info_ptr, 3550 PNG_EXTERN void png_handle_PLTE PNGARG((png_structp png_ptr, png_infop info_ptr,
3477 png_uint_32 length)); 3551 png_uint_32 length));
3478 PNG_EXTERN void png_handle_IEND PNGARG((png_structp png_ptr, png_infop info_ptr, 3552 PNG_EXTERN void png_handle_IEND PNGARG((png_structp png_ptr, png_infop info_ptr,
3479 png_uint_32 length)); 3553 png_uint_32 length));
3480 3554
3481 #if defined(PNG_READ_bKGD_SUPPORTED) 3555 #ifdef PNG_READ_bKGD_SUPPORTED
3482 PNG_EXTERN void png_handle_bKGD PNGARG((png_structp png_ptr, png_infop info_ptr, 3556 PNG_EXTERN void png_handle_bKGD PNGARG((png_structp png_ptr, png_infop info_ptr,
3483 png_uint_32 length)); 3557 png_uint_32 length)) PNG_PRIVATE;
3484 #endif 3558 #endif
3485 3559
3486 #if defined(PNG_READ_cHRM_SUPPORTED) 3560 #ifdef PNG_READ_cHRM_SUPPORTED
3487 PNG_EXTERN void png_handle_cHRM PNGARG((png_structp png_ptr, png_infop info_ptr, 3561 PNG_EXTERN void png_handle_cHRM PNGARG((png_structp png_ptr, png_infop info_ptr,
3488 png_uint_32 length)); 3562 png_uint_32 length)) PNG_PRIVATE;
3489 #endif 3563 #endif
3490 3564
3491 #if defined(PNG_READ_gAMA_SUPPORTED) 3565 #ifdef PNG_READ_gAMA_SUPPORTED
3492 PNG_EXTERN void png_handle_gAMA PNGARG((png_structp png_ptr, png_infop info_ptr, 3566 PNG_EXTERN void png_handle_gAMA PNGARG((png_structp png_ptr, png_infop info_ptr,
3493 png_uint_32 length)); 3567 png_uint_32 length)) PNG_PRIVATE;
3494 #endif 3568 #endif
3495 3569
3496 #if defined(PNG_READ_hIST_SUPPORTED) 3570 #ifdef PNG_READ_hIST_SUPPORTED
3497 PNG_EXTERN void png_handle_hIST PNGARG((png_structp png_ptr, png_infop info_ptr, 3571 PNG_EXTERN void png_handle_hIST PNGARG((png_structp png_ptr, png_infop info_ptr,
3498 png_uint_32 length)); 3572 png_uint_32 length)) PNG_PRIVATE;
3499 #endif 3573 #endif
3500 3574
3501 #if defined(PNG_READ_iCCP_SUPPORTED) 3575 #ifdef PNG_READ_iCCP_SUPPORTED
3502 extern void png_handle_iCCP PNGARG((png_structp png_ptr, png_infop info_ptr, 3576 extern void png_handle_iCCP PNGARG((png_structp png_ptr, png_infop info_ptr,
3503 png_uint_32 length)); 3577 png_uint_32 length));
3504 #endif /* PNG_READ_iCCP_SUPPORTED */ 3578 #endif /* PNG_READ_iCCP_SUPPORTED */
3505 3579
3506 #if defined(PNG_READ_iTXt_SUPPORTED) 3580 #ifdef PNG_READ_iTXt_SUPPORTED
3507 PNG_EXTERN void png_handle_iTXt PNGARG((png_structp png_ptr, png_infop info_ptr, 3581 PNG_EXTERN void png_handle_iTXt PNGARG((png_structp png_ptr, png_infop info_ptr,
3508 png_uint_32 length)); 3582 png_uint_32 length)) PNG_PRIVATE;
3509 #endif 3583 #endif
3510 3584
3511 #if defined(PNG_READ_oFFs_SUPPORTED) 3585 #ifdef PNG_READ_oFFs_SUPPORTED
3512 PNG_EXTERN void png_handle_oFFs PNGARG((png_structp png_ptr, png_infop info_ptr, 3586 PNG_EXTERN void png_handle_oFFs PNGARG((png_structp png_ptr, png_infop info_ptr,
3513 png_uint_32 length)); 3587 png_uint_32 length)) PNG_PRIVATE;
3514 #endif 3588 #endif
3515 3589
3516 #if defined(PNG_READ_pCAL_SUPPORTED) 3590 #ifdef PNG_READ_pCAL_SUPPORTED
3517 PNG_EXTERN void png_handle_pCAL PNGARG((png_structp png_ptr, png_infop info_ptr, 3591 PNG_EXTERN void png_handle_pCAL PNGARG((png_structp png_ptr, png_infop info_ptr,
3518 png_uint_32 length)); 3592 png_uint_32 length)) PNG_PRIVATE;
3519 #endif 3593 #endif
3520 3594
3521 #if defined(PNG_READ_pHYs_SUPPORTED) 3595 #ifdef PNG_READ_pHYs_SUPPORTED
3522 PNG_EXTERN void png_handle_pHYs PNGARG((png_structp png_ptr, png_infop info_ptr, 3596 PNG_EXTERN void png_handle_pHYs PNGARG((png_structp png_ptr, png_infop info_ptr,
3523 png_uint_32 length)); 3597 png_uint_32 length)) PNG_PRIVATE;
3524 #endif 3598 #endif
3525 3599
3526 #if defined(PNG_READ_sBIT_SUPPORTED) 3600 #ifdef PNG_READ_sBIT_SUPPORTED
3527 PNG_EXTERN void png_handle_sBIT PNGARG((png_structp png_ptr, png_infop info_ptr, 3601 PNG_EXTERN void png_handle_sBIT PNGARG((png_structp png_ptr, png_infop info_ptr,
3528 png_uint_32 length)); 3602 png_uint_32 length)) PNG_PRIVATE;
3529 #endif 3603 #endif
3530 3604
3531 #if defined(PNG_READ_sCAL_SUPPORTED) 3605 #ifdef PNG_READ_sCAL_SUPPORTED
3532 PNG_EXTERN void png_handle_sCAL PNGARG((png_structp png_ptr, png_infop info_ptr, 3606 PNG_EXTERN void png_handle_sCAL PNGARG((png_structp png_ptr, png_infop info_ptr,
3533 png_uint_32 length)); 3607 png_uint_32 length)) PNG_PRIVATE;
3534 #endif 3608 #endif
3535 3609
3536 #if defined(PNG_READ_sPLT_SUPPORTED) 3610 #ifdef PNG_READ_sPLT_SUPPORTED
3537 extern void png_handle_sPLT PNGARG((png_structp png_ptr, png_infop info_ptr, 3611 extern void png_handle_sPLT PNGARG((png_structp png_ptr, png_infop info_ptr,
3538 png_uint_32 length)); 3612 png_uint_32 length)) PNG_PRIVATE;
3539 #endif /* PNG_READ_sPLT_SUPPORTED */ 3613 #endif /* PNG_READ_sPLT_SUPPORTED */
3540 3614
3541 #if defined(PNG_READ_sRGB_SUPPORTED) 3615 #ifdef PNG_READ_sRGB_SUPPORTED
3542 PNG_EXTERN void png_handle_sRGB PNGARG((png_structp png_ptr, png_infop info_ptr, 3616 PNG_EXTERN void png_handle_sRGB PNGARG((png_structp png_ptr, png_infop info_ptr,
3543 png_uint_32 length)); 3617 png_uint_32 length)) PNG_PRIVATE;
3544 #endif 3618 #endif
3545 3619
3546 #if defined(PNG_READ_tEXt_SUPPORTED) 3620 #ifdef PNG_READ_tEXt_SUPPORTED
3547 PNG_EXTERN void png_handle_tEXt PNGARG((png_structp png_ptr, png_infop info_ptr, 3621 PNG_EXTERN void png_handle_tEXt PNGARG((png_structp png_ptr, png_infop info_ptr,
3548 png_uint_32 length)); 3622 png_uint_32 length)) PNG_PRIVATE;
3549 #endif 3623 #endif
3550 3624
3551 #if defined(PNG_READ_tIME_SUPPORTED) 3625 #ifdef PNG_READ_tIME_SUPPORTED
3552 PNG_EXTERN void png_handle_tIME PNGARG((png_structp png_ptr, png_infop info_ptr, 3626 PNG_EXTERN void png_handle_tIME PNGARG((png_structp png_ptr, png_infop info_ptr,
3553 png_uint_32 length)); 3627 png_uint_32 length)) PNG_PRIVATE;
3554 #endif 3628 #endif
3555 3629
3556 #if defined(PNG_READ_tRNS_SUPPORTED) 3630 #ifdef PNG_READ_tRNS_SUPPORTED
3557 PNG_EXTERN void png_handle_tRNS PNGARG((png_structp png_ptr, png_infop info_ptr, 3631 PNG_EXTERN void png_handle_tRNS PNGARG((png_structp png_ptr, png_infop info_ptr,
3558 png_uint_32 length)); 3632 png_uint_32 length)) PNG_PRIVATE;
3559 #endif 3633 #endif
3560 3634
3561 #if defined(PNG_READ_zTXt_SUPPORTED) 3635 #ifdef PNG_READ_zTXt_SUPPORTED
3562 PNG_EXTERN void png_handle_zTXt PNGARG((png_structp png_ptr, png_infop info_ptr, 3636 PNG_EXTERN void png_handle_zTXt PNGARG((png_structp png_ptr, png_infop info_ptr,
3563 png_uint_32 length)); 3637 png_uint_32 length)) PNG_PRIVATE;
3564 #endif 3638 #endif
3565 3639
3566 PNG_EXTERN void png_handle_unknown PNGARG((png_structp png_ptr, 3640 PNG_EXTERN void png_handle_unknown PNGARG((png_structp png_ptr,
3567 png_infop info_ptr, png_uint_32 length)); 3641 png_infop info_ptr, png_uint_32 length)) PNG_PRIVATE;
3568 3642
3569 PNG_EXTERN void png_check_chunk_name PNGARG((png_structp png_ptr, 3643 PNG_EXTERN void png_check_chunk_name PNGARG((png_structp png_ptr,
3570 png_bytep chunk_name)); 3644 png_bytep chunk_name)) PNG_PRIVATE;
3571 3645
3572 /* handle the transformations for reading and writing */ 3646 /* Handle the transformations for reading and writing */
3573 PNG_EXTERN void png_do_read_transformations PNGARG((png_structp png_ptr)); 3647 PNG_EXTERN void png_do_read_transformations
3574 PNG_EXTERN void png_do_write_transformations PNGARG((png_structp png_ptr)); 3648 PNGARG((png_structp png_ptr)) PNG_PRIVATE;
3575 3649 PNG_EXTERN void png_do_write_transformations
3576 PNG_EXTERN void png_init_read_transformations PNGARG((png_structp png_ptr)); 3650 PNGARG((png_structp png_ptr)) PNG_PRIVATE;
3651
3652 PNG_EXTERN void png_init_read_transformations
3653 PNGARG((png_structp png_ptr)) PNG_PRIVATE;
3577 3654
3578 #ifdef PNG_PROGRESSIVE_READ_SUPPORTED 3655 #ifdef PNG_PROGRESSIVE_READ_SUPPORTED
3579 PNG_EXTERN void png_push_read_chunk PNGARG((png_structp png_ptr, 3656 PNG_EXTERN void png_push_read_chunk PNGARG((png_structp png_ptr,
3580 png_infop info_ptr)); 3657 png_infop info_ptr)) PNG_PRIVATE;
3581 PNG_EXTERN void png_push_read_sig PNGARG((png_structp png_ptr, 3658 PNG_EXTERN void png_push_read_sig PNGARG((png_structp png_ptr,
3582 png_infop info_ptr)); 3659 png_infop info_ptr)) PNG_PRIVATE;
3583 PNG_EXTERN void png_push_check_crc PNGARG((png_structp png_ptr)); 3660 PNG_EXTERN void png_push_check_crc PNGARG((png_structp png_ptr)) PNG_PRIVATE;
3584 PNG_EXTERN void png_push_crc_skip PNGARG((png_structp png_ptr, 3661 PNG_EXTERN void png_push_crc_skip PNGARG((png_structp png_ptr,
3585 png_uint_32 length)); 3662 png_uint_32 length)) PNG_PRIVATE;
3586 PNG_EXTERN void png_push_crc_finish PNGARG((png_structp png_ptr)); 3663 PNG_EXTERN void png_push_crc_finish PNGARG((png_structp png_ptr)) PNG_PRIVATE;
3587 PNG_EXTERN void png_push_save_buffer PNGARG((png_structp png_ptr)); 3664 PNG_EXTERN void png_push_save_buffer PNGARG((png_structp png_ptr)) PNG_PRIVATE;
3588 PNG_EXTERN void png_push_restore_buffer PNGARG((png_structp png_ptr, 3665 PNG_EXTERN void png_push_restore_buffer PNGARG((png_structp png_ptr,
3589 png_bytep buffer, png_size_t buffer_length)); 3666 png_bytep buffer, png_size_t buffer_length)) PNG_PRIVATE;
3590 PNG_EXTERN void png_push_read_IDAT PNGARG((png_structp png_ptr)); 3667 PNG_EXTERN void png_push_read_IDAT PNGARG((png_structp png_ptr)) PNG_PRIVATE;
3591 PNG_EXTERN void png_process_IDAT_data PNGARG((png_structp png_ptr, 3668 PNG_EXTERN void png_process_IDAT_data PNGARG((png_structp png_ptr,
3592 png_bytep buffer, png_size_t buffer_length)); 3669 png_bytep buffer, png_size_t buffer_length)) PNG_PRIVATE;
3593 PNG_EXTERN void png_push_process_row PNGARG((png_structp png_ptr)); 3670 PNG_EXTERN void png_push_process_row PNGARG((png_structp png_ptr)) PNG_PRIVATE;
3594 PNG_EXTERN void png_push_handle_unknown PNGARG((png_structp png_ptr, 3671 PNG_EXTERN void png_push_handle_unknown PNGARG((png_structp png_ptr,
3595 png_infop info_ptr, png_uint_32 length)); 3672 png_infop info_ptr, png_uint_32 length)) PNG_PRIVATE;
3596 PNG_EXTERN void png_push_have_info PNGARG((png_structp png_ptr, 3673 PNG_EXTERN void png_push_have_info PNGARG((png_structp png_ptr,
3597 png_infop info_ptr)); 3674 png_infop info_ptr)) PNG_PRIVATE;
3598 PNG_EXTERN void png_push_have_end PNGARG((png_structp png_ptr, 3675 PNG_EXTERN void png_push_have_end PNGARG((png_structp png_ptr,
3599 png_infop info_ptr)); 3676 png_infop info_ptr)) PNG_PRIVATE;
3600 PNG_EXTERN void png_push_have_row PNGARG((png_structp png_ptr, png_bytep row)); 3677 PNG_EXTERN void png_push_have_row PNGARG((png_structp png_ptr,
3678 png_bytep row)) PNG_PRIVATE;
3601 PNG_EXTERN void png_push_read_end PNGARG((png_structp png_ptr, 3679 PNG_EXTERN void png_push_read_end PNGARG((png_structp png_ptr,
3602 png_infop info_ptr)); 3680 png_infop info_ptr)) PNG_PRIVATE;
3603 PNG_EXTERN void png_process_some_data PNGARG((png_structp png_ptr, 3681 PNG_EXTERN void png_process_some_data PNGARG((png_structp png_ptr,
3604 png_infop info_ptr)); 3682 png_infop info_ptr)) PNG_PRIVATE;
3605 PNG_EXTERN void png_read_push_finish_row PNGARG((png_structp png_ptr)); 3683 PNG_EXTERN void png_read_push_finish_row
3606 #if defined(PNG_READ_tEXt_SUPPORTED) 3684 PNGARG((png_structp png_ptr)) PNG_PRIVATE;
3685 #ifdef PNG_READ_tEXt_SUPPORTED
3607 PNG_EXTERN void png_push_handle_tEXt PNGARG((png_structp png_ptr, 3686 PNG_EXTERN void png_push_handle_tEXt PNGARG((png_structp png_ptr,
3608 png_infop info_ptr, png_uint_32 length)); 3687 png_infop info_ptr, png_uint_32 length)) PNG_PRIVATE;
3609 PNG_EXTERN void png_push_read_tEXt PNGARG((png_structp png_ptr, 3688 PNG_EXTERN void png_push_read_tEXt PNGARG((png_structp png_ptr,
3610 png_infop info_ptr)); 3689 png_infop info_ptr)) PNG_PRIVATE;
3611 #endif 3690 #endif
3612 #if defined(PNG_READ_zTXt_SUPPORTED) 3691 #ifdef PNG_READ_zTXt_SUPPORTED
3613 PNG_EXTERN void png_push_handle_zTXt PNGARG((png_structp png_ptr, 3692 PNG_EXTERN void png_push_handle_zTXt PNGARG((png_structp png_ptr,
3614 png_infop info_ptr, png_uint_32 length)); 3693 png_infop info_ptr, png_uint_32 length)) PNG_PRIVATE;
3615 PNG_EXTERN void png_push_read_zTXt PNGARG((png_structp png_ptr, 3694 PNG_EXTERN void png_push_read_zTXt PNGARG((png_structp png_ptr,
3616 png_infop info_ptr)); 3695 png_infop info_ptr)) PNG_PRIVATE;
3617 #endif 3696 #endif
3618 #if defined(PNG_READ_iTXt_SUPPORTED) 3697 #ifdef PNG_READ_iTXt_SUPPORTED
3619 PNG_EXTERN void png_push_handle_iTXt PNGARG((png_structp png_ptr, 3698 PNG_EXTERN void png_push_handle_iTXt PNGARG((png_structp png_ptr,
3620 png_infop info_ptr, png_uint_32 length)); 3699 png_infop info_ptr, png_uint_32 length)) PNG_PRIVATE;
3621 PNG_EXTERN void png_push_read_iTXt PNGARG((png_structp png_ptr, 3700 PNG_EXTERN void png_push_read_iTXt PNGARG((png_structp png_ptr,
3622 png_infop info_ptr)); 3701 png_infop info_ptr)) PNG_PRIVATE;
3623 #endif 3702 #endif
3624 3703
3625 #endif /* PNG_PROGRESSIVE_READ_SUPPORTED */ 3704 #endif /* PNG_PROGRESSIVE_READ_SUPPORTED */
3626 3705
3627 #ifdef PNG_MNG_FEATURES_SUPPORTED 3706 #ifdef PNG_MNG_FEATURES_SUPPORTED
3628 PNG_EXTERN void png_do_read_intrapixel PNGARG((png_row_infop row_info, 3707 PNG_EXTERN void png_do_read_intrapixel PNGARG((png_row_infop row_info,
3629 png_bytep row)); 3708 png_bytep row)) PNG_PRIVATE;
3630 PNG_EXTERN void png_do_write_intrapixel PNGARG((png_row_infop row_info, 3709 PNG_EXTERN void png_do_write_intrapixel PNGARG((png_row_infop row_info,
3631 png_bytep row)); 3710 png_bytep row)) PNG_PRIVATE;
3632 #endif 3711 #endif
3633 3712
3634 #if defined(PNG_ASSEMBLER_CODE_SUPPORTED) 3713 #ifdef PNG_ASSEMBLER_CODE_SUPPORTED
3635 #if defined(PNG_MMX_CODE_SUPPORTED) 3714 #ifdef PNG_MMX_CODE_SUPPORTED
3636 /* png.c */ /* PRIVATE */ 3715 /* png.c */ /* PRIVATE */
3637 PNG_EXTERN void png_init_mmx_flags PNGARG((png_structp png_ptr)); 3716 PNG_EXTERN void png_init_mmx_flags PNGARG((png_structp png_ptr)) PNG_PRIVATE;
3638 #endif 3717 #endif
3639 #endif 3718 #endif
3640 3719
3720
3721 /* The following six functions will be exported in libpng-1.4.0. */
3641 #if defined(PNG_INCH_CONVERSIONS) && defined(PNG_FLOATING_POINT_SUPPORTED) 3722 #if defined(PNG_INCH_CONVERSIONS) && defined(PNG_FLOATING_POINT_SUPPORTED)
3642 PNG_EXTERN png_uint_32 png_get_pixels_per_inch PNGARG((png_structp png_ptr, 3723 PNG_EXTERN png_uint_32 png_get_pixels_per_inch PNGARG((png_structp png_ptr,
3643 png_infop info_ptr)); 3724 png_infop info_ptr));
3644 3725
3645 PNG_EXTERN png_uint_32 png_get_x_pixels_per_inch PNGARG((png_structp png_ptr, 3726 PNG_EXTERN png_uint_32 png_get_x_pixels_per_inch PNGARG((png_structp png_ptr,
3646 png_infop info_ptr)); 3727 png_infop info_ptr));
3647 3728
3648 PNG_EXTERN png_uint_32 png_get_y_pixels_per_inch PNGARG((png_structp png_ptr, 3729 PNG_EXTERN png_uint_32 png_get_y_pixels_per_inch PNGARG((png_structp png_ptr,
3649 png_infop info_ptr)); 3730 png_infop info_ptr));
3650 3731
3651 PNG_EXTERN float png_get_x_offset_inches PNGARG((png_structp png_ptr, 3732 PNG_EXTERN float png_get_x_offset_inches PNGARG((png_structp png_ptr,
3652 png_infop info_ptr)); 3733 png_infop info_ptr));
3653 3734
3654 PNG_EXTERN float png_get_y_offset_inches PNGARG((png_structp png_ptr, 3735 PNG_EXTERN float png_get_y_offset_inches PNGARG((png_structp png_ptr,
3655 png_infop info_ptr)); 3736 png_infop info_ptr));
3656 3737
3657 #if defined(PNG_pHYs_SUPPORTED) 3738 #ifdef PNG_pHYs_SUPPORTED
3658 PNG_EXTERN png_uint_32 png_get_pHYs_dpi PNGARG((png_structp png_ptr, 3739 PNG_EXTERN png_uint_32 png_get_pHYs_dpi PNGARG((png_structp png_ptr,
3659 png_infop info_ptr, png_uint_32 *res_x, png_uint_32 *res_y, int *unit_type)); 3740 png_infop info_ptr, png_uint_32 *res_x, png_uint_32 *res_y, int *unit_type));
3660 #endif /* PNG_pHYs_SUPPORTED */ 3741 #endif /* PNG_pHYs_SUPPORTED */
3661 #endif /* PNG_INCH_CONVERSIONS && PNG_FLOATING_POINT_SUPPORTED */ 3742 #endif /* PNG_INCH_CONVERSIONS && PNG_FLOATING_POINT_SUPPORTED */
3662 3743
3663 /* Read the chunk header (length + type name) */ 3744 /* Read the chunk header (length + type name) */
3664 PNG_EXTERN png_uint_32 png_read_chunk_header PNGARG((png_structp png_ptr)); 3745 PNG_EXTERN png_uint_32 png_read_chunk_header
3746 PNGARG((png_structp png_ptr)) PNG_PRIVATE;
3665 3747
3666 /* Added at libpng version 1.2.34 */ 3748 /* Added at libpng version 1.2.34 */
3667 #if defined(PNG_cHRM_SUPPORTED) 3749 #ifdef PNG_cHRM_SUPPORTED
3668 PNG_EXTERN int png_check_cHRM_fixed PNGARG((png_structp png_ptr, 3750 PNG_EXTERN int png_check_cHRM_fixed PNGARG((png_structp png_ptr,
3669 png_fixed_point int_white_x, png_fixed_point int_white_y, 3751 png_fixed_point int_white_x, png_fixed_point int_white_y,
3670 png_fixed_point int_red_x, png_fixed_point int_red_y, png_fixed_point 3752 png_fixed_point int_red_x, png_fixed_point int_red_y, png_fixed_point
3671 int_green_x, png_fixed_point int_green_y, png_fixed_point int_blue_x, 3753 int_green_x, png_fixed_point int_green_y, png_fixed_point int_blue_x,
3672 png_fixed_point int_blue_y)); 3754 png_fixed_point int_blue_y)) PNG_PRIVATE;
3673 #endif 3755 #endif
3674 3756
3757 #ifdef PNG_cHRM_SUPPORTED
3758 #ifdef PNG_CHECK_cHRM_SUPPORTED
3759 /* Added at libpng version 1.2.34 */
3760 PNG_EXTERN void png_64bit_product PNGARG((long v1, long v2,
3761 unsigned long *hi_product, unsigned long *lo_product)) PNG_PRIVATE;
3762 #endif
3763 #endif
3764
3765 /* Added at libpng version 1.2.41 */
3766 PNG_EXTERN void png_check_IHDR PNGARG((png_structp png_ptr,
3767 png_uint_32 width, png_uint_32 height, int bit_depth,
3768 int color_type, int interlace_type, int compression_type,
3769 int filter_type)) PNG_PRIVATE;
3770
3771 /* Added at libpng version 1.2.41 */
3772 PNG_EXTERN png_voidp png_calloc PNGARG((png_structp png_ptr,
3773 png_uint_32 size));
3774
3675 /* Maintainer: Put new private prototypes here ^ and in libpngpf.3 */ 3775 /* Maintainer: Put new private prototypes here ^ and in libpngpf.3 */
3676 3776
3677 #endif /* PNG_INTERNAL */ 3777 #endif /* PNG_INTERNAL */
3678 3778
3679 #ifdef __cplusplus 3779 #ifdef __cplusplus
3680 } 3780 }
3681 #endif 3781 #endif
3682 3782
3683 #endif /* PNG_VERSION_INFO_ONLY */ 3783 #endif /* PNG_VERSION_INFO_ONLY */
3684 /* do not put anything past this line */ 3784 /* Do not put anything past this line */
3685 #endif /* PNG_H */ 3785 #endif /* PNG_H */
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698