1*37da2899SCharles.Forsyth /***************************************************************************/ 2*37da2899SCharles.Forsyth /* */ 3*37da2899SCharles.Forsyth /* ftoption.h */ 4*37da2899SCharles.Forsyth /* */ 5*37da2899SCharles.Forsyth /* User-selectable configuration macros (specification only). */ 6*37da2899SCharles.Forsyth /* */ 7*37da2899SCharles.Forsyth /* Copyright 1996-2001, 2002 by */ 8*37da2899SCharles.Forsyth /* David Turner, Robert Wilhelm, and Werner Lemberg. */ 9*37da2899SCharles.Forsyth /* */ 10*37da2899SCharles.Forsyth /* This file is part of the FreeType project, and may only be used, */ 11*37da2899SCharles.Forsyth /* modified, and distributed under the terms of the FreeType project */ 12*37da2899SCharles.Forsyth /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 13*37da2899SCharles.Forsyth /* this file you indicate that you have read the license and */ 14*37da2899SCharles.Forsyth /* understand and accept it fully. */ 15*37da2899SCharles.Forsyth /* */ 16*37da2899SCharles.Forsyth /***************************************************************************/ 17*37da2899SCharles.Forsyth 18*37da2899SCharles.Forsyth 19*37da2899SCharles.Forsyth #ifndef __FTOPTION_H__ 20*37da2899SCharles.Forsyth #define __FTOPTION_H__ 21*37da2899SCharles.Forsyth 22*37da2899SCharles.Forsyth 23*37da2899SCharles.Forsyth #include <ft2build.h> 24*37da2899SCharles.Forsyth 25*37da2899SCharles.Forsyth 26*37da2899SCharles.Forsyth FT_BEGIN_HEADER 27*37da2899SCharles.Forsyth 28*37da2899SCharles.Forsyth /*************************************************************************/ 29*37da2899SCharles.Forsyth /* */ 30*37da2899SCharles.Forsyth /* USER-SELECTABLE CONFIGURATION MACROS */ 31*37da2899SCharles.Forsyth /* */ 32*37da2899SCharles.Forsyth /* This file contains the default configuration macro definitions for */ 33*37da2899SCharles.Forsyth /* a standard build of the FreeType library. There are three ways to */ 34*37da2899SCharles.Forsyth /* use this file to build project-specific versions of the library: */ 35*37da2899SCharles.Forsyth /* */ 36*37da2899SCharles.Forsyth /* - You can modify this file by hand, but this is not recommended in */ 37*37da2899SCharles.Forsyth /* cases where you would like to build several versions of the */ 38*37da2899SCharles.Forsyth /* library from a single source directory. */ 39*37da2899SCharles.Forsyth /* */ 40*37da2899SCharles.Forsyth /* - You can put a copy of this file in your build directory, more */ 41*37da2899SCharles.Forsyth /* precisely in "$BUILD/freetype/config/ftoption.h", where "$BUILD" */ 42*37da2899SCharles.Forsyth /* is the name of a directory that is included _before_ the FreeType */ 43*37da2899SCharles.Forsyth /* include path during compilation. */ 44*37da2899SCharles.Forsyth /* */ 45*37da2899SCharles.Forsyth /* The default FreeType Makefiles and Jamfiles use the build */ 46*37da2899SCharles.Forsyth /* directory "builds/<system>" by default, but you can easily change */ 47*37da2899SCharles.Forsyth /* that for your own projects. */ 48*37da2899SCharles.Forsyth /* */ 49*37da2899SCharles.Forsyth /* - Copy the file <ft2build.h> to "$BUILD/ft2build.h" and modify it */ 50*37da2899SCharles.Forsyth /* slightly to pre-define the macro FT_CONFIG_OPTIONS_H used to */ 51*37da2899SCharles.Forsyth /* locate this file during the build. For example, */ 52*37da2899SCharles.Forsyth /* */ 53*37da2899SCharles.Forsyth /* #define FT_CONFIG_OPTIONS_H <myftoptions.h> */ 54*37da2899SCharles.Forsyth /* #include <freetype/config/ftheader.h> */ 55*37da2899SCharles.Forsyth /* */ 56*37da2899SCharles.Forsyth /* will use "$BUILD/myftoptions.h" instead of this file for macro */ 57*37da2899SCharles.Forsyth /* definitions. */ 58*37da2899SCharles.Forsyth /* */ 59*37da2899SCharles.Forsyth /* Note also that you can similarly pre-define the macro */ 60*37da2899SCharles.Forsyth /* FT_CONFIG_MODULES_H used to locate the file listing of the modules */ 61*37da2899SCharles.Forsyth /* that are statically linked to the library at compile time. By */ 62*37da2899SCharles.Forsyth /* default, this file is <freetype/config/ftmodule.h>. */ 63*37da2899SCharles.Forsyth /* */ 64*37da2899SCharles.Forsyth /* We highly recommend using the third method whenever possible. */ 65*37da2899SCharles.Forsyth /* */ 66*37da2899SCharles.Forsyth /*************************************************************************/ 67*37da2899SCharles.Forsyth 68*37da2899SCharles.Forsyth 69*37da2899SCharles.Forsyth /*************************************************************************/ 70*37da2899SCharles.Forsyth /*************************************************************************/ 71*37da2899SCharles.Forsyth /**** ****/ 72*37da2899SCharles.Forsyth /**** 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 ****/ 73*37da2899SCharles.Forsyth /**** ****/ 74*37da2899SCharles.Forsyth /*************************************************************************/ 75*37da2899SCharles.Forsyth /*************************************************************************/ 76*37da2899SCharles.Forsyth 77*37da2899SCharles.Forsyth 78*37da2899SCharles.Forsyth /*************************************************************************/ 79*37da2899SCharles.Forsyth /* */ 80*37da2899SCharles.Forsyth /* Many compilers provide a non-ANSI 64-bit data type that can be used */ 81*37da2899SCharles.Forsyth /* by FreeType to speed up some computations. However, this will create */ 82*37da2899SCharles.Forsyth /* some problems when compiling the library in strict ANSI mode. */ 83*37da2899SCharles.Forsyth /* */ 84*37da2899SCharles.Forsyth /* For this reason, the use of 64-bit ints is normally disabled when */ 85*37da2899SCharles.Forsyth /* the __STDC__ macro is defined. You can however disable this by */ 86*37da2899SCharles.Forsyth /* defining here the macro FT_CONFIG_OPTION_FORCE_INT64. */ 87*37da2899SCharles.Forsyth /* */ 88*37da2899SCharles.Forsyth /* For most compilers, this will only create compilation warnings */ 89*37da2899SCharles.Forsyth /* when building the library. */ 90*37da2899SCharles.Forsyth /* */ 91*37da2899SCharles.Forsyth /* ObNote: The compiler-specific 64-bit integers are detected in the */ 92*37da2899SCharles.Forsyth /* file "ftconfig.h" either statically, or through Autoconf */ 93*37da2899SCharles.Forsyth /* on platforms that support it. */ 94*37da2899SCharles.Forsyth /* */ 95*37da2899SCharles.Forsyth #undef FT_CONFIG_OPTION_FORCE_INT64 96*37da2899SCharles.Forsyth 97*37da2899SCharles.Forsyth 98*37da2899SCharles.Forsyth /*************************************************************************/ 99*37da2899SCharles.Forsyth /* */ 100*37da2899SCharles.Forsyth /* Gzip-compressed file support. */ 101*37da2899SCharles.Forsyth /* */ 102*37da2899SCharles.Forsyth /* FreeType now handles font files that have been compressed with the */ 103*37da2899SCharles.Forsyth /* 'gzip' program. This is mostly used to parse many of the PCF files */ 104*37da2899SCharles.Forsyth /* that come with XFree86. The implementation uses 'zlib' to */ 105*37da2899SCharles.Forsyth /* partially uncompress the file on the fly (see src/base/ftgzip.c). */ 106*37da2899SCharles.Forsyth /* */ 107*37da2899SCharles.Forsyth /* Define this macro if you want to enable this "feature". Note that */ 108*37da2899SCharles.Forsyth /* this will however force you to link the zlib to any program that */ 109*37da2899SCharles.Forsyth /* also uses FreeType. */ 110*37da2899SCharles.Forsyth /* */ 111*37da2899SCharles.Forsyth #define FT_CONFIG_OPTION_USE_ZLIB 112*37da2899SCharles.Forsyth 113*37da2899SCharles.Forsyth 114*37da2899SCharles.Forsyth /*************************************************************************/ 115*37da2899SCharles.Forsyth /* */ 116*37da2899SCharles.Forsyth /* ZLib library selection */ 117*37da2899SCharles.Forsyth /* */ 118*37da2899SCharles.Forsyth /* This macro is only used when FT_CONFIG_OPTION_USE_ZLIB is defined. */ 119*37da2899SCharles.Forsyth /* It allows FreeType's "ftgzip" component to link to the system's */ 120*37da2899SCharles.Forsyth /* installation of the ZLib library. This is useful on systems like */ 121*37da2899SCharles.Forsyth /* Unix or VMS where it generally is already available. */ 122*37da2899SCharles.Forsyth /* */ 123*37da2899SCharles.Forsyth /* If you let it undefined, the component will use its own copy */ 124*37da2899SCharles.Forsyth /* of the zlib sources instead. These have been modified to be */ 125*37da2899SCharles.Forsyth /* included directly within the component and *not* export external */ 126*37da2899SCharles.Forsyth /* function names. This allows you to link any program with FreeType */ 127*37da2899SCharles.Forsyth /* _and_ ZLib without linking conflicts. */ 128*37da2899SCharles.Forsyth /* */ 129*37da2899SCharles.Forsyth /* do not #undef this macro here, since the build system might */ 130*37da2899SCharles.Forsyth /* define for certain configurations */ 131*37da2899SCharles.Forsyth /* */ 132*37da2899SCharles.Forsyth /* #define FT_CONFIG_OPTION_SYSTEM_ZLIB */ 133*37da2899SCharles.Forsyth 134*37da2899SCharles.Forsyth 135*37da2899SCharles.Forsyth /*************************************************************************/ 136*37da2899SCharles.Forsyth /* */ 137*37da2899SCharles.Forsyth /* DLL export compilation */ 138*37da2899SCharles.Forsyth /* */ 139*37da2899SCharles.Forsyth /* When compiling FreeType as a DLL, some systems/compilers need a */ 140*37da2899SCharles.Forsyth /* special keyword in front OR after the return type of function */ 141*37da2899SCharles.Forsyth /* declarations. */ 142*37da2899SCharles.Forsyth /* */ 143*37da2899SCharles.Forsyth /* Two macros are used within the FreeType source code to define */ 144*37da2899SCharles.Forsyth /* exported library functions: FT_EXPORT and FT_EXPORT_DEF. */ 145*37da2899SCharles.Forsyth /* */ 146*37da2899SCharles.Forsyth /* FT_EXPORT( return_type ) */ 147*37da2899SCharles.Forsyth /* */ 148*37da2899SCharles.Forsyth /* is used in a function declaration, as in */ 149*37da2899SCharles.Forsyth /* */ 150*37da2899SCharles.Forsyth /* FT_EXPORT( FT_Error ) */ 151*37da2899SCharles.Forsyth /* FT_Init_FreeType( FT_Library* alibrary ); */ 152*37da2899SCharles.Forsyth /* */ 153*37da2899SCharles.Forsyth /* */ 154*37da2899SCharles.Forsyth /* FT_EXPORT_DEF( return_type ) */ 155*37da2899SCharles.Forsyth /* */ 156*37da2899SCharles.Forsyth /* is used in a function definition, as in */ 157*37da2899SCharles.Forsyth /* */ 158*37da2899SCharles.Forsyth /* FT_EXPORT_DEF( FT_Error ) */ 159*37da2899SCharles.Forsyth /* FT_Init_FreeType( FT_Library* alibrary ) */ 160*37da2899SCharles.Forsyth /* { */ 161*37da2899SCharles.Forsyth /* ... some code ... */ 162*37da2899SCharles.Forsyth /* return FT_Err_Ok; */ 163*37da2899SCharles.Forsyth /* } */ 164*37da2899SCharles.Forsyth /* */ 165*37da2899SCharles.Forsyth /* You can provide your own implementation of FT_EXPORT and */ 166*37da2899SCharles.Forsyth /* FT_EXPORT_DEF here if you want. If you leave them undefined, they */ 167*37da2899SCharles.Forsyth /* will be later automatically defined as `extern return_type' to */ 168*37da2899SCharles.Forsyth /* allow normal compilation. */ 169*37da2899SCharles.Forsyth /* */ 170*37da2899SCharles.Forsyth /* #define FT_EXPORT(x) extern x */ 171*37da2899SCharles.Forsyth /* #define FT_EXPORT_DEF(x) x */ 172*37da2899SCharles.Forsyth 173*37da2899SCharles.Forsyth 174*37da2899SCharles.Forsyth /*************************************************************************/ 175*37da2899SCharles.Forsyth /* */ 176*37da2899SCharles.Forsyth /* Glyph Postscript Names handling */ 177*37da2899SCharles.Forsyth /* */ 178*37da2899SCharles.Forsyth /* By default, FreeType 2 is compiled with the `PSNames' module. This */ 179*37da2899SCharles.Forsyth /* module is in charge of converting a glyph name string into a */ 180*37da2899SCharles.Forsyth /* Unicode value, or return a Macintosh standard glyph name for the */ 181*37da2899SCharles.Forsyth /* use with the TrueType `post' table. */ 182*37da2899SCharles.Forsyth /* */ 183*37da2899SCharles.Forsyth /* Undefine this macro if you do not want `PSNames' compiled in your */ 184*37da2899SCharles.Forsyth /* build of FreeType. This has the following effects: */ 185*37da2899SCharles.Forsyth /* */ 186*37da2899SCharles.Forsyth /* - The TrueType driver will provide its own set of glyph names, */ 187*37da2899SCharles.Forsyth /* if you build it to support postscript names in the TrueType */ 188*37da2899SCharles.Forsyth /* `post' table. */ 189*37da2899SCharles.Forsyth /* */ 190*37da2899SCharles.Forsyth /* - The Type 1 driver will not be able to synthetize a Unicode */ 191*37da2899SCharles.Forsyth /* charmap out of the glyphs found in the fonts. */ 192*37da2899SCharles.Forsyth /* */ 193*37da2899SCharles.Forsyth /* You would normally undefine this configuration macro when building */ 194*37da2899SCharles.Forsyth /* a version of FreeType that doesn't contain a Type 1 or CFF driver. */ 195*37da2899SCharles.Forsyth /* */ 196*37da2899SCharles.Forsyth #define FT_CONFIG_OPTION_POSTSCRIPT_NAMES 197*37da2899SCharles.Forsyth 198*37da2899SCharles.Forsyth 199*37da2899SCharles.Forsyth /*************************************************************************/ 200*37da2899SCharles.Forsyth /* */ 201*37da2899SCharles.Forsyth /* Postscript Names to Unicode Values support */ 202*37da2899SCharles.Forsyth /* */ 203*37da2899SCharles.Forsyth /* By default, FreeType 2 is built with the `PSNames' module compiled */ 204*37da2899SCharles.Forsyth /* in. Among other things, the module is used to convert a glyph name */ 205*37da2899SCharles.Forsyth /* into a Unicode value. This is especially useful in order to */ 206*37da2899SCharles.Forsyth /* synthetize on the fly a Unicode charmap from the CFF/Type 1 driver */ 207*37da2899SCharles.Forsyth /* through a big table named the `Adobe Glyph List' (AGL). */ 208*37da2899SCharles.Forsyth /* */ 209*37da2899SCharles.Forsyth /* Undefine this macro if you do not want the Adobe Glyph List */ 210*37da2899SCharles.Forsyth /* compiled in your `PSNames' module. The Type 1 driver will not be */ 211*37da2899SCharles.Forsyth /* able to synthetize a Unicode charmap out of the glyphs found in the */ 212*37da2899SCharles.Forsyth /* fonts. */ 213*37da2899SCharles.Forsyth /* */ 214*37da2899SCharles.Forsyth #define FT_CONFIG_OPTION_ADOBE_GLYPH_LIST 215*37da2899SCharles.Forsyth 216*37da2899SCharles.Forsyth 217*37da2899SCharles.Forsyth /*************************************************************************/ 218*37da2899SCharles.Forsyth /* */ 219*37da2899SCharles.Forsyth /* Allow the use of FT_Incremental_Interface to load typefaces that */ 220*37da2899SCharles.Forsyth /* contain no glyph data, but supply it via a callback function. */ 221*37da2899SCharles.Forsyth /* This allows FreeType to be used with the PostScript language, using */ 222*37da2899SCharles.Forsyth /* the GhostScript interpreter. */ 223*37da2899SCharles.Forsyth /* */ 224*37da2899SCharles.Forsyth /* #define FT_CONFIG_OPTION_INCREMENTAL */ 225*37da2899SCharles.Forsyth 226*37da2899SCharles.Forsyth 227*37da2899SCharles.Forsyth /*************************************************************************/ 228*37da2899SCharles.Forsyth /* */ 229*37da2899SCharles.Forsyth /* The size in bytes of the render pool used by the scan-line converter */ 230*37da2899SCharles.Forsyth /* to do all of its work. */ 231*37da2899SCharles.Forsyth /* */ 232*37da2899SCharles.Forsyth /* This must be greater than 4kByte. */ 233*37da2899SCharles.Forsyth /* */ 234*37da2899SCharles.Forsyth #define FT_RENDER_POOL_SIZE 16384L 235*37da2899SCharles.Forsyth 236*37da2899SCharles.Forsyth 237*37da2899SCharles.Forsyth /*************************************************************************/ 238*37da2899SCharles.Forsyth /* */ 239*37da2899SCharles.Forsyth /* FT_MAX_MODULES */ 240*37da2899SCharles.Forsyth /* */ 241*37da2899SCharles.Forsyth /* The maximum number of modules that can be registered in a single */ 242*37da2899SCharles.Forsyth /* FreeType library object. 32 is the default. */ 243*37da2899SCharles.Forsyth /* */ 244*37da2899SCharles.Forsyth #define FT_MAX_MODULES 32 245*37da2899SCharles.Forsyth 246*37da2899SCharles.Forsyth 247*37da2899SCharles.Forsyth /*************************************************************************/ 248*37da2899SCharles.Forsyth /* */ 249*37da2899SCharles.Forsyth /* Debug level */ 250*37da2899SCharles.Forsyth /* */ 251*37da2899SCharles.Forsyth /* FreeType can be compiled in debug or trace mode. In debug mode, */ 252*37da2899SCharles.Forsyth /* errors are reported through the `ftdebug' component. In trace */ 253*37da2899SCharles.Forsyth /* mode, additional messages are sent to the standard output during */ 254*37da2899SCharles.Forsyth /* execution. */ 255*37da2899SCharles.Forsyth /* */ 256*37da2899SCharles.Forsyth /* Define FT_DEBUG_LEVEL_ERROR to build the library in debug mode. */ 257*37da2899SCharles.Forsyth /* Define FT_DEBUG_LEVEL_TRACE to build it in trace mode. */ 258*37da2899SCharles.Forsyth /* */ 259*37da2899SCharles.Forsyth /* Don't define any of these macros to compile in `release' mode! */ 260*37da2899SCharles.Forsyth /* */ 261*37da2899SCharles.Forsyth /* #define FT_DEBUG_LEVEL_ERROR */ 262*37da2899SCharles.Forsyth /* #define FT_DEBUG_LEVEL_TRACE */ 263*37da2899SCharles.Forsyth 264*37da2899SCharles.Forsyth 265*37da2899SCharles.Forsyth /*************************************************************************/ 266*37da2899SCharles.Forsyth /* */ 267*37da2899SCharles.Forsyth /* Memory Debugging */ 268*37da2899SCharles.Forsyth /* */ 269*37da2899SCharles.Forsyth /* FreeType now comes with an integrated memory debugger that is */ 270*37da2899SCharles.Forsyth /* capable of detecting simple errors like memory leaks or double */ 271*37da2899SCharles.Forsyth /* deletes. To compile it within your build of the library, you */ 272*37da2899SCharles.Forsyth /* should define FT_DEBUG_MEMORY here. */ 273*37da2899SCharles.Forsyth /* */ 274*37da2899SCharles.Forsyth /* Note that the memory debugger is only activated at runtime when */ 275*37da2899SCharles.Forsyth /* when the _environment_ variable "FT_DEBUG_MEMORY" is also defined! */ 276*37da2899SCharles.Forsyth /* */ 277*37da2899SCharles.Forsyth /* #define FT_DEBUG_MEMORY */ 278*37da2899SCharles.Forsyth 279*37da2899SCharles.Forsyth 280*37da2899SCharles.Forsyth 281*37da2899SCharles.Forsyth /*************************************************************************/ 282*37da2899SCharles.Forsyth /* */ 283*37da2899SCharles.Forsyth /* Module errors */ 284*37da2899SCharles.Forsyth /* */ 285*37da2899SCharles.Forsyth /* If this macro is set (which is _not_ the default), the higher byte */ 286*37da2899SCharles.Forsyth /* of an error code gives the module in which the error has occurred, */ 287*37da2899SCharles.Forsyth /* while the lower byte is the real error code. */ 288*37da2899SCharles.Forsyth /* */ 289*37da2899SCharles.Forsyth /* Setting this macro makes sense for debugging purposes only, since */ 290*37da2899SCharles.Forsyth /* it would break source compatibility of certain programs that use */ 291*37da2899SCharles.Forsyth /* FreeType 2. */ 292*37da2899SCharles.Forsyth /* */ 293*37da2899SCharles.Forsyth /* More details can be found in the files ftmoderr.h and fterrors.h. */ 294*37da2899SCharles.Forsyth /* */ 295*37da2899SCharles.Forsyth #undef FT_CONFIG_OPTION_USE_MODULE_ERRORS 296*37da2899SCharles.Forsyth 297*37da2899SCharles.Forsyth 298*37da2899SCharles.Forsyth 299*37da2899SCharles.Forsyth /*************************************************************************/ 300*37da2899SCharles.Forsyth /*************************************************************************/ 301*37da2899SCharles.Forsyth /**** ****/ 302*37da2899SCharles.Forsyth /**** S F N T D R I V E R C O N F I G U R A T I O N ****/ 303*37da2899SCharles.Forsyth /**** ****/ 304*37da2899SCharles.Forsyth /*************************************************************************/ 305*37da2899SCharles.Forsyth /*************************************************************************/ 306*37da2899SCharles.Forsyth 307*37da2899SCharles.Forsyth 308*37da2899SCharles.Forsyth /*************************************************************************/ 309*37da2899SCharles.Forsyth /* */ 310*37da2899SCharles.Forsyth /* Define TT_CONFIG_OPTION_EMBEDDED_BITMAPS if you want to support */ 311*37da2899SCharles.Forsyth /* embedded bitmaps in all formats using the SFNT module (namely */ 312*37da2899SCharles.Forsyth /* TrueType & OpenType). */ 313*37da2899SCharles.Forsyth /* */ 314*37da2899SCharles.Forsyth #define TT_CONFIG_OPTION_EMBEDDED_BITMAPS 315*37da2899SCharles.Forsyth 316*37da2899SCharles.Forsyth 317*37da2899SCharles.Forsyth /*************************************************************************/ 318*37da2899SCharles.Forsyth /* */ 319*37da2899SCharles.Forsyth /* Define TT_CONFIG_OPTION_POSTSCRIPT_NAMES if you want to be able to */ 320*37da2899SCharles.Forsyth /* load and enumerate the glyph Postscript names in a TrueType or */ 321*37da2899SCharles.Forsyth /* OpenType file. */ 322*37da2899SCharles.Forsyth /* */ 323*37da2899SCharles.Forsyth /* Note that when you do not compile the `PSNames' module by undefining */ 324*37da2899SCharles.Forsyth /* the above FT_CONFIG_OPTION_POSTSCRIPT_NAMES, the `sfnt' module will */ 325*37da2899SCharles.Forsyth /* contain additional code used to read the PS Names table from a font. */ 326*37da2899SCharles.Forsyth /* */ 327*37da2899SCharles.Forsyth /* (By default, the module uses `PSNames' to extract glyph names.) */ 328*37da2899SCharles.Forsyth /* */ 329*37da2899SCharles.Forsyth #define TT_CONFIG_OPTION_POSTSCRIPT_NAMES 330*37da2899SCharles.Forsyth 331*37da2899SCharles.Forsyth 332*37da2899SCharles.Forsyth /*************************************************************************/ 333*37da2899SCharles.Forsyth /* */ 334*37da2899SCharles.Forsyth /* Define TT_CONFIG_OPTION_SFNT_NAMES if your applications need to */ 335*37da2899SCharles.Forsyth /* access the internal name table in a SFNT-based format like TrueType */ 336*37da2899SCharles.Forsyth /* or OpenType. The name table contains various strings used to */ 337*37da2899SCharles.Forsyth /* describe the font, like family name, copyright, version, etc. It */ 338*37da2899SCharles.Forsyth /* does not contain any glyph name though. */ 339*37da2899SCharles.Forsyth /* */ 340*37da2899SCharles.Forsyth /* Accessing SFNT names is done through the functions declared in */ 341*37da2899SCharles.Forsyth /* `freetype/ftnames.h'. */ 342*37da2899SCharles.Forsyth /* */ 343*37da2899SCharles.Forsyth #define TT_CONFIG_OPTION_SFNT_NAMES 344*37da2899SCharles.Forsyth 345*37da2899SCharles.Forsyth 346*37da2899SCharles.Forsyth /*************************************************************************/ 347*37da2899SCharles.Forsyth /* */ 348*37da2899SCharles.Forsyth /* TrueType CMap support */ 349*37da2899SCharles.Forsyth /* */ 350*37da2899SCharles.Forsyth /* Here you can fine-tune which TrueType CMap table format shall be */ 351*37da2899SCharles.Forsyth /* supported. */ 352*37da2899SCharles.Forsyth #define TT_CONFIG_CMAP_FORMAT_0 353*37da2899SCharles.Forsyth #define TT_CONFIG_CMAP_FORMAT_2 354*37da2899SCharles.Forsyth #define TT_CONFIG_CMAP_FORMAT_4 355*37da2899SCharles.Forsyth #define TT_CONFIG_CMAP_FORMAT_6 356*37da2899SCharles.Forsyth #define TT_CONFIG_CMAP_FORMAT_8 357*37da2899SCharles.Forsyth #define TT_CONFIG_CMAP_FORMAT_10 358*37da2899SCharles.Forsyth #define TT_CONFIG_CMAP_FORMAT_12 359*37da2899SCharles.Forsyth 360*37da2899SCharles.Forsyth 361*37da2899SCharles.Forsyth /*************************************************************************/ 362*37da2899SCharles.Forsyth /*************************************************************************/ 363*37da2899SCharles.Forsyth /**** ****/ 364*37da2899SCharles.Forsyth /**** 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 ****/ 365*37da2899SCharles.Forsyth /**** ****/ 366*37da2899SCharles.Forsyth /*************************************************************************/ 367*37da2899SCharles.Forsyth /*************************************************************************/ 368*37da2899SCharles.Forsyth 369*37da2899SCharles.Forsyth /*************************************************************************/ 370*37da2899SCharles.Forsyth /* */ 371*37da2899SCharles.Forsyth /* Define TT_CONFIG_OPTION_BYTECODE_INTERPRETER if you want to compile */ 372*37da2899SCharles.Forsyth /* a bytecode interpreter in the TrueType driver. Note that there are */ 373*37da2899SCharles.Forsyth /* important patent issues related to the use of the interpreter. */ 374*37da2899SCharles.Forsyth /* */ 375*37da2899SCharles.Forsyth /* By undefining this, you will only compile the code necessary to load */ 376*37da2899SCharles.Forsyth /* TrueType glyphs without hinting. */ 377*37da2899SCharles.Forsyth /* */ 378*37da2899SCharles.Forsyth /* do not #undef this macro here, since the build system might */ 379*37da2899SCharles.Forsyth /* define for certain configurations */ 380*37da2899SCharles.Forsyth /* */ 381*37da2899SCharles.Forsyth /*#define TT_CONFIG_OPTION_BYTECODE_INTERPRETER*/ 382*37da2899SCharles.Forsyth 383*37da2899SCharles.Forsyth 384*37da2899SCharles.Forsyth /*************************************************************************/ 385*37da2899SCharles.Forsyth /* */ 386*37da2899SCharles.Forsyth /* Define TT_CONFIG_OPTION_INTERPRETER_SWITCH to compile the TrueType */ 387*37da2899SCharles.Forsyth /* bytecode interpreter with a huge switch statement, rather than a call */ 388*37da2899SCharles.Forsyth /* table. This results in smaller and faster code for a number of */ 389*37da2899SCharles.Forsyth /* architectures. */ 390*37da2899SCharles.Forsyth /* */ 391*37da2899SCharles.Forsyth /* Note however that on some compiler/processor combinations, undefining */ 392*37da2899SCharles.Forsyth /* this macro will generate faster, though larger, code. */ 393*37da2899SCharles.Forsyth /* */ 394*37da2899SCharles.Forsyth #define TT_CONFIG_OPTION_INTERPRETER_SWITCH 395*37da2899SCharles.Forsyth 396*37da2899SCharles.Forsyth 397*37da2899SCharles.Forsyth /*************************************************************************/ 398*37da2899SCharles.Forsyth /* */ 399*37da2899SCharles.Forsyth /* Define TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED to compile the */ 400*37da2899SCharles.Forsyth /* TrueType glyph loader to use Apple's definition of how to handle */ 401*37da2899SCharles.Forsyth /* component offsets in composite glyphs. */ 402*37da2899SCharles.Forsyth /* */ 403*37da2899SCharles.Forsyth /* Apple and MS disagree on the default behavior of component offsets */ 404*37da2899SCharles.Forsyth /* in composites. Apple says that they should be scaled by the scale */ 405*37da2899SCharles.Forsyth /* factors in the transformation matrix (roughly, it's more complex) */ 406*37da2899SCharles.Forsyth /* while MS says they should not. OpenType defines two bits in the */ 407*37da2899SCharles.Forsyth /* composite flags array which can be used to disambiguate, but old */ 408*37da2899SCharles.Forsyth /* fonts will not have them. */ 409*37da2899SCharles.Forsyth /* */ 410*37da2899SCharles.Forsyth /* http://partners.adobe.com/asn/developer/opentype/glyf.html */ 411*37da2899SCharles.Forsyth /* http://fonts.apple.com/TTRefMan/RM06/Chap6glyf.html */ 412*37da2899SCharles.Forsyth /* */ 413*37da2899SCharles.Forsyth #undef TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED 414*37da2899SCharles.Forsyth 415*37da2899SCharles.Forsyth 416*37da2899SCharles.Forsyth /*************************************************************************/ 417*37da2899SCharles.Forsyth /*************************************************************************/ 418*37da2899SCharles.Forsyth /**** ****/ 419*37da2899SCharles.Forsyth /**** T Y P E 1 D R I V E R C O N F I G U R A T I O N ****/ 420*37da2899SCharles.Forsyth /**** ****/ 421*37da2899SCharles.Forsyth /*************************************************************************/ 422*37da2899SCharles.Forsyth /*************************************************************************/ 423*37da2899SCharles.Forsyth 424*37da2899SCharles.Forsyth 425*37da2899SCharles.Forsyth /*************************************************************************/ 426*37da2899SCharles.Forsyth /* */ 427*37da2899SCharles.Forsyth /* T1_MAX_DICT_DEPTH is the maximal depth of nest dictionaries and */ 428*37da2899SCharles.Forsyth /* arrays in the Type 1 stream (see t1load.c). A minimum of 4 is */ 429*37da2899SCharles.Forsyth /* required. */ 430*37da2899SCharles.Forsyth /* */ 431*37da2899SCharles.Forsyth #define T1_MAX_DICT_DEPTH 5 432*37da2899SCharles.Forsyth 433*37da2899SCharles.Forsyth 434*37da2899SCharles.Forsyth /*************************************************************************/ 435*37da2899SCharles.Forsyth /* */ 436*37da2899SCharles.Forsyth /* T1_MAX_SUBRS_CALLS details the maximum number of nested sub-routine */ 437*37da2899SCharles.Forsyth /* calls during glyph loading. */ 438*37da2899SCharles.Forsyth /* */ 439*37da2899SCharles.Forsyth #define T1_MAX_SUBRS_CALLS 16 440*37da2899SCharles.Forsyth 441*37da2899SCharles.Forsyth 442*37da2899SCharles.Forsyth /*************************************************************************/ 443*37da2899SCharles.Forsyth /* */ 444*37da2899SCharles.Forsyth /* T1_MAX_CHARSTRING_OPERANDS is the charstring stack's capacity. A */ 445*37da2899SCharles.Forsyth /* minimum of 16 is required. */ 446*37da2899SCharles.Forsyth /* */ 447*37da2899SCharles.Forsyth /* The Chinese font MingTiEG-Medium (CNS 11643 character set) needs 256. */ 448*37da2899SCharles.Forsyth /* */ 449*37da2899SCharles.Forsyth #define T1_MAX_CHARSTRINGS_OPERANDS 256 450*37da2899SCharles.Forsyth 451*37da2899SCharles.Forsyth 452*37da2899SCharles.Forsyth /*************************************************************************/ 453*37da2899SCharles.Forsyth /* */ 454*37da2899SCharles.Forsyth /* Define this configuration macro if you want to prevent the */ 455*37da2899SCharles.Forsyth /* compilation of `t1afm', which is in charge of reading Type 1 AFM */ 456*37da2899SCharles.Forsyth /* files into an existing face. Note that if set, the T1 driver will be */ 457*37da2899SCharles.Forsyth /* unable to produce kerning distances. */ 458*37da2899SCharles.Forsyth /* */ 459*37da2899SCharles.Forsyth #undef T1_CONFIG_OPTION_NO_AFM 460*37da2899SCharles.Forsyth 461*37da2899SCharles.Forsyth 462*37da2899SCharles.Forsyth /*************************************************************************/ 463*37da2899SCharles.Forsyth /* */ 464*37da2899SCharles.Forsyth /* Define this configuration macro if you want to prevent the */ 465*37da2899SCharles.Forsyth /* compilation of the Multiple Masters font support in the Type 1 */ 466*37da2899SCharles.Forsyth /* driver. */ 467*37da2899SCharles.Forsyth /* */ 468*37da2899SCharles.Forsyth #undef T1_CONFIG_OPTION_NO_MM_SUPPORT 469*37da2899SCharles.Forsyth 470*37da2899SCharles.Forsyth /* */ 471*37da2899SCharles.Forsyth 472*37da2899SCharles.Forsyth FT_END_HEADER 473*37da2899SCharles.Forsyth 474*37da2899SCharles.Forsyth 475*37da2899SCharles.Forsyth #endif /* __FTOPTION_H__ */ 476*37da2899SCharles.Forsyth 477*37da2899SCharles.Forsyth 478*37da2899SCharles.Forsyth /* END */ 479