src/3rdparty/libmng/libmng_conf.h
changeset 0 1918ee327afb
equal deleted inserted replaced
-1:000000000000 0:1918ee327afb
       
     1 /* ************************************************************************** */
       
     2 /* *                                                                        * */
       
     3 /* * project   : libmng                                                     * */
       
     4 /* * file      : libmng_conf.h             copyright (c) G.Juyn 2000-2004   * */
       
     5 /* * version   : 1.0.9                                                      * */
       
     6 /* *                                                                        * */
       
     7 /* * purpose   : main configuration file                                    * */
       
     8 /* *                                                                        * */
       
     9 /* * author    : G.Juyn                                                     * */
       
    10 /* *                                                                        * */
       
    11 /* * comment   : The configuration file. Change this to include/exclude     * */
       
    12 /* *             the options you want or do not want in libmng.             * */
       
    13 /* *                                                                        * */
       
    14 /* * changes   : 0.5.2 - 06/02/2000 - G.Juyn                                * */
       
    15 /* *             - separated configuration-options into this file           * */
       
    16 /* *             - changed to most likely configuration (?)                 * */
       
    17 /* *             0.5.2 - 06/03/2000 - G.Juyn                                * */
       
    18 /* *             - changed options to create a standard so-library          * */
       
    19 /* *               with everything enabled                                  * */
       
    20 /* *             0.5.2 - 06/04/2000 - G.Juyn                                * */
       
    21 /* *             - changed options to create a standard win32-dll           * */
       
    22 /* *               with everything enabled                                  * */
       
    23 /* *                                                                        * */
       
    24 /* *             0.9.2 - 08/05/2000 - G.Juyn                                * */
       
    25 /* *             - changed file-prefixes                                    * */
       
    26 /* *                                                                        * */
       
    27 /* *             0.9.3 - 08/12/2000 - G.Juyn                                * */
       
    28 /* *             - added workaround for faulty PhotoShop iCCP chunk         * */
       
    29 /* *             0.9.3 - 09/16/2000 - G.Juyn                                * */
       
    30 /* *             - removed trace-options from default SO/DLL builds         * */
       
    31 /* *                                                                        * */
       
    32 /* *             1.0.4 - 06/22/2002 - G.Juyn                                * */
       
    33 /* *             - B526138 - returned IJGSRC6B calling convention to        * */
       
    34 /* *               default for MSVC                                         * */
       
    35 /* *                                                                        * */
       
    36 /* *             1.0.5 - 09/14/2002 - G.Juyn                                * */
       
    37 /* *             - added event handling for dynamic MNG                     * */
       
    38 /* *             - added 'supports' call to check function availability     * */
       
    39 /* *                                                                        * */
       
    40 /* *             1.0.6 - 06/22/2002 - G.R-P                                 * */
       
    41 /* *             - added MNG_NO_INCLUDE_JNG conditional                     * */
       
    42 /* *             - added MNG_SKIPCHUNK_evNT conditional                     * */
       
    43 /* *             1.0.6 - 07/14/2002 - G.R-P                                 * */
       
    44 /* *             - added MNG_NO_SUPPORT_FUNCQUERY conditional               * */
       
    45 /* *                                                                        * */
       
    46 /* *             1.0.7 - 03/07/2004 - G.R-P                                 * */
       
    47 /* *             - added MNG_VERSION_QUERY_SUPPORT_ conditional             * */
       
    48 /* *                                                                        * */
       
    49 /* *             1.0.9 - 05/12/2004 - G.Juyn                                * */
       
    50 /* *             - clearified MNG_BIGENDIAN_SUPPORTED conditional           * */
       
    51 /* *             - added MNG_LITTLEENDIAN_SUPPORTED conditional             * */
       
    52 /* *                                                                        * */
       
    53 /* ************************************************************************** */
       
    54 
       
    55 
       
    56 #if defined(__BORLANDC__) && defined(MNG_STRICT_ANSI)
       
    57 #pragma option -A                      /* force ANSI-C */
       
    58 #endif
       
    59 
       
    60 #ifndef _libmng_conf_h_
       
    61 #define _libmng_conf_h_
       
    62 
       
    63 #ifdef MNG_MOZILLA_CFG
       
    64 #include "special\mozcfg\mozlibmngconf.h"
       
    65 #endif
       
    66 
       
    67 /* ************************************************************************** */
       
    68 /* *                                                                        * */
       
    69 /* *  User-selectable compile-time options                                  * */
       
    70 /* *                                                                        * */
       
    71 /* ************************************************************************** */
       
    72 
       
    73 /* enable exactly one(1) of the MNG-(sub)set selectors */
       
    74 /* use this to select which (sub)set of the MNG specification you wish
       
    75    to support */
       
    76 /* generally you'll want full support as the library provides it automatically
       
    77    for you! if you're really strung on memory-requirements you can opt
       
    78    to enable less support (but it's just NOT a good idea!) */
       
    79 /* NOTE that this isn't actually implemented yet */
       
    80 
       
    81 #if !defined(MNG_SUPPORT_FULL) && !defined(MNG_SUPPORT_LC) && !defined(MNG_SUPPORT_VLC)
       
    82 #define MNG_SUPPORT_FULL
       
    83 /* #define MNG_SUPPORT_LC */
       
    84 /* #define MNG_SUPPORT_VLC */
       
    85 #endif
       
    86 
       
    87 /* ************************************************************************** */
       
    88 
       
    89 /* enable JPEG support if required */
       
    90 /* use this to enable the JNG support routines */
       
    91 /* this requires an external jpeg package;
       
    92    currently only IJG's jpgsrc6b is supported! */
       
    93 /* NOTE that the IJG code can be either 8- or 12-bit (eg. not both);
       
    94    so choose the one you've defined in jconfig.h; if you don't know what
       
    95    the heck I'm talking about, just leave it at 8-bit support (thank you!) */
       
    96 
       
    97 #ifndef MNG_NO_INCLUDE_JNG
       
    98 #ifdef MNG_SUPPORT_FULL                /* full support includes JNG */
       
    99 #define MNG_SUPPORT_IJG6B
       
   100 #endif
       
   101 
       
   102 #ifndef MNG_SUPPORT_IJG6B
       
   103 #if defined(MNG_BUILD_SO) || defined(MNG_USE_SO) || defined(MNG_BUILD_DLL) || defined(MNG_USE_DLL)
       
   104 #define MNG_SUPPORT_IJG6B
       
   105 #endif
       
   106 #endif
       
   107 
       
   108 #if defined(MNG_SUPPORT_IJG6B) && !defined(MNG_SUPPORT_JPEG8) && !defined(MNG_SUPPORT_JPEG12)
       
   109 #define MNG_SUPPORT_JPEG8
       
   110 /* #define MNG_SUPPORT_JPEG12 */
       
   111 #endif
       
   112 
       
   113 /* The following is required to export the IJG routines from the DLL in
       
   114    the Windows-standard calling convention;
       
   115    currently this only works for Borland C++ !!! */
       
   116 
       
   117 #if defined(MNG_BUILD_DLL) || defined(MNG_USE_DLL)
       
   118 #if defined(MNG_SUPPORT_IJG6B) && defined(__BORLANDC__)
       
   119 #define MNG_DEFINE_JPEG_STDCALL
       
   120 #endif
       
   121 #endif
       
   122 #endif
       
   123 
       
   124 /* ************************************************************************** */
       
   125 
       
   126 /* enable required high-level functions */
       
   127 /* use this to select the high-level functions you require */
       
   128 /* if you only need to display a MNG, disable write support! */
       
   129 /* if you only need to examine a MNG, disable write & display support! */
       
   130 /* if you only need to copy a MNG, disable display support! */
       
   131 /* if you only need to create a MNG, disable read & display support! */
       
   132 /* NOTE that turning all options off will be very unuseful! */
       
   133 
       
   134 #if !defined(MNG_SUPPORT_READ) && !defined(MNG_SUPPORT_WRITE) && !defined(MNG_SUPPORT_DISPLAY)
       
   135 #define MNG_SUPPORT_READ
       
   136 #if defined(MNG_BUILD_SO) || defined(MNG_USE_SO) || defined(MNG_BUILD_DLL) || defined(MNG_USE_DLL)
       
   137 #define MNG_SUPPORT_WRITE
       
   138 #endif
       
   139 #define MNG_SUPPORT_DISPLAY
       
   140 #endif
       
   141 
       
   142 /* ************************************************************************** */
       
   143 
       
   144 /* enable chunk access functions */
       
   145 /* use this to select whether you need access to the individual chunks */
       
   146 /* useful if you want to examine a read MNG (you'll also need MNG_STORE_CHUNKS !)*/
       
   147 /* required if you need to create & write a new MNG! */
       
   148 
       
   149 #ifndef MNG_ACCESS_CHUNKS
       
   150 #if defined(MNG_BUILD_SO) || defined(MNG_USE_SO) || defined(MNG_BUILD_DLL) || defined(MNG_USE_DLL)
       
   151 #define MNG_ACCESS_CHUNKS
       
   152 #endif
       
   153 #endif
       
   154 
       
   155 /* ************************************************************************** */
       
   156 
       
   157 /* enable exactly one(1) of the color-management functionality selectors */
       
   158 /* use this to select the level of automatic color support */
       
   159 /* MNG_FULL_CMS requires the lcms (little cms) external package ! */
       
   160 /* if you want your own app (or the OS) to handle color-management
       
   161    select MNG_APP_CMS */
       
   162 
       
   163 #define MNG_GAMMA_ONLY
       
   164 /* #define MNG_FULL_CMS */
       
   165 /* #define MNG_APP_CMS */
       
   166 
       
   167 /* ************************************************************************** */
       
   168 
       
   169 /* enable automatic dithering */
       
   170 /* use this if you need dithering support to convert high-resolution
       
   171    images to a low-resolution output-device */
       
   172 /* NOTE that this is not supported yet */
       
   173 
       
   174 /* #define MNG_AUTO_DITHER */
       
   175 
       
   176 /* ************************************************************************** */
       
   177 
       
   178 /* enable whether chunks should be stored for reference later */
       
   179 /* use this if you need to examine the chunks of a MNG you have read,
       
   180    or (re-)write a MNG you have read */
       
   181 /* turn this off if you want to reduce memory-consumption */
       
   182 
       
   183 #ifndef MNG_STORE_CHUNKS
       
   184 #if defined(MNG_BUILD_SO) || defined(MNG_USE_SO) || defined(MNG_BUILD_DLL) || defined(MNG_USE_DLL)
       
   185 #define MNG_STORE_CHUNKS
       
   186 #endif
       
   187 #endif
       
   188 
       
   189 /* ************************************************************************** */
       
   190 
       
   191 /* enable internal memory management (if your compiler supports it) */
       
   192 /* use this if your compiler supports the 'standard' memory functions
       
   193    (calloc & free), and you want the library to use these functions and not
       
   194    bother your app with memory-callbacks */
       
   195 
       
   196 /* #define MNG_INTERNAL_MEMMNGMT */
       
   197 
       
   198 /* ************************************************************************** */
       
   199 
       
   200 /* enable internal tracing-functionality (manual debugging purposes) */
       
   201 /* use this if you have trouble location bugs or problems */
       
   202 /* NOTE that you'll need to specify the trace callback function! */
       
   203 
       
   204 /* #define MNG_SUPPORT_TRACE */
       
   205 
       
   206 /* ************************************************************************** */
       
   207 
       
   208 /* enable extended error- and trace-telltaling */
       
   209 /* use this if you need explanatory messages with errors and/or tracing */
       
   210 
       
   211 #if !defined(MNG_ERROR_TELLTALE) && !defined(MNG_TRACE_TELLTALE)
       
   212 #if defined(MNG_BUILD_SO) || defined(MNG_USE_SO) || defined(MNG_BUILD_DLL) || defined(MNG_USE_DLL)
       
   213 #define MNG_ERROR_TELLTALE
       
   214 #define MNG_TRACE_TELLTALE
       
   215 #endif
       
   216 #endif
       
   217 
       
   218 /* ************************************************************************** */
       
   219 
       
   220 /* enable BIG/LITTLE endian optimizations */
       
   221 /* enable BIG if you're on an architecture that supports big-endian reads
       
   222    and writes that aren't word-aligned */
       
   223 /* according to reliable sources this only works for PowerPC (bigendian mode)
       
   224    and 680x0 */
       
   225 /* enable LITTLE if you're on an architecture that supports little-endian */
       
   226 /* when in doubt leave both off !!! */
       
   227 
       
   228 /* #define MNG_BIGENDIAN_SUPPORTED */
       
   229 /* #define MNG_LITTLEENDIAN_SUPPORTED */
       
   230 
       
   231 /* ************************************************************************** */
       
   232 /* enable 'version' functions */
       
   233 #if !defined(MNG_VERSION_QUERY_SUPPORT) && \
       
   234     !defined(MNG_NO_VERSION_QUERY_SUPPORT)
       
   235 #define MNG_VERSION_QUERY_SUPPORT
       
   236 #endif
       
   237 
       
   238 /* enable 'supports' function */
       
   239 /* use this if you need to query the availability of functions at runtime;
       
   240    useful for apps that dynamically load the library and that need specific
       
   241    functions */
       
   242 
       
   243 #if !defined(MNG_NO_SUPPORT_FUNCQUERY) && !defined(MNG_SUPPORT_FUNCQUERY)
       
   244 #if defined(MNG_BUILD_SO) || defined(MNG_USE_SO) || \
       
   245     defined(MNG_BUILD_DLL) || defined(MNG_USE_DLL)
       
   246 #define MNG_SUPPORT_FUNCQUERY
       
   247 #endif
       
   248 #endif
       
   249 
       
   250 /* ************************************************************************** */
       
   251 
       
   252 /* enable dynamic MNG features */
       
   253 /* use this if you would like to have dynamic support for specifically
       
   254    designed MNGs; eg. this is useful for 'rollover' effects such as common
       
   255    on the world wide web */
       
   256 
       
   257 #ifndef MNG_SUPPORT_DYNAMICMNG
       
   258 #if defined(MNG_BUILD_SO) || defined(MNG_USE_SO) || defined(MNG_BUILD_DLL) || defined(MNG_USE_DLL)
       
   259 #define MNG_SUPPORT_DYNAMICMNG
       
   260 #endif
       
   261 #endif
       
   262 #ifndef MNG_SUPPORT_DYNAMICMNG
       
   263 #ifndef MNG_SKIPCHUNK_evNT
       
   264 #define MNG_SKIPCHUNK_evNT
       
   265 #endif
       
   266 #endif
       
   267 
       
   268 #ifdef MNG_INCLUDE_JNG
       
   269 #ifndef MNG_NO_ACCESS_JPEG
       
   270 #ifndef MNG_ACCESS_JPEG
       
   271 #define MNG_ACCESS_JPEG
       
   272 #endif
       
   273 #endif
       
   274 #endif
       
   275 
       
   276 #ifdef MNG_INCLUDE_ZLIB
       
   277 #ifndef MNG_NO_ACCESS_ZLIB
       
   278 #ifndef MNG_ACCESS_ZLIB
       
   279 #define MNG_ACCESS_ZLIB
       
   280 #endif
       
   281 #endif
       
   282 #endif
       
   283 
       
   284 /* ************************************************************************** */
       
   285 /* *                                                                        * */
       
   286 /* *  End of user-selectable compile-time options                           * */
       
   287 /* *                                                                        * */
       
   288 /* ************************************************************************** */
       
   289 
       
   290 #endif /* _libmng_conf_h_ */
       
   291 
       
   292 /* ************************************************************************** */
       
   293 /* * end of file                                                            * */
       
   294 /* ************************************************************************** */
       
   295