| OLD | NEW | 
|---|
| (Empty) |  | 
|  | 1 | 
|  | 2 /* pngconf.h - machine configurable file for libpng | 
|  | 3  * | 
|  | 4  * libpng version 1.6.22rc01, May 14, 2016 | 
|  | 5  * | 
|  | 6  * Copyright (c) 1998-2002,2004,2006-2015 Glenn Randers-Pehrson | 
|  | 7  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) | 
|  | 8  * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) | 
|  | 9  * | 
|  | 10  * This code is released under the libpng license. | 
|  | 11  * For conditions of distribution and use, see the disclaimer | 
|  | 12  * and license in png.h | 
|  | 13  * | 
|  | 14  * Any machine specific code is near the front of this file, so if you | 
|  | 15  * are configuring libpng for a machine, you may want to read the section | 
|  | 16  * starting here down to where it starts to typedef png_color, png_text, | 
|  | 17  * and png_info. | 
|  | 18  */ | 
|  | 19 | 
|  | 20 #ifndef PNGCONF_H | 
|  | 21 #define PNGCONF_H | 
|  | 22 | 
|  | 23 #ifndef PNG_BUILDING_SYMBOL_TABLE /* else includes may cause problems */ | 
|  | 24 | 
|  | 25 /* From libpng 1.6.0 libpng requires an ANSI X3.159-1989 ("ISOC90") compliant C | 
|  | 26  * compiler for correct compilation.  The following header files are required by | 
|  | 27  * the standard.  If your compiler doesn't provide these header files, or they | 
|  | 28  * do not match the standard, you will need to provide/improve them. | 
|  | 29  */ | 
|  | 30 #include <limits.h> | 
|  | 31 #include <stddef.h> | 
|  | 32 | 
|  | 33 /* Library header files.  These header files are all defined by ISOC90; libpng | 
|  | 34  * expects conformant implementations, however, an ISOC90 conformant system need | 
|  | 35  * not provide these header files if the functionality cannot be implemented. | 
|  | 36  * In this case it will be necessary to disable the relevant parts of libpng in | 
|  | 37  * the build of pnglibconf.h. | 
|  | 38  * | 
|  | 39  * Prior to 1.6.0 string.h was included here; the API changes in 1.6.0 to not | 
|  | 40  * include this unnecessary header file. | 
|  | 41  */ | 
|  | 42 | 
|  | 43 #ifdef PNG_STDIO_SUPPORTED | 
|  | 44    /* Required for the definition of FILE: */ | 
|  | 45 #  include <stdio.h> | 
|  | 46 #endif | 
|  | 47 | 
|  | 48 #ifdef PNG_SETJMP_SUPPORTED | 
|  | 49    /* Required for the definition of jmp_buf and the declaration of longjmp: */ | 
|  | 50 #  include <setjmp.h> | 
|  | 51 #endif | 
|  | 52 | 
|  | 53 #ifdef PNG_CONVERT_tIME_SUPPORTED | 
|  | 54    /* Required for struct tm: */ | 
|  | 55 #  include <time.h> | 
|  | 56 #endif | 
|  | 57 | 
|  | 58 #endif /* PNG_BUILDING_SYMBOL_TABLE */ | 
|  | 59 | 
|  | 60 /* Prior to 1.6.0 it was possible to turn off 'const' in declarations using | 
|  | 61  * PNG_NO_CONST; this is no longer supported except for data declarations which | 
|  | 62  * apparently still cause problems in 2011 on some compilers. | 
|  | 63  */ | 
|  | 64 #define PNG_CONST const /* backward compatibility only */ | 
|  | 65 | 
|  | 66 /* This controls optimization of the reading of 16-bit and 32-bit values | 
|  | 67  * from PNG files.  It can be set on a per-app-file basis - it | 
|  | 68  * just changes whether a macro is used when the function is called. | 
|  | 69  * The library builder sets the default; if read functions are not | 
|  | 70  * built into the library the macro implementation is forced on. | 
|  | 71  */ | 
|  | 72 #ifndef PNG_READ_INT_FUNCTIONS_SUPPORTED | 
|  | 73 #  define PNG_USE_READ_MACROS | 
|  | 74 #endif | 
|  | 75 #if !defined(PNG_NO_USE_READ_MACROS) && !defined(PNG_USE_READ_MACROS) | 
|  | 76 #  if PNG_DEFAULT_READ_MACROS | 
|  | 77 #    define PNG_USE_READ_MACROS | 
|  | 78 #  endif | 
|  | 79 #endif | 
|  | 80 | 
|  | 81 /* COMPILER SPECIFIC OPTIONS. | 
|  | 82  * | 
|  | 83  * These options are provided so that a variety of difficult compilers | 
|  | 84  * can be used.  Some are fixed at build time (e.g. PNG_API_RULE | 
|  | 85  * below) but still have compiler specific implementations, others | 
|  | 86  * may be changed on a per-file basis when compiling against libpng. | 
|  | 87  */ | 
|  | 88 | 
|  | 89 /* The PNGARG macro was used in versions of libpng prior to 1.6.0 to protect | 
|  | 90  * against legacy (pre ISOC90) compilers that did not understand function | 
|  | 91  * prototypes.  It is not required for modern C compilers. | 
|  | 92  */ | 
|  | 93 #ifndef PNGARG | 
|  | 94 #  define PNGARG(arglist) arglist | 
|  | 95 #endif | 
|  | 96 | 
|  | 97 /* Function calling conventions. | 
|  | 98  * ============================= | 
|  | 99  * Normally it is not necessary to specify to the compiler how to call | 
|  | 100  * a function - it just does it - however on x86 systems derived from | 
|  | 101  * Microsoft and Borland C compilers ('IBM PC', 'DOS', 'Windows' systems | 
|  | 102  * and some others) there are multiple ways to call a function and the | 
|  | 103  * default can be changed on the compiler command line.  For this reason | 
|  | 104  * libpng specifies the calling convention of every exported function and | 
|  | 105  * every function called via a user supplied function pointer.  This is | 
|  | 106  * done in this file by defining the following macros: | 
|  | 107  * | 
|  | 108  * PNGAPI    Calling convention for exported functions. | 
|  | 109  * PNGCBAPI  Calling convention for user provided (callback) functions. | 
|  | 110  * PNGCAPI   Calling convention used by the ANSI-C library (required | 
|  | 111  *           for longjmp callbacks and sometimes used internally to | 
|  | 112  *           specify the calling convention for zlib). | 
|  | 113  * | 
|  | 114  * These macros should never be overridden.  If it is necessary to | 
|  | 115  * change calling convention in a private build this can be done | 
|  | 116  * by setting PNG_API_RULE (which defaults to 0) to one of the values | 
|  | 117  * below to select the correct 'API' variants. | 
|  | 118  * | 
|  | 119  * PNG_API_RULE=0 Use PNGCAPI - the 'C' calling convention - throughout. | 
|  | 120  *                This is correct in every known environment. | 
|  | 121  * PNG_API_RULE=1 Use the operating system convention for PNGAPI and | 
|  | 122  *                the 'C' calling convention (from PNGCAPI) for | 
|  | 123  *                callbacks (PNGCBAPI).  This is no longer required | 
|  | 124  *                in any known environment - if it has to be used | 
|  | 125  *                please post an explanation of the problem to the | 
|  | 126  *                libpng mailing list. | 
|  | 127  * | 
|  | 128  * These cases only differ if the operating system does not use the C | 
|  | 129  * calling convention, at present this just means the above cases | 
|  | 130  * (x86 DOS/Windows sytems) and, even then, this does not apply to | 
|  | 131  * Cygwin running on those systems. | 
|  | 132  * | 
|  | 133  * Note that the value must be defined in pnglibconf.h so that what | 
|  | 134  * the application uses to call the library matches the conventions | 
|  | 135  * set when building the library. | 
|  | 136  */ | 
|  | 137 | 
|  | 138 /* Symbol export | 
|  | 139  * ============= | 
|  | 140  * When building a shared library it is almost always necessary to tell | 
|  | 141  * the compiler which symbols to export.  The png.h macro 'PNG_EXPORT' | 
|  | 142  * is used to mark the symbols.  On some systems these symbols can be | 
|  | 143  * extracted at link time and need no special processing by the compiler, | 
|  | 144  * on other systems the symbols are flagged by the compiler and just | 
|  | 145  * the declaration requires a special tag applied (unfortunately) in a | 
|  | 146  * compiler dependent way.  Some systems can do either. | 
|  | 147  * | 
|  | 148  * A small number of older systems also require a symbol from a DLL to | 
|  | 149  * be flagged to the program that calls it.  This is a problem because | 
|  | 150  * we do not know in the header file included by application code that | 
|  | 151  * the symbol will come from a shared library, as opposed to a statically | 
|  | 152  * linked one.  For this reason the application must tell us by setting | 
|  | 153  * the magic flag PNG_USE_DLL to turn on the special processing before | 
|  | 154  * it includes png.h. | 
|  | 155  * | 
|  | 156  * Four additional macros are used to make this happen: | 
|  | 157  * | 
|  | 158  * PNG_IMPEXP The magic (if any) to cause a symbol to be exported from | 
|  | 159  *            the build or imported if PNG_USE_DLL is set - compiler | 
|  | 160  *            and system specific. | 
|  | 161  * | 
|  | 162  * PNG_EXPORT_TYPE(type) A macro that pre or appends PNG_IMPEXP to | 
|  | 163  *                       'type', compiler specific. | 
|  | 164  * | 
|  | 165  * PNG_DLL_EXPORT Set to the magic to use during a libpng build to | 
|  | 166  *                make a symbol exported from the DLL.  Not used in the | 
|  | 167  *                public header files; see pngpriv.h for how it is used | 
|  | 168  *                in the libpng build. | 
|  | 169  * | 
|  | 170  * PNG_DLL_IMPORT Set to the magic to force the libpng symbols to come | 
|  | 171  *                from a DLL - used to define PNG_IMPEXP when | 
|  | 172  *                PNG_USE_DLL is set. | 
|  | 173  */ | 
|  | 174 | 
|  | 175 /* System specific discovery. | 
|  | 176  * ========================== | 
|  | 177  * This code is used at build time to find PNG_IMPEXP, the API settings | 
|  | 178  * and PNG_EXPORT_TYPE(), it may also set a macro to indicate the DLL | 
|  | 179  * import processing is possible.  On Windows systems it also sets | 
|  | 180  * compiler-specific macros to the values required to change the calling | 
|  | 181  * conventions of the various functions. | 
|  | 182  */ | 
|  | 183 #if defined(_Windows) || defined(_WINDOWS) || defined(WIN32) ||\ | 
|  | 184     defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) | 
|  | 185   /* Windows system (DOS doesn't support DLLs).  Includes builds under Cygwin or | 
|  | 186    * MinGW on any architecture currently supported by Windows.  Also includes | 
|  | 187    * Watcom builds but these need special treatment because they are not | 
|  | 188    * compatible with GCC or Visual C because of different calling conventions. | 
|  | 189    */ | 
|  | 190 #  if PNG_API_RULE == 2 | 
|  | 191     /* If this line results in an error, either because __watcall is not | 
|  | 192      * understood or because of a redefine just below you cannot use *this* | 
|  | 193      * build of the library with the compiler you are using.  *This* build was | 
|  | 194      * build using Watcom and applications must also be built using Watcom! | 
|  | 195      */ | 
|  | 196 #    define PNGCAPI __watcall | 
|  | 197 #  endif | 
|  | 198 | 
|  | 199 #  if defined(__GNUC__) || (defined(_MSC_VER) && (_MSC_VER >= 800)) | 
|  | 200 #    define PNGCAPI __cdecl | 
|  | 201 #    if PNG_API_RULE == 1 | 
|  | 202        /* If this line results in an error __stdcall is not understood and | 
|  | 203         * PNG_API_RULE should not have been set to '1'. | 
|  | 204         */ | 
|  | 205 #      define PNGAPI __stdcall | 
|  | 206 #    endif | 
|  | 207 #  else | 
|  | 208     /* An older compiler, or one not detected (erroneously) above, | 
|  | 209      * if necessary override on the command line to get the correct | 
|  | 210      * variants for the compiler. | 
|  | 211      */ | 
|  | 212 #    ifndef PNGCAPI | 
|  | 213 #      define PNGCAPI _cdecl | 
|  | 214 #    endif | 
|  | 215 #    if PNG_API_RULE == 1 && !defined(PNGAPI) | 
|  | 216 #      define PNGAPI _stdcall | 
|  | 217 #    endif | 
|  | 218 #  endif /* compiler/api */ | 
|  | 219 | 
|  | 220   /* NOTE: PNGCBAPI always defaults to PNGCAPI. */ | 
|  | 221 | 
|  | 222 #  if defined(PNGAPI) && !defined(PNG_USER_PRIVATEBUILD) | 
|  | 223 #     error "PNG_USER_PRIVATEBUILD must be defined if PNGAPI is changed" | 
|  | 224 #  endif | 
|  | 225 | 
|  | 226 #  if (defined(_MSC_VER) && _MSC_VER < 800) ||\ | 
|  | 227       (defined(__BORLANDC__) && __BORLANDC__ < 0x500) | 
|  | 228     /* older Borland and MSC | 
|  | 229      * compilers used '__export' and required this to be after | 
|  | 230      * the type. | 
|  | 231      */ | 
|  | 232 #    ifndef PNG_EXPORT_TYPE | 
|  | 233 #      define PNG_EXPORT_TYPE(type) type PNG_IMPEXP | 
|  | 234 #    endif | 
|  | 235 #    define PNG_DLL_EXPORT __export | 
|  | 236 #  else /* newer compiler */ | 
|  | 237 #    define PNG_DLL_EXPORT __declspec(dllexport) | 
|  | 238 #    ifndef PNG_DLL_IMPORT | 
|  | 239 #      define PNG_DLL_IMPORT __declspec(dllimport) | 
|  | 240 #    endif | 
|  | 241 #  endif /* compiler */ | 
|  | 242 | 
|  | 243 #else /* !Windows */ | 
|  | 244 #  if (defined(__IBMC__) || defined(__IBMCPP__)) && defined(__OS2__) | 
|  | 245 #    define PNGAPI _System | 
|  | 246 #  else /* !Windows/x86 && !OS/2 */ | 
|  | 247     /* Use the defaults, or define PNG*API on the command line (but | 
|  | 248      * this will have to be done for every compile!) | 
|  | 249      */ | 
|  | 250 #  endif /* other system, !OS/2 */ | 
|  | 251 #endif /* !Windows/x86 */ | 
|  | 252 | 
|  | 253 /* Now do all the defaulting . */ | 
|  | 254 #ifndef PNGCAPI | 
|  | 255 #  define PNGCAPI | 
|  | 256 #endif | 
|  | 257 #ifndef PNGCBAPI | 
|  | 258 #  define PNGCBAPI PNGCAPI | 
|  | 259 #endif | 
|  | 260 #ifndef PNGAPI | 
|  | 261 #  define PNGAPI PNGCAPI | 
|  | 262 #endif | 
|  | 263 | 
|  | 264 /* PNG_IMPEXP may be set on the compilation system command line or (if not set) | 
|  | 265  * then in an internal header file when building the library, otherwise (when | 
|  | 266  * using the library) it is set here. | 
|  | 267  */ | 
|  | 268 #ifndef PNG_IMPEXP | 
|  | 269 #  if defined(PNG_USE_DLL) && defined(PNG_DLL_IMPORT) | 
|  | 270      /* This forces use of a DLL, disallowing static linking */ | 
|  | 271 #    define PNG_IMPEXP PNG_DLL_IMPORT | 
|  | 272 #  endif | 
|  | 273 | 
|  | 274 #  ifndef PNG_IMPEXP | 
|  | 275 #    define PNG_IMPEXP | 
|  | 276 #  endif | 
|  | 277 #endif | 
|  | 278 | 
|  | 279 /* In 1.5.2 the definition of PNG_FUNCTION has been changed to always treat | 
|  | 280  * 'attributes' as a storage class - the attributes go at the start of the | 
|  | 281  * function definition, and attributes are always appended regardless of the | 
|  | 282  * compiler.  This considerably simplifies these macros but may cause problems | 
|  | 283  * if any compilers both need function attributes and fail to handle them as | 
|  | 284  * a storage class (this is unlikely.) | 
|  | 285  */ | 
|  | 286 #ifndef PNG_FUNCTION | 
|  | 287 #  define PNG_FUNCTION(type, name, args, attributes) attributes type name args | 
|  | 288 #endif | 
|  | 289 | 
|  | 290 #ifndef PNG_EXPORT_TYPE | 
|  | 291 #  define PNG_EXPORT_TYPE(type) PNG_IMPEXP type | 
|  | 292 #endif | 
|  | 293 | 
|  | 294    /* The ordinal value is only relevant when preprocessing png.h for symbol | 
|  | 295     * table entries, so we discard it here.  See the .dfn files in the | 
|  | 296     * scripts directory. | 
|  | 297     */ | 
|  | 298 | 
|  | 299 #ifndef PNG_EXPORTA | 
|  | 300 #  define PNG_EXPORTA(ordinal, type, name, args, attributes) \ | 
|  | 301       PNG_FUNCTION(PNG_EXPORT_TYPE(type), (PNGAPI name), PNGARG(args), \ | 
|  | 302       PNG_LINKAGE_API attributes) | 
|  | 303 #endif | 
|  | 304 | 
|  | 305 /* ANSI-C (C90) does not permit a macro to be invoked with an empty argument, | 
|  | 306  * so make something non-empty to satisfy the requirement: | 
|  | 307  */ | 
|  | 308 #define PNG_EMPTY /*empty list*/ | 
|  | 309 | 
|  | 310 #define PNG_EXPORT(ordinal, type, name, args) \ | 
|  | 311    PNG_EXPORTA(ordinal, type, name, args, PNG_EMPTY) | 
|  | 312 | 
|  | 313 /* Use PNG_REMOVED to comment out a removed interface. */ | 
|  | 314 #ifndef PNG_REMOVED | 
|  | 315 #  define PNG_REMOVED(ordinal, type, name, args, attributes) | 
|  | 316 #endif | 
|  | 317 | 
|  | 318 #ifndef PNG_CALLBACK | 
|  | 319 #  define PNG_CALLBACK(type, name, args) type (PNGCBAPI name) PNGARG(args) | 
|  | 320 #endif | 
|  | 321 | 
|  | 322 /* Support for compiler specific function attributes.  These are used | 
|  | 323  * so that where compiler support is available incorrect use of API | 
|  | 324  * functions in png.h will generate compiler warnings. | 
|  | 325  * | 
|  | 326  * Added at libpng-1.2.41. | 
|  | 327  */ | 
|  | 328 | 
|  | 329 #ifndef PNG_NO_PEDANTIC_WARNINGS | 
|  | 330 #  ifndef PNG_PEDANTIC_WARNINGS_SUPPORTED | 
|  | 331 #    define PNG_PEDANTIC_WARNINGS_SUPPORTED | 
|  | 332 #  endif | 
|  | 333 #endif | 
|  | 334 | 
|  | 335 #ifdef PNG_PEDANTIC_WARNINGS_SUPPORTED | 
|  | 336   /* Support for compiler specific function attributes.  These are used | 
|  | 337    * so that where compiler support is available, incorrect use of API | 
|  | 338    * functions in png.h will generate compiler warnings.  Added at libpng | 
|  | 339    * version 1.2.41.  Disabling these removes the warnings but may also produce | 
|  | 340    * less efficient code. | 
|  | 341    */ | 
|  | 342 #  if defined(__clang__) && defined(__has_attribute) | 
|  | 343      /* Clang defines both __clang__ and __GNUC__. Check __clang__ first. */ | 
|  | 344 #    if !defined(PNG_USE_RESULT) && __has_attribute(__warn_unused_result__) | 
|  | 345 #      define PNG_USE_RESULT __attribute__((__warn_unused_result__)) | 
|  | 346 #    endif | 
|  | 347 #    if !defined(PNG_NORETURN) && __has_attribute(__noreturn__) | 
|  | 348 #      define PNG_NORETURN __attribute__((__noreturn__)) | 
|  | 349 #    endif | 
|  | 350 #    if !defined(PNG_ALLOCATED) && __has_attribute(__malloc__) | 
|  | 351 #      define PNG_ALLOCATED __attribute__((__malloc__)) | 
|  | 352 #    endif | 
|  | 353 #    if !defined(PNG_DEPRECATED) && __has_attribute(__deprecated__) | 
|  | 354 #      define PNG_DEPRECATED __attribute__((__deprecated__)) | 
|  | 355 #    endif | 
|  | 356 #    if !defined(PNG_PRIVATE) | 
|  | 357 #      ifdef __has_extension | 
|  | 358 #        if __has_extension(attribute_unavailable_with_message) | 
|  | 359 #          define PNG_PRIVATE __attribute__((__unavailable__(\ | 
|  | 360              "This function is not exported by libpng."))) | 
|  | 361 #        endif | 
|  | 362 #      endif | 
|  | 363 #    endif | 
|  | 364 #    ifndef PNG_RESTRICT | 
|  | 365 #      define PNG_RESTRICT __restrict | 
|  | 366 #    endif | 
|  | 367 | 
|  | 368 #  elif defined(__GNUC__) | 
|  | 369 #    ifndef PNG_USE_RESULT | 
|  | 370 #      define PNG_USE_RESULT __attribute__((__warn_unused_result__)) | 
|  | 371 #    endif | 
|  | 372 #    ifndef PNG_NORETURN | 
|  | 373 #      define PNG_NORETURN   __attribute__((__noreturn__)) | 
|  | 374 #    endif | 
|  | 375 #    if __GNUC__ >= 3 | 
|  | 376 #      ifndef PNG_ALLOCATED | 
|  | 377 #        define PNG_ALLOCATED  __attribute__((__malloc__)) | 
|  | 378 #      endif | 
|  | 379 #      ifndef PNG_DEPRECATED | 
|  | 380 #        define PNG_DEPRECATED __attribute__((__deprecated__)) | 
|  | 381 #      endif | 
|  | 382 #      ifndef PNG_PRIVATE | 
|  | 383 #        if 0 /* Doesn't work so we use deprecated instead*/ | 
|  | 384 #          define PNG_PRIVATE \ | 
|  | 385             __attribute__((warning("This function is not exported by libpng."))) | 
|  | 386 #        else | 
|  | 387 #          define PNG_PRIVATE \ | 
|  | 388             __attribute__((__deprecated__)) | 
|  | 389 #        endif | 
|  | 390 #      endif | 
|  | 391 #      if ((__GNUC__ > 3) || !defined(__GNUC_MINOR__) || (__GNUC_MINOR__ >= 1)) | 
|  | 392 #        ifndef PNG_RESTRICT | 
|  | 393 #          define PNG_RESTRICT __restrict | 
|  | 394 #        endif | 
|  | 395 #      endif /* __GNUC__.__GNUC_MINOR__ > 3.0 */ | 
|  | 396 #    endif /* __GNUC__ >= 3 */ | 
|  | 397 | 
|  | 398 #  elif defined(_MSC_VER)  && (_MSC_VER >= 1300) | 
|  | 399 #    ifndef PNG_USE_RESULT | 
|  | 400 #      define PNG_USE_RESULT /* not supported */ | 
|  | 401 #    endif | 
|  | 402 #    ifndef PNG_NORETURN | 
|  | 403 #      define PNG_NORETURN   __declspec(noreturn) | 
|  | 404 #    endif | 
|  | 405 #    ifndef PNG_ALLOCATED | 
|  | 406 #      if (_MSC_VER >= 1400) | 
|  | 407 #        define PNG_ALLOCATED __declspec(restrict) | 
|  | 408 #      endif | 
|  | 409 #    endif | 
|  | 410 #    ifndef PNG_DEPRECATED | 
|  | 411 #      define PNG_DEPRECATED __declspec(deprecated) | 
|  | 412 #    endif | 
|  | 413 #    ifndef PNG_PRIVATE | 
|  | 414 #      define PNG_PRIVATE __declspec(deprecated) | 
|  | 415 #    endif | 
|  | 416 #    ifndef PNG_RESTRICT | 
|  | 417 #      if (_MSC_VER >= 1400) | 
|  | 418 #        define PNG_RESTRICT __restrict | 
|  | 419 #      endif | 
|  | 420 #    endif | 
|  | 421 | 
|  | 422 #  elif defined(__WATCOMC__) | 
|  | 423 #    ifndef PNG_RESTRICT | 
|  | 424 #      define PNG_RESTRICT __restrict | 
|  | 425 #    endif | 
|  | 426 #  endif | 
|  | 427 #endif /* PNG_PEDANTIC_WARNINGS */ | 
|  | 428 | 
|  | 429 #ifndef PNG_DEPRECATED | 
|  | 430 #  define PNG_DEPRECATED  /* Use of this function is deprecated */ | 
|  | 431 #endif | 
|  | 432 #ifndef PNG_USE_RESULT | 
|  | 433 #  define PNG_USE_RESULT  /* The result of this function must be checked */ | 
|  | 434 #endif | 
|  | 435 #ifndef PNG_NORETURN | 
|  | 436 #  define PNG_NORETURN    /* This function does not return */ | 
|  | 437 #endif | 
|  | 438 #ifndef PNG_ALLOCATED | 
|  | 439 #  define PNG_ALLOCATED   /* The result of the function is new memory */ | 
|  | 440 #endif | 
|  | 441 #ifndef PNG_PRIVATE | 
|  | 442 #  define PNG_PRIVATE     /* This is a private libpng function */ | 
|  | 443 #endif | 
|  | 444 #ifndef PNG_RESTRICT | 
|  | 445 #  define PNG_RESTRICT    /* The C99 "restrict" feature */ | 
|  | 446 #endif | 
|  | 447 | 
|  | 448 #ifndef PNG_FP_EXPORT     /* A floating point API. */ | 
|  | 449 #  ifdef PNG_FLOATING_POINT_SUPPORTED | 
|  | 450 #     define PNG_FP_EXPORT(ordinal, type, name, args)\ | 
|  | 451          PNG_EXPORT(ordinal, type, name, args); | 
|  | 452 #  else                   /* No floating point APIs */ | 
|  | 453 #     define PNG_FP_EXPORT(ordinal, type, name, args) | 
|  | 454 #  endif | 
|  | 455 #endif | 
|  | 456 #ifndef PNG_FIXED_EXPORT  /* A fixed point API. */ | 
|  | 457 #  ifdef PNG_FIXED_POINT_SUPPORTED | 
|  | 458 #     define PNG_FIXED_EXPORT(ordinal, type, name, args)\ | 
|  | 459          PNG_EXPORT(ordinal, type, name, args); | 
|  | 460 #  else                   /* No fixed point APIs */ | 
|  | 461 #     define PNG_FIXED_EXPORT(ordinal, type, name, args) | 
|  | 462 #  endif | 
|  | 463 #endif | 
|  | 464 | 
|  | 465 #ifndef PNG_BUILDING_SYMBOL_TABLE | 
|  | 466 /* Some typedefs to get us started.  These should be safe on most of the common | 
|  | 467  * platforms. | 
|  | 468  * | 
|  | 469  * png_uint_32 and png_int_32 may, currently, be larger than required to hold a | 
|  | 470  * 32-bit value however this is not normally advisable. | 
|  | 471  * | 
|  | 472  * png_uint_16 and png_int_16 should always be two bytes in size - this is | 
|  | 473  * verified at library build time. | 
|  | 474  * | 
|  | 475  * png_byte must always be one byte in size. | 
|  | 476  * | 
|  | 477  * The checks below use constants from limits.h, as defined by the ISOC90 | 
|  | 478  * standard. | 
|  | 479  */ | 
|  | 480 #if CHAR_BIT == 8 && UCHAR_MAX == 255 | 
|  | 481    typedef unsigned char png_byte; | 
|  | 482 #else | 
|  | 483 #  error "libpng requires 8-bit bytes" | 
|  | 484 #endif | 
|  | 485 | 
|  | 486 #if INT_MIN == -32768 && INT_MAX == 32767 | 
|  | 487    typedef int png_int_16; | 
|  | 488 #elif SHRT_MIN == -32768 && SHRT_MAX == 32767 | 
|  | 489    typedef short png_int_16; | 
|  | 490 #else | 
|  | 491 #  error "libpng requires a signed 16-bit type" | 
|  | 492 #endif | 
|  | 493 | 
|  | 494 #if UINT_MAX == 65535 | 
|  | 495    typedef unsigned int png_uint_16; | 
|  | 496 #elif USHRT_MAX == 65535 | 
|  | 497    typedef unsigned short png_uint_16; | 
|  | 498 #else | 
|  | 499 #  error "libpng requires an unsigned 16-bit type" | 
|  | 500 #endif | 
|  | 501 | 
|  | 502 #if INT_MIN < -2147483646 && INT_MAX > 2147483646 | 
|  | 503    typedef int png_int_32; | 
|  | 504 #elif LONG_MIN < -2147483646 && LONG_MAX > 2147483646 | 
|  | 505    typedef long int png_int_32; | 
|  | 506 #else | 
|  | 507 #  error "libpng requires a signed 32-bit (or more) type" | 
|  | 508 #endif | 
|  | 509 | 
|  | 510 #if UINT_MAX > 4294967294 | 
|  | 511    typedef unsigned int png_uint_32; | 
|  | 512 #elif ULONG_MAX > 4294967294 | 
|  | 513    typedef unsigned long int png_uint_32; | 
|  | 514 #else | 
|  | 515 #  error "libpng requires an unsigned 32-bit (or more) type" | 
|  | 516 #endif | 
|  | 517 | 
|  | 518 /* Prior to 1.6.0 it was possible to disable the use of size_t, 1.6.0, however, | 
|  | 519  * requires an ISOC90 compiler and relies on consistent behavior of sizeof. | 
|  | 520  */ | 
|  | 521 typedef size_t png_size_t; | 
|  | 522 typedef ptrdiff_t png_ptrdiff_t; | 
|  | 523 | 
|  | 524 /* libpng needs to know the maximum value of 'size_t' and this controls the | 
|  | 525  * definition of png_alloc_size_t, below.  This maximum value of size_t limits | 
|  | 526  * but does not control the maximum allocations the library makes - there is | 
|  | 527  * direct application control of this through png_set_user_limits(). | 
|  | 528  */ | 
|  | 529 #ifndef PNG_SMALL_SIZE_T | 
|  | 530    /* Compiler specific tests for systems where size_t is known to be less than | 
|  | 531     * 32 bits (some of these systems may no longer work because of the lack of | 
|  | 532     * 'far' support; see above.) | 
|  | 533     */ | 
|  | 534 #  if (defined(__TURBOC__) && !defined(__FLAT__)) ||\ | 
|  | 535    (defined(_MSC_VER) && defined(MAXSEG_64K)) | 
|  | 536 #     define PNG_SMALL_SIZE_T | 
|  | 537 #  endif | 
|  | 538 #endif | 
|  | 539 | 
|  | 540 /* png_alloc_size_t is guaranteed to be no smaller than png_size_t, and no | 
|  | 541  * smaller than png_uint_32.  Casts from png_size_t or png_uint_32 to | 
|  | 542  * png_alloc_size_t are not necessary; in fact, it is recommended not to use | 
|  | 543  * them at all so that the compiler can complain when something turns out to be | 
|  | 544  * problematic. | 
|  | 545  * | 
|  | 546  * Casts in the other direction (from png_alloc_size_t to png_size_t or | 
|  | 547  * png_uint_32) should be explicitly applied; however, we do not expect to | 
|  | 548  * encounter practical situations that require such conversions. | 
|  | 549  * | 
|  | 550  * PNG_SMALL_SIZE_T must be defined if the maximum value of size_t is less than | 
|  | 551  * 4294967295 - i.e. less than the maximum value of png_uint_32. | 
|  | 552  */ | 
|  | 553 #ifdef PNG_SMALL_SIZE_T | 
|  | 554    typedef png_uint_32 png_alloc_size_t; | 
|  | 555 #else | 
|  | 556    typedef png_size_t png_alloc_size_t; | 
|  | 557 #endif | 
|  | 558 | 
|  | 559 /* Prior to 1.6.0 libpng offered limited support for Microsoft C compiler | 
|  | 560  * implementations of Intel CPU specific support of user-mode segmented address | 
|  | 561  * spaces, where 16-bit pointers address more than 65536 bytes of memory using | 
|  | 562  * separate 'segment' registers.  The implementation requires two different | 
|  | 563  * types of pointer (only one of which includes the segment value.) | 
|  | 564  * | 
|  | 565  * If required this support is available in version 1.2 of libpng and may be | 
|  | 566  * available in versions through 1.5, although the correctness of the code has | 
|  | 567  * not been verified recently. | 
|  | 568  */ | 
|  | 569 | 
|  | 570 /* Typedef for floating-point numbers that are converted to fixed-point with a | 
|  | 571  * multiple of 100,000, e.g., gamma | 
|  | 572  */ | 
|  | 573 typedef png_int_32 png_fixed_point; | 
|  | 574 | 
|  | 575 /* Add typedefs for pointers */ | 
|  | 576 typedef void                  * png_voidp; | 
|  | 577 typedef const void            * png_const_voidp; | 
|  | 578 typedef png_byte              * png_bytep; | 
|  | 579 typedef const png_byte        * png_const_bytep; | 
|  | 580 typedef png_uint_32           * png_uint_32p; | 
|  | 581 typedef const png_uint_32     * png_const_uint_32p; | 
|  | 582 typedef png_int_32            * png_int_32p; | 
|  | 583 typedef const png_int_32      * png_const_int_32p; | 
|  | 584 typedef png_uint_16           * png_uint_16p; | 
|  | 585 typedef const png_uint_16     * png_const_uint_16p; | 
|  | 586 typedef png_int_16            * png_int_16p; | 
|  | 587 typedef const png_int_16      * png_const_int_16p; | 
|  | 588 typedef char                  * png_charp; | 
|  | 589 typedef const char            * png_const_charp; | 
|  | 590 typedef png_fixed_point       * png_fixed_point_p; | 
|  | 591 typedef const png_fixed_point * png_const_fixed_point_p; | 
|  | 592 typedef png_size_t            * png_size_tp; | 
|  | 593 typedef const png_size_t      * png_const_size_tp; | 
|  | 594 | 
|  | 595 #ifdef PNG_STDIO_SUPPORTED | 
|  | 596 typedef FILE            * png_FILE_p; | 
|  | 597 #endif | 
|  | 598 | 
|  | 599 #ifdef PNG_FLOATING_POINT_SUPPORTED | 
|  | 600 typedef double       * png_doublep; | 
|  | 601 typedef const double * png_const_doublep; | 
|  | 602 #endif | 
|  | 603 | 
|  | 604 /* Pointers to pointers; i.e. arrays */ | 
|  | 605 typedef png_byte        * * png_bytepp; | 
|  | 606 typedef png_uint_32     * * png_uint_32pp; | 
|  | 607 typedef png_int_32      * * png_int_32pp; | 
|  | 608 typedef png_uint_16     * * png_uint_16pp; | 
|  | 609 typedef png_int_16      * * png_int_16pp; | 
|  | 610 typedef const char      * * png_const_charpp; | 
|  | 611 typedef char            * * png_charpp; | 
|  | 612 typedef png_fixed_point * * png_fixed_point_pp; | 
|  | 613 #ifdef PNG_FLOATING_POINT_SUPPORTED | 
|  | 614 typedef double          * * png_doublepp; | 
|  | 615 #endif | 
|  | 616 | 
|  | 617 /* Pointers to pointers to pointers; i.e., pointer to array */ | 
|  | 618 typedef char            * * * png_charppp; | 
|  | 619 | 
|  | 620 #endif /* PNG_BUILDING_SYMBOL_TABLE */ | 
|  | 621 | 
|  | 622 #endif /* PNGCONF_H */ | 
| OLD | NEW | 
|---|