shithub: freetype+ttf2subf

ref: 0f99ddda5f236479edd55f9233dd4ade1d76f646
dir: /config/ftoption.h/

View raw version
/***************************************************************************/
/*                                                                         */
/*  ftoption.h                                                             */
/*                                                                         */
/*    User-selectable configuration macros.                                */
/*                                                                         */
/*  Copyright 1996-2000 by                                                 */
/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
/*                                                                         */
/*  This file is part of the FreeType project, and may only be used        */
/*  modified and distributed under the terms of the FreeType project       */
/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
/*  this file you indicate that you have read the license and              */
/*  understand and accept it fully.                                        */
/*                                                                         */
/***************************************************************************/

#ifndef FTOPTION_H
#define FTOPTION_H

  /*************************************************************************/
  /*                                                                       */
  /*                 USER-SELECTABLE CONFIGURATION MACROS                  */
  /*                                                                       */
  /* These macros can be toggled by developers to enable or disable        */
  /* certain aspects of FreeType. This is a default file, where all major  */
  /* options are enabled.                                                  */
  /*                                                                       */
  /* Note that if some modifications are required for your build, we       */
  /* advise you to put a modified copy of this file in your build          */
  /* directory, rather than modifying it in-place.                         */
  /*                                                                       */
  /* The build directory is normally "freetype/config/<system>" and        */
  /* contains build or system-specific files that are included in          */
  /* priority when building the library.                                   */
  /*                                                                       */
  /*************************************************************************/


  /*************************************************************************/
  /*                                                                       */
  /* Alternate Glyph Image Format support                                  */
  /*                                                                       */
  /*   By default, the glyph images returned by the FreeType glyph loader  */
  /*   can either be a pixmap or a vectorial outline defined through       */
  /*   bezier control points. When defining the following configuration    */
  /*   macro, some font drivers will be able to register alternate         */
  /*   glyph image formats.                                                */
  /*                                                                       */
  /*   Unset this macro if you're sure that you'll never use a font driver */
  /*   with an alternate glyph format, this will reduce the size of the    */
  /*   base layer code.                                                    */
  /*                                                                       */
  /*   Note that a few Type 1 fonts, as well as Windows "Vector" fonts     */
  /*   use a vector "plotter" format that isn't supported when this        */
  /*   macro is undefined..                                                */
  /*                                                                       */
#define FT_CONFIG_OPTION_ALTERNATE_GLYPH_FORMATS


  /*************************************************************************/
  /*                                                                       */
  /* Glyph Postscript Names handling                                       */
  /*                                                                       */
  /*   By default, FreeType 2 is built with the "psnames" module compiled  */
  /*   in. This module is in charge of converting a glyph name string into */
  /*   a Unicode value, or return a Macintosh standard glyph name for the  */
  /*   use with the TrueType "post" table.                                 */
  /*                                                                       */
  /*   Undefine this macro if you do not want the "psnames" compiled in    */
  /*   your build of FreeType. This has the following effects :            */
  /*                                                                       */
  /*   - the TrueType driver will provide its own set of glyph names,      */
  /*     if you build it to support postscript names in the TrueType       */
  /*     "post" table.                                                     */
  /*                                                                       */
  /*   - the Type 1 driver will not be able to synthetize a                */
  /*     Unicode charmap out of the glyphs found in the fonts.             */
  /*                                                                       */
  /*   You would normally undefine this configuration macro when           */
  /*   building a version of FreeType that doesn't contain a Type 1        */
  /*   or CFF driver.                                                      */
  /*                                                                       */
#define FT_CONFIG_OPTION_POSTSCRIPT_NAMES


  /*************************************************************************/
  /*                                                                       */
  /* Postscript Names to Unicode Values support                            */
  /*                                                                       */
  /*   By default, FreeType 2 is built with the "psnames" module compiled  */
  /*   in. Among other things, the module is used to convert a glyph       */
  /*   name into a unicode value. This is especially useful in order to    */
  /*   synthetize on the fly a Unicode charmap from the CFF/Type 1 driver  */
  /*   through a big table named the "Adobe Glyph List".                   */
  /*                                                                       */
  /*   Undefine this macro if you do not want the Adobe Glyph List         */
  /*   compiled in your "psnames" module. The Type 1 driver will not       */
  /*   be able to synthetize a Unicode charmap out of the glyphs found     */
  /*   in the fonts..                                                      */
  /*                                                                       */
#define FT_CONFIG_OPTION_ADOBE_GLYPH_LIST


  /*************************************************************************/
  /*                                                                       */
  /* many compilers provide the non-ANSI 'long long' 64-bit type.  You can */
  /* activate it by defining the FTCALC_USE_LONG_LONG macro in `ftoption.h'*/
  /* Note that this will produce many -ansi warnings during library        */
  /* compilation, and that in many cases, the generated code will not be   */
  /* smaller or faster !!                                                  */
  /*                                                                       */
#undef FTCALC_USE_LONG_LONG


  /*************************************************************************/
  /*                                                                       */
  /* When compiling FreeType as a DLL, some systems/compilers need a       */
  /* special keyword in front of each function definition instead of       */
  /* `extern'.                                                             */
  /*                                                                       */
  /* The macros EXPORT_DEF and EXPORT_FUNC are thus used to define         */
  /* exported library function interfaces and exported library functions   */
  /* implementations respectively.                                         */
  /*                                                                       */
  /* If not defined here, they automatically default to `extern' and void  */
  /* later in this header file.                                            */
  /*                                                                       */
#undef EXPORT_DEF
#undef EXPORT_FUNC


  /*************************************************************************/
  /*                                                                       */
  /* Debug level                                                           */
  /*                                                                       */
  /*   FreeType can be compiled in debug or trace mode.  In debug mode,    */
  /*   errors are reported through the `ftdebug' component.  In trace      */
  /*   mode, additional messages are sent to the standard output during    */
  /*   execution.                                                          */
  /*                                                                       */
  /*   Define FT_DEBUG_LEVEL_ERROR to build the library in debug mode.     */
  /*   Define FT_DEBUG_LEVEL_TRACE to build it in trace mode.              */
  /*                                                                       */
  /*   Don't define any of these macros to compile in `release' mode.      */
  /*                                                                       */
#undef  FT_DEBUG_LEVEL_ERROR
#undef  FT_DEBUG_LEVEL_TRACE


  /*************************************************************************/
  /*                                                                       */
  /* Anti-aliasing support                                                 */
  /*                                                                       */
  /*   Undefine this macro only if you want to disable the anti-aliasing   */
  /*   support in FreeType.  This will save you about 5 Kb of code.  It    */
  /*   may be important for some embedded systems.                         */
  /*                                                                       */
#define FT_CONFIG_OPTION_ANTI_ALIAS


  /*************************************************************************/
  /*                                                                       */
  /* Endianess performance improvement                                     */
  /*                                                                       */
  /*   FreeType is completely endian-independent, and can thus be compiled */
  /*   directly on _any_ machine.  However, some components of the library */
  /*   provide improved routines for the cases where endianess is known.   */
  /*                                                                       */
  /*   It usually results in speed-ups and reduced code size.  Note that   */
  /*   you should not define both of these macros.                         */
  /*                                                                       */
  /*                                                                       */
  /*   NOTE: For now, only the scan-line converter (base/ftraster.c) uses  */
  /*         these macros to speed-up some anti-alias rendering routines.  */
  /*                                                                       */
#undef  FT_CONFIG_OPTION_LITTLE_ENDIAN
#undef  FT_CONFIG_OPTION_BIG_ENDIAN


  /*************************************************************************/
  /*                                                                       */
  /*    The size in bytes of the render pool used by the scan-line         */
  /*    converter to do all of its work.                                   */
  /*                                                                       */
  /*    This must be greater than 4 Kb                                     */
  /*                                                                       */
#define FT_RENDER_POOL_SIZE   8192


  /*************************************************************************/
  /*                                                                       */
  /*    FT_MAX_DRIVERS                                                     */
  /*                                                                       */
  /*    The maximum number of font drivers that can be registered in a     */
  /*    single FreeType library object.  8 seems to be a good choice due   */
  /*    to the relative low actual number of drivers ;-)                   */
  /*                                                                       */
  /*    If you don't intend to register new drivers at runtime, you        */
  /*    certainly do not need to change this value..                       */
  /*                                                                       */
#define FT_MAX_DRIVERS  8


  /*************************************************************************/
  /*                                                                       */
  /*    FT_MAX_EXTENSIONS                                                  */
  /*                                                                       */
  /*    The maximum number of extensions that can be registered in a       */
  /*    single font driver. 8 seems to be a good choice for now..          */
  /*                                                                       */
  /*    If you don't know what this means, you certainly do not need to    */
  /*    change this value..                                                */
  /*                                                                       */
#define FT_MAX_EXTENSIONS  8


  /*************************************************************************/
  /*                                                                       */
  /*    FT_MAX_GLYPH_FORMATS                                               */
  /*                                                                       */
  /*    The maximum number of glyph image formats that might be registered */
  /*    in a given library instance. 8 seems to be a good choice due to    */
  /*    the relatively low number of current formats ;-)                   */
  /*                                                                       */
#define FT_MAX_GLYPH_FORMATS  8


#endif /* FTOPTION_H */