Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | RSS feed

  1. /***************************************************************************/
  2. /*                                                                         */
  3. /*  ftgasp.h                                                               */
  4. /*                                                                         */
  5. /*    Access of TrueType's `gasp' table (specification).                   */
  6. /*                                                                         */
  7. /*  Copyright 2007, 2008 by                                                */
  8. /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
  9. /*                                                                         */
  10. /*  This file is part of the FreeType project, and may only be used,       */
  11. /*  modified, and distributed under the terms of the FreeType project      */
  12. /*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
  13. /*  this file you indicate that you have read the license and              */
  14. /*  understand and accept it fully.                                        */
  15. /*                                                                         */
  16. /***************************************************************************/
  17.  
  18.  
  19. #ifndef _FT_GASP_H_
  20. #define _FT_GASP_H_
  21.  
  22. #include <ft2build.h>
  23. #include FT_FREETYPE_H
  24.  
  25. #ifdef FREETYPE_H
  26. #error "freetype.h of FreeType 1 has been loaded!"
  27. #error "Please fix the directory search order for header files"
  28. #error "so that freetype.h of FreeType 2 is found first."
  29. #endif
  30.  
  31.  
  32.   /***************************************************************************
  33.    *
  34.    * @section:
  35.    *   gasp_table
  36.    *
  37.    * @title:
  38.    *   Gasp Table
  39.    *
  40.    * @abstract:
  41.    *   Retrieving TrueType `gasp' table entries.
  42.    *
  43.    * @description:
  44.    *   The function @FT_Get_Gasp can be used to query a TrueType or OpenType
  45.    *   font for specific entries in its `gasp' table, if any.  This is
  46.    *   mainly useful when implementing native TrueType hinting with the
  47.    *   bytecode interpreter to duplicate the Windows text rendering results.
  48.    */
  49.  
  50.   /*************************************************************************
  51.    *
  52.    * @enum:
  53.    *   FT_GASP_XXX
  54.    *
  55.    * @description:
  56.    *   A list of values and/or bit-flags returned by the @FT_Get_Gasp
  57.    *   function.
  58.    *
  59.    * @values:
  60.    *   FT_GASP_NO_TABLE ::
  61.    *     This special value means that there is no GASP table in this face.
  62.    *     It is up to the client to decide what to do.
  63.    *
  64.    *   FT_GASP_DO_GRIDFIT ::
  65.    *     Grid-fitting and hinting should be performed at the specified ppem.
  66.    *     This *really* means TrueType bytecode interpretation.
  67.    *
  68.    *   FT_GASP_DO_GRAY ::
  69.    *     Anti-aliased rendering should be performed at the specified ppem.
  70.    *
  71.    *   FT_GASP_SYMMETRIC_SMOOTHING ::
  72.    *     Smoothing along multiple axes must be used with ClearType.
  73.    *
  74.    *   FT_GASP_SYMMETRIC_GRIDFIT ::
  75.    *     Grid-fitting must be used with ClearType's symmetric smoothing.
  76.    *
  77.    * @note:
  78.    *   `ClearType' is Microsoft's implementation of LCD rendering, partly
  79.    *   protected by patents.
  80.    *
  81.    * @since:
  82.    *   2.3.0
  83.    */
  84. #define FT_GASP_NO_TABLE               -1
  85. #define FT_GASP_DO_GRIDFIT           0x01
  86. #define FT_GASP_DO_GRAY              0x02
  87. #define FT_GASP_SYMMETRIC_SMOOTHING  0x08
  88. #define FT_GASP_SYMMETRIC_GRIDFIT    0x10
  89.  
  90.  
  91.   /*************************************************************************
  92.    *
  93.    * @func:
  94.    *   FT_Get_Gasp
  95.    *
  96.    * @description:
  97.    *   Read the `gasp' table from a TrueType or OpenType font file and
  98.    *   return the entry corresponding to a given character pixel size.
  99.    *
  100.    * @input:
  101.    *   face :: The source face handle.
  102.    *   ppem :: The vertical character pixel size.
  103.    *
  104.    * @return:
  105.    *   Bit flags (see @FT_GASP_XXX), or @FT_GASP_NO_TABLE if there is no
  106.    *   `gasp' table in the face.
  107.    *
  108.    * @since:
  109.    *   2.3.0
  110.    */
  111.   FT_EXPORT( FT_Int )
  112.   FT_Get_Gasp( FT_Face  face,
  113.                FT_UInt  ppem );
  114.  
  115. /* */
  116.  
  117. #endif /* _FT_GASP_H_ */
  118.  
  119.  
  120. /* END */
  121.