Hash :
37379e21
Author :
Date :
2000-03-28T11:22:31
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365
/***************************************************************************/
/* */
/* ftoption.h */
/* */
/* User-selectable configuration macros. */
/* */
/* Copyright 1996-2000 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used */
/* modified and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
#ifndef FTOPTION_H
#define FTOPTION_H
/*************************************************************************/
/* */
/* USER-SELECTABLE CONFIGURATION MACROS */
/* */
/* These macros can be toggled by developers to enable or disable */
/* certain aspects of FreeType. This is a default file, where all major */
/* options are enabled. */
/* */
/* Note that if some modifications are required for your build, we */
/* advise you to put a modified copy of this file in your build */
/* directory, rather than modifying it in-place. */
/* */
/* The build directory is normally "freetype/config/<system>" and */
/* contains build or system-specific files that are included in */
/* priority when building the library. */
/* */
/*************************************************************************/
/*************************************************************************/
/*************************************************************************/
/**** ****/
/**** G E N E R A L F R E E T Y P E 2 C O N F I G U R A T I O N ****/
/**** ****/
/*************************************************************************/
/*************************************************************************/
/*************************************************************************/
/* */
/* Convenience functions support */
/* */
/* Some functions of the FreeType 2 API are provided as a convenience */
/* for client applications and developers. However, they are not */
/* required to build and run the library itself. */
/* */
/* By defining this configuration macro, you'll disable the */
/* compilation of these functions at build time. This can be useful */
/* to reduce the library's code size when you don't need any of */
/* these functions.. */
/* */
/* All convenience functions are declared as such in their */
/* documentation. */
/* */
#undef FT_CONFIG_OPTION_NO_CONVENIENCE_FUNCS
/*************************************************************************/
/* */
/* Alternate Glyph Image Format support */
/* */
/* By default, the glyph images returned by the FreeType glyph loader */
/* can either be a pixmap or a vectorial outline defined through */
/* bezier control points. When defining the following configuration */
/* macro, some font drivers will be able to register alternate */
/* glyph image formats. */
/* */
/* Unset this macro if you're sure that you'll never use a font driver */
/* with an alternate glyph format, this will reduce the size of the */
/* base layer code. */
/* */
/* Note that a few Type 1 fonts, as well as Windows "Vector" fonts */
/* use a vector "plotter" format that isn't supported when this */
/* macro is undefined.. */
/* */
#define FT_CONFIG_OPTION_ALTERNATE_GLYPH_FORMATS
/*************************************************************************/
/* */
/* Glyph Postscript Names handling */
/* */
/* By default, FreeType 2 is built with the "psnames" module compiled */
/* in. This module is in charge of converting a glyph name string into */
/* a Unicode value, or return a Macintosh standard glyph name for the */
/* use with the TrueType "post" table. */
/* */
/* Undefine this macro if you do not want the "psnames" compiled in */
/* your build of FreeType. This has the following effects : */
/* */
/* - the TrueType driver will provide its own set of glyph names, */
/* if you build it to support postscript names in the TrueType */
/* "post" table. */
/* */
/* - the Type 1 driver will not be able to synthetize a */
/* Unicode charmap out of the glyphs found in the fonts. */
/* */
/* You would normally undefine this configuration macro when */
/* building a version of FreeType that doesn't contain a Type 1 */
/* or CFF driver. */
/* */
#define FT_CONFIG_OPTION_POSTSCRIPT_NAMES
/*************************************************************************/
/* */
/* Postscript Names to Unicode Values support */
/* */
/* By default, FreeType 2 is built with the "psnames" module compiled */
/* in. Among other things, the module is used to convert a glyph */
/* name into a unicode value. This is especially useful in order to */
/* synthetize on the fly a Unicode charmap from the CFF/Type 1 driver */
/* through a big table named the "Adobe Glyph List". */
/* */
/* Undefine this macro if you do not want the Adobe Glyph List */
/* compiled in your "psnames" module. The Type 1 driver will not */
/* be able to synthetize a Unicode charmap out of the glyphs found */
/* in the fonts.. */
/* */
#define FT_CONFIG_OPTION_ADOBE_GLYPH_LIST
/*************************************************************************/
/* */
/* many compilers provide the non-ANSI 'long long' 64-bit type. You can */
/* activate it by defining the FTCALC_USE_LONG_LONG macro in `ftoption.h'*/
/* Note that this will produce many -ansi warnings during library */
/* compilation, and that in many cases, the generated code will not be */
/* smaller or faster !! */
/* */
#undef FTCALC_USE_LONG_LONG
/*************************************************************************/
/* */
/* When compiling FreeType as a DLL, some systems/compilers need a */
/* special keyword in front of each function definition instead of */
/* `extern'. */
/* */
/* The macros EXPORT_DEF and EXPORT_FUNC are thus used to define */
/* exported library function interfaces and exported library functions */
/* implementations respectively. */
/* */
/* If not defined here, they automatically default to `extern' and void */
/* later in this header file. */
/* */
#undef EXPORT_DEF
#undef EXPORT_FUNC
/*************************************************************************/
/* */
/* Debug level */
/* */
/* FreeType can be compiled in debug or trace mode. In debug mode, */
/* errors are reported through the `ftdebug' component. In trace */
/* mode, additional messages are sent to the standard output during */
/* execution. */
/* */
/* Define FT_DEBUG_LEVEL_ERROR to build the library in debug mode. */
/* Define FT_DEBUG_LEVEL_TRACE to build it in trace mode. */
/* */
/* Don't define any of these macros to compile in `release' mode. */
/* */
#undef FT_DEBUG_LEVEL_ERROR
#undef FT_DEBUG_LEVEL_TRACE
/*************************************************************************/
/* */
/* Anti-aliasing support */
/* */
/* Undefine this macro only if you want to disable the anti-aliasing */
/* support in FreeType. This will save you about 5 Kb of code. It */
/* may be important for some embedded systems. */
/* */
#define FT_CONFIG_OPTION_ANTI_ALIAS
/*************************************************************************/
/* */
/* Endianess performance improvement */
/* */
/* FreeType is completely endian-independent, and can thus be compiled */
/* directly on _any_ machine. However, some components of the library */
/* provide improved routines for the cases where endianess is known. */
/* */
/* It usually results in speed-ups and reduced code size. Note that */
/* you should not define both of these macros. */
/* */
/* */
/* NOTE: For now, only the scan-line converter (base/ftraster.c) uses */
/* these macros to speed-up some anti-alias rendering routines. */
/* */
#undef FT_CONFIG_OPTION_LITTLE_ENDIAN
#undef FT_CONFIG_OPTION_BIG_ENDIAN
/*************************************************************************/
/* */
/* The size in bytes of the render pool used by the scan-line */
/* converter to do all of its work. */
/* */
/* This must be greater than 4 Kb */
/* */
#define FT_RENDER_POOL_SIZE 8192
/*************************************************************************/
/* */
/* FT_MAX_DRIVERS */
/* */
/* The maximum number of font drivers that can be registered in a */
/* single FreeType library object. 8 seems to be a good choice due */
/* to the relative low actual number of drivers ;-) */
/* */
/* If you don't intend to register new drivers at runtime, you */
/* certainly do not need to change this value.. */
/* */
#define FT_MAX_DRIVERS 8
/*************************************************************************/
/* */
/* FT_MAX_EXTENSIONS */
/* */
/* The maximum number of extensions that can be registered in a */
/* single font driver. 8 seems to be a good choice for now.. */
/* */
/* If you don't know what this means, you certainly do not need to */
/* change this value.. */
/* */
#define FT_MAX_EXTENSIONS 8
/*************************************************************************/
/* */
/* FT_MAX_GLYPH_FORMATS */
/* */
/* The maximum number of glyph image formats that might be registered */
/* in a given library instance. 8 seems to be a good choice due to */
/* the relatively low number of current formats ;-) */
/* */
#define FT_MAX_GLYPH_FORMATS 8
/*************************************************************************/
/*************************************************************************/
/**** ****/
/**** S F N T D R I V E R C O N F I G U R A T I O N ****/
/**** ****/
/*************************************************************************/
/*************************************************************************/
/*************************************************************************/
/* */
/* Define TT_CONFIG_OPTION_EMBEDDED_BITMAPS if you want to support */
/* embedded bitmaps in all formats using the SFNT module (namely */
/* TrueType & OpenType). */
/* */
#define TT_CONFIG_OPTION_EMBEDDED_BITMAPS
/*************************************************************************/
/* */
/* Define TT_CONFIG_OPTION_POSTSCRIPT_NAMES if you want to be able to */
/* load and enumerate the glyph Postscript names in a TrueType or */
/* OpenType file. */
/* */
/* Note that when you do not compile the "psnames" module by undefining */
/* the above FT_CONFIG_OPTION_POSTSCRIPT_NAMES, the "sfnt" module will */
/* contain additional code used to read the PS Names table from a font. */
/* */
/* (by default, the module uses "psnames" to extract glyph names).. */
/* */
#define TT_CONFIG_OPTION_POSTSCRIPT_NAMES
/*************************************************************************/
/*************************************************************************/
/**** ****/
/**** T R U E T Y P E D R I V E R C O N F I G U R A T I O N ****/
/**** ****/
/*************************************************************************/
/*************************************************************************/
/*************************************************************************/
/* */
/* Define TT_CONFIG_OPTION_BYTECODE_INTERPRETER if you want to compile */
/* a bytecode interpreter in the TrueType driver. Note that there are */
/* important patent issues related to the use of the interpreter. */
/* */
/* By undefining this, you'll only compile the code necessary to load */
/* TrueType glyphs without hinting.. */
/* */
#define TT_CONFIG_OPTION_BYTECODE_INTERPRETER
/*************************************************************************/
/* */
/* Define TT_CONFIG_OPTION_INTERPRETER_SWITCH to compile the TrueType */
/* bytecode interpreter with a huge switch statement, rather than a */
/* call table. This results in smaller and faster code for a number of */
/* architectures. */
/* */
/* Note however that on some compiler/processor combinations, undefining */
/* this macro will generate a faster, though larger, code. */
/* */
#define TT_CONFIG_OPTION_INTERPRETER_SWITCH
/* The maximum number of sub-glyphs in a TrueType composite glyph */
#define TT_MAX_SUBGLYPHS 32
/*************************************************************************/
/*************************************************************************/
/**** ****/
/**** T Y P E 1 D R I V E R C O N F I G U R A T I O N ****/
/**** ****/
/*************************************************************************/
/*************************************************************************/
/********************************************************************/
/* T1_MAX_STACK_DEPTH is the maximal depth of the token stack used */
/* by the Type 1 parser (see t1load.c). A minimum of 16 is required */
/* */
#define T1_MAX_STACK_DEPTH 16
/*******************************************************************/
/* T1_MAX_DICT_DEPTH is the maximal depth of nest dictionaries and */
/* arrays in the Type 1 stream (see t1load.c). A minimum of 4 is */
/* required */
#define T1_MAX_DICT_DEPTH 5
/***********************************************************************/
/* T1_MAX_SUBRS_CALLS details the maximum number of nested sub-routine */
/* calls during glyph loading */
#define T1_MAX_SUBRS_CALLS 8
/*****************************************************************/
/* T1_MAX_CHARSTRING_OPERANDS is the charstring stack's capacity */
#define T1_MAX_CHARSTRINGS_OPERANDS 32
/*******************************************************************/
/* Define T1_CONFIG_OPTION_DISABLE_HINTER if you want to generate */
/* a driver with no hinter. This can be useful to debug the parser */
/* */
#undef T1_CONFIG_OPTION_DISABLE_HINTER
/*******************************************************************/
/* Define this configuration macro if you want to prevent the */
/* compilation of "t1afm", which is in charge of reading Type1 */
/* AFM files into an existing face. Note that when set, the T1 */
/* driver will be unable to produce kerning distances.. */
/* */
#undef T1_CONFIG_OPTION_NO_AFM
#endif /* FTOPTION_H */