18b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
28b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* pngconf.h - machine configurable file for libpng
38b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *
48b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * libpng version 1.2.19 - August 18, 2007
58b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * For conditions of distribution and use, see copyright notice in png.h
68b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Copyright (c) 1998-2007 Glenn Randers-Pehrson
78b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
88b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
98b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */
108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Any machine specific code is near the front of this file, so if you
128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * are configuring libpng for a machine, you may want to read the section
138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * starting here down to where it starts to typedef png_color, png_text,
148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * and png_info.
158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */
168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNGCONF_H
188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNGCONF_H
198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_1_2_X
218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/*
238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * PNG_USER_CONFIG has to be defined on the compiler command line. This
248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * includes the resource compiler for Windows DLL configurations.
258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */
268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_USER_CONFIG
278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_USER_PRIVATEBUILD
288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_USER_PRIVATEBUILD
298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#include "pngusr.h"
318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* PNG_CONFIGURE_LIBPNG is set by the "configure" script. */
348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_CONFIGURE_LIBPNG
358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef HAVE_CONFIG_H
368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#include "config.h"
378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/*
418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Added at libpng-1.2.8
428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *
438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * If you create a private DLL you need to define in "pngusr.h" the followings:
448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * #define PNG_USER_PRIVATEBUILD <Describes by whom and why this version of
458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *        the DLL was built>
468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *  e.g. #define PNG_USER_PRIVATEBUILD "Build by MyCompany for xyz reasons."
478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * #define PNG_USER_DLLFNAME_POSTFIX <two-letter postfix that serve to
488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *        distinguish your DLL from those of the official release. These
498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *        correspond to the trailing letters that come after the version
508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *        number and must match your private DLL name>
518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *  e.g. // private DLL "libpng13gx.dll"
528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *       #define PNG_USER_DLLFNAME_POSTFIX "gx"
538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *
548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * The following macros are also at your disposal if you want to complete the
558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * DLL VERSIONINFO structure.
568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * - PNG_USER_VERSIONINFO_COMMENTS
578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * - PNG_USER_VERSIONINFO_COMPANYNAME
588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * - PNG_USER_VERSIONINFO_LEGALTRADEMARKS
598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */
608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef __STDC__
628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef SPECIALBUILD
638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  pragma message("PNG_LIBPNG_SPECIALBUILD (and deprecated SPECIALBUILD)\
648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project are now LIBPNG reserved macros. Use PNG_USER_PRIVATEBUILD instead.")
658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PRIVATEBUILD
688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# pragma message("PRIVATEBUILD is deprecated.\
698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project Use PNG_USER_PRIVATEBUILD instead.")
708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# define PNG_USER_PRIVATEBUILD PRIVATEBUILD
718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* __STDC__ */
738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_VERSION_INFO_ONLY
758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* End of material added to libpng-1.2.8 */
778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Added at libpng-1.2.19 */
798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_NO_WARN_UNINITIALIZED_ROW
808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_WARN_UNINITIALIZED_ROW
818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_WARN_UNINITIALIZED_ROW 1 /* 0: warning; 1: error */
828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* End of material added at libpng-1.2.19 */
858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* This is the size of the compression buffer, and thus the size of
878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * an IDAT chunk.  Make this whatever size you feel is best for your
888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * machine.  One of these will be allocated per png_struct.  When this
898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * is full, it writes the data to the disk, and does some other
908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * calculations.  Making this an extremely small size will slow
918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * the library down, but you may want to experiment to determine
928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * where it becomes significant, if you are concerned with memory
938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * usage.  Note that zlib allocates at least 32Kb also.  For readers,
948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * this describes the size of the buffer available to read the data in.
958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Unless this gets smaller than the size of a row (compressed),
968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * it should not make much difference how big this is.
978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */
988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_ZBUF_SIZE
1008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_ZBUF_SIZE 8192
1018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
1028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
1038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Enable if you want a write-only libpng */
1048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
1058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_NO_READ_SUPPORTED
1068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_READ_SUPPORTED
1078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
1088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
1098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Enable if you want a read-only libpng */
1108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
1118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_NO_WRITE_SUPPORTED
1128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_WRITE_SUPPORTED
1138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
1148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
1158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Enabled by default in 1.2.0.  You can disable this if you don't need to
1168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project   support PNGs that are embedded in MNG datastreams */
1178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if !defined(PNG_1_0_X) && !defined(PNG_NO_MNG_FEATURES)
1188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_MNG_FEATURES_SUPPORTED
1198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_MNG_FEATURES_SUPPORTED
1208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
1218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
1228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
1238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_NO_FLOATING_POINT_SUPPORTED
1248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_FLOATING_POINT_SUPPORTED
1258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_FLOATING_POINT_SUPPORTED
1268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
1278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
1288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
1298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* If you are running on a machine where you cannot allocate more
1308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * than 64K of memory at once, uncomment this.  While libpng will not
1318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * normally need that much memory in a chunk (unless you load up a very
1328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * large file), zlib needs to know how big of a chunk it can use, and
1338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * libpng thus makes sure to check any memory allocation to verify it
1348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * will fit into memory.
1358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_MAX_MALLOC_64K
1368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */
1378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(MAXSEG_64K) && !defined(PNG_MAX_MALLOC_64K)
1388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_MAX_MALLOC_64K
1398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
1408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
1418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Special munging to support doing things the 'cygwin' way:
1428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 'Normal' png-on-win32 defines/defaults:
1438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *   PNG_BUILD_DLL -- building dll
1448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *   PNG_USE_DLL   -- building an application, linking to dll
1458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *   (no define)   -- building static library, or building an
1468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *                    application and linking to the static lib
1478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 'Cygwin' defines/defaults:
1488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *   PNG_BUILD_DLL -- (ignored) building the dll
1498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *   (no define)   -- (ignored) building an application, linking to the dll
1508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *   PNG_STATIC    -- (ignored) building the static lib, or building an
1518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *                    application that links to the static lib.
1528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *   ALL_STATIC    -- (ignored) building various static libs, or building an
1538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *                    application that links to the static libs.
1548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Thus,
1558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * a cygwin user should define either PNG_BUILD_DLL or PNG_STATIC, and
1568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * this bit of #ifdefs will define the 'correct' config variables based on
1578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * that. If a cygwin user *wants* to define 'PNG_USE_DLL' that's okay, but
1588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * unnecessary.
1598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *
1608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Also, the precedence order is:
1618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *   ALL_STATIC (since we can't #undef something outside our namespace)
1628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *   PNG_BUILD_DLL
1638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *   PNG_STATIC
1648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *   (nothing) == PNG_USE_DLL
1658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *
1668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * CYGWIN (2002-01-20): The preceding is now obsolete. With the advent
1678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *   of auto-import in binutils, we no longer need to worry about
1688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *   __declspec(dllexport) / __declspec(dllimport) and friends.  Therefore,
1698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *   we don't need to worry about PNG_STATIC or ALL_STATIC when it comes
1708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *   to __declspec() stuff.  However, we DO need to worry about
1718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *   PNG_BUILD_DLL and PNG_STATIC because those change some defaults
1728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *   such as CONSOLE_IO and whether GLOBAL_ARRAYS are allowed.
1738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */
1748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(__CYGWIN__)
1758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  if defined(ALL_STATIC)
1768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    if defined(PNG_BUILD_DLL)
1778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#      undef PNG_BUILD_DLL
1788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    endif
1798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    if defined(PNG_USE_DLL)
1808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#      undef PNG_USE_DLL
1818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    endif
1828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    if defined(PNG_DLL)
1838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#      undef PNG_DLL
1848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    endif
1858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    if !defined(PNG_STATIC)
1868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#      define PNG_STATIC
1878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    endif
1888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  else
1898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    if defined (PNG_BUILD_DLL)
1908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#      if defined(PNG_STATIC)
1918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#        undef PNG_STATIC
1928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#      endif
1938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#      if defined(PNG_USE_DLL)
1948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#        undef PNG_USE_DLL
1958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#      endif
1968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#      if !defined(PNG_DLL)
1978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#        define PNG_DLL
1988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#      endif
1998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    else
2008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#      if defined(PNG_STATIC)
2018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#        if defined(PNG_USE_DLL)
2028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#          undef PNG_USE_DLL
2038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#        endif
2048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#        if defined(PNG_DLL)
2058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#          undef PNG_DLL
2068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#        endif
2078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#      else
2088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#        if !defined(PNG_USE_DLL)
2098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#          define PNG_USE_DLL
2108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#        endif
2118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#        if !defined(PNG_DLL)
2128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#          define PNG_DLL
2138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#        endif
2148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#      endif
2158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    endif
2168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
2178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
2188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
2198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* This protects us against compilers that run on a windowing system
2208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * and thus don't have or would rather us not use the stdio types:
2218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * stdin, stdout, and stderr.  The only one currently used is stderr
2228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * in png_error() and png_warning().  #defining PNG_NO_CONSOLE_IO will
2238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * prevent these from being compiled and used. #defining PNG_NO_STDIO
2248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * will also prevent these, plus will prevent the entire set of stdio
2258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * macros and functions (FILE *, printf, etc.) from being compiled and used,
2268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * unless (PNG_DEBUG > 0) has been #defined.
2278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *
2288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * #define PNG_NO_CONSOLE_IO
2298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * #define PNG_NO_STDIO
2308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */
2318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
2328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(_WIN32_WCE)
2338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  include <windows.h>
2348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project   /* Console I/O functions are not supported on WindowsCE */
2358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_NO_CONSOLE_IO
2368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifdef PNG_DEBUG
2378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    undef PNG_DEBUG
2388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
2398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
2408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
2418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_BUILD_DLL
2428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_CONSOLE_IO_SUPPORTED
2438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    ifndef PNG_NO_CONSOLE_IO
2448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#      define PNG_NO_CONSOLE_IO
2458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    endif
2468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
2478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
2488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
2498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifdef PNG_NO_STDIO
2508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    ifndef PNG_NO_CONSOLE_IO
2518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#      define PNG_NO_CONSOLE_IO
2528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    endif
2538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    ifdef PNG_DEBUG
2548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#      if (PNG_DEBUG > 0)
2558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#        include <stdio.h>
2568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#      endif
2578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    endif
2588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  else
2598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    if !defined(_WIN32_WCE)
2608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* "stdio.h" functions are not supported on WindowsCE */
2618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#      include <stdio.h>
2628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    endif
2638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
2648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
2658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* This macro protects us against machines that don't have function
2668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * prototypes (ie K&R style headers).  If your compiler does not handle
2678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * function prototypes, define this macro and use the included ansi2knr.
2688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * I've always been able to use _NO_PROTO as the indicator, but you may
2698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * need to drag the empty declaration out in front of here, or change the
2708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * ifdef to suit your own needs.
2718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */
2728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNGARG
2738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
2748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef OF /* zlib prototype munger */
2758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNGARG(arglist) OF(arglist)
2768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#else
2778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
2788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef _NO_PROTO
2798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNGARG(arglist) ()
2808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_TYPECAST_NULL
2818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#     define PNG_TYPECAST_NULL
2828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
2838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#else
2848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNGARG(arglist) arglist
2858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* _NO_PROTO */
2868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
2878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
2888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* OF */
2898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
2908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* PNGARG */
2918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
2928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Try to determine if we are compiling on a Mac.  Note that testing for
2938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * just __MWERKS__ is not good enough, because the Codewarrior is now used
2948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * on non-Mac platforms.
2958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */
2968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef MACOS
2978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  if (defined(__MWERKS__) && defined(macintosh)) || defined(applec) || \
2988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project      defined(THINK_C) || defined(__SC__) || defined(TARGET_OS_MAC)
2998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define MACOS
3008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
3018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
3028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
3038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* enough people need this for various reasons to include it here */
3048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if !defined(MACOS) && !defined(RISCOS) && !defined(_WIN32_WCE)
3058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  include <sys/types.h>
3068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
3078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
3088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if !defined(PNG_SETJMP_NOT_SUPPORTED) && !defined(PNG_NO_SETJMP_SUPPORTED)
3098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_SETJMP_SUPPORTED
3108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
3118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
3128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_SETJMP_SUPPORTED
3138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* This is an attempt to force a single setjmp behaviour on Linux.  If
3148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * the X config stuff didn't define _BSD_SOURCE we wouldn't need this.
3158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */
3168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
3178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifdef __linux__
3188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    ifdef _BSD_SOURCE
3198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#      define PNG_SAVE_BSD_SOURCE
3208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#      undef _BSD_SOURCE
3218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    endif
3228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    ifdef _SETJMP_H
3238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project     /* If you encounter a compiler error here, see the explanation
3248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project      * near the end of INSTALL.
3258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project      */
3268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project         __png.h__ already includes setjmp.h;
3278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project         __dont__ include it again.;
3288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    endif
3298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif /* __linux__ */
3308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
3318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project   /* include setjmp.h for error handling */
3328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  include <setjmp.h>
3338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
3348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifdef __linux__
3358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    ifdef PNG_SAVE_BSD_SOURCE
3368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#      define _BSD_SOURCE
3378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#      undef PNG_SAVE_BSD_SOURCE
3388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    endif
3398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif /* __linux__ */
3408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* PNG_SETJMP_SUPPORTED */
3418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
3428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef BSD
3438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  include <strings.h>
3448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#else
3458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  include <string.h>
3468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
3478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
3488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Other defines for things like memory and the like can go here.  */
3498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_INTERNAL
3508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
3518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#include <stdlib.h>
3528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
3538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* The functions exported by PNG_EXTERN are PNG_INTERNAL functions, which
3548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * aren't usually used outside the library (as far as I know), so it is
3558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * debatable if they should be exported at all.  In the future, when it is
3568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * possible to have run-time registry of chunk-handling functions, some of
3578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * these will be made available again.
3588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_EXTERN extern
3598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */
3608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_EXTERN
3618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
3628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Other defines specific to compilers can go here.  Try to keep
3638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * them inside an appropriate ifdef/endif pair for portability.
3648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */
3658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
3668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_FLOATING_POINT_SUPPORTED)
3678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  if defined(MACOS)
3688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project     /* We need to check that <math.h> hasn't already been included earlier
3698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project      * as it seems it doesn't agree with <fp.h>, yet we should really use
3708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project      * <fp.h> if possible.
3718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project      */
3728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    if !defined(__MATH_H__) && !defined(__MATH_H) && !defined(__cmath__)
3738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#      include <fp.h>
3748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    endif
3758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  else
3768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    include <math.h>
3778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
3788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  if defined(_AMIGA) && defined(__SASC) && defined(_M68881)
3798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project     /* Amiga SAS/C: We must include builtin FPU functions when compiling using
3808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project      * MATH=68881
3818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project      */
3828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    include <m68881.h>
3838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
3848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
3858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
3868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Codewarrior on NT has linking problems without this. */
3878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if (defined(__MWERKS__) && defined(WIN32)) || defined(__STDC__)
3888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_ALWAYS_EXTERN
3898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
3908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
3918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* This provides the non-ANSI (far) memory allocation routines. */
3928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(__TURBOC__) && defined(__MSDOS__)
3938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  include <mem.h>
3948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  include <alloc.h>
3958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
3968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
3978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* I have no idea why is this necessary... */
3988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(_MSC_VER) && (defined(WIN32) || defined(_Windows) || \
3998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    defined(_WINDOWS) || defined(_WIN32) || defined(__WIN32__))
4008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  include <malloc.h>
4018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
4028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
4038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* This controls how fine the dithering gets.  As this allocates
4048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * a largish chunk of memory (32K), those who are not as concerned
4058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * with dithering quality can decrease some or all of these.
4068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */
4078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_DITHER_RED_BITS
4088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_DITHER_RED_BITS 5
4098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
4108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_DITHER_GREEN_BITS
4118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_DITHER_GREEN_BITS 5
4128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
4138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_DITHER_BLUE_BITS
4148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_DITHER_BLUE_BITS 5
4158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
4168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
4178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* This controls how fine the gamma correction becomes when you
4188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * are only interested in 8 bits anyway.  Increasing this value
4198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * results in more memory being used, and more pow() functions
4208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * being called to fill in the gamma tables.  Don't set this value
4218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * less then 8, and even that may not work (I haven't tested it).
4228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */
4238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
4248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_MAX_GAMMA_8
4258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_MAX_GAMMA_8 11
4268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
4278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
4288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* This controls how much a difference in gamma we can tolerate before
4298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * we actually start doing gamma conversion.
4308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */
4318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_GAMMA_THRESHOLD
4328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_GAMMA_THRESHOLD 0.05
4338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
4348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
4358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* PNG_INTERNAL */
4368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
4378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* The following uses const char * instead of char * for error
4388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * and warning message functions, so some compilers won't complain.
4398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * If you do not want to use const, define PNG_NO_CONST here.
4408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */
4418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
4428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_NO_CONST
4438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_CONST const
4448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#else
4458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_CONST
4468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
4478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
4488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* The following defines give you the ability to remove code from the
4498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * library that you will not be using.  I wish I could figure out how to
4508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * automate this, but I can't do that without making it seriously hard
4518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * on the users.  So if you are not using an ability, change the #define
4528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * to and #undef, and that part of the library will not be compiled.  If
4538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * your linker can't find a function, you may want to make sure the
4548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * ability is defined here.  Some of these depend upon some others being
4558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * defined.  I haven't figured out all the interactions here, so you may
4568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * have to experiment awhile to get everything to compile.  If you are
4578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * creating or using a shared library, you probably shouldn't touch this,
4588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * as it will affect the size of the structures, and this will cause bad
4598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * things to happen if the library and/or application ever change.
4608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */
4618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
4628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Any features you will not be using can be undef'ed here */
4638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
4648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* GR-P, 0.96a: Set "*TRANSFORMS_SUPPORTED as default but allow user
4658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * to turn it off with "*TRANSFORMS_NOT_SUPPORTED" or *PNG_NO_*_TRANSFORMS
4668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * on the compile line, then pick and choose which ones to define without
4678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * having to edit this file. It is safe to use the *TRANSFORMS_NOT_SUPPORTED
4688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * if you only want to have a png-compliant reader/writer but don't need
4698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * any of the extra transformations.  This saves about 80 kbytes in a
4708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * typical installation of the library. (PNG_NO_* form added in version
4718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.0.1c, for consistency)
4728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */
4738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
4748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* The size of the png_text structure changed in libpng-1.0.6 when
4758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * iTXt support was added.  iTXt support was turned off by default through
4768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * libpng-1.2.x, to support old apps that malloc the png_text structure
4778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * instead of calling png_set_text() and letting libpng malloc it.  It
4788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * was turned on by default in libpng-1.3.0.
4798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */
4808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
4818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_1_0_X) || defined (PNG_1_2_X)
4828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_NO_iTXt_SUPPORTED
4838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_NO_iTXt_SUPPORTED
4848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
4858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_NO_READ_iTXt
4868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_NO_READ_iTXt
4878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
4888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_NO_WRITE_iTXt
4898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_NO_WRITE_iTXt
4908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
4918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
4928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
4938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if !defined(PNG_NO_iTXt_SUPPORTED)
4948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  if !defined(PNG_READ_iTXt_SUPPORTED) && !defined(PNG_NO_READ_iTXt)
4958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_READ_iTXt
4968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
4978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  if !defined(PNG_WRITE_iTXt_SUPPORTED) && !defined(PNG_NO_WRITE_iTXt)
4988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_WRITE_iTXt
4998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
5008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
5018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
5028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* The following support, added after version 1.0.0, can be turned off here en
5038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * masse by defining PNG_LEGACY_SUPPORTED in case you need binary compatibility
5048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * with old applications that require the length of png_struct and png_info
5058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * to remain unchanged.
5068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */
5078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
5088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_LEGACY_SUPPORTED
5098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_NO_FREE_ME
5108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_NO_READ_UNKNOWN_CHUNKS
5118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_NO_WRITE_UNKNOWN_CHUNKS
5128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_NO_READ_USER_CHUNKS
5138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_NO_READ_iCCP
5148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_NO_WRITE_iCCP
5158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_NO_READ_iTXt
5168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_NO_WRITE_iTXt
5178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_NO_READ_sCAL
5188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_NO_WRITE_sCAL
5198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_NO_READ_sPLT
5208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_NO_WRITE_sPLT
5218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_NO_INFO_IMAGE
5228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_NO_READ_RGB_TO_GRAY
5238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_NO_READ_USER_TRANSFORM
5248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_NO_WRITE_USER_TRANSFORM
5258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_NO_USER_MEM
5268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_NO_READ_EMPTY_PLTE
5278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_NO_MNG_FEATURES
5288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_NO_FIXED_POINT_SUPPORTED
5298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
5308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
5318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Ignore attempt to turn off both floating and fixed point support */
5328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if !defined(PNG_FLOATING_POINT_SUPPORTED) || \
5338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    !defined(PNG_NO_FIXED_POINT_SUPPORTED)
5348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_FIXED_POINT_SUPPORTED
5358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
5368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
5378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_NO_FREE_ME
5388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_FREE_ME_SUPPORTED
5398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
5408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
5418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_READ_SUPPORTED)
5428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
5438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if !defined(PNG_READ_TRANSFORMS_NOT_SUPPORTED) && \
5448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project      !defined(PNG_NO_READ_TRANSFORMS)
5458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_READ_TRANSFORMS_SUPPORTED
5468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
5478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
5488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_READ_TRANSFORMS_SUPPORTED
5498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_NO_READ_EXPAND
5508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_READ_EXPAND_SUPPORTED
5518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
5528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_NO_READ_SHIFT
5538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_READ_SHIFT_SUPPORTED
5548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
5558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_NO_READ_PACK
5568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_READ_PACK_SUPPORTED
5578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
5588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_NO_READ_BGR
5598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_READ_BGR_SUPPORTED
5608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
5618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_NO_READ_SWAP
5628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_READ_SWAP_SUPPORTED
5638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
5648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_NO_READ_PACKSWAP
5658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_READ_PACKSWAP_SUPPORTED
5668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
5678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_NO_READ_INVERT
5688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_READ_INVERT_SUPPORTED
5698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
5708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_NO_READ_DITHER
5718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_READ_DITHER_SUPPORTED
5728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
5738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_NO_READ_BACKGROUND
5748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_READ_BACKGROUND_SUPPORTED
5758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
5768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_NO_READ_16_TO_8
5778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_READ_16_TO_8_SUPPORTED
5788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
5798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_NO_READ_FILLER
5808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_READ_FILLER_SUPPORTED
5818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
5828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_NO_READ_GAMMA
5838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_READ_GAMMA_SUPPORTED
5848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
5858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_NO_READ_GRAY_TO_RGB
5868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_READ_GRAY_TO_RGB_SUPPORTED
5878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
5888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_NO_READ_SWAP_ALPHA
5898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_READ_SWAP_ALPHA_SUPPORTED
5908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
5918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_NO_READ_INVERT_ALPHA
5928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_READ_INVERT_ALPHA_SUPPORTED
5938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
5948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_NO_READ_STRIP_ALPHA
5958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_READ_STRIP_ALPHA_SUPPORTED
5968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
5978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_NO_READ_USER_TRANSFORM
5988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_READ_USER_TRANSFORM_SUPPORTED
5998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
6008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_NO_READ_RGB_TO_GRAY
6018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_READ_RGB_TO_GRAY_SUPPORTED
6028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
6038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* PNG_READ_TRANSFORMS_SUPPORTED */
6048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
6058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if !defined(PNG_NO_PROGRESSIVE_READ) && \
6068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project !defined(PNG_PROGRESSIVE_READ_NOT_SUPPORTED) /* if you don't do progressive */
6078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_PROGRESSIVE_READ_SUPPORTED    /* reading.  This is not talking */
6088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif                              /* about interlacing capability!  You'll */
6098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project             /* still have interlacing unless you change the following line: */
6108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
6118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_READ_INTERLACING_SUPPORTED /* required in PNG-compliant decoders */
6128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
6138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_NO_READ_COMPOSITE_NODIV
6148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_NO_READ_COMPOSITED_NODIV  /* libpng-1.0.x misspelling */
6158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_READ_COMPOSITE_NODIV_SUPPORTED  /* well tested on Intel, SGI */
6168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
6178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
6188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
6198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_1_0_X) || defined (PNG_1_2_X)
6208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Deprecated, will be removed from version 2.0.0.
6218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project   Use PNG_MNG_FEATURES_SUPPORTED instead. */
6228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_NO_READ_EMPTY_PLTE
6238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_READ_EMPTY_PLTE_SUPPORTED
6248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
6258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
6268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
6278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* PNG_READ_SUPPORTED */
6288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
6298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_WRITE_SUPPORTED)
6308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
6318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project# if !defined(PNG_WRITE_TRANSFORMS_NOT_SUPPORTED) && \
6328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    !defined(PNG_NO_WRITE_TRANSFORMS)
6338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_WRITE_TRANSFORMS_SUPPORTED
6348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
6358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
6368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_WRITE_TRANSFORMS_SUPPORTED
6378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_NO_WRITE_SHIFT
6388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_WRITE_SHIFT_SUPPORTED
6398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
6408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_NO_WRITE_PACK
6418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_WRITE_PACK_SUPPORTED
6428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
6438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_NO_WRITE_BGR
6448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_WRITE_BGR_SUPPORTED
6458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
6468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_NO_WRITE_SWAP
6478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_WRITE_SWAP_SUPPORTED
6488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
6498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_NO_WRITE_PACKSWAP
6508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_WRITE_PACKSWAP_SUPPORTED
6518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
6528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_NO_WRITE_INVERT
6538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_WRITE_INVERT_SUPPORTED
6548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
6558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_NO_WRITE_FILLER
6568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_WRITE_FILLER_SUPPORTED   /* same as WRITE_STRIP_ALPHA */
6578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
6588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_NO_WRITE_SWAP_ALPHA
6598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_WRITE_SWAP_ALPHA_SUPPORTED
6608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
6618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_NO_WRITE_INVERT_ALPHA
6628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_WRITE_INVERT_ALPHA_SUPPORTED
6638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
6648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_NO_WRITE_USER_TRANSFORM
6658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_WRITE_USER_TRANSFORM_SUPPORTED
6668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
6678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* PNG_WRITE_TRANSFORMS_SUPPORTED */
6688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
6698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if !defined(PNG_NO_WRITE_INTERLACING_SUPPORTED) && \
6708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    !defined(PNG_WRITE_INTERLACING_SUPPORTED)
6718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_WRITE_INTERLACING_SUPPORTED  /* not required for PNG-compliant
6728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project                                            encoders, but can cause trouble
6738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project                                            if left undefined */
6748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
6758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
6768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if !defined(PNG_NO_WRITE_WEIGHTED_FILTER) && \
6778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    !defined(PNG_WRITE_WEIGHTED_FILTER) && \
6788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project     defined(PNG_FLOATING_POINT_SUPPORTED)
6798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_WRITE_WEIGHTED_FILTER_SUPPORTED
6808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
6818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
6828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_NO_WRITE_FLUSH
6838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_WRITE_FLUSH_SUPPORTED
6848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
6858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
6868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_1_0_X) || defined (PNG_1_2_X)
6878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Deprecated, see PNG_MNG_FEATURES_SUPPORTED, above */
6888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_NO_WRITE_EMPTY_PLTE
6898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_WRITE_EMPTY_PLTE_SUPPORTED
6908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
6918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
6928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
6938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* PNG_WRITE_SUPPORTED */
6948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
6958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_1_0_X
6968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_NO_ERROR_NUMBERS
6978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_ERROR_NUMBERS_SUPPORTED
6988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
6998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* PNG_1_0_X */
7008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
7018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \
7028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED)
7038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_NO_USER_TRANSFORM_PTR
7048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_USER_TRANSFORM_PTR_SUPPORTED
7058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
7068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
7078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
7088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_NO_STDIO
7098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_TIME_RFC1123_SUPPORTED
7108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
7118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
7128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* This adds extra functions in pngget.c for accessing data from the
7138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * info pointer (added in version 0.99)
7148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * png_get_image_width()
7158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * png_get_image_height()
7168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * png_get_bit_depth()
7178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * png_get_color_type()
7188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * png_get_compression_type()
7198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * png_get_filter_type()
7208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * png_get_interlace_type()
7218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * png_get_pixel_aspect_ratio()
7228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * png_get_pixels_per_meter()
7238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * png_get_x_offset_pixels()
7248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * png_get_y_offset_pixels()
7258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * png_get_x_offset_microns()
7268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * png_get_y_offset_microns()
7278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */
7288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if !defined(PNG_NO_EASY_ACCESS) && !defined(PNG_EASY_ACCESS_SUPPORTED)
7298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_EASY_ACCESS_SUPPORTED
7308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
7318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
7328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* PNG_ASSEMBLER_CODE was enabled by default in version 1.2.0
7338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * even when PNG_USE_PNGVCRD or PNG_USE_PNGGCCRD is not defined.
7348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *
7358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * PNG_NO_ASSEMBLER_CODE disables use of all assembler code,
7368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * and removes several functions from the API.
7378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *
7388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * PNG_NO_MMX_CODE disables the use of MMX code without changing the API.
7398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * When MMX code is off, then optimized C replacement functions are used,
7408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * if PNG_NO_OPTIMIZED_CODE is not enabled.  This was added in version
7418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 1.2.19.
7428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project*/
7438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
7448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_READ_SUPPORTED) && !defined(PNG_NO_OPTIMIZED_CODE)
7458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_OPTIMIZED_CODE_SUPPORTED
7468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_OPTIMIZED_CODE_SUPPORTED
7478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
7488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
7498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
7508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_READ_SUPPORTED) && !defined(PNG_NO_ASSEMBLER_CODE)
7518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_ASSEMBLER_CODE_SUPPORTED
7528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_ASSEMBLER_CODE_SUPPORTED
7538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
7548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
7558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  if !defined(PNG_MMX_CODE_SUPPORTED) && !defined(PNG_NO_MMX_CODE)
7568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_MMX_CODE_SUPPORTED
7578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
7588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
7598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  if !defined(PNG_USE_PNGVCRD) && defined(PNG_MMX_CODE_SUPPORTED) && \
7608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project     defined(_MSC_VER)
7618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_USE_PNGVCRD
7628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
7638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
7648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  if !defined(PNG_USE_PNGGCCRD) && defined(PNG_MMX_CODE_SUPPORTED) && \
7658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project     !defined(PNG_USE_PNGVCRD)
7668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_USE_PNGGCCRD
7678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project     /* If you are sure that you don't need thread safety and you are compiling
7688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project        with PNG_USE_PNGCCRD for an MMX application, you can define this for
7698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project        faster execution.  See pnggccrd.c.
7708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_THREAD_UNSAFE_OK
7718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project     */
7728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
7738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
7748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
7758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
7768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if !defined(PNG_1_0_X)
7778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if !defined(PNG_NO_USER_MEM) && !defined(PNG_USER_MEM_SUPPORTED)
7788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_USER_MEM_SUPPORTED
7798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
7808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* PNG_1_0_X */
7818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
7828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Added at libpng-1.2.6 */
7838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if !defined(PNG_1_0_X)
7848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_SET_USER_LIMITS_SUPPORTED
7858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if !defined(PNG_NO_SET_USER_LIMITS) && !defined(PNG_SET_USER_LIMITS_SUPPORTED)
7868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_SET_USER_LIMITS_SUPPORTED
7878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
7888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
7898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* PNG_1_0_X */
7908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
7918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Added at libpng-1.0.16 and 1.2.6.  To accept all valid PNGS no matter
7928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * how large, set these limits to 0x7fffffffL
7938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */
7948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_USER_WIDTH_MAX
7958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_USER_WIDTH_MAX 1000000L
7968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
7978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_USER_HEIGHT_MAX
7988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_USER_HEIGHT_MAX 1000000L
7998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
8008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
8018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* These are currently experimental features, define them if you want */
8028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
8038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* very little testing */
8048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/*
8058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_READ_SUPPORTED
8068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_READ_16_TO_8_ACCURATE_SCALE_SUPPORTED
8078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_READ_16_TO_8_ACCURATE_SCALE_SUPPORTED
8088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
8098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
8108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project*/
8118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
8128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* This is only for PowerPC big-endian and 680x0 systems */
8138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* some testing */
8148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/*
8158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_READ_BIG_ENDIAN_SUPPORTED
8168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_READ_BIG_ENDIAN_SUPPORTED
8178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
8188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project*/
8198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
8208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Buggy compilers (e.g., gcc 2.7.2.2) need this */
8218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/*
8228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_NO_POINTER_INDEXING
8238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project*/
8248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
8258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* These functions are turned off by default, as they will be phased out. */
8268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/*
8278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define  PNG_USELESS_TESTS_SUPPORTED
8288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define  PNG_CORRECT_PALETTE_SUPPORTED
8298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project*/
8308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
8318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Any chunks you are not interested in, you can undef here.  The
8328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * ones that allocate memory may be expecially important (hIST,
8338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * tEXt, zTXt, tRNS, pCAL).  Others will just save time and make png_info
8348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * a bit smaller.
8358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */
8368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
8378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_READ_SUPPORTED) && \
8388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    !defined(PNG_READ_ANCILLARY_CHUNKS_NOT_SUPPORTED) && \
8398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    !defined(PNG_NO_READ_ANCILLARY_CHUNKS)
8408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_READ_ANCILLARY_CHUNKS_SUPPORTED
8418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
8428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
8438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_WRITE_SUPPORTED) && \
8448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    !defined(PNG_WRITE_ANCILLARY_CHUNKS_NOT_SUPPORTED) && \
8458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    !defined(PNG_NO_WRITE_ANCILLARY_CHUNKS)
8468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_WRITE_ANCILLARY_CHUNKS_SUPPORTED
8478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
8488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
8498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_READ_ANCILLARY_CHUNKS_SUPPORTED
8508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
8518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_NO_READ_TEXT
8528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_NO_READ_iTXt
8538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_NO_READ_tEXt
8548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_NO_READ_zTXt
8558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
8568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_NO_READ_bKGD
8578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_READ_bKGD_SUPPORTED
8588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_bKGD_SUPPORTED
8598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
8608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_NO_READ_cHRM
8618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_READ_cHRM_SUPPORTED
8628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_cHRM_SUPPORTED
8638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
8648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_NO_READ_gAMA
8658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_READ_gAMA_SUPPORTED
8668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_gAMA_SUPPORTED
8678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
8688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_NO_READ_hIST
8698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_READ_hIST_SUPPORTED
8708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_hIST_SUPPORTED
8718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
8728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_NO_READ_iCCP
8738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_READ_iCCP_SUPPORTED
8748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_iCCP_SUPPORTED
8758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
8768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_NO_READ_iTXt
8778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_READ_iTXt_SUPPORTED
8788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_READ_iTXt_SUPPORTED
8798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
8808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_iTXt_SUPPORTED
8818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_iTXt_SUPPORTED
8828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
8838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
8848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_NO_READ_oFFs
8858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_READ_oFFs_SUPPORTED
8868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_oFFs_SUPPORTED
8878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
8888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_NO_READ_pCAL
8898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_READ_pCAL_SUPPORTED
8908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_pCAL_SUPPORTED
8918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
8928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_NO_READ_sCAL
8938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_READ_sCAL_SUPPORTED
8948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_sCAL_SUPPORTED
8958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
8968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_NO_READ_pHYs
8978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_READ_pHYs_SUPPORTED
8988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_pHYs_SUPPORTED
8998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
9008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_NO_READ_sBIT
9018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_READ_sBIT_SUPPORTED
9028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_sBIT_SUPPORTED
9038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
9048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_NO_READ_sPLT
9058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_READ_sPLT_SUPPORTED
9068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_sPLT_SUPPORTED
9078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
9088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_NO_READ_sRGB
9098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_READ_sRGB_SUPPORTED
9108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_sRGB_SUPPORTED
9118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
9128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_NO_READ_tEXt
9138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_READ_tEXt_SUPPORTED
9148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_tEXt_SUPPORTED
9158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
9168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_NO_READ_tIME
9178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_READ_tIME_SUPPORTED
9188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_tIME_SUPPORTED
9198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
9208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_NO_READ_tRNS
9218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_READ_tRNS_SUPPORTED
9228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_tRNS_SUPPORTED
9238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
9248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_NO_READ_zTXt
9258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_READ_zTXt_SUPPORTED
9268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_zTXt_SUPPORTED
9278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
9288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_NO_READ_UNKNOWN_CHUNKS
9298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_READ_UNKNOWN_CHUNKS_SUPPORTED
9308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_UNKNOWN_CHUNKS_SUPPORTED
9318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_UNKNOWN_CHUNKS_SUPPORTED
9328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
9338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_NO_HANDLE_AS_UNKNOWN
9348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_HANDLE_AS_UNKNOWN_SUPPORTED
9358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
9368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
9378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if !defined(PNG_NO_READ_USER_CHUNKS) && \
9388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project     defined(PNG_READ_UNKNOWN_CHUNKS_SUPPORTED)
9398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_READ_USER_CHUNKS_SUPPORTED
9408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_USER_CHUNKS_SUPPORTED
9418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifdef PNG_NO_READ_UNKNOWN_CHUNKS
9428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    undef PNG_NO_READ_UNKNOWN_CHUNKS
9438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
9448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifdef PNG_NO_HANDLE_AS_UNKNOWN
9458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    undef PNG_NO_HANDLE_AS_UNKNOWN
9468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
9478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
9488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_NO_READ_OPT_PLTE
9498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_READ_OPT_PLTE_SUPPORTED /* only affects support of the */
9508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif                      /* optional PLTE chunk in RGB and RGBA images */
9518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_READ_iTXt_SUPPORTED) || defined(PNG_READ_tEXt_SUPPORTED) || \
9528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    defined(PNG_READ_zTXt_SUPPORTED)
9538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_READ_TEXT_SUPPORTED
9548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_TEXT_SUPPORTED
9558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
9568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
9578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* PNG_READ_ANCILLARY_CHUNKS_SUPPORTED */
9588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
9598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_WRITE_ANCILLARY_CHUNKS_SUPPORTED
9608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
9618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_NO_WRITE_TEXT
9628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_NO_WRITE_iTXt
9638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_NO_WRITE_tEXt
9648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_NO_WRITE_zTXt
9658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
9668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_NO_WRITE_bKGD
9678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_WRITE_bKGD_SUPPORTED
9688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_bKGD_SUPPORTED
9698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_bKGD_SUPPORTED
9708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
9718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
9728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_NO_WRITE_cHRM
9738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_WRITE_cHRM_SUPPORTED
9748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_cHRM_SUPPORTED
9758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_cHRM_SUPPORTED
9768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
9778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
9788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_NO_WRITE_gAMA
9798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_WRITE_gAMA_SUPPORTED
9808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_gAMA_SUPPORTED
9818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_gAMA_SUPPORTED
9828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
9838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
9848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_NO_WRITE_hIST
9858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_WRITE_hIST_SUPPORTED
9868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_hIST_SUPPORTED
9878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_hIST_SUPPORTED
9888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
9898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
9908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_NO_WRITE_iCCP
9918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_WRITE_iCCP_SUPPORTED
9928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_iCCP_SUPPORTED
9938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_iCCP_SUPPORTED
9948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
9958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
9968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_NO_WRITE_iTXt
9978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_WRITE_iTXt_SUPPORTED
9988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_WRITE_iTXt_SUPPORTED
9998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
10008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_iTXt_SUPPORTED
10018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_iTXt_SUPPORTED
10028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
10038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
10048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_NO_WRITE_oFFs
10058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_WRITE_oFFs_SUPPORTED
10068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_oFFs_SUPPORTED
10078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_oFFs_SUPPORTED
10088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
10098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
10108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_NO_WRITE_pCAL
10118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_WRITE_pCAL_SUPPORTED
10128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_pCAL_SUPPORTED
10138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_pCAL_SUPPORTED
10148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
10158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
10168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_NO_WRITE_sCAL
10178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_WRITE_sCAL_SUPPORTED
10188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_sCAL_SUPPORTED
10198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_sCAL_SUPPORTED
10208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
10218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
10228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_NO_WRITE_pHYs
10238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_WRITE_pHYs_SUPPORTED
10248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_pHYs_SUPPORTED
10258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_pHYs_SUPPORTED
10268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
10278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
10288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_NO_WRITE_sBIT
10298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_WRITE_sBIT_SUPPORTED
10308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_sBIT_SUPPORTED
10318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_sBIT_SUPPORTED
10328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
10338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
10348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_NO_WRITE_sPLT
10358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_WRITE_sPLT_SUPPORTED
10368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_sPLT_SUPPORTED
10378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_sPLT_SUPPORTED
10388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
10398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
10408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_NO_WRITE_sRGB
10418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_WRITE_sRGB_SUPPORTED
10428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_sRGB_SUPPORTED
10438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_sRGB_SUPPORTED
10448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
10458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
10468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_NO_WRITE_tEXt
10478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_WRITE_tEXt_SUPPORTED
10488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_tEXt_SUPPORTED
10498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_tEXt_SUPPORTED
10508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
10518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
10528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_NO_WRITE_tIME
10538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_WRITE_tIME_SUPPORTED
10548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_tIME_SUPPORTED
10558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_tIME_SUPPORTED
10568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
10578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
10588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_NO_WRITE_tRNS
10598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_WRITE_tRNS_SUPPORTED
10608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_tRNS_SUPPORTED
10618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_tRNS_SUPPORTED
10628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
10638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
10648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_NO_WRITE_zTXt
10658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_WRITE_zTXt_SUPPORTED
10668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_zTXt_SUPPORTED
10678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_zTXt_SUPPORTED
10688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
10698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
10708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_NO_WRITE_UNKNOWN_CHUNKS
10718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED
10728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_UNKNOWN_CHUNKS_SUPPORTED
10738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_UNKNOWN_CHUNKS_SUPPORTED
10748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
10758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_NO_HANDLE_AS_UNKNOWN
10768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#     ifndef PNG_HANDLE_AS_UNKNOWN_SUPPORTED
10778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#       define PNG_HANDLE_AS_UNKNOWN_SUPPORTED
10788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#     endif
10798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
10808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
10818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_WRITE_iTXt_SUPPORTED) || defined(PNG_WRITE_tEXt_SUPPORTED) || \
10828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    defined(PNG_WRITE_zTXt_SUPPORTED)
10838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_WRITE_TEXT_SUPPORTED
10848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_TEXT_SUPPORTED
10858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_TEXT_SUPPORTED
10868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
10878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
10888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
10898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* PNG_WRITE_ANCILLARY_CHUNKS_SUPPORTED */
10908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
10918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Turn this off to disable png_read_png() and
10928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * png_write_png() and leave the row_pointers member
10938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * out of the info structure.
10948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */
10958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_NO_INFO_IMAGE
10968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_INFO_IMAGE_SUPPORTED
10978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
10988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
10998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* need the time information for reading tIME chunks */
11008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_tIME_SUPPORTED)
11018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  if !defined(_WIN32_WCE)
11028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project     /* "time.h" functions are not supported on WindowsCE */
11038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    include <time.h>
11048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
11058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
11068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
11078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Some typedefs to get us started.  These should be safe on most of the
11088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * common platforms.  The typedefs should be at least as large as the
11098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * numbers suggest (a png_uint_32 must be at least 32 bits long), but they
11108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * don't have to be exactly that size.  Some compilers dislike passing
11118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * unsigned shorts as function parameters, so you may be better off using
11128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * unsigned int for png_uint_16.  Likewise, for 64-bit systems, you may
11138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * want to have unsigned int for png_uint_32 instead of unsigned long.
11148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */
11158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
11168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef unsigned long png_uint_32;
11178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef long png_int_32;
11188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef unsigned short png_uint_16;
11198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef short png_int_16;
11208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef unsigned char png_byte;
11218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
11228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* This is usually size_t.  It is typedef'ed just in case you need it to
11238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project   change (I'm not sure if you will or not, so I thought I'd be safe) */
11248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_SIZE_T
11258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project   typedef PNG_SIZE_T png_size_t;
11268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define png_sizeof(x) png_convert_size(sizeof (x))
11278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#else
11288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project   typedef size_t png_size_t;
11298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define png_sizeof(x) sizeof (x)
11308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
11318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
11328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* The following is needed for medium model support.  It cannot be in the
11338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * PNG_INTERNAL section.  Needs modification for other compilers besides
11348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * MSC.  Model independent support declares all arrays and pointers to be
11358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * large using the far keyword.  The zlib version used must also support
11368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * model independent data.  As of version zlib 1.0.4, the necessary changes
11378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * have been made in zlib.  The USE_FAR_KEYWORD define triggers other
11388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * changes that are needed. (Tim Wegner)
11398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */
11408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
11418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Separate compiler dependencies (problem here is that zlib.h always
11428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project   defines FAR. (SJT) */
11438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef __BORLANDC__
11448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  if defined(__LARGE__) || defined(__HUGE__) || defined(__COMPACT__)
11458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define LDATA 1
11468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  else
11478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define LDATA 0
11488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
11498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project   /* GRR:  why is Cygwin in here?  Cygwin is not Borland C... */
11508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  if !defined(__WIN32__) && !defined(__FLAT__) && !defined(__CYGWIN__)
11518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_MAX_MALLOC_64K
11528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    if (LDATA != 1)
11538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#      ifndef FAR
11548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#        define FAR __far
11558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#      endif
11568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#      define USE_FAR_KEYWORD
11578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    endif   /* LDATA != 1 */
11588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project     /* Possibly useful for moving data out of default segment.
11598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project      * Uncomment it if you want. Could also define FARDATA as
11608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project      * const if your compiler supports it. (SJT)
11618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define FARDATA FAR
11628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project      */
11638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif  /* __WIN32__, __FLAT__, __CYGWIN__ */
11648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif   /* __BORLANDC__ */
11658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
11668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
11678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Suggest testing for specific compiler first before testing for
11688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * FAR.  The Watcom compiler defines both __MEDIUM__ and M_I86MM,
11698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * making reliance oncertain keywords suspect. (SJT)
11708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */
11718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
11728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* MSC Medium model */
11738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(FAR)
11748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  if defined(M_I86MM)
11758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define USE_FAR_KEYWORD
11768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define FARDATA FAR
11778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    include <dos.h>
11788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
11798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
11808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
11818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* SJT: default case */
11828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef FAR
11838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define FAR
11848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
11858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
11868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* At this point FAR is always defined */
11878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef FARDATA
11888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define FARDATA
11898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
11908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
11918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Typedef for floating-point numbers that are converted
11928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project   to fixed-point with a multiple of 100,000, e.g., int_gamma */
11938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef png_int_32 png_fixed_point;
11948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
11958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Add typedefs for pointers */
11968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef void            FAR * png_voidp;
11978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef png_byte        FAR * png_bytep;
11988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef png_uint_32     FAR * png_uint_32p;
11998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef png_int_32      FAR * png_int_32p;
12008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef png_uint_16     FAR * png_uint_16p;
12018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef png_int_16      FAR * png_int_16p;
12028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef PNG_CONST char  FAR * png_const_charp;
12038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef char            FAR * png_charp;
12048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef png_fixed_point FAR * png_fixed_point_p;
12058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
12068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_NO_STDIO
12078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(_WIN32_WCE)
12088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef HANDLE                png_FILE_p;
12098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#else
12108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef FILE                * png_FILE_p;
12118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
12128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
12138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
12148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_FLOATING_POINT_SUPPORTED
12158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef double          FAR * png_doublep;
12168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
12178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
12188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Pointers to pointers; i.e. arrays */
12198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef png_byte        FAR * FAR * png_bytepp;
12208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef png_uint_32     FAR * FAR * png_uint_32pp;
12218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef png_int_32      FAR * FAR * png_int_32pp;
12228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef png_uint_16     FAR * FAR * png_uint_16pp;
12238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef png_int_16      FAR * FAR * png_int_16pp;
12248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef PNG_CONST char  FAR * FAR * png_const_charpp;
12258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef char            FAR * FAR * png_charpp;
12268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef png_fixed_point FAR * FAR * png_fixed_point_pp;
12278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_FLOATING_POINT_SUPPORTED
12288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef double          FAR * FAR * png_doublepp;
12298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
12308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
12318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Pointers to pointers to pointers; i.e., pointer to array */
12328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef char            FAR * FAR * FAR * png_charppp;
12338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
12348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_1_0_X) || defined(PNG_1_2_X)
12358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* SPC -  Is this stuff deprecated? */
12368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* It'll be removed as of libpng-1.3.0 - GR-P */
12378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* libpng typedefs for types in zlib. If zlib changes
12388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * or another compression library is used, then change these.
12398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Eliminates need to change all the source files.
12408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */
12418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef charf *         png_zcharp;
12428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef charf * FAR *   png_zcharpp;
12438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef z_stream FAR *  png_zstreamp;
12448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* (PNG_1_0_X) || defined(PNG_1_2_X) */
12458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
12468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/*
12478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Define PNG_BUILD_DLL if the module being built is a Windows
12488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * LIBPNG DLL.
12498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *
12508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Define PNG_USE_DLL if you want to *link* to the Windows LIBPNG DLL.
12518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * It is equivalent to Microsoft predefined macro _DLL that is
12528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * automatically defined when you compile using the share
12538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * version of the CRT (C Run-Time library)
12548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *
12558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * The cygwin mods make this behavior a little different:
12568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Define PNG_BUILD_DLL if you are building a dll for use with cygwin
12578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Define PNG_STATIC if you are building a static library for use with cygwin,
12588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *   -or- if you are building an application that you want to link to the
12598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *   static library.
12608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * PNG_USE_DLL is defined by default (no user action needed) unless one of
12618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *   the other flags is defined.
12628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */
12638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
12648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if !defined(PNG_DLL) && (defined(PNG_BUILD_DLL) || defined(PNG_USE_DLL))
12658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_DLL
12668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
12678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* If CYGWIN, then disallow GLOBAL ARRAYS unless building a static lib.
12688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * When building a static lib, default to no GLOBAL ARRAYS, but allow
12698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * command-line override
12708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */
12718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(__CYGWIN__)
12728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  if !defined(PNG_STATIC)
12738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    if defined(PNG_USE_GLOBAL_ARRAYS)
12748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#      undef PNG_USE_GLOBAL_ARRAYS
12758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    endif
12768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    if !defined(PNG_USE_LOCAL_ARRAYS)
12778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#      define PNG_USE_LOCAL_ARRAYS
12788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    endif
12798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  else
12808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    if defined(PNG_USE_LOCAL_ARRAYS) || defined(PNG_NO_GLOBAL_ARRAYS)
12818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#      if defined(PNG_USE_GLOBAL_ARRAYS)
12828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#        undef PNG_USE_GLOBAL_ARRAYS
12838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#      endif
12848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    endif
12858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
12868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  if !defined(PNG_USE_LOCAL_ARRAYS) && !defined(PNG_USE_GLOBAL_ARRAYS)
12878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_USE_LOCAL_ARRAYS
12888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
12898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
12908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
12918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Do not use global arrays (helps with building DLL's)
12928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * They are no longer used in libpng itself, since version 1.0.5c,
12938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * but might be required for some pre-1.0.5c applications.
12948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */
12958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if !defined(PNG_USE_LOCAL_ARRAYS) && !defined(PNG_USE_GLOBAL_ARRAYS)
12968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  if defined(PNG_NO_GLOBAL_ARRAYS) || \
12978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project      (defined(__GNUC__) && defined(PNG_DLL)) || defined(_MSC_VER)
12988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_USE_LOCAL_ARRAYS
12998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  else
13008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_USE_GLOBAL_ARRAYS
13018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
13028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
13038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
13048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(__CYGWIN__)
13058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  undef PNGAPI
13068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNGAPI __cdecl
13078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  undef PNG_IMPEXP
13088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_IMPEXP
13098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
13108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
13118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* If you define PNGAPI, e.g., with compiler option "-DPNGAPI=__stdcall",
13128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * you may get warnings regarding the linkage of png_zalloc and png_zfree.
13138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * Don't ignore those warnings; you must also reset the default calling
13148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * convention in your compiler to match your PNGAPI, and you must build
13158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * zlib and your applications the same way you build libpng.
13168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */
13178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
13188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(__MINGW32__) && !defined(PNG_MODULEDEF)
13198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_NO_MODULEDEF
13208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_NO_MODULEDEF
13218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
13228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
13238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
13248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if !defined(PNG_IMPEXP) && defined(PNG_BUILD_DLL) && !defined(PNG_NO_MODULEDEF)
13258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_IMPEXP
13268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
13278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
13288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_DLL) || defined(_DLL) || defined(__DLL__ ) || \
13298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    (( defined(_Windows) || defined(_WINDOWS) || \
13308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project       defined(WIN32) || defined(_WIN32) || defined(__WIN32__) ))
13318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
13328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNGAPI
13338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#     if defined(__GNUC__) || (defined (_MSC_VER) && (_MSC_VER >= 800))
13348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#        define PNGAPI __cdecl
13358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#     else
13368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#        define PNGAPI _cdecl
13378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#     endif
13388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
13398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
13408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  if !defined(PNG_IMPEXP) && (!defined(PNG_DLL) || \
13418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project       0 /* WINCOMPILER_WITH_NO_SUPPORT_FOR_DECLIMPEXP */)
13428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#     define PNG_IMPEXP
13438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
13448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
13458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  if !defined(PNG_IMPEXP)
13468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
13478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#     define PNG_EXPORT_TYPE1(type,symbol)  PNG_IMPEXP type PNGAPI symbol
13488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#     define PNG_EXPORT_TYPE2(type,symbol)  type PNG_IMPEXP PNGAPI symbol
13498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
13508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project      /* Borland/Microsoft */
13518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#     if defined(_MSC_VER) || defined(__BORLANDC__)
13528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#        if (_MSC_VER >= 800) || (__BORLANDC__ >= 0x500)
13538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#           define PNG_EXPORT PNG_EXPORT_TYPE1
13548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#        else
13558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#           define PNG_EXPORT PNG_EXPORT_TYPE2
13568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#           if defined(PNG_BUILD_DLL)
13578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#              define PNG_IMPEXP __export
13588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#           else
13598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#              define PNG_IMPEXP /*__import */ /* doesn't exist AFAIK in
13608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project                                                 VC++ */
13618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#           endif                             /* Exists in Borland C++ for
13628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project                                                 C++ classes (== huge) */
13638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#        endif
13648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#     endif
13658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
13668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#     if !defined(PNG_IMPEXP)
13678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#        if defined(PNG_BUILD_DLL)
13688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#           define PNG_IMPEXP __declspec(dllexport)
13698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#        else
13708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#           define PNG_IMPEXP __declspec(dllimport)
13718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#        endif
13728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#     endif
13738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif  /* PNG_IMPEXP */
13748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#else /* !(DLL || non-cygwin WINDOWS) */
13758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#   if (defined(__IBMC__) || defined(__IBMCPP__)) && defined(__OS2__)
13768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#      ifndef PNGAPI
13778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#         define PNGAPI _System
13788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#      endif
13798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#   else
13808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#      if 0 /* ... other platforms, with other meanings */
13818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#      endif
13828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#   endif
13838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
13848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
13858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNGAPI
13868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNGAPI
13878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
13888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_IMPEXP
13898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_IMPEXP
13908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
13918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
13928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_BUILDSYMS
13938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_EXPORT
13948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_EXPORT(type,symbol) PNG_FUNCTION_EXPORT symbol END
13958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
13968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifdef PNG_USE_GLOBAL_ARRAYS
13978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    ifndef PNG_EXPORT_VAR
13988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#      define PNG_EXPORT_VAR(type) PNG_DATA_EXPORT
13998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    endif
14008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
14018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
14028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
14038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_EXPORT
14048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_EXPORT(type,symbol) PNG_IMPEXP type PNGAPI symbol
14058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
14068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
14078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_USE_GLOBAL_ARRAYS
14088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_EXPORT_VAR
14098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_EXPORT_VAR(type) extern PNG_IMPEXP type
14108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
14118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
14128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
14138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* User may want to use these so they are not in PNG_INTERNAL. Any library
14148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * functions that are passed far data must be model independent.
14158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */
14168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
14178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_ABORT
14188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_ABORT() abort()
14198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
14208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
14218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_SETJMP_SUPPORTED
14228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define png_jmpbuf(png_ptr) ((png_ptr)->jmpbuf)
14238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#else
14248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define png_jmpbuf(png_ptr) \
14258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project   (LIBPNG_WAS_COMPILED_WITH__PNG_SETJMP_NOT_SUPPORTED)
14268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
14278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
14288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(USE_FAR_KEYWORD)  /* memory model independent fns */
14298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* use this to make far-to-near assignments */
14308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define CHECK   1
14318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define NOCHECK 0
14328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define CVT_PTR(ptr) (png_far_to_near(png_ptr,ptr,CHECK))
14338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define CVT_PTR_NOCHECK(ptr) (png_far_to_near(png_ptr,ptr,NOCHECK))
14348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define png_snprintf _fsnprintf   /* Added to v 1.2.19 */
14358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define png_strcpy  _fstrcpy
14368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define png_strncpy _fstrncpy   /* Added to v 1.2.6 */
14378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define png_strlen  _fstrlen
14388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define png_memcmp  _fmemcmp    /* SJT: added */
14398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define png_memcpy  _fmemcpy
14408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define png_memset  _fmemset
14418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#else /* use the usual functions */
14428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define CVT_PTR(ptr)         (ptr)
14438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define CVT_PTR_NOCHECK(ptr) (ptr)
14448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_NO_SNPRINTF
14458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    ifdef _MSC_VER
14468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#      define png_snprintf _snprintf   /* Added to v 1.2.19 */
14478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#      define png_snprintf2 _snprintf
14488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#      define png_snprintf6 _snprintf
14498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    else
14508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#      define png_snprintf snprintf   /* Added to v 1.2.19 */
14518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#      define png_snprintf2 snprintf
14528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#      define png_snprintf6 snprintf
14538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    endif
14548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  else
14558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project     /* You don't have or don't want to use snprintf().  Caution: Using
14568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project      * sprintf instead of snprintf exposes your application to accidental
14578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project      * or malevolent buffer overflows.  If you don't have snprintf()
14588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project      * as a general rule you should provide one (you can get one from
14598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project      * Portable OpenSSH). */
14608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define png_snprintf(s1,n,fmt,x1) sprintf(s1,fmt,x1)
14618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define png_snprintf2(s1,n,fmt,x1,x2) sprintf(s1,fmt,x1,x2)
14628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define png_snprintf6(s1,n,fmt,x1,x2,x3,x4,x5,x6) \
14638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project        sprintf(s1,fmt,x1,x2,x3,x4,x5,x6)
14648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
14658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define png_strcpy  strcpy
14668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define png_strncpy strncpy     /* Added to v 1.2.6 */
14678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define png_strlen  strlen
14688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define png_memcmp  memcmp      /* SJT: added */
14698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define png_memcpy  memcpy
14708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define png_memset  memset
14718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
14728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* End of memory model independent support */
14738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
14748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Just a little check that someone hasn't tried to define something
14758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * contradictory.
14768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */
14778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if (PNG_ZBUF_SIZE > 65536L) && defined(PNG_MAX_MALLOC_64K)
14788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  undef PNG_ZBUF_SIZE
14798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  define PNG_ZBUF_SIZE 65536L
14808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif
14818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
14828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_READ_SUPPORTED
14838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Prior to libpng-1.0.9, this block was in pngasmrd.h */
14848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_INTERNAL)
14858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
14868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_USE_PNGGCCRD) || defined(PNG_USE_PNGVCRD)
14878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  /* Platform must be Pentium.  Makefile must assemble and load
14888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project   * pnggccrd.c or  pngvcrd.c. MMX will be detected at run time and
14898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project   * used if present.
14908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project   */
14918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_NO_MMX_COMBINE_ROW
14928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_HAVE_MMX_COMBINE_ROW
14938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
14948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_NO_MMX_READ_INTERLACE
14958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_HAVE_MMX_READ_INTERLACE
14968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
14978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_NO_MMX_READ_FILTER_ROW
14988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_HAVE_MMX_READ_FILTER_ROW
14998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    ifndef PNG_NO_MMX_FILTER_SUB
15008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#      define PNG_MMX_READ_FILTER_SUB_SUPPORTED
15018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    endif
15028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    if !(defined(__GNUC__) && defined(__x86_64__) && (__GNUC__ < 4))
15038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project       /* work around 64-bit gcc compiler bugs in gcc-3.x */
15048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#      ifndef PNG_NO_MMX_FILTER_UP
15058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#        define PNG_MMX_READ_FILTER_UP_SUPPORTED
15068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#      endif
15078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#      ifndef PNG_NO_MMX_FILTER_AVG
15088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#        define PNG_MMX_READ_FILTER_AVG_SUPPORTED
15098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#      endif
15108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#      ifndef PNG_NO_MMX_FILTER_PAETH
15118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#        define PNG_MMX_READ_FILTER_PAETH_SUPPORTED
15128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#      endif
15138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    endif /* !((__x86_64__) && (GNUC < 4)) */
15148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
15158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project  /* These are the default thresholds before the MMX code kicks in; if either
15168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project   * rowbytes or bitdepth is below the threshold, plain C code is used.  These
15178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project   * can be overridden at runtime via the png_set_mmx_thresholds() call in
15188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project   * libpng 1.2.0 and later.  The values below were chosen by Intel.
15198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project   */
15208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_MMX_ROWBYTES_THRESHOLD_DEFAULT
15218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_MMX_ROWBYTES_THRESHOLD_DEFAULT  128  /*  >=  */
15228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
15238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  ifndef PNG_MMX_BITDEPTH_THRESHOLD_DEFAULT
15248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#    define PNG_MMX_BITDEPTH_THRESHOLD_DEFAULT  9    /*  >=  */
15258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#  endif
15268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* PNG_USE_PNGGCCRD || PNG_USE_PNGVCRD */
15278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* - see pngvcrd.c or pnggccrd.c for info about what is currently enabled */
15288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
15298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* PNG_INTERNAL */
15308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* PNG_READ_SUPPORTED */
15318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
15328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Added at libpng-1.2.8 */
15338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* PNG_VERSION_INFO_ONLY */
15348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
15358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* PNGCONF_H */
1536