Disable patented bytecode interpreter, will investigate the non-patented configuration.
[reactos.git] / reactos / lib / freetype / include / freetype / config / ftoption.h
index 4e3457f..3e93dbe 100644 (file)
@@ -4,7 +4,7 @@
 /*                                                                         */
 /*    User-selectable configuration macros (specification only).           */
 /*                                                                         */
-/*  Copyright 1996-2001, 2002 by                                           */
+/*  Copyright 1996-2001, 2002, 2003, 2004, 2005 by                         */
 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
 /*                                                                         */
 /*  This file is part of the FreeType project, and may only be used,       */
@@ -81,32 +81,46 @@ FT_BEGIN_HEADER
   /* by FreeType to speed up some computations.  However, this will create */
   /* some problems when compiling the library in strict ANSI mode.         */
   /*                                                                       */
-  /* For this reason, the use of 64-bit ints is normally disabled when     */
+  /* For this reason, the use of 64-bit integers is normally disabled when */
   /* the __STDC__ macro is defined.  You can however disable this by       */
-  /* defining here the macro FT_CONFIG_OPTION_FORCE_INT64.                 */
+  /* defining the macro FT_CONFIG_OPTION_FORCE_INT64 here.                 */
   /*                                                                       */
-  /* For most compilers, this will only create compilation warnings        */
-  /* when building the library.                                            */
+  /* For most compilers, this will only create compilation warnings when   */
+  /* building the library.                                                 */
   /*                                                                       */
   /* ObNote: The compiler-specific 64-bit integers are detected in the     */
-  /*         file "ftconfig.h" either statically, or through Autoconf      */
-  /*         on platforms that support it.                                 */
+  /*         file "ftconfig.h" either statically or through the            */
+  /*         `configure' script on supported platforms.                    */
   /*                                                                       */
 #undef  FT_CONFIG_OPTION_FORCE_INT64
 
 
+  /*************************************************************************/
+  /*                                                                       */
+  /* LZW-compressed file support.                                          */
+  /*                                                                       */
+  /*   FreeType now handles font files that have been compressed with the  */
+  /*   'compress' program.  This is mostly used to parse many of the PCF   */
+  /*   files that come with various X11 distributions.  The implementation */
+  /*   uses NetBSD's `zopen' to partially uncompress the file on the fly   */
+  /*   (see src/lzw/ftgzip.c).                                             */
+  /*                                                                       */
+  /*   Define this macro if you want to enable this `feature'.             */
+  /*                                                                       */
+#define FT_CONFIG_OPTION_USE_LZW
+
+
   /*************************************************************************/
   /*                                                                       */
   /* Gzip-compressed file support.                                         */
   /*                                                                       */
   /*   FreeType now handles font files that have been compressed with the  */
-  /*   'gzip' program. This is mostly used to parse many of the PCF files  */
-  /*   that come with XFree86. The implementation uses 'zlib' to           */
-  /*   partially uncompress the file on the fly (see src/base/ftgzip.c).   */
+  /*   'gzip' program.  This is mostly used to parse many of the PCF files */
+  /*   that come with XFree86.  The implementation uses `zlib' to          */
+  /*   partially uncompress the file on the fly (see src/gzip/ftgzip.c).   */
   /*                                                                       */
-  /*   Define this macro if you want to enable this "feature". Note that   */
-  /*   this will however force you to link the zlib to any program that    */
-  /*   also uses FreeType.                                                 */
+  /*   Define this macro if you want to enable this `feature'.  See also   */
+  /*   the macro FT_CONFIG_OPTION_SYSTEM_ZLIB below.                       */
   /*                                                                       */
 #define FT_CONFIG_OPTION_USE_ZLIB
 
@@ -116,18 +130,18 @@ FT_BEGIN_HEADER
   /* ZLib library selection                                                */
   /*                                                                       */
   /*   This macro is only used when FT_CONFIG_OPTION_USE_ZLIB is defined.  */
-  /*   It allows FreeType's "ftgzip" component to link to the system's     */
-  /*   installation of the ZLib library. This is useful on systems like    */
+  /*   It allows FreeType's `ftgzip' component to link to the system's     */
+  /*   installation of the ZLib library.  This is useful on systems like   */
   /*   Unix or VMS where it generally is already available.                */
   /*                                                                       */
   /*   If you let it undefined, the component will use its own copy        */
-  /*   of the zlib sources instead. These have been modified to be         */
+  /*   of the zlib sources instead.  These have been modified to be        */
   /*   included directly within the component and *not* export external    */
-  /*   function names. This allows you to link any program with FreeType   */
+  /*   function names.  This allows you to link any program with FreeType  */
   /*   _and_ ZLib without linking conflicts.                               */
   /*                                                                       */
-  /*   do not #undef this macro here, since the build system might         */
-  /*   define for certain configurations                                   */
+  /*   Do not #undef this macro here since the build system might define   */
+  /*   it for certain configurations only.                                 */
   /*                                                                       */
 /* #define  FT_CONFIG_OPTION_SYSTEM_ZLIB */
 
@@ -167,6 +181,9 @@ FT_BEGIN_HEADER
   /*   will be later automatically defined as `extern return_type' to      */
   /*   allow normal compilation.                                           */
   /*                                                                       */
+  /*   Do not #undef these macros here since the build system might define */
+  /*   them for certain configurations only.                               */
+  /*                                                                       */
 /* #define  FT_EXPORT(x)       extern x */
 /* #define  FT_EXPORT_DEF(x)   x */
 
@@ -214,6 +231,42 @@ FT_BEGIN_HEADER
 #define FT_CONFIG_OPTION_ADOBE_GLYPH_LIST
 
 
+  /*************************************************************************/
+  /*                                                                       */
+  /* Support for Mac fonts                                                 */
+  /*                                                                       */
+  /*   Define this macro if you want support for outline fonts in Mac      */
+  /*   format (mac dfont, mac resource, macbinary containing a mac         */
+  /*   resource) on non-Mac platforms.                                     */
+  /*                                                                       */
+  /*   Note that the `FOND' resource isn't checked.                        */
+  /*                                                                       */
+#define FT_CONFIG_OPTION_MAC_FONTS
+
+
+  /*************************************************************************/
+  /*                                                                       */
+  /* Guessing methods to access embedded resource forks                    */
+  /*                                                                       */
+  /*   Enable extra Mac fonts support on non-Mac platforms (e.g.           */
+  /*   GNU/Linux).                                                         */
+  /*                                                                       */
+  /*   Resource forks which include fonts data are stored sometimes in     */
+  /*   locations which users or developers don't expected.  In some cases, */
+  /*   resource forks start with some offset from the head of a file.  In  */
+  /*   other cases, the actual resource fork is stored in file different   */
+  /*   from what the user specifies.  If this option is activated,         */
+  /*   FreeType tries to guess whether such offsets or different file      */
+  /*   names must be used.                                                 */
+  /*                                                                       */
+  /*   Note that normal, direct access of resource forks is controlled via */
+  /*   the FT_CONFIG_OPTION_MAC_FONTS option.                              */
+  /*                                                                       */
+#ifdef FT_CONFIG_OPTION_MAC_FONTS
+#define FT_CONFIG_OPTION_GUESSING_EMBEDDED_RFORK
+#endif
+
+
   /*************************************************************************/
   /*                                                                       */
   /* Allow the use of FT_Incremental_Interface to load typefaces that      */
@@ -221,7 +274,7 @@ FT_BEGIN_HEADER
   /* This allows FreeType to be used with the PostScript language, using   */
   /* the GhostScript interpreter.                                          */
   /*                                                                       */
-/* #define  FT_CONFIG_OPTION_INCREMENTAL */
+/* #define FT_CONFIG_OPTION_INCREMENTAL */
 
 
   /*************************************************************************/
@@ -229,7 +282,7 @@ FT_BEGIN_HEADER
   /* The size in bytes of the render pool used by the scan-line converter  */
   /* to do all of its work.                                                */
   /*                                                                       */
-  /* This must be greater than 4kByte.                                     */
+  /* This must be greater than 4KByte.                                     */
   /*                                                                       */
 #define FT_RENDER_POOL_SIZE  16384L
 
@@ -258,8 +311,11 @@ FT_BEGIN_HEADER
   /*                                                                       */
   /*   Don't define any of these macros to compile in `release' mode!      */
   /*                                                                       */
-/* #define  FT_DEBUG_LEVEL_ERROR */
-/* #define  FT_DEBUG_LEVEL_TRACE */
+  /*   Do not #undef these macros here since the build system might define */
+  /*   them for certain configurations only.                               */
+  /*                                                                       */
+/* #define FT_DEBUG_LEVEL_ERROR */
+/* #define FT_DEBUG_LEVEL_TRACE */
 
 
   /*************************************************************************/
@@ -272,10 +328,12 @@ FT_BEGIN_HEADER
   /*   should define FT_DEBUG_MEMORY here.                                 */
   /*                                                                       */
   /*   Note that the memory debugger is only activated at runtime when     */
-  /*   when the _environment_ variable "FT_DEBUG_MEMORY" is also defined!  */
+  /*   when the _environment_ variable "FT2_DEBUG_MEMORY" is defined also! */
   /*                                                                       */
-/* #define  FT_DEBUG_MEMORY */
-
+  /*   Do not #undef this macro here since the build system might define   */
+  /*   it for certain configurations only.                                 */
+  /*                                                                       */
+/* #define FT_DEBUG_MEMORY */
 
 
   /*************************************************************************/
@@ -375,10 +433,22 @@ FT_BEGIN_HEADER
   /* By undefining this, you will only compile the code necessary to load  */
   /* TrueType glyphs without hinting.                                      */
   /*                                                                       */
-  /*   do not #undef this macro here, since the build system might         */
-  /*   define for certain configurations                                   */
+  /*   Do not #undef this macro here, since the build system might         */
+  /*   define it for certain configurations only.                          */
+  /*                                                                       */
+//#define TT_CONFIG_OPTION_BYTECODE_INTERPRETER
+
+
+  /*************************************************************************/
+  /*                                                                       */
+  /* Define TT_CONFIG_OPTION_UNPATENTED_HINTING (in addition to            */
+  /* TT_CONFIG_OPTION_BYTECODE_INTERPRETER) to compile the unpatented      */
+  /* work-around hinting system.  Note that for the moment, the algorithm  */
+  /* is only used when selected at runtime through the parameter tag       */
+  /* FT_PARAM_TAG_UNPATENTED_HINTING; or when the debug hook               */
+  /* FT_DEBUG_HOOK_UNPATENTED_HINTING is globally activated.               */
   /*                                                                       */
-/* #define  TT_CONFIG_OPTION_BYTECODE_INTERPRETER */
+//#define TT_CONFIG_OPTION_UNPATENTED_HINTING
 
 
   /*************************************************************************/
@@ -413,6 +483,16 @@ FT_BEGIN_HEADER
 #undef TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED
 
 
+  /*************************************************************************/
+  /*                                                                       */
+  /* Define TT_CONFIG_OPTION_GX_VAR_SUPPORT if you want to include         */
+  /* support for Apple's distortable font technology (fvar, gvar, cvar,    */
+  /* and avar tables).  This has many similarities to Type 1 Multiple      */
+  /* Masters support.                                                      */
+  /*                                                                       */
+#define TT_CONFIG_OPTION_GX_VAR_SUPPORT
+
+
   /*************************************************************************/
   /*************************************************************************/
   /****                                                                 ****/
@@ -470,23 +550,11 @@ FT_BEGIN_HEADER
  /* */
 
 /*
- * the FT_CONFIG_OPTION_CHESTER_XXXX macros are used to toggle some recent
- * improvements to the auto-hinter contributed by David Chester. They will
- * most likely disappear completely in the next release. For now, you should
- * always keep them defined
+ * This temporary macro is used to control various optimizations for
+ * reducing the heap footprint of memory-mapped TrueType files.
  *
  */
-#define  FT_CONFIG_OPTION_CHESTER_HINTS
-
-#ifdef   FT_CONFIG_OPTION_CHESTER_HINTS
-
-#  define  FT_CONFIG_CHESTER_SMALL_F
-#  define  FT_CONFIG_CHESTER_ASCENDER
-#  define  FT_CONFIG_CHESTER_SERIF
-#  define  FT_CONFIG_CHESTER_STEM
-#  define  FT_CONFIG_CHESTER_BLUE_SCALE
-
-#endif /* FT_CONFIG_OPTION_CHESTER_HINTS */
+/* #define  FT_OPTIMIZE_MEMORY */
 
 FT_END_HEADER