15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* pngconf.h - machine configurable file for libpng 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * libpng version 1.2.45 - July 7, 2011 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Copyright (c) 1998-2011 Glenn Randers-Pehrson 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * This code is released under the libpng license. 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * For conditions of distribution and use, see the disclaimer 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * and license in png.h 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Any machine specific code is near the front of this file, so if you 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * are configuring libpng for a machine, you may want to read the section 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * starting here down to where it starts to typedef png_color, png_text, 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * and png_info. 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNGCONF_H 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PNGCONF_H 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PNG_1_2_X 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * PNG_USER_CONFIG has to be defined on the compiler command line. This 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * includes the resource compiler for Windows DLL configurations. 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef PNG_USER_CONFIG 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_USER_PRIVATEBUILD 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_USER_PRIVATEBUILD 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "pngusr.h" 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* PNG_CONFIGURE_LIBPNG is set by the "configure" script. */ 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef PNG_CONFIGURE_LIBPNG 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef HAVE_CONFIG_H 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "config.h" 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Added at libpng-1.2.8 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * If you create a private DLL you need to define in "pngusr.h" the followings: 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * #define PNG_USER_PRIVATEBUILD <Describes by whom and why this version of 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * the DLL was built> 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * e.g. #define PNG_USER_PRIVATEBUILD "Build by MyCompany for xyz reasons." 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * #define PNG_USER_DLLFNAME_POSTFIX <two-letter postfix that serve to 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * distinguish your DLL from those of the official release. These 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * correspond to the trailing letters that come after the version 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * number and must match your private DLL name> 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * e.g. // private DLL "libpng13gx.dll" 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * #define PNG_USER_DLLFNAME_POSTFIX "gx" 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * The following macros are also at your disposal if you want to complete the 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * DLL VERSIONINFO structure. 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * - PNG_USER_VERSIONINFO_COMMENTS 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * - PNG_USER_VERSIONINFO_COMPANYNAME 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * - PNG_USER_VERSIONINFO_LEGALTRADEMARKS 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef __STDC__ 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef SPECIALBUILD 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# pragma message("PNG_LIBPNG_SPECIALBUILD (and deprecated SPECIALBUILD)\ 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) are now LIBPNG reserved macros. Use PNG_USER_PRIVATEBUILD instead.") 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef PRIVATEBUILD 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# pragma message("PRIVATEBUILD is deprecated.\ 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Use PNG_USER_PRIVATEBUILD instead.") 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_USER_PRIVATEBUILD PRIVATEBUILD 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* __STDC__ */ 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_VERSION_INFO_ONLY 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* End of material added to libpng-1.2.8 */ 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Added at libpng-1.2.19, removed at libpng-1.2.20 because it caused trouble 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Restored at libpng-1.2.21 */ 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if !defined(PNG_NO_WARN_UNINITIALIZED_ROW) && \ 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) !defined(PNG_WARN_UNINITIALIZED_ROW) 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_WARN_UNINITIALIZED_ROW 1 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* End of material added at libpng-1.2.19/1.2.21 */ 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* This is the size of the compression buffer, and thus the size of 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * an IDAT chunk. Make this whatever size you feel is best for your 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * machine. One of these will be allocated per png_struct. When this 925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * is full, it writes the data to the disk, and does some other 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * calculations. Making this an extremely small size will slow 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * the library down, but you may want to experiment to determine 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * where it becomes significant, if you are concerned with memory 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * usage. Note that zlib allocates at least 32Kb also. For readers, 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * this describes the size of the buffer available to read the data in. 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Unless this gets smaller than the size of a row (compressed), 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * it should not make much difference how big this is. 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_ZBUF_SIZE 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_ZBUF_SIZE 8192 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Enable if you want a write-only libpng */ 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_NO_READ_SUPPORTED 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_READ_SUPPORTED 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Enable if you want a read-only libpng */ 1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_NO_WRITE_SUPPORTED 1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_WRITE_SUPPORTED 1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Enabled in 1.2.41. */ 1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef PNG_ALLOW_BENIGN_ERRORS 1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define png_benign_error png_warning 1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define png_chunk_benign_error png_chunk_warning 1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else 1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_BENIGN_ERRORS_SUPPORTED 1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define png_benign_error png_error 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define png_chunk_benign_error png_chunk_error 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Added in libpng-1.2.41 */ 1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if !defined(PNG_NO_WARNINGS) && !defined(PNG_WARNINGS_SUPPORTED) 1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_WARNINGS_SUPPORTED 1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if !defined(PNG_NO_ERROR_TEXT) && !defined(PNG_ERROR_TEXT_SUPPORTED) 1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_ERROR_TEXT_SUPPORTED 1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if !defined(PNG_NO_CHECK_cHRM) && !defined(PNG_CHECK_cHRM_SUPPORTED) 1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_CHECK_cHRM_SUPPORTED 1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Enabled by default in 1.2.0. You can disable this if you don't need to 1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * support PNGs that are embedded in MNG datastreams 1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if !defined(PNG_1_0_X) && !defined(PNG_NO_MNG_FEATURES) 1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_MNG_FEATURES_SUPPORTED 1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_MNG_FEATURES_SUPPORTED 1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_NO_FLOATING_POINT_SUPPORTED 1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_FLOATING_POINT_SUPPORTED 1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_FLOATING_POINT_SUPPORTED 1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* If you are running on a machine where you cannot allocate more 1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * than 64K of memory at once, uncomment this. While libpng will not 1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * normally need that much memory in a chunk (unless you load up a very 1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * large file), zlib needs to know how big of a chunk it can use, and 1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * libpng thus makes sure to check any memory allocation to verify it 1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * will fit into memory. 1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PNG_MAX_MALLOC_64K 1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(MAXSEG_64K) && !defined(PNG_MAX_MALLOC_64K) 1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_MAX_MALLOC_64K 1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Special munging to support doing things the 'cygwin' way: 1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 'Normal' png-on-win32 defines/defaults: 1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * PNG_BUILD_DLL -- building dll 1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * PNG_USE_DLL -- building an application, linking to dll 1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * (no define) -- building static library, or building an 1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * application and linking to the static lib 1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 'Cygwin' defines/defaults: 1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * PNG_BUILD_DLL -- (ignored) building the dll 1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * (no define) -- (ignored) building an application, linking to the dll 1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * PNG_STATIC -- (ignored) building the static lib, or building an 1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * application that links to the static lib. 1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * ALL_STATIC -- (ignored) building various static libs, or building an 1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * application that links to the static libs. 1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Thus, 1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * a cygwin user should define either PNG_BUILD_DLL or PNG_STATIC, and 1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * this bit of #ifdefs will define the 'correct' config variables based on 1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * that. If a cygwin user *wants* to define 'PNG_USE_DLL' that's okay, but 1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * unnecessary. 1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Also, the precedence order is: 1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * ALL_STATIC (since we can't #undef something outside our namespace) 1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * PNG_BUILD_DLL 1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * PNG_STATIC 1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * (nothing) == PNG_USE_DLL 1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * CYGWIN (2002-01-20): The preceding is now obsolete. With the advent 1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * of auto-import in binutils, we no longer need to worry about 1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * __declspec(dllexport) / __declspec(dllimport) and friends. Therefore, 1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * we don't need to worry about PNG_STATIC or ALL_STATIC when it comes 1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * to __declspec() stuff. However, we DO need to worry about 1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * PNG_BUILD_DLL and PNG_STATIC because those change some defaults 2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * such as CONSOLE_IO and whether GLOBAL_ARRAYS are allowed. 2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef __CYGWIN__ 2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifdef ALL_STATIC 2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifdef PNG_BUILD_DLL 2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# undef PNG_BUILD_DLL 2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifdef PNG_USE_DLL 2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# undef PNG_USE_DLL 2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifdef PNG_DLL 2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# undef PNG_DLL 2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_STATIC 2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_STATIC 2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# else 2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifdef PNG_BUILD_DLL 2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifdef PNG_STATIC 2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# undef PNG_STATIC 2205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 2215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifdef PNG_USE_DLL 2225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# undef PNG_USE_DLL 2235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 2245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_DLL 2255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_DLL 2265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 2275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# else 2285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifdef PNG_STATIC 2295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifdef PNG_USE_DLL 2305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# undef PNG_USE_DLL 2315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 2325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifdef PNG_DLL 2335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# undef PNG_DLL 2345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 2355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# else 2365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_USE_DLL 2375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_USE_DLL 2385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 2395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_DLL 2405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_DLL 2415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 2425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 2435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 2445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 2455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 2465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* This protects us against compilers that run on a windowing system 2485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * and thus don't have or would rather us not use the stdio types: 2495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * stdin, stdout, and stderr. The only one currently used is stderr 2505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * in png_error() and png_warning(). #defining PNG_NO_CONSOLE_IO will 2515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * prevent these from being compiled and used. #defining PNG_NO_STDIO 2525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * will also prevent these, plus will prevent the entire set of stdio 2535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * macros and functions (FILE *, printf, etc.) from being compiled and used, 2545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * unless (PNG_DEBUG > 0) has been #defined. 2555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 2565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * #define PNG_NO_CONSOLE_IO 2575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * #define PNG_NO_STDIO 2585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 2595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if !defined(PNG_NO_STDIO) && !defined(PNG_STDIO_SUPPORTED) 2615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_STDIO_SUPPORTED 2625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 2635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef _WIN32_WCE 2655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# include <windows.h> 2665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /* Console I/O functions are not supported on WindowsCE */ 2675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_NO_CONSOLE_IO 2685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /* abort() may not be supported on some/all Windows CE platforms */ 2695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_ABORT() exit(-1) 2705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifdef PNG_DEBUG 2715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# undef PNG_DEBUG 2725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 2735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 2745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef PNG_BUILD_DLL 2765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_CONSOLE_IO_SUPPORTED 2775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_NO_CONSOLE_IO 2785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_NO_CONSOLE_IO 2795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 2805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 2815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 2825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifdef PNG_NO_STDIO 2845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_NO_CONSOLE_IO 2855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_NO_CONSOLE_IO 2865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 2875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifdef PNG_DEBUG 2885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# if (PNG_DEBUG > 0) 2895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# include <stdio.h> 2905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 2915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 2925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# else 2935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef _WIN32_WCE 2945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* "stdio.h" functions are not supported on WindowsCE */ 2955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# include <stdio.h> 2965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 2975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 2985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if !(defined PNG_NO_CONSOLE_IO) && !defined(PNG_CONSOLE_IO_SUPPORTED) 3005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_CONSOLE_IO_SUPPORTED 3015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 3025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* This macro protects us against machines that don't have function 3045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * prototypes (ie K&R style headers). If your compiler does not handle 3055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * function prototypes, define this macro and use the included ansi2knr. 3065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * I've always been able to use _NO_PROTO as the indicator, but you may 3075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * need to drag the empty declaration out in front of here, or change the 3085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * ifdef to suit your own needs. 3095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 3105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNGARG 3115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef OF /* zlib prototype munger */ 3135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNGARG(arglist) OF(arglist) 3145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else 3155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef _NO_PROTO 3175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNGARG(arglist) () 3185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_TYPECAST_NULL 3195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_TYPECAST_NULL 3205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 3215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else 3225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNGARG(arglist) arglist 3235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* _NO_PROTO */ 3245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* OF */ 3275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* PNGARG */ 3295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Try to determine if we are compiling on a Mac. Note that testing for 3315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * just __MWERKS__ is not good enough, because the Codewarrior is now used 3325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * on non-Mac platforms. 3335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 3345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef MACOS 3355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# if (defined(__MWERKS__) && defined(macintosh)) || defined(applec) || \ 3365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) defined(THINK_C) || defined(__SC__) || defined(TARGET_OS_MAC) 3375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define MACOS 3385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 3395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 3405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* enough people need this for various reasons to include it here */ 3425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if !defined(MACOS) && !defined(RISCOS) && !defined(_WIN32_WCE) 3435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# include <sys/types.h> 3445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 3455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if !defined(PNG_SETJMP_NOT_SUPPORTED) && !defined(PNG_NO_SETJMP_SUPPORTED) 3475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_SETJMP_SUPPORTED 3485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 3495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef PNG_SETJMP_SUPPORTED 3515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* This is an attempt to force a single setjmp behaviour on Linux. If 3525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * the X config stuff didn't define _BSD_SOURCE we wouldn't need this. 3535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 3545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * You can bypass this test if you know that your application uses exactly 3555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * the same setjmp.h that was included when libpng was built. Only define 3565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * PNG_SKIP_SETJMP_CHECK while building your application, prior to the 3575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * application's '#include "png.h"'. Don't define PNG_SKIP_SETJMP_CHECK 3585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * while building a separate libpng library for general use. 3595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 3605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_SKIP_SETJMP_CHECK 3625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifdef __linux__ 3635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifdef _BSD_SOURCE 3645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_SAVE_BSD_SOURCE 3655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# undef _BSD_SOURCE 3665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 3675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifdef _SETJMP_H 3685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /* If you encounter a compiler error here, see the explanation 3695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * near the end of INSTALL. 3705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 3715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) __pngconf.h__ in libpng already includes setjmp.h; 3725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) __dont__ include it again.; 3735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 3745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif /* __linux__ */ 3755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif /* PNG_SKIP_SETJMP_CHECK */ 3765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /* include setjmp.h for error handling */ 3785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# include <setjmp.h> 3795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifdef __linux__ 3815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifdef PNG_SAVE_BSD_SOURCE 3825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef _BSD_SOURCE 3835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define _BSD_SOURCE 3845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 3855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# undef PNG_SAVE_BSD_SOURCE 3865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 3875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif /* __linux__ */ 3885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* PNG_SETJMP_SUPPORTED */ 3895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef BSD 3915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# include <strings.h> 3925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else 3935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# include <string.h> 3945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 3955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Other defines for things like memory and the like can go here. */ 3975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef PNG_INTERNAL 3985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <stdlib.h> 4005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* The functions exported by PNG_EXTERN are PNG_INTERNAL functions, which 4025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * aren't usually used outside the library (as far as I know), so it is 4035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * debatable if they should be exported at all. In the future, when it is 4045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * possible to have run-time registry of chunk-handling functions, some of 4055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * these will be made available again. 4065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PNG_EXTERN extern 4075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 4085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PNG_EXTERN 4095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Other defines specific to compilers can go here. Try to keep 4115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * them inside an appropriate ifdef/endif pair for portability. 4125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 4135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef PNG_FLOATING_POINT_SUPPORTED 4155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifdef MACOS 4165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /* We need to check that <math.h> hasn't already been included earlier 4175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * as it seems it doesn't agree with <fp.h>, yet we should really use 4185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * <fp.h> if possible. 4195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 4205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# if !defined(__MATH_H__) && !defined(__MATH_H) && !defined(__cmath__) 4215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# include <fp.h> 4225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 4235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# else 4245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# include <math.h> 4255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 4265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# if defined(_AMIGA) && defined(__SASC) && defined(_M68881) 4275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /* Amiga SAS/C: We must include builtin FPU functions when compiling using 4285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * MATH=68881 4295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 4305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# include <m68881.h> 4315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 4325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 4335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Codewarrior on NT has linking problems without this. */ 4355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if (defined(__MWERKS__) && defined(WIN32)) || defined(__STDC__) 4365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_ALWAYS_EXTERN 4375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 4385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* This provides the non-ANSI (far) memory allocation routines. */ 4405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(__TURBOC__) && defined(__MSDOS__) 4415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# include <mem.h> 4425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# include <alloc.h> 4435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 4445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* I have no idea why is this necessary... */ 4465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(_MSC_VER) && (defined(WIN32) || defined(_Windows) || \ 4475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) defined(_WINDOWS) || defined(_WIN32) || defined(__WIN32__)) 4485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# include <malloc.h> 4495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 4505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* This controls how fine the dithering gets. As this allocates 4525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * a largish chunk of memory (32K), those who are not as concerned 4535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * with dithering quality can decrease some or all of these. 4545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 4555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_DITHER_RED_BITS 4565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_DITHER_RED_BITS 5 4575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 4585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_DITHER_GREEN_BITS 4595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_DITHER_GREEN_BITS 5 4605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 4615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_DITHER_BLUE_BITS 4625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_DITHER_BLUE_BITS 5 4635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 4645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* This controls how fine the gamma correction becomes when you 4665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * are only interested in 8 bits anyway. Increasing this value 4675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * results in more memory being used, and more pow() functions 4685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * being called to fill in the gamma tables. Don't set this value 4695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * less then 8, and even that may not work (I haven't tested it). 4705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 4715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_MAX_GAMMA_8 4735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_MAX_GAMMA_8 11 4745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 4755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* This controls how much a difference in gamma we can tolerate before 4775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * we actually start doing gamma conversion. 4785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 4795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_GAMMA_THRESHOLD 4805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_GAMMA_THRESHOLD 0.05 4815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 4825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* PNG_INTERNAL */ 4845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* The following uses const char * instead of char * for error 4865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * and warning message functions, so some compilers won't complain. 4875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * If you do not want to use const, define PNG_NO_CONST here. 4885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 4895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_NO_CONST 4915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_CONST const 4925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else 4935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_CONST 4945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 4955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* The following defines give you the ability to remove code from the 4975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * library that you will not be using. I wish I could figure out how to 4985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * automate this, but I can't do that without making it seriously hard 4995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * on the users. So if you are not using an ability, change the #define 5005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * to and #undef, and that part of the library will not be compiled. If 5015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * your linker can't find a function, you may want to make sure the 5025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * ability is defined here. Some of these depend upon some others being 5035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * defined. I haven't figured out all the interactions here, so you may 5045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * have to experiment awhile to get everything to compile. If you are 5055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * creating or using a shared library, you probably shouldn't touch this, 5065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * as it will affect the size of the structures, and this will cause bad 5075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * things to happen if the library and/or application ever change. 5085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 5095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Any features you will not be using can be undef'ed here */ 5115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* GR-P, 0.96a: Set "*TRANSFORMS_SUPPORTED as default but allow user 5135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * to turn it off with "*TRANSFORMS_NOT_SUPPORTED" or *PNG_NO_*_TRANSFORMS 5145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * on the compile line, then pick and choose which ones to define without 5155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * having to edit this file. It is safe to use the *TRANSFORMS_NOT_SUPPORTED 5165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * if you only want to have a png-compliant reader/writer but don't need 5175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * any of the extra transformations. This saves about 80 kbytes in a 5185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * typical installation of the library. (PNG_NO_* form added in version 5195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 1.0.1c, for consistency) 5205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 5215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* The size of the png_text structure changed in libpng-1.0.6 when 5235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * iTXt support was added. iTXt support was turned off by default through 5245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * libpng-1.2.x, to support old apps that malloc the png_text structure 5255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * instead of calling png_set_text() and letting libpng malloc it. It 5265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * will be turned on by default in libpng-1.4.0. 5275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 5285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(PNG_1_0_X) || defined (PNG_1_2_X) 5305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_NO_iTXt_SUPPORTED 5315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_NO_iTXt_SUPPORTED 5325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 5335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_NO_READ_iTXt 5345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_NO_READ_iTXt 5355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 5365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_NO_WRITE_iTXt 5375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_NO_WRITE_iTXt 5385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 5395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 5405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if !defined(PNG_NO_iTXt_SUPPORTED) 5425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# if !defined(PNG_READ_iTXt_SUPPORTED) && !defined(PNG_NO_READ_iTXt) 5435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_READ_iTXt 5445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 5455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# if !defined(PNG_WRITE_iTXt_SUPPORTED) && !defined(PNG_NO_WRITE_iTXt) 5465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_WRITE_iTXt 5475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 5485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 5495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* The following support, added after version 1.0.0, can be turned off here en 5515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * masse by defining PNG_LEGACY_SUPPORTED in case you need binary compatibility 5525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * with old applications that require the length of png_struct and png_info 5535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * to remain unchanged. 5545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 5555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef PNG_LEGACY_SUPPORTED 5575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_NO_FREE_ME 5585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_NO_READ_UNKNOWN_CHUNKS 5595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_NO_WRITE_UNKNOWN_CHUNKS 5605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_NO_HANDLE_AS_UNKNOWN 5615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_NO_READ_USER_CHUNKS 5625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_NO_READ_iCCP 5635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_NO_WRITE_iCCP 5645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_NO_READ_iTXt 5655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_NO_WRITE_iTXt 5665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_NO_READ_sCAL 5675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_NO_WRITE_sCAL 5685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_NO_READ_sPLT 5695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_NO_WRITE_sPLT 5705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_NO_INFO_IMAGE 5715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_NO_READ_RGB_TO_GRAY 5725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_NO_READ_USER_TRANSFORM 5735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_NO_WRITE_USER_TRANSFORM 5745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_NO_USER_MEM 5755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_NO_READ_EMPTY_PLTE 5765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_NO_MNG_FEATURES 5775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_NO_FIXED_POINT_SUPPORTED 5785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 5795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Ignore attempt to turn off both floating and fixed point support */ 5815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if !defined(PNG_FLOATING_POINT_SUPPORTED) || \ 5825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) !defined(PNG_NO_FIXED_POINT_SUPPORTED) 5835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_FIXED_POINT_SUPPORTED 5845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 5855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_NO_FREE_ME 5875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_FREE_ME_SUPPORTED 5885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 5895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef PNG_READ_SUPPORTED 5915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if !defined(PNG_READ_TRANSFORMS_NOT_SUPPORTED) && \ 5935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) !defined(PNG_NO_READ_TRANSFORMS) 5945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_READ_TRANSFORMS_SUPPORTED 5955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 5965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef PNG_READ_TRANSFORMS_SUPPORTED 5985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_NO_READ_EXPAND 5995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_READ_EXPAND_SUPPORTED 6005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 6015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_NO_READ_SHIFT 6025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_READ_SHIFT_SUPPORTED 6035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 6045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_NO_READ_PACK 6055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_READ_PACK_SUPPORTED 6065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 6075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_NO_READ_BGR 6085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_READ_BGR_SUPPORTED 6095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 6105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_NO_READ_SWAP 6115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_READ_SWAP_SUPPORTED 6125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 6135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_NO_READ_PACKSWAP 6145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_READ_PACKSWAP_SUPPORTED 6155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 6165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_NO_READ_INVERT 6175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_READ_INVERT_SUPPORTED 6185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 6195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_NO_READ_DITHER 6205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_READ_DITHER_SUPPORTED 6215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 6225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_NO_READ_BACKGROUND 6235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_READ_BACKGROUND_SUPPORTED 6245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 6255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_NO_READ_16_TO_8 6265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_READ_16_TO_8_SUPPORTED 6275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 6285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_NO_READ_FILLER 6295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_READ_FILLER_SUPPORTED 6305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 6315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_NO_READ_GAMMA 6325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_READ_GAMMA_SUPPORTED 6335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 6345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_NO_READ_GRAY_TO_RGB 6355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_READ_GRAY_TO_RGB_SUPPORTED 6365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 6375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_NO_READ_SWAP_ALPHA 6385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_READ_SWAP_ALPHA_SUPPORTED 6395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 6405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_NO_READ_INVERT_ALPHA 6415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_READ_INVERT_ALPHA_SUPPORTED 6425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 6435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_NO_READ_STRIP_ALPHA 6445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_READ_STRIP_ALPHA_SUPPORTED 6455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 6465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_NO_READ_USER_TRANSFORM 6475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_READ_USER_TRANSFORM_SUPPORTED 6485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 6495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_NO_READ_RGB_TO_GRAY 6505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_READ_RGB_TO_GRAY_SUPPORTED 6515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 6525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* PNG_READ_TRANSFORMS_SUPPORTED */ 6535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 6545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* PNG_PROGRESSIVE_READ_NOT_SUPPORTED is deprecated. */ 6555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if !defined(PNG_NO_PROGRESSIVE_READ) && \ 6565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) !defined(PNG_PROGRESSIVE_READ_NOT_SUPPORTED) /* if you don't do progressive */ 6575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_PROGRESSIVE_READ_SUPPORTED /* reading. This is not talking */ 6585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* about interlacing capability! You'll */ 6595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /* still have interlacing unless you change the following define: */ 6605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PNG_READ_INTERLACING_SUPPORTED /* required for PNG-compliant decoders */ 6615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 6625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* PNG_NO_SEQUENTIAL_READ_SUPPORTED is deprecated. */ 6635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if !defined(PNG_NO_SEQUENTIAL_READ) && \ 6645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) !defined(PNG_SEQUENTIAL_READ_SUPPORTED) && \ 6655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) !defined(PNG_NO_SEQUENTIAL_READ_SUPPORTED) 6665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_SEQUENTIAL_READ_SUPPORTED 6675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 6685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 6695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PNG_READ_INTERLACING_SUPPORTED /* required in PNG-compliant decoders */ 6705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 6715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_NO_READ_COMPOSITE_NODIV 6725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_NO_READ_COMPOSITED_NODIV /* libpng-1.0.x misspelling */ 6735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_READ_COMPOSITE_NODIV_SUPPORTED /* well tested on Intel, SGI */ 6745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 6755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 6765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 6775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(PNG_1_0_X) || defined (PNG_1_2_X) 6785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Deprecated, will be removed from version 2.0.0. 6795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Use PNG_MNG_FEATURES_SUPPORTED instead. */ 6805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_NO_READ_EMPTY_PLTE 6815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_READ_EMPTY_PLTE_SUPPORTED 6825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 6835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 6845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 6855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* PNG_READ_SUPPORTED */ 6865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 6875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef PNG_WRITE_SUPPORTED 6885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 6895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# if !defined(PNG_WRITE_TRANSFORMS_NOT_SUPPORTED) && \ 6905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) !defined(PNG_NO_WRITE_TRANSFORMS) 6915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_WRITE_TRANSFORMS_SUPPORTED 6925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 6935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 6945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef PNG_WRITE_TRANSFORMS_SUPPORTED 6955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_NO_WRITE_SHIFT 6965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_WRITE_SHIFT_SUPPORTED 6975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 6985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_NO_WRITE_PACK 6995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_WRITE_PACK_SUPPORTED 7005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 7015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_NO_WRITE_BGR 7025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_WRITE_BGR_SUPPORTED 7035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 7045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_NO_WRITE_SWAP 7055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_WRITE_SWAP_SUPPORTED 7065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 7075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_NO_WRITE_PACKSWAP 7085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_WRITE_PACKSWAP_SUPPORTED 7095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 7105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_NO_WRITE_INVERT 7115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_WRITE_INVERT_SUPPORTED 7125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 7135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_NO_WRITE_FILLER 7145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_WRITE_FILLER_SUPPORTED /* same as WRITE_STRIP_ALPHA */ 7155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 7165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_NO_WRITE_SWAP_ALPHA 7175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_WRITE_SWAP_ALPHA_SUPPORTED 7185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 7195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_1_0_X 7205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_NO_WRITE_INVERT_ALPHA 7215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_WRITE_INVERT_ALPHA_SUPPORTED 7225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 7235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 7245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_NO_WRITE_USER_TRANSFORM 7255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_WRITE_USER_TRANSFORM_SUPPORTED 7265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 7275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* PNG_WRITE_TRANSFORMS_SUPPORTED */ 7285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if !defined(PNG_NO_WRITE_INTERLACING_SUPPORTED) && \ 7305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) !defined(PNG_WRITE_INTERLACING_SUPPORTED) 7315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PNG_WRITE_INTERLACING_SUPPORTED /* not required for PNG-compliant 7325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) encoders, but can cause trouble 7335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if left undefined */ 7345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 7355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if !defined(PNG_NO_WRITE_WEIGHTED_FILTER) && \ 7375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) !defined(PNG_WRITE_WEIGHTED_FILTER) && \ 7385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) defined(PNG_FLOATING_POINT_SUPPORTED) 7395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_WRITE_WEIGHTED_FILTER_SUPPORTED 7405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 7415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_NO_WRITE_FLUSH 7435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_WRITE_FLUSH_SUPPORTED 7445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 7455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(PNG_1_0_X) || defined (PNG_1_2_X) 7475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Deprecated, see PNG_MNG_FEATURES_SUPPORTED, above */ 7485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_NO_WRITE_EMPTY_PLTE 7495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_WRITE_EMPTY_PLTE_SUPPORTED 7505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 7515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 7525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* PNG_WRITE_SUPPORTED */ 7545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_1_0_X 7565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_NO_ERROR_NUMBERS 7575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_ERROR_NUMBERS_SUPPORTED 7585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 7595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* PNG_1_0_X */ 7605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \ 7625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) 7635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_NO_USER_TRANSFORM_PTR 7645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_USER_TRANSFORM_PTR_SUPPORTED 7655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 7665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 7675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_NO_STDIO 7695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_TIME_RFC1123_SUPPORTED 7705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 7715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* This adds extra functions in pngget.c for accessing data from the 7735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * info pointer (added in version 0.99) 7745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * png_get_image_width() 7755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * png_get_image_height() 7765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * png_get_bit_depth() 7775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * png_get_color_type() 7785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * png_get_compression_type() 7795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * png_get_filter_type() 7805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * png_get_interlace_type() 7815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * png_get_pixel_aspect_ratio() 7825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * png_get_pixels_per_meter() 7835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * png_get_x_offset_pixels() 7845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * png_get_y_offset_pixels() 7855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * png_get_x_offset_microns() 7865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * png_get_y_offset_microns() 7875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 7885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if !defined(PNG_NO_EASY_ACCESS) && !defined(PNG_EASY_ACCESS_SUPPORTED) 7895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_EASY_ACCESS_SUPPORTED 7905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 7915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* PNG_ASSEMBLER_CODE was enabled by default in version 1.2.0 7935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * and removed from version 1.2.20. The following will be removed 7945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * from libpng-1.4.0 7955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/ 7965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(PNG_READ_SUPPORTED) && !defined(PNG_NO_OPTIMIZED_CODE) 7985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_OPTIMIZED_CODE_SUPPORTED 7995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_OPTIMIZED_CODE_SUPPORTED 8005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 8015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 8025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(PNG_READ_SUPPORTED) && !defined(PNG_NO_ASSEMBLER_CODE) 8045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_ASSEMBLER_CODE_SUPPORTED 8055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_ASSEMBLER_CODE_SUPPORTED 8065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 8075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# if defined(__GNUC__) && defined(__x86_64__) && (__GNUC__ < 4) 8095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /* work around 64-bit gcc compiler bugs in gcc-3.x */ 8105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# if !defined(PNG_MMX_CODE_SUPPORTED) && !defined(PNG_NO_MMX_CODE) 8115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_NO_MMX_CODE 8125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 8135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 8145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifdef __APPLE__ 8165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# if !defined(PNG_MMX_CODE_SUPPORTED) && !defined(PNG_NO_MMX_CODE) 8175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_NO_MMX_CODE 8185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 8195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 8205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# if (defined(__MWERKS__) && ((__MWERKS__ < 0x0900) || macintosh)) 8225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# if !defined(PNG_MMX_CODE_SUPPORTED) && !defined(PNG_NO_MMX_CODE) 8235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_NO_MMX_CODE 8245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 8255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 8265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# if !defined(PNG_MMX_CODE_SUPPORTED) && !defined(PNG_NO_MMX_CODE) 8285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_MMX_CODE_SUPPORTED 8295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 8305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 8325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* end of obsolete code to be removed from libpng-1.4.0 */ 8335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Added at libpng-1.2.0 */ 8355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_1_0_X 8365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if !defined(PNG_NO_USER_MEM) && !defined(PNG_USER_MEM_SUPPORTED) 8375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_USER_MEM_SUPPORTED 8385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 8395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* PNG_1_0_X */ 8405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Added at libpng-1.2.6 */ 8425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_1_0_X 8435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_SET_USER_LIMITS_SUPPORTED 8445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_NO_SET_USER_LIMITS 8455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_SET_USER_LIMITS_SUPPORTED 8465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 8475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 8485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* PNG_1_0_X */ 8495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Added at libpng-1.0.53 and 1.2.43 */ 8515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_USER_LIMITS_SUPPORTED 8525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_NO_USER_LIMITS 8535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_USER_LIMITS_SUPPORTED 8545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 8555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 8565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Added at libpng-1.0.16 and 1.2.6. To accept all valid PNGS no matter 8585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * how large, set these limits to 0x7fffffffL 8595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 8605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_USER_WIDTH_MAX 8615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_USER_WIDTH_MAX 1000000L 8625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 8635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_USER_HEIGHT_MAX 8645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_USER_HEIGHT_MAX 1000000L 8655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 8665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Added at libpng-1.2.43. To accept all valid PNGs no matter 8685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * how large, set these two limits to 0. 8695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 8705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_USER_CHUNK_CACHE_MAX 8715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_USER_CHUNK_CACHE_MAX 0 8725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 8735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Added at libpng-1.2.43 */ 8755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_USER_CHUNK_MALLOC_MAX 8765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_USER_CHUNK_MALLOC_MAX 0 8775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 8785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_LITERAL_SHARP 8805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_LITERAL_SHARP 0x23 8815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 8825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_LITERAL_LEFT_SQUARE_BRACKET 8835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_LITERAL_LEFT_SQUARE_BRACKET 0x5b 8845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 8855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_LITERAL_RIGHT_SQUARE_BRACKET 8865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_LITERAL_RIGHT_SQUARE_BRACKET 0x5d 8875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 8885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Added at libpng-1.2.34 */ 8905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_STRING_NEWLINE 8915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PNG_STRING_NEWLINE "\n" 8925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 8935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* These are currently experimental features, define them if you want */ 8955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* very little testing */ 8975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* 8985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef PNG_READ_SUPPORTED 8995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_READ_16_TO_8_ACCURATE_SCALE_SUPPORTED 9005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_READ_16_TO_8_ACCURATE_SCALE_SUPPORTED 9015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 9025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 9035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/ 9045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* This is only for PowerPC big-endian and 680x0 systems */ 9065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* some testing */ 9075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* 9085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_READ_BIG_ENDIAN_SUPPORTED 9095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_READ_BIG_ENDIAN_SUPPORTED 9105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 9115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/ 9125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Buggy compilers (e.g., gcc 2.7.2.2) need this */ 9145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* 9155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PNG_NO_POINTER_INDEXING 9165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/ 9175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if !defined(PNG_NO_POINTER_INDEXING) && \ 9195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) !defined(PNG_POINTER_INDEXING_SUPPORTED) 9205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_POINTER_INDEXING_SUPPORTED 9215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 9225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* These functions are turned off by default, as they will be phased out. */ 9245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* 9255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PNG_USELESS_TESTS_SUPPORTED 9265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PNG_CORRECT_PALETTE_SUPPORTED 9275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/ 9285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Any chunks you are not interested in, you can undef here. The 9305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * ones that allocate memory may be expecially important (hIST, 9315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * tEXt, zTXt, tRNS, pCAL). Others will just save time and make png_info 9325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * a bit smaller. 9335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 9345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(PNG_READ_SUPPORTED) && \ 9365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) !defined(PNG_READ_ANCILLARY_CHUNKS_NOT_SUPPORTED) && \ 9375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) !defined(PNG_NO_READ_ANCILLARY_CHUNKS) 9385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_READ_ANCILLARY_CHUNKS_SUPPORTED 9395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 9405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(PNG_WRITE_SUPPORTED) && \ 9425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) !defined(PNG_WRITE_ANCILLARY_CHUNKS_NOT_SUPPORTED) && \ 9435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) !defined(PNG_NO_WRITE_ANCILLARY_CHUNKS) 9445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_WRITE_ANCILLARY_CHUNKS_SUPPORTED 9455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 9465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef PNG_READ_ANCILLARY_CHUNKS_SUPPORTED 9485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef PNG_NO_READ_TEXT 9505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_NO_READ_iTXt 9515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_NO_READ_tEXt 9525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_NO_READ_zTXt 9535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 9545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_NO_READ_bKGD 9555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_READ_bKGD_SUPPORTED 9565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_bKGD_SUPPORTED 9575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 9585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_NO_READ_cHRM 9595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_READ_cHRM_SUPPORTED 9605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_cHRM_SUPPORTED 9615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 9625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_NO_READ_gAMA 9635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_READ_gAMA_SUPPORTED 9645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_gAMA_SUPPORTED 9655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 9665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_NO_READ_hIST 9675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_READ_hIST_SUPPORTED 9685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_hIST_SUPPORTED 9695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 9705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_NO_READ_iCCP 9715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_READ_iCCP_SUPPORTED 9725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_iCCP_SUPPORTED 9735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 9745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_NO_READ_iTXt 9755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_READ_iTXt_SUPPORTED 9765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_READ_iTXt_SUPPORTED 9775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 9785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_iTXt_SUPPORTED 9795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_iTXt_SUPPORTED 9805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 9815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 9825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_NO_READ_oFFs 9835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_READ_oFFs_SUPPORTED 9845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_oFFs_SUPPORTED 9855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 9865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_NO_READ_pCAL 9875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_READ_pCAL_SUPPORTED 9885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_pCAL_SUPPORTED 9895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 9905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_NO_READ_sCAL 9915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_READ_sCAL_SUPPORTED 9925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_sCAL_SUPPORTED 9935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 9945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_NO_READ_pHYs 9955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_READ_pHYs_SUPPORTED 9965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_pHYs_SUPPORTED 9975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 9985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_NO_READ_sBIT 9995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_READ_sBIT_SUPPORTED 10005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_sBIT_SUPPORTED 10015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 10025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_NO_READ_sPLT 10035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_READ_sPLT_SUPPORTED 10045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_sPLT_SUPPORTED 10055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 10065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_NO_READ_sRGB 10075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_READ_sRGB_SUPPORTED 10085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_sRGB_SUPPORTED 10095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 10105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_NO_READ_tEXt 10115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_READ_tEXt_SUPPORTED 10125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_tEXt_SUPPORTED 10135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 10145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_NO_READ_tIME 10155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_READ_tIME_SUPPORTED 10165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_tIME_SUPPORTED 10175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 10185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_NO_READ_tRNS 10195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_READ_tRNS_SUPPORTED 10205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_tRNS_SUPPORTED 10215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 10225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_NO_READ_zTXt 10235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_READ_zTXt_SUPPORTED 10245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_zTXt_SUPPORTED 10255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 10265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_NO_READ_OPT_PLTE 10275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_READ_OPT_PLTE_SUPPORTED /* only affects support of the */ 10285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* optional PLTE chunk in RGB and RGBA images */ 10295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(PNG_READ_iTXt_SUPPORTED) || defined(PNG_READ_tEXt_SUPPORTED) || \ 10305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) defined(PNG_READ_zTXt_SUPPORTED) 10315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_READ_TEXT_SUPPORTED 10325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_TEXT_SUPPORTED 10335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 10345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* PNG_READ_ANCILLARY_CHUNKS_SUPPORTED */ 10365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_NO_READ_UNKNOWN_CHUNKS 10385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_READ_UNKNOWN_CHUNKS_SUPPORTED 10395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_UNKNOWN_CHUNKS_SUPPORTED 10405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_UNKNOWN_CHUNKS_SUPPORTED 10415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 10425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 10435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if !defined(PNG_NO_READ_USER_CHUNKS) && \ 10445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) defined(PNG_READ_UNKNOWN_CHUNKS_SUPPORTED) 10455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_READ_USER_CHUNKS_SUPPORTED 10465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_USER_CHUNKS_SUPPORTED 10475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifdef PNG_NO_READ_UNKNOWN_CHUNKS 10485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# undef PNG_NO_READ_UNKNOWN_CHUNKS 10495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 10505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifdef PNG_NO_HANDLE_AS_UNKNOWN 10515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# undef PNG_NO_HANDLE_AS_UNKNOWN 10525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 10535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 10545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_NO_HANDLE_AS_UNKNOWN 10565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_HANDLE_AS_UNKNOWN_SUPPORTED 10575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_HANDLE_AS_UNKNOWN_SUPPORTED 10585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 10595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 10605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef PNG_WRITE_SUPPORTED 10625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef PNG_WRITE_ANCILLARY_CHUNKS_SUPPORTED 10635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef PNG_NO_WRITE_TEXT 10655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_NO_WRITE_iTXt 10665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_NO_WRITE_tEXt 10675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_NO_WRITE_zTXt 10685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 10695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_NO_WRITE_bKGD 10705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_WRITE_bKGD_SUPPORTED 10715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_bKGD_SUPPORTED 10725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_bKGD_SUPPORTED 10735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 10745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 10755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_NO_WRITE_cHRM 10765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_WRITE_cHRM_SUPPORTED 10775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_cHRM_SUPPORTED 10785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_cHRM_SUPPORTED 10795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 10805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 10815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_NO_WRITE_gAMA 10825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_WRITE_gAMA_SUPPORTED 10835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_gAMA_SUPPORTED 10845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_gAMA_SUPPORTED 10855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 10865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 10875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_NO_WRITE_hIST 10885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_WRITE_hIST_SUPPORTED 10895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_hIST_SUPPORTED 10905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_hIST_SUPPORTED 10915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 10925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 10935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_NO_WRITE_iCCP 10945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_WRITE_iCCP_SUPPORTED 10955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_iCCP_SUPPORTED 10965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_iCCP_SUPPORTED 10975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 10985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 10995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_NO_WRITE_iTXt 11005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_WRITE_iTXt_SUPPORTED 11015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_WRITE_iTXt_SUPPORTED 11025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 11035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_iTXt_SUPPORTED 11045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_iTXt_SUPPORTED 11055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 11065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 11075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_NO_WRITE_oFFs 11085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_WRITE_oFFs_SUPPORTED 11095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_oFFs_SUPPORTED 11105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_oFFs_SUPPORTED 11115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 11125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 11135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_NO_WRITE_pCAL 11145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_WRITE_pCAL_SUPPORTED 11155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_pCAL_SUPPORTED 11165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_pCAL_SUPPORTED 11175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 11185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 11195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_NO_WRITE_sCAL 11205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_WRITE_sCAL_SUPPORTED 11215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_sCAL_SUPPORTED 11225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_sCAL_SUPPORTED 11235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 11245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 11255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_NO_WRITE_pHYs 11265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_WRITE_pHYs_SUPPORTED 11275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_pHYs_SUPPORTED 11285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_pHYs_SUPPORTED 11295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 11305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 11315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_NO_WRITE_sBIT 11325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_WRITE_sBIT_SUPPORTED 11335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_sBIT_SUPPORTED 11345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_sBIT_SUPPORTED 11355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 11365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 11375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_NO_WRITE_sPLT 11385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_WRITE_sPLT_SUPPORTED 11395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_sPLT_SUPPORTED 11405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_sPLT_SUPPORTED 11415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 11425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 11435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_NO_WRITE_sRGB 11445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_WRITE_sRGB_SUPPORTED 11455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_sRGB_SUPPORTED 11465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_sRGB_SUPPORTED 11475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 11485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 11495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_NO_WRITE_tEXt 11505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_WRITE_tEXt_SUPPORTED 11515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_tEXt_SUPPORTED 11525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_tEXt_SUPPORTED 11535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 11545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 11555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_NO_WRITE_tIME 11565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_WRITE_tIME_SUPPORTED 11575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_tIME_SUPPORTED 11585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_tIME_SUPPORTED 11595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 11605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 11615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_NO_WRITE_tRNS 11625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_WRITE_tRNS_SUPPORTED 11635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_tRNS_SUPPORTED 11645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_tRNS_SUPPORTED 11655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 11665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 11675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_NO_WRITE_zTXt 11685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_WRITE_zTXt_SUPPORTED 11695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_zTXt_SUPPORTED 11705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_zTXt_SUPPORTED 11715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 11725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 11735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(PNG_WRITE_iTXt_SUPPORTED) || defined(PNG_WRITE_tEXt_SUPPORTED) || \ 11745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) defined(PNG_WRITE_zTXt_SUPPORTED) 11755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_WRITE_TEXT_SUPPORTED 11765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_TEXT_SUPPORTED 11775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_TEXT_SUPPORTED 11785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 11795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 11805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef PNG_WRITE_tIME_SUPPORTED 11825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_NO_CONVERT_tIME 11835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef _WIN32_WCE 11845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* The "tm" structure is not supported on WindowsCE */ 11855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_CONVERT_tIME_SUPPORTED 11865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_CONVERT_tIME_SUPPORTED 11875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 11885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 11895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 11905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 11915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* PNG_WRITE_ANCILLARY_CHUNKS_SUPPORTED */ 11935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if !defined(PNG_NO_WRITE_FILTER) && !defined(PNG_WRITE_FILTER_SUPPORTED) 11955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_WRITE_FILTER_SUPPORTED 11965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 11975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_NO_WRITE_UNKNOWN_CHUNKS 11995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED 12005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_UNKNOWN_CHUNKS_SUPPORTED 12015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_UNKNOWN_CHUNKS_SUPPORTED 12025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 12035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 12045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_NO_HANDLE_AS_UNKNOWN 12065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_HANDLE_AS_UNKNOWN_SUPPORTED 12075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_HANDLE_AS_UNKNOWN_SUPPORTED 12085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 12095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 12105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* PNG_WRITE_SUPPORTED */ 12115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Turn this off to disable png_read_png() and 12135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * png_write_png() and leave the row_pointers member 12145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * out of the info structure. 12155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 12165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_NO_INFO_IMAGE 12175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_INFO_IMAGE_SUPPORTED 12185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 12195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Need the time information for converting tIME chunks */ 12215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef PNG_CONVERT_tIME_SUPPORTED 12225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /* "time.h" functions are not supported on WindowsCE */ 12235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# include <time.h> 12245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 12255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Some typedefs to get us started. These should be safe on most of the 12275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * common platforms. The typedefs should be at least as large as the 12285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * numbers suggest (a png_uint_32 must be at least 32 bits long), but they 12295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * don't have to be exactly that size. Some compilers dislike passing 12305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * unsigned shorts as function parameters, so you may be better off using 12315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * unsigned int for png_uint_16. Likewise, for 64-bit systems, you may 12325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * want to have unsigned int for png_uint_32 instead of unsigned long. 12335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 12345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef unsigned long png_uint_32; 12365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef long png_int_32; 12375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef unsigned short png_uint_16; 12385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef short png_int_16; 12395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef unsigned char png_byte; 12405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* This is usually size_t. It is typedef'ed just in case you need it to 12425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) change (I'm not sure if you will or not, so I thought I'd be safe) */ 12435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef PNG_SIZE_T 12445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) typedef PNG_SIZE_T png_size_t; 12455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define png_sizeof(x) png_convert_size(sizeof(x)) 12465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else 12475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) typedef size_t png_size_t; 12485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define png_sizeof(x) sizeof(x) 12495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 12505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* The following is needed for medium model support. It cannot be in the 12525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * PNG_INTERNAL section. Needs modification for other compilers besides 12535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * MSC. Model independent support declares all arrays and pointers to be 12545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * large using the far keyword. The zlib version used must also support 12555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * model independent data. As of version zlib 1.0.4, the necessary changes 12565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * have been made in zlib. The USE_FAR_KEYWORD define triggers other 12575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * changes that are needed. (Tim Wegner) 12585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 12595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Separate compiler dependencies (problem here is that zlib.h always 12615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) defines FAR. (SJT) */ 12625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef __BORLANDC__ 12635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# if defined(__LARGE__) || defined(__HUGE__) || defined(__COMPACT__) 12645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define LDATA 1 12655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# else 12665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define LDATA 0 12675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 12685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /* GRR: why is Cygwin in here? Cygwin is not Borland C... */ 12695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# if !defined(__WIN32__) && !defined(__FLAT__) && !defined(__CYGWIN__) 12705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_MAX_MALLOC_64K 12715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# if (LDATA != 1) 12725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef FAR 12735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define FAR __far 12745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 12755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define USE_FAR_KEYWORD 12765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif /* LDATA != 1 */ 12775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /* Possibly useful for moving data out of default segment. 12785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Uncomment it if you want. Could also define FARDATA as 12795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * const if your compiler supports it. (SJT) 12805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define FARDATA FAR 12815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 12825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif /* __WIN32__, __FLAT__, __CYGWIN__ */ 12835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* __BORLANDC__ */ 12845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Suggest testing for specific compiler first before testing for 12875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * FAR. The Watcom compiler defines both __MEDIUM__ and M_I86MM, 12885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * making reliance oncertain keywords suspect. (SJT) 12895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 12905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* MSC Medium model */ 12925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef FAR 12935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifdef M_I86MM 12945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define USE_FAR_KEYWORD 12955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define FARDATA FAR 12965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# include <dos.h> 12975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 12985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 12995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* SJT: default case */ 13015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef FAR 13025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define FAR 13035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 13045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* At this point FAR is always defined */ 13065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef FARDATA 13075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define FARDATA 13085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 13095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Typedef for floating-point numbers that are converted 13115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) to fixed-point with a multiple of 100,000, e.g., int_gamma */ 13125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef png_int_32 png_fixed_point; 13135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Add typedefs for pointers */ 13155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef void FAR * png_voidp; 13165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef png_byte FAR * png_bytep; 13175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef png_uint_32 FAR * png_uint_32p; 13185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef png_int_32 FAR * png_int_32p; 13195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef png_uint_16 FAR * png_uint_16p; 13205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef png_int_16 FAR * png_int_16p; 13215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef PNG_CONST char FAR * png_const_charp; 13225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef char FAR * png_charp; 13235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef png_fixed_point FAR * png_fixed_point_p; 13245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_NO_STDIO 13265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef _WIN32_WCE 13275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef HANDLE png_FILE_p; 13285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else 13295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef FILE * png_FILE_p; 13305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 13315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 13325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef PNG_FLOATING_POINT_SUPPORTED 13345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef double FAR * png_doublep; 13355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 13365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Pointers to pointers; i.e. arrays */ 13385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef png_byte FAR * FAR * png_bytepp; 13395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef png_uint_32 FAR * FAR * png_uint_32pp; 13405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef png_int_32 FAR * FAR * png_int_32pp; 13415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef png_uint_16 FAR * FAR * png_uint_16pp; 13425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef png_int_16 FAR * FAR * png_int_16pp; 13435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef PNG_CONST char FAR * FAR * png_const_charpp; 13445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef char FAR * FAR * png_charpp; 13455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef png_fixed_point FAR * FAR * png_fixed_point_pp; 13465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef PNG_FLOATING_POINT_SUPPORTED 13475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef double FAR * FAR * png_doublepp; 13485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 13495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Pointers to pointers to pointers; i.e., pointer to array */ 13515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef char FAR * FAR * FAR * png_charppp; 13525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(PNG_1_0_X) || defined(PNG_1_2_X) 13545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* SPC - Is this stuff deprecated? */ 13555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* It'll be removed as of libpng-1.4.0 - GR-P */ 13565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* libpng typedefs for types in zlib. If zlib changes 13575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * or another compression library is used, then change these. 13585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Eliminates need to change all the source files. 13595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 13605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef charf * png_zcharp; 13615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef charf * FAR * png_zcharpp; 13625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef z_stream FAR * png_zstreamp; 13635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* (PNG_1_0_X) || defined(PNG_1_2_X) */ 13645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* 13665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Define PNG_BUILD_DLL if the module being built is a Windows 13675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * LIBPNG DLL. 13685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 13695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Define PNG_USE_DLL if you want to *link* to the Windows LIBPNG DLL. 13705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * It is equivalent to Microsoft predefined macro _DLL that is 13715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * automatically defined when you compile using the share 13725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * version of the CRT (C Run-Time library) 13735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 13745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * The cygwin mods make this behavior a little different: 13755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Define PNG_BUILD_DLL if you are building a dll for use with cygwin 13765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Define PNG_STATIC if you are building a static library for use with cygwin, 13775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * -or- if you are building an application that you want to link to the 13785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * static library. 13795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * PNG_USE_DLL is defined by default (no user action needed) unless one of 13805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * the other flags is defined. 13815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 13825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if !defined(PNG_DLL) && (defined(PNG_BUILD_DLL) || defined(PNG_USE_DLL)) 13845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_DLL 13855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 13865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* If CYGWIN, then disallow GLOBAL ARRAYS unless building a static lib. 13875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * When building a static lib, default to no GLOBAL ARRAYS, but allow 13885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * command-line override 13895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 13905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef __CYGWIN__ 13915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_STATIC 13925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifdef PNG_USE_GLOBAL_ARRAYS 13935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# undef PNG_USE_GLOBAL_ARRAYS 13945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 13955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_USE_LOCAL_ARRAYS 13965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_USE_LOCAL_ARRAYS 13975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 13985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# else 13995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# if defined(PNG_USE_LOCAL_ARRAYS) || defined(PNG_NO_GLOBAL_ARRAYS) 14005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifdef PNG_USE_GLOBAL_ARRAYS 14015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# undef PNG_USE_GLOBAL_ARRAYS 14025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 14035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 14045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 14055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# if !defined(PNG_USE_LOCAL_ARRAYS) && !defined(PNG_USE_GLOBAL_ARRAYS) 14065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_USE_LOCAL_ARRAYS 14075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 14085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 14095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Do not use global arrays (helps with building DLL's) 14115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * They are no longer used in libpng itself, since version 1.0.5c, 14125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * but might be required for some pre-1.0.5c applications. 14135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 14145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if !defined(PNG_USE_LOCAL_ARRAYS) && !defined(PNG_USE_GLOBAL_ARRAYS) 14155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# if defined(PNG_NO_GLOBAL_ARRAYS) || \ 14165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) (defined(__GNUC__) && defined(PNG_DLL)) || defined(_MSC_VER) 14175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_USE_LOCAL_ARRAYS 14185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# else 14195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_USE_GLOBAL_ARRAYS 14205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 14215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 14225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef __CYGWIN__ 14245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# undef PNGAPI 14255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNGAPI __cdecl 14265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# undef PNG_IMPEXP 14275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_IMPEXP 14285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 14295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* If you define PNGAPI, e.g., with compiler option "-DPNGAPI=__stdcall", 14315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * you may get warnings regarding the linkage of png_zalloc and png_zfree. 14325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Don't ignore those warnings; you must also reset the default calling 14335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * convention in your compiler to match your PNGAPI, and you must build 14345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * zlib and your applications the same way you build libpng. 14355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 14365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(__MINGW32__) && !defined(PNG_MODULEDEF) 14385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_NO_MODULEDEF 14395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_NO_MODULEDEF 14405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 14415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 14425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if !defined(PNG_IMPEXP) && defined(PNG_BUILD_DLL) && !defined(PNG_NO_MODULEDEF) 14445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_IMPEXP 14455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 14465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(PNG_DLL) || defined(_DLL) || defined(__DLL__ ) || \ 14485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) (( defined(_Windows) || defined(_WINDOWS) || \ 14495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) defined(WIN32) || defined(_WIN32) || defined(__WIN32__) )) 14505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNGAPI 14525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# if defined(__GNUC__) || (defined (_MSC_VER) && (_MSC_VER >= 800)) 14535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNGAPI __cdecl 14545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# else 14555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNGAPI _cdecl 14565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 14575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 14585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# if !defined(PNG_IMPEXP) && (!defined(PNG_DLL) || \ 14605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 0 /* WINCOMPILER_WITH_NO_SUPPORT_FOR_DECLIMPEXP */) 14615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_IMPEXP 14625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 14635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_IMPEXP 14655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_EXPORT_TYPE1(type,symbol) PNG_IMPEXP type PNGAPI symbol 14675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_EXPORT_TYPE2(type,symbol) type PNG_IMPEXP PNGAPI symbol 14685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /* Borland/Microsoft */ 14705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# if defined(_MSC_VER) || defined(__BORLANDC__) 14715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# if (_MSC_VER >= 800) || (__BORLANDC__ >= 0x500) 14725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_EXPORT PNG_EXPORT_TYPE1 14735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# else 14745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_EXPORT PNG_EXPORT_TYPE2 14755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifdef PNG_BUILD_DLL 14765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_IMPEXP __export 14775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# else 14785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_IMPEXP /*__import */ /* doesn't exist AFAIK in 14795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) VC++ */ 14805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif /* Exists in Borland C++ for 14815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) C++ classes (== huge) */ 14825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 14835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 14845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_IMPEXP 14865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifdef PNG_BUILD_DLL 14875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_IMPEXP __declspec(dllexport) 14885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# else 14895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_IMPEXP __declspec(dllimport) 14905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 14915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 14925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif /* PNG_IMPEXP */ 14935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else /* !(DLL || non-cygwin WINDOWS) */ 14945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# if (defined(__IBMC__) || defined(__IBMCPP__)) && defined(__OS2__) 14955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNGAPI 14965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNGAPI _System 14975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 14985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# else 14995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# if 0 /* ... other platforms, with other meanings */ 15005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 15015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 15025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 15035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 15045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNGAPI 15055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNGAPI 15065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 15075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_IMPEXP 15085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_IMPEXP 15095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 15105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 15115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef PNG_BUILDSYMS 15125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_EXPORT 15135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_EXPORT(type,symbol) PNG_FUNCTION_EXPORT symbol END 15145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 15155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifdef PNG_USE_GLOBAL_ARRAYS 15165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_EXPORT_VAR 15175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_EXPORT_VAR(type) PNG_DATA_EXPORT 15185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 15195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 15205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 15215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 15225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_EXPORT 15235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_EXPORT(type,symbol) PNG_IMPEXP type PNGAPI symbol 15245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 15255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 15265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef PNG_USE_GLOBAL_ARRAYS 15275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_EXPORT_VAR 15285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_EXPORT_VAR(type) extern PNG_IMPEXP type 15295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 15305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 15315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 15325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef PNG_PEDANTIC_WARNINGS 15335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_PEDANTIC_WARNINGS_SUPPORTED 15345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_PEDANTIC_WARNINGS_SUPPORTED 15355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 15365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 15375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 15385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef PNG_PEDANTIC_WARNINGS_SUPPORTED 15395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Support for compiler specific function attributes. These are used 15405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * so that where compiler support is available incorrect use of API 15415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * functions in png.h will generate compiler warnings. Added at libpng 15425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * version 1.2.41. 15435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 15445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifdef __GNUC__ 15455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_USE_RESULT 15465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_USE_RESULT __attribute__((__warn_unused_result__)) 15475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 15485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_NORETURN 15495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_NORETURN __attribute__((__noreturn__)) 15505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 15515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_ALLOCATED 15525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_ALLOCATED __attribute__((__malloc__)) 15535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 15545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 15555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /* This specifically protects structure members that should only be 15565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * accessed from within the library, therefore should be empty during 15575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * a library build. 15585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 15595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_DEPRECATED 15605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_DEPRECATED __attribute__((__deprecated__)) 15615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 15625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_DEPSTRUCT 15635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_DEPSTRUCT __attribute__((__deprecated__)) 15645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 15655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_PRIVATE 15665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# if 0 /* Doesn't work so we use deprecated instead*/ 15675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_PRIVATE \ 15685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) __attribute__((warning("This function is not exported by libpng."))) 15695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# else 15705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_PRIVATE \ 15715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) __attribute__((__deprecated__)) 15725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 15735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif /* PNG_PRIVATE */ 15745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif /* __GNUC__ */ 15755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* PNG_PEDANTIC_WARNINGS */ 15765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 15775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_DEPRECATED 15785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_DEPRECATED /* Use of this function is deprecated */ 15795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 15805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_USE_RESULT 15815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_USE_RESULT /* The result of this function must be checked */ 15825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 15835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_NORETURN 15845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_NORETURN /* This function does not return */ 15855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 15865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_ALLOCATED 15875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_ALLOCATED /* The result of the function is new memory */ 15885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 15895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_DEPSTRUCT 15905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_DEPSTRUCT /* Access to this struct member is deprecated */ 15915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 15925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_PRIVATE 15935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_PRIVATE /* This is a private libpng function */ 15945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 15955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 15965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* User may want to use these so they are not in PNG_INTERNAL. Any library 15975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * functions that are passed far data must be model independent. 15985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 15995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 16005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PNG_ABORT 16015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_ABORT() abort() 16025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 16035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 16045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef PNG_SETJMP_SUPPORTED 16055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define png_jmpbuf(png_ptr) ((png_ptr)->jmpbuf) 16065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else 16075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define png_jmpbuf(png_ptr) \ 16085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) (LIBPNG_WAS_COMPILED_WITH__PNG_SETJMP_NOT_SUPPORTED) 16095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 16105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 16115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef USE_FAR_KEYWORD /* memory model independent fns */ 16125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Use this to make far-to-near assignments */ 16135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define CHECK 1 16145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define NOCHECK 0 16155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define CVT_PTR(ptr) (png_far_to_near(png_ptr,ptr,CHECK)) 16165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define CVT_PTR_NOCHECK(ptr) (png_far_to_near(png_ptr,ptr,NOCHECK)) 16175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define png_snprintf _fsnprintf /* Added to v 1.2.19 */ 16185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define png_strlen _fstrlen 16195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define png_memcmp _fmemcmp /* SJT: added */ 16205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define png_memcpy _fmemcpy 16215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define png_memset _fmemset 16225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else /* Use the usual functions */ 16235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define CVT_PTR(ptr) (ptr) 16245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define CVT_PTR_NOCHECK(ptr) (ptr) 16255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PNG_NO_SNPRINTF 16265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifdef _MSC_VER 16275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define png_snprintf _snprintf /* Added to v 1.2.19 */ 16285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define png_snprintf2 _snprintf 16295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define png_snprintf6 _snprintf 16305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# else 16315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define png_snprintf snprintf /* Added to v 1.2.19 */ 16325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define png_snprintf2 snprintf 16335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define png_snprintf6 snprintf 16345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 16355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# else 16365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /* You don't have or don't want to use snprintf(). Caution: Using 16375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * sprintf instead of snprintf exposes your application to accidental 16385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * or malevolent buffer overflows. If you don't have snprintf() 16395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * as a general rule you should provide one (you can get one from 16405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Portable OpenSSH). 16415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 16425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define png_snprintf(s1,n,fmt,x1) sprintf(s1,fmt,x1) 16435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define png_snprintf2(s1,n,fmt,x1,x2) sprintf(s1,fmt,x1,x2) 16445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define png_snprintf6(s1,n,fmt,x1,x2,x3,x4,x5,x6) \ 16455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) sprintf(s1,fmt,x1,x2,x3,x4,x5,x6) 16465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif 16475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define png_strlen strlen 16485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define png_memcmp memcmp /* SJT: added */ 16495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define png_memcpy memcpy 16505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define png_memset memset 16515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 16525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* End of memory model independent support */ 16535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 16545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Just a little check that someone hasn't tried to define something 16555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * contradictory. 16565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 16575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if (PNG_ZBUF_SIZE > 65536L) && defined(PNG_MAX_MALLOC_64K) 16585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# undef PNG_ZBUF_SIZE 16595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PNG_ZBUF_SIZE 65536L 16605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 16615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 16625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Added at libpng-1.2.8 */ 16635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* PNG_VERSION_INFO_ONLY */ 16645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 16655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* PNGCONF_H */ 1666