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