ftoption.h revision 5d1f7b1de12d16ceb2c938c56701a3e8bfa558f7
15d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)/***************************************************************************/ 25d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)/* */ 35d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)/* ftoption.h */ 45d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)/* */ 55d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)/* User-selectable configuration macros (specification only). */ 65d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)/* */ 75d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)/* Copyright 1996-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 by */ 85d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)/* David Turner, Robert Wilhelm, and Werner Lemberg. */ 95d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)/* */ 105d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)/* This file is part of the FreeType project, and may only be used, */ 115d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)/* modified, and distributed under the terms of the FreeType project */ 125d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 135d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)/* this file you indicate that you have read the license and */ 145d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)/* understand and accept it fully. */ 155d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)/* */ 165d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)/***************************************************************************/ 175d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 185d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 195d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#ifndef __FTOPTION_H__ 205d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define __FTOPTION_H__ 215d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 225d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 235d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include <ft2build.h> 245d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 255d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 265d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)FT_BEGIN_HEADER 275d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 285d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 295d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 305d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* USER-SELECTABLE CONFIGURATION MACROS */ 315d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 325d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* This file contains the default configuration macro definitions for */ 335d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* a standard build of the FreeType library. There are three ways to */ 345d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* use this file to build project-specific versions of the library: */ 355d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 365d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* - You can modify this file by hand, but this is not recommended in */ 375d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* cases where you would like to build several versions of the */ 385d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* library from a single source directory. */ 395d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 405d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* - You can put a copy of this file in your build directory, more */ 415d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* precisely in `$BUILD/freetype/config/ftoption.h', where `$BUILD' */ 425d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* is the name of a directory that is included _before_ the FreeType */ 435d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* include path during compilation. */ 445d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 455d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* The default FreeType Makefiles and Jamfiles use the build */ 465d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* directory `builds/<system>' by default, but you can easily change */ 475d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* that for your own projects. */ 485d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 495d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* - Copy the file <ft2build.h> to `$BUILD/ft2build.h' and modify it */ 505d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* slightly to pre-define the macro FT_CONFIG_OPTIONS_H used to */ 515d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* locate this file during the build. For example, */ 525d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 535d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* #define FT_CONFIG_OPTIONS_H <myftoptions.h> */ 545d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* #include <freetype/config/ftheader.h> */ 555d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 565d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* will use `$BUILD/myftoptions.h' instead of this file for macro */ 575d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* definitions. */ 585d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 595d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Note also that you can similarly pre-define the macro */ 605d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* FT_CONFIG_MODULES_H used to locate the file listing of the modules */ 615d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* that are statically linked to the library at compile time. By */ 625d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* default, this file is <freetype/config/ftmodule.h>. */ 635d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 645d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* We highly recommend using the third method whenever possible. */ 655d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 665d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 675d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 685d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 695d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 705d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 715d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /**** ****/ 725d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /**** 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 ****/ 735d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /**** ****/ 745d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 755d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 765d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 775d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 785d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 795d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 805d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Uncomment the line below if you want to activate sub-pixel rendering */ 815d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* (a.k.a. LCD rendering, or ClearType) in this build of the library. */ 825d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 835d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Note that this feature is covered by several Microsoft patents */ 845d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* and should not be activated in any default build of the library. */ 855d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 865d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* This macro has no impact on the FreeType API, only on its */ 875d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* _implementation_. For example, using FT_RENDER_MODE_LCD when calling */ 885d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* FT_Render_Glyph still generates a bitmap that is 3 times larger than */ 895d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* the original size; the difference will be that each triplet of */ 905d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* subpixels has R=G=B. */ 915d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 925d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* This is done to allow FreeType clients to run unmodified, forcing */ 935d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* them to display normal gray-level anti-aliased glyphs. */ 945d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 955d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)/* #define FT_CONFIG_OPTION_SUBPIXEL_RENDERING */ 965d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 975d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 985d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 995d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 1005d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Many compilers provide a non-ANSI 64-bit data type that can be used */ 1015d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* by FreeType to speed up some computations. However, this will create */ 1025d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* some problems when compiling the library in strict ANSI mode. */ 1035d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 1045d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* For this reason, the use of 64-bit integers is normally disabled when */ 1055d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* the __STDC__ macro is defined. You can however disable this by */ 1065d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* defining the macro FT_CONFIG_OPTION_FORCE_INT64 here. */ 1075d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 1085d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* For most compilers, this will only create compilation warnings when */ 1095d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* building the library. */ 1105d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 1115d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* ObNote: The compiler-specific 64-bit integers are detected in the */ 1125d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* file `ftconfig.h' either statically or through the */ 1135d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* `configure' script on supported platforms. */ 1145d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 1155d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#undef FT_CONFIG_OPTION_FORCE_INT64 1165d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 1175d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 1185d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 1195d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 1205d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* If this macro is defined, do not try to use an assembler version of */ 1215d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* performance-critical functions (e.g. FT_MulFix). You should only do */ 1225d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* that to verify that the assembler function works properly, or to */ 1235d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* execute benchmark tests of the various implementations. */ 1245d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)/* #define FT_CONFIG_OPTION_NO_ASSEMBLER */ 1255d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 1265d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 1275d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 1285d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 1295d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* If this macro is defined, try to use an inlined assembler version of */ 1305d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* the `FT_MulFix' function, which is a `hotspot' when loading and */ 1315d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* hinting glyphs, and which should be executed as fast as possible. */ 1325d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 1335d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Note that if your compiler or CPU is not supported, this will default */ 1345d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* to the standard and portable implementation found in `ftcalc.c'. */ 1355d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 1365d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define FT_CONFIG_OPTION_INLINE_MULFIX 1375d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 1385d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 1395d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 1405d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 1415d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* LZW-compressed file support. */ 1425d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 1435d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* FreeType now handles font files that have been compressed with the */ 1445d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* `compress' program. This is mostly used to parse many of the PCF */ 1455d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* files that come with various X11 distributions. The implementation */ 1465d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* uses NetBSD's `zopen' to partially uncompress the file on the fly */ 1475d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* (see src/lzw/ftgzip.c). */ 1485d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 1495d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Define this macro if you want to enable this `feature'. */ 1505d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 1515d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define FT_CONFIG_OPTION_USE_LZW 1525d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 1535d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 1545d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 1555d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 1565d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Gzip-compressed file support. */ 1575d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 1585d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* FreeType now handles font files that have been compressed with the */ 1595d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* `gzip' program. This is mostly used to parse many of the PCF files */ 1605d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* that come with XFree86. The implementation uses `zlib' to */ 1615d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* partially uncompress the file on the fly (see src/gzip/ftgzip.c). */ 1625d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 1635d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Define this macro if you want to enable this `feature'. See also */ 1645d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* the macro FT_CONFIG_OPTION_SYSTEM_ZLIB below. */ 1655d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 1665d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define FT_CONFIG_OPTION_USE_ZLIB 1675d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 1685d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 1695d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 1705d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 1715d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* ZLib library selection */ 1725d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 1735d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* This macro is only used when FT_CONFIG_OPTION_USE_ZLIB is defined. */ 1745d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* It allows FreeType's `ftgzip' component to link to the system's */ 1755d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* installation of the ZLib library. This is useful on systems like */ 1765d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Unix or VMS where it generally is already available. */ 1775d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 1785d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* If you let it undefined, the component will use its own copy */ 1795d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* of the zlib sources instead. These have been modified to be */ 1805d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* included directly within the component and *not* export external */ 1815d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* function names. This allows you to link any program with FreeType */ 1825d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* _and_ ZLib without linking conflicts. */ 1835d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 1845d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Do not #undef this macro here since the build system might define */ 1855d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* it for certain configurations only. */ 1865d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 1875d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)/* #define FT_CONFIG_OPTION_SYSTEM_ZLIB */ 1885d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 1895d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 1905d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 1915d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 1925d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* DLL export compilation */ 1935d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 1945d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* When compiling FreeType as a DLL, some systems/compilers need a */ 1955d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* special keyword in front OR after the return type of function */ 1965d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* declarations. */ 1975d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 1985d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Two macros are used within the FreeType source code to define */ 1995d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* exported library functions: FT_EXPORT and FT_EXPORT_DEF. */ 2005d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 2015d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* FT_EXPORT( return_type ) */ 2025d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 2035d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* is used in a function declaration, as in */ 2045d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 2055d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* FT_EXPORT( FT_Error ) */ 2065d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* FT_Init_FreeType( FT_Library* alibrary ); */ 2075d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 2085d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 2095d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* FT_EXPORT_DEF( return_type ) */ 2105d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 2115d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* is used in a function definition, as in */ 2125d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 2135d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* FT_EXPORT_DEF( FT_Error ) */ 2145d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* FT_Init_FreeType( FT_Library* alibrary ) */ 2155d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* { */ 2165d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* ... some code ... */ 2175d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* return FT_Err_Ok; */ 2185d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* } */ 2195d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 2205d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* You can provide your own implementation of FT_EXPORT and */ 2215d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* FT_EXPORT_DEF here if you want. If you leave them undefined, they */ 2225d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* will be later automatically defined as `extern return_type' to */ 2235d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* allow normal compilation. */ 2245d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 2255d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Do not #undef these macros here since the build system might define */ 2265d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* them for certain configurations only. */ 2275d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 2285d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)/* #define FT_EXPORT(x) extern x */ 2295d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)/* #define FT_EXPORT_DEF(x) x */ 2305d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 2315d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 2325d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 2335d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 2345d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Glyph Postscript Names handling */ 2355d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 2365d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* By default, FreeType 2 is compiled with the `psnames' module. This */ 2375d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* module is in charge of converting a glyph name string into a */ 2385d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Unicode value, or return a Macintosh standard glyph name for the */ 2395d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* use with the TrueType `post' table. */ 2405d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 2415d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Undefine this macro if you do not want `psnames' compiled in your */ 2425d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* build of FreeType. This has the following effects: */ 2435d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 2445d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* - The TrueType driver will provide its own set of glyph names, */ 2455d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* if you build it to support postscript names in the TrueType */ 2465d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* `post' table. */ 2475d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 2485d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* - The Type 1 driver will not be able to synthesize a Unicode */ 2495d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* charmap out of the glyphs found in the fonts. */ 2505d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 2515d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* You would normally undefine this configuration macro when building */ 2525d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* a version of FreeType that doesn't contain a Type 1 or CFF driver. */ 2535d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 2545d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define FT_CONFIG_OPTION_POSTSCRIPT_NAMES 2555d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 2565d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 2575d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 2585d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 2595d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Postscript Names to Unicode Values support */ 2605d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 2615d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* By default, FreeType 2 is built with the `PSNames' module compiled */ 2625d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* in. Among other things, the module is used to convert a glyph name */ 2635d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* into a Unicode value. This is especially useful in order to */ 2645d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* synthesize on the fly a Unicode charmap from the CFF/Type 1 driver */ 2655d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* through a big table named the `Adobe Glyph List' (AGL). */ 2665d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 2675d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Undefine this macro if you do not want the Adobe Glyph List */ 2685d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* compiled in your `PSNames' module. The Type 1 driver will not be */ 2695d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* able to synthesize a Unicode charmap out of the glyphs found in the */ 2705d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* fonts. */ 2715d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 2725d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define FT_CONFIG_OPTION_ADOBE_GLYPH_LIST 2735d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 2745d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 2755d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 2765d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 2775d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Support for Mac fonts */ 2785d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 2795d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Define this macro if you want support for outline fonts in Mac */ 2805d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* format (mac dfont, mac resource, macbinary containing a mac */ 2815d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* resource) on non-Mac platforms. */ 2825d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 2835d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Note that the `FOND' resource isn't checked. */ 2845d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 2855d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define FT_CONFIG_OPTION_MAC_FONTS 2865d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 2875d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 2885d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 2895d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 2905d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Guessing methods to access embedded resource forks */ 2915d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 2925d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Enable extra Mac fonts support on non-Mac platforms (e.g. */ 2935d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* GNU/Linux). */ 2945d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 2955d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Resource forks which include fonts data are stored sometimes in */ 2965d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* locations which users or developers don't expected. In some cases, */ 2975d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* resource forks start with some offset from the head of a file. In */ 2985d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* other cases, the actual resource fork is stored in file different */ 2995d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* from what the user specifies. If this option is activated, */ 3005d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* FreeType tries to guess whether such offsets or different file */ 3015d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* names must be used. */ 3025d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 3035d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Note that normal, direct access of resource forks is controlled via */ 3045d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* the FT_CONFIG_OPTION_MAC_FONTS option. */ 3055d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 3065d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#ifdef FT_CONFIG_OPTION_MAC_FONTS 3075d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define FT_CONFIG_OPTION_GUESSING_EMBEDDED_RFORK 3085d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#endif 3095d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 3105d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 3115d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 3125d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 3135d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Allow the use of FT_Incremental_Interface to load typefaces that */ 3145d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* contain no glyph data, but supply it via a callback function. */ 3155d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* This allows FreeType to be used with the PostScript language, using */ 3165d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* the GhostScript interpreter. */ 3175d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 3185d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)/* #define FT_CONFIG_OPTION_INCREMENTAL */ 3195d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 3205d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 3215d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 3225d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 3235d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* The size in bytes of the render pool used by the scan-line converter */ 3245d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* to do all of its work. */ 3255d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 3265d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* This must be greater than 4KByte if you use FreeType to rasterize */ 3275d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* glyphs; otherwise, you may set it to zero to avoid unnecessary */ 3285d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* allocation of the render pool. */ 3295d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 3305d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define FT_RENDER_POOL_SIZE 16384L 3315d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 3325d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 3335d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 3345d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 3355d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* FT_MAX_MODULES */ 3365d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 3375d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* The maximum number of modules that can be registered in a single */ 3385d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* FreeType library object. 32 is the default. */ 3395d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 3405d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define FT_MAX_MODULES 32 3415d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 3425d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 3435d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 3445d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 3455d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Debug level */ 3465d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 3475d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* FreeType can be compiled in debug or trace mode. In debug mode, */ 3485d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* errors are reported through the `ftdebug' component. In trace */ 3495d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* mode, additional messages are sent to the standard output during */ 3505d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* execution. */ 3515d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 3525d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Define FT_DEBUG_LEVEL_ERROR to build the library in debug mode. */ 3535d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Define FT_DEBUG_LEVEL_TRACE to build it in trace mode. */ 3545d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 3555d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Don't define any of these macros to compile in `release' mode! */ 3565d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 3575d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Do not #undef these macros here since the build system might define */ 3585d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* them for certain configurations only. */ 3595d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 3605d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)/* #define FT_DEBUG_LEVEL_ERROR */ 3615d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)/* #define FT_DEBUG_LEVEL_TRACE */ 3625d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 3635d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 3645d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 3655d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 3665d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Memory Debugging */ 3675d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 3685d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* FreeType now comes with an integrated memory debugger that is */ 3695d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* capable of detecting simple errors like memory leaks or double */ 3705d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* deletes. To compile it within your build of the library, you */ 3715d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* should define FT_DEBUG_MEMORY here. */ 3725d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 3735d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Note that the memory debugger is only activated at runtime when */ 3745d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* when the _environment_ variable `FT2_DEBUG_MEMORY' is defined also! */ 3755d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 3765d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Do not #undef this macro here since the build system might define */ 3775d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* it for certain configurations only. */ 3785d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 3795d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)/* #define FT_DEBUG_MEMORY */ 3805d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 3815d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 3825d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 3835d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 3845d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Module errors */ 3855d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 3865d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* If this macro is set (which is _not_ the default), the higher byte */ 3875d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* of an error code gives the module in which the error has occurred, */ 3885d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* while the lower byte is the real error code. */ 3895d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 3905d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Setting this macro makes sense for debugging purposes only, since */ 3915d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* it would break source compatibility of certain programs that use */ 3925d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* FreeType 2. */ 3935d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 3945d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* More details can be found in the files ftmoderr.h and fterrors.h. */ 3955d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 3965d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#undef FT_CONFIG_OPTION_USE_MODULE_ERRORS 3975d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 3985d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 3995d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 4005d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 4015d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Position Independent Code */ 4025d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 4035d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* If this macro is set (which is _not_ the default), FreeType2 will */ 4045d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* avoid creating constants that require address fixups. Instead the */ 4055d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* constants will be moved into a struct and additional intialization */ 4065d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* code will be used. */ 4075d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 4085d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Setting this macro is needed for systems that prohibit address */ 4095d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* fixups, such as BREW. */ 4105d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 4115d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)/* #define FT_CONFIG_OPTION_PIC */ 4125d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 4135d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 4145d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 4155d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 4165d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /**** ****/ 4175d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /**** S F N T D R I V E R C O N F I G U R A T I O N ****/ 4185d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /**** ****/ 4195d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 4205d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 4215d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 4225d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 4235d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 4245d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 4255d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Define TT_CONFIG_OPTION_EMBEDDED_BITMAPS if you want to support */ 4265d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* embedded bitmaps in all formats using the SFNT module (namely */ 4275d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* TrueType & OpenType). */ 4285d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 4295d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define TT_CONFIG_OPTION_EMBEDDED_BITMAPS 4305d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 4315d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 4325d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 4335d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 4345d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Define TT_CONFIG_OPTION_POSTSCRIPT_NAMES if you want to be able to */ 4355d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* load and enumerate the glyph Postscript names in a TrueType or */ 4365d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* OpenType file. */ 4375d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 4385d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Note that when you do not compile the `PSNames' module by undefining */ 4395d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* the above FT_CONFIG_OPTION_POSTSCRIPT_NAMES, the `sfnt' module will */ 4405d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* contain additional code used to read the PS Names table from a font. */ 4415d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 4425d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* (By default, the module uses `PSNames' to extract glyph names.) */ 4435d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 4445d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define TT_CONFIG_OPTION_POSTSCRIPT_NAMES 4455d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 4465d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 4475d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 4485d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 4495d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Define TT_CONFIG_OPTION_SFNT_NAMES if your applications need to */ 4505d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* access the internal name table in a SFNT-based format like TrueType */ 4515d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* or OpenType. The name table contains various strings used to */ 4525d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* describe the font, like family name, copyright, version, etc. It */ 4535d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* does not contain any glyph name though. */ 4545d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 4555d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Accessing SFNT names is done through the functions declared in */ 4565d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* `freetype/ftsnames.h'. */ 4575d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 4585d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define TT_CONFIG_OPTION_SFNT_NAMES 4595d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 4605d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 4615d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 4625d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 4635d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* TrueType CMap support */ 4645d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 4655d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Here you can fine-tune which TrueType CMap table format shall be */ 4665d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* supported. */ 4675d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define TT_CONFIG_CMAP_FORMAT_0 4685d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define TT_CONFIG_CMAP_FORMAT_2 4695d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define TT_CONFIG_CMAP_FORMAT_4 4705d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define TT_CONFIG_CMAP_FORMAT_6 4715d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define TT_CONFIG_CMAP_FORMAT_8 4725d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define TT_CONFIG_CMAP_FORMAT_10 4735d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define TT_CONFIG_CMAP_FORMAT_12 4745d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define TT_CONFIG_CMAP_FORMAT_13 4755d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define TT_CONFIG_CMAP_FORMAT_14 4765d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 4775d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 4785d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 4795d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 4805d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /**** ****/ 4815d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /**** 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 ****/ 4825d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /**** ****/ 4835d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 4845d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 4855d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 4865d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 4875d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 4885d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Define TT_CONFIG_OPTION_BYTECODE_INTERPRETER if you want to compile */ 4895d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* a bytecode interpreter in the TrueType driver. Note that there are */ 4905d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* important patent issues related to the use of the interpreter. */ 4915d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 4925d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* By undefining this, you will only compile the code necessary to load */ 4935d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* TrueType glyphs without hinting. */ 4945d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 4955d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Do not #undef this macro here, since the build system might */ 4965d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* define it for certain configurations only. */ 4975d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 4985d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define TT_CONFIG_OPTION_BYTECODE_INTERPRETER 4995d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 5005d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 5015d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 5025d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 5035d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* If you define TT_CONFIG_OPTION_UNPATENTED_HINTING, a special version */ 5045d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* of the TrueType bytecode interpreter is used that doesn't implement */ 5055d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* any of the patented opcodes and algorithms. Note that the */ 5065d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* TT_CONFIG_OPTION_UNPATENTED_HINTING macro is *ignored* if you define */ 5075d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* TT_CONFIG_OPTION_BYTECODE_INTERPRETER; in other words, either define */ 5085d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* TT_CONFIG_OPTION_BYTECODE_INTERPRETER or */ 5095d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* TT_CONFIG_OPTION_UNPATENTED_HINTING but not both at the same time. */ 5105d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 5115d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* This macro is only useful for a small number of font files (mostly */ 5125d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* for Asian scripts) that require bytecode interpretation to properly */ 5135d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* load glyphs. For all other fonts, this produces unpleasant results, */ 5145d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* thus the unpatented interpreter is never used to load glyphs from */ 5155d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* TrueType fonts unless one of the following two options is used. */ 5165d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 5175d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* - The unpatented interpreter is explicitly activated by the user */ 5185d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* through the FT_PARAM_TAG_UNPATENTED_HINTING parameter tag */ 5195d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* when opening the FT_Face. */ 5205d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 5215d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* - FreeType detects that the FT_Face corresponds to one of the */ 5225d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* `trick' fonts (e.g., `Mingliu') it knows about. The font engine */ 5235d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* contains a hard-coded list of font names and other matching */ 5245d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* parameters (see function `tt_face_init' in file */ 5255d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* `src/truetype/ttobjs.c'). */ 5265d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 5275d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Here a sample code snippet for using FT_PARAM_TAG_UNPATENTED_HINTING. */ 5285d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 5295d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* { */ 5305d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* FT_Parameter parameter; */ 5315d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* FT_Open_Args open_args; */ 5325d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 5335d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 5345d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* parameter.tag = FT_PARAM_TAG_UNPATENTED_HINTING; */ 5355d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 5365d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* open_args.flags = FT_OPEN_PATHNAME | FT_OPEN_PARAMS; */ 5375d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* open_args.pathname = my_font_pathname; */ 5385d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* open_args.num_params = 1; */ 5395d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* open_args.params = ¶meter; */ 5405d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 5415d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* error = FT_Open_Face( library, &open_args, index, &face ); */ 5425d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* ... */ 5435d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* } */ 5445d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 5455d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define TT_CONFIG_OPTION_UNPATENTED_HINTING 5465d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 5475d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 5485d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 5495d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 5505d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Define TT_CONFIG_OPTION_INTERPRETER_SWITCH to compile the TrueType */ 5515d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* bytecode interpreter with a huge switch statement, rather than a call */ 5525d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* table. This results in smaller and faster code for a number of */ 5535d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* architectures. */ 5545d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 5555d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Note however that on some compiler/processor combinations, undefining */ 5565d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* this macro will generate faster, though larger, code. */ 5575d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 5585d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define TT_CONFIG_OPTION_INTERPRETER_SWITCH 5595d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 5605d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 5615d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 5625d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 5635d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Define TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED to compile the */ 5645d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* TrueType glyph loader to use Apple's definition of how to handle */ 5655d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* component offsets in composite glyphs. */ 5665d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 5675d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Apple and MS disagree on the default behavior of component offsets */ 5685d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* in composites. Apple says that they should be scaled by the scaling */ 5695d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* factors in the transformation matrix (roughly, it's more complex) */ 5705d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* while MS says they should not. OpenType defines two bits in the */ 5715d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* composite flags array which can be used to disambiguate, but old */ 5725d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* fonts will not have them. */ 5735d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 5745d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* http://partners.adobe.com/asn/developer/opentype/glyf.html */ 5755d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* http://fonts.apple.com/TTRefMan/RM06/Chap6glyf.html */ 5765d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 5775d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#undef TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED 5785d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 5795d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 5805d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 5815d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 5825d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Define TT_CONFIG_OPTION_GX_VAR_SUPPORT if you want to include */ 5835d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* support for Apple's distortable font technology (fvar, gvar, cvar, */ 5845d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* and avar tables). This has many similarities to Type 1 Multiple */ 5855d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Masters support. */ 5865d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 5875d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define TT_CONFIG_OPTION_GX_VAR_SUPPORT 5885d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 5895d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 5905d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 5915d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 5925d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Define TT_CONFIG_OPTION_BDF if you want to include support for */ 5935d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* an embedded `BDF ' table within SFNT-based bitmap formats. */ 5945d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 5955d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define TT_CONFIG_OPTION_BDF 5965d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 5975d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 5985d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 5995d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 6005d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /**** ****/ 6015d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /**** T Y P E 1 D R I V E R C O N F I G U R A T I O N ****/ 6025d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /**** ****/ 6035d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 6045d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 6055d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 6065d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 6075d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 6085d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 6095d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* T1_MAX_DICT_DEPTH is the maximal depth of nest dictionaries and */ 6105d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* arrays in the Type 1 stream (see t1load.c). A minimum of 4 is */ 6115d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* required. */ 6125d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 6135d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define T1_MAX_DICT_DEPTH 5 6145d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 6155d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 6165d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 6175d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 6185d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* T1_MAX_SUBRS_CALLS details the maximum number of nested sub-routine */ 6195d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* calls during glyph loading. */ 6205d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 6215d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define T1_MAX_SUBRS_CALLS 16 6225d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 6235d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 6245d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 6255d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 6265d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* T1_MAX_CHARSTRING_OPERANDS is the charstring stack's capacity. A */ 6275d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* minimum of 16 is required. */ 6285d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 6295d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* The Chinese font MingTiEG-Medium (CNS 11643 character set) needs 256. */ 6305d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 6315d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define T1_MAX_CHARSTRINGS_OPERANDS 256 6325d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 6335d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 6345d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 6355d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 6365d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Define this configuration macro if you want to prevent the */ 6375d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* compilation of `t1afm', which is in charge of reading Type 1 AFM */ 6385d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* files into an existing face. Note that if set, the T1 driver will be */ 6395d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* unable to produce kerning distances. */ 6405d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 6415d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#undef T1_CONFIG_OPTION_NO_AFM 6425d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 6435d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 6445d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 6455d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 6465d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Define this configuration macro if you want to prevent the */ 6475d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* compilation of the Multiple Masters font support in the Type 1 */ 6485d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* driver. */ 6495d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 6505d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#undef T1_CONFIG_OPTION_NO_MM_SUPPORT 6515d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 6525d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 6535d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 6545d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 6555d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /**** ****/ 6565d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /**** A U T O F I T M O D U L E C O N F I G U R A T I O N ****/ 6575d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /**** ****/ 6585d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 6595d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 6605d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 6615d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 6625d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 6635d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 6645d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Compile autofit module with CJK (Chinese, Japanese, Korean) script */ 6655d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* support. */ 6665d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 6675d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define AF_CONFIG_OPTION_CJK 6685d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 6695d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /*************************************************************************/ 6705d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 6715d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* Compile autofit module with Indic script support. */ 6725d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 6735d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define AF_CONFIG_OPTION_INDIC 6745d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 6755d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* */ 6765d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 6775d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 6785d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* 6795d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) * Define this variable if you want to keep the layout of internal 6805d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) * structures that was used prior to FreeType 2.2. This also compiles in 6815d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) * a few obsolete functions to avoid linking problems on typical Unix 6825d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) * distributions. 6835d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) * 6845d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) * For embedded systems or building a new distribution from scratch, it 6855d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) * is recommended to disable the macro since it reduces the library's code 6865d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) * size and activates a few memory-saving optimizations as well. 6875d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) */ 6885d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define FT_CONFIG_OPTION_OLD_INTERNALS 6895d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 6905d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 6915d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) /* 6925d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) * This macro is defined if either unpatented or native TrueType 6935d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) * hinting is requested by the definitions above. 6945d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) */ 6955d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER 6965d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define TT_USE_BYTECODE_INTERPRETER 6975d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#undef TT_CONFIG_OPTION_UNPATENTED_HINTING 6985d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#elif defined TT_CONFIG_OPTION_UNPATENTED_HINTING 6995d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define TT_USE_BYTECODE_INTERPRETER 7005d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#endif 7015d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 7025d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)FT_END_HEADER 7035d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 7045d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 7055d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#endif /* __FTOPTION_H__ */ 7065d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 7075d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 7085d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)/* END */ 709