| /* ************************************************************************** */ |
| /* * * */ |
| /* * project : libmng * */ |
| /* * file : libmng_conf.h copyright (c) G.Juyn 2000-2004 * */ |
| /* * version : 1.0.9 * */ |
| /* * * */ |
| /* * purpose : main configuration file * */ |
| /* * * */ |
| /* * author : G.Juyn * */ |
| /* * * */ |
| /* * comment : The configuration file. Change this to include/exclude * */ |
| /* * the options you want or do not want in libmng. * */ |
| /* * * */ |
| /* * changes : 0.5.2 - 06/02/2000 - G.Juyn * */ |
| /* * - separated configuration-options into this file * */ |
| /* * - changed to most likely configuration (?) * */ |
| /* * 0.5.2 - 06/03/2000 - G.Juyn * */ |
| /* * - changed options to create a standard so-library * */ |
| /* * with everything enabled * */ |
| /* * 0.5.2 - 06/04/2000 - G.Juyn * */ |
| /* * - changed options to create a standard win32-dll * */ |
| /* * with everything enabled * */ |
| /* * * */ |
| /* * 0.9.2 - 08/05/2000 - G.Juyn * */ |
| /* * - changed file-prefixes * */ |
| /* * * */ |
| /* * 0.9.3 - 08/12/2000 - G.Juyn * */ |
| /* * - added workaround for faulty PhotoShop iCCP chunk * */ |
| /* * 0.9.3 - 09/16/2000 - G.Juyn * */ |
| /* * - removed trace-options from default SO/DLL builds * */ |
| /* * * */ |
| /* * 1.0.4 - 06/22/2002 - G.Juyn * */ |
| /* * - B526138 - returned IJGSRC6B calling convention to * */ |
| /* * default for MSVC * */ |
| /* * * */ |
| /* * 1.0.5 - 09/14/2002 - G.Juyn * */ |
| /* * - added event handling for dynamic MNG * */ |
| /* * - added 'supports' call to check function availability * */ |
| /* * * */ |
| /* * 1.0.6 - 06/22/2002 - G.R-P * */ |
| /* * - added MNG_NO_INCLUDE_JNG conditional * */ |
| /* * - added MNG_SKIPCHUNK_evNT conditional * */ |
| /* * 1.0.6 - 07/14/2002 - G.R-P * */ |
| /* * - added MNG_NO_SUPPORT_FUNCQUERY conditional * */ |
| /* * * */ |
| /* * 1.0.7 - 03/07/2004 - G.R-P * */ |
| /* * - added MNG_VERSION_QUERY_SUPPORT_ conditional * */ |
| /* * * */ |
| /* * 1.0.9 - 05/12/2004 - G.Juyn * */ |
| /* * - clearified MNG_BIGENDIAN_SUPPORTED conditional * */ |
| /* * - added MNG_LITTLEENDIAN_SUPPORTED conditional * */ |
| /* * * */ |
| /* ************************************************************************** */ |
| |
| |
| #if defined(__BORLANDC__) && defined(MNG_STRICT_ANSI) |
| #pragma option -A /* force ANSI-C */ |
| #endif |
| |
| #ifndef _libmng_conf_h_ |
| #define _libmng_conf_h_ |
| |
| #ifdef MNG_MOZILLA_CFG |
| #include "special\mozcfg\mozlibmngconf.h" |
| #endif |
| |
| /* ************************************************************************** */ |
| /* * * */ |
| /* * User-selectable compile-time options * */ |
| /* * * */ |
| /* ************************************************************************** */ |
| |
| /* ************************************************************************** */ |
| /* added by FreeImage */ |
| /* ************************************************************************** */ |
| |
| #define MNG_OPTIMIZE_CHUNKINITFREE |
| #define MNG_OPTIMIZE_OBJCLEANUP |
| #define MNG_OPTIMIZE_CHUNKASSIGN |
| #define MNG_OPTIMIZE_CHUNKREADER |
| |
| /* ************************************************************************** */ |
| |
| /* enable exactly one(1) of the MNG-(sub)set selectors */ |
| /* use this to select which (sub)set of the MNG specification you wish |
| to support */ |
| /* generally you'll want full support as the library provides it automatically |
| for you! if you're really strung on memory-requirements you can opt |
| to enable less support (but it's just NOT a good idea!) */ |
| /* NOTE that this isn't actually implemented yet */ |
| |
| #if !defined(MNG_SUPPORT_FULL) && !defined(MNG_SUPPORT_LC) && !defined(MNG_SUPPORT_VLC) |
| #define MNG_SUPPORT_FULL |
| /* #define MNG_SUPPORT_LC */ |
| /* #define MNG_SUPPORT_VLC */ |
| #endif |
| |
| /* ************************************************************************** */ |
| |
| /* enable JPEG support if required */ |
| /* use this to enable the JNG support routines */ |
| /* this requires an external jpeg package; |
| currently only IJG's jpgsrc6b is supported! */ |
| /* NOTE that the IJG code can be either 8- or 12-bit (eg. not both); |
| so choose the one you've defined in jconfig.h; if you don't know what |
| the heck I'm talking about, just leave it at 8-bit support (thank you!) */ |
| |
| #ifndef MNG_NO_INCLUDE_JNG |
| #ifdef MNG_SUPPORT_FULL /* full support includes JNG */ |
| #define MNG_SUPPORT_IJG6B |
| #endif |
| |
| #ifndef MNG_SUPPORT_IJG6B |
| #if defined(MNG_BUILD_SO) || defined(MNG_USE_SO) || defined(MNG_BUILD_DLL) || defined(MNG_USE_DLL) |
| #define MNG_SUPPORT_IJG6B |
| #endif |
| #endif |
| |
| #if defined(MNG_SUPPORT_IJG6B) && !defined(MNG_SUPPORT_JPEG8) && !defined(MNG_SUPPORT_JPEG12) |
| #define MNG_SUPPORT_JPEG8 |
| /* #define MNG_SUPPORT_JPEG12 */ |
| #endif |
| |
| /* The following is required to export the IJG routines from the DLL in |
| the Windows-standard calling convention; |
| currently this only works for Borland C++ !!! */ |
| |
| #if defined(MNG_BUILD_DLL) || defined(MNG_USE_DLL) |
| #if defined(MNG_SUPPORT_IJG6B) && defined(__BORLANDC__) |
| #define MNG_DEFINE_JPEG_STDCALL |
| #endif |
| #endif |
| #endif |
| |
| /* ************************************************************************** */ |
| |
| /* enable required high-level functions */ |
| /* use this to select the high-level functions you require */ |
| /* if you only need to display a MNG, disable write support! */ |
| /* if you only need to examine a MNG, disable write & display support! */ |
| /* if you only need to copy a MNG, disable display support! */ |
| /* if you only need to create a MNG, disable read & display support! */ |
| /* NOTE that turning all options off will be very unuseful! */ |
| |
| #if !defined(MNG_SUPPORT_READ) && !defined(MNG_SUPPORT_WRITE) && !defined(MNG_SUPPORT_DISPLAY) |
| #define MNG_SUPPORT_READ |
| #if defined(MNG_BUILD_SO) || defined(MNG_USE_SO) || defined(MNG_BUILD_DLL) || defined(MNG_USE_DLL) |
| #define MNG_SUPPORT_WRITE |
| #endif |
| #define MNG_SUPPORT_DISPLAY |
| #endif |
| |
| /* ************************************************************************** */ |
| |
| /* enable chunk access functions */ |
| /* use this to select whether you need access to the individual chunks */ |
| /* useful if you want to examine a read MNG (you'll also need MNG_STORE_CHUNKS !)*/ |
| /* required if you need to create & write a new MNG! */ |
| |
| #ifndef MNG_ACCESS_CHUNKS |
| #if defined(MNG_BUILD_SO) || defined(MNG_USE_SO) || defined(MNG_BUILD_DLL) || defined(MNG_USE_DLL) |
| #define MNG_ACCESS_CHUNKS |
| #endif |
| #endif |
| |
| /* ************************************************************************** */ |
| |
| /* enable exactly one(1) of the color-management functionality selectors */ |
| /* use this to select the level of automatic color support */ |
| /* MNG_FULL_CMS requires the lcms (little cms) external package ! */ |
| /* if you want your own app (or the OS) to handle color-management |
| select MNG_APP_CMS */ |
| |
| #define MNG_GAMMA_ONLY |
| /* #define MNG_FULL_CMS */ |
| /* #define MNG_APP_CMS */ |
| |
| /* ************************************************************************** */ |
| |
| /* enable automatic dithering */ |
| /* use this if you need dithering support to convert high-resolution |
| images to a low-resolution output-device */ |
| /* NOTE that this is not supported yet */ |
| |
| /* #define MNG_AUTO_DITHER */ |
| |
| /* ************************************************************************** */ |
| |
| /* enable whether chunks should be stored for reference later */ |
| /* use this if you need to examine the chunks of a MNG you have read, |
| or (re-)write a MNG you have read */ |
| /* turn this off if you want to reduce memory-consumption */ |
| |
| #ifndef MNG_STORE_CHUNKS |
| #if defined(MNG_BUILD_SO) || defined(MNG_USE_SO) || defined(MNG_BUILD_DLL) || defined(MNG_USE_DLL) |
| #define MNG_STORE_CHUNKS |
| #endif |
| #endif |
| |
| /* ************************************************************************** */ |
| |
| /* enable internal memory management (if your compiler supports it) */ |
| /* use this if your compiler supports the 'standard' memory functions |
| (calloc & free), and you want the library to use these functions and not |
| bother your app with memory-callbacks */ |
| |
| /* #define MNG_INTERNAL_MEMMNGMT */ |
| |
| /* ************************************************************************** */ |
| |
| /* enable internal tracing-functionality (manual debugging purposes) */ |
| /* use this if you have trouble location bugs or problems */ |
| /* NOTE that you'll need to specify the trace callback function! */ |
| |
| /* #define MNG_SUPPORT_TRACE */ |
| |
| /* ************************************************************************** */ |
| |
| /* enable extended error- and trace-telltaling */ |
| /* use this if you need explanatory messages with errors and/or tracing */ |
| |
| #if !defined(MNG_ERROR_TELLTALE) && !defined(MNG_TRACE_TELLTALE) |
| #if defined(MNG_BUILD_SO) || defined(MNG_USE_SO) || defined(MNG_BUILD_DLL) || defined(MNG_USE_DLL) |
| #define MNG_ERROR_TELLTALE |
| #define MNG_TRACE_TELLTALE |
| #endif |
| #endif |
| |
| /* ************************************************************************** */ |
| |
| /* enable BIG/LITTLE endian optimizations */ |
| /* enable BIG if you're on an architecture that supports big-endian reads |
| and writes that aren't word-aligned */ |
| /* according to reliable sources this only works for PowerPC (bigendian mode) |
| and 680x0 */ |
| /* enable LITTLE if you're on an architecture that supports little-endian */ |
| /* when in doubt leave both off !!! */ |
| |
| /* #define MNG_BIGENDIAN_SUPPORTED */ |
| /* #define MNG_LITTLEENDIAN_SUPPORTED */ |
| |
| /* ************************************************************************** */ |
| /* enable 'version' functions */ |
| #if !defined(MNG_VERSION_QUERY_SUPPORT) && \ |
| !defined(MNG_NO_VERSION_QUERY_SUPPORT) |
| #define MNG_VERSION_QUERY_SUPPORT |
| #endif |
| |
| /* enable 'supports' function */ |
| /* use this if you need to query the availability of functions at runtime; |
| useful for apps that dynamically load the library and that need specific |
| functions */ |
| |
| #if !defined(MNG_NO_SUPPORT_FUNCQUERY) && !defined(MNG_SUPPORT_FUNCQUERY) |
| #if defined(MNG_BUILD_SO) || defined(MNG_USE_SO) || \ |
| defined(MNG_BUILD_DLL) || defined(MNG_USE_DLL) |
| #define MNG_SUPPORT_FUNCQUERY |
| #endif |
| #endif |
| |
| /* ************************************************************************** */ |
| |
| /* enable dynamic MNG features */ |
| /* use this if you would like to have dynamic support for specifically |
| designed MNGs; eg. this is useful for 'rollover' effects such as common |
| on the world wide web */ |
| |
| #ifndef MNG_SUPPORT_DYNAMICMNG |
| #if defined(MNG_BUILD_SO) || defined(MNG_USE_SO) || defined(MNG_BUILD_DLL) || defined(MNG_USE_DLL) |
| #define MNG_SUPPORT_DYNAMICMNG |
| #endif |
| #endif |
| #ifndef MNG_SUPPORT_DYNAMICMNG |
| #ifndef MNG_SKIPCHUNK_evNT |
| #define MNG_SKIPCHUNK_evNT |
| #endif |
| #endif |
| |
| #ifdef MNG_INCLUDE_JNG |
| #ifndef MNG_NO_ACCESS_JPEG |
| #ifndef MNG_ACCESS_JPEG |
| #define MNG_ACCESS_JPEG |
| #endif |
| #endif |
| #endif |
| |
| #ifdef MNG_INCLUDE_ZLIB |
| #ifndef MNG_NO_ACCESS_ZLIB |
| #ifndef MNG_ACCESS_ZLIB |
| #define MNG_ACCESS_ZLIB |
| #endif |
| #endif |
| #endif |
| |
| /* ************************************************************************** */ |
| /* * * */ |
| /* * End of user-selectable compile-time options * */ |
| /* * * */ |
| /* ************************************************************************** */ |
| |
| #endif /* _libmng_conf_h_ */ |
| |
| /* ************************************************************************** */ |
| /* * end of file * */ |
| /* ************************************************************************** */ |
| |