modules/freetype2/include/ftgasp.h

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     1 /***************************************************************************/
     2 /*                                                                         */
     3 /*  ftgasp.h                                                               */
     4 /*                                                                         */
     5 /*    Access of TrueType's `gasp' table (specification).                   */
     6 /*                                                                         */
     7 /*  Copyright 2007, 2008, 2011 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 /***************************************************************************/
    19 #ifndef _FT_GASP_H_
    20 #define _FT_GASP_H_
    22 #include <ft2build.h>
    23 #include FT_FREETYPE_H
    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
    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    */
    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.  If this bit
    67    *     is not set, no hinting gets applied.
    68    *
    69    *   FT_GASP_DO_GRAY ::
    70    *     Anti-aliased rendering should be performed at the specified ppem.
    71    *     If not set, do monochrome rendering.
    72    *
    73    *   FT_GASP_SYMMETRIC_SMOOTHING ::
    74    *     If set, smoothing along multiple axes must be used with ClearType.
    75    *
    76    *   FT_GASP_SYMMETRIC_GRIDFIT ::
    77    *     Grid-fitting must be used with ClearType's symmetric smoothing.
    78    *
    79    * @note:
    80    *   The bit-flags `FT_GASP_DO_GRIDFIT' and `FT_GASP_DO_GRAY' are to be
    81    *   used for standard font rasterization only.  Independently of that,
    82    *   `FT_GASP_SYMMETRIC_SMOOTHING' and `FT_GASP_SYMMETRIC_GRIDFIT' are to
    83    *   be used if ClearType is enabled (and `FT_GASP_DO_GRIDFIT' and
    84    *   `FT_GASP_DO_GRAY' are consequently ignored).
    85    *
    86    *   `ClearType' is Microsoft's implementation of LCD rendering, partly
    87    *   protected by patents.
    88    *
    89    * @since:
    90    *   2.3.0
    91    */
    92 #define FT_GASP_NO_TABLE               -1
    93 #define FT_GASP_DO_GRIDFIT           0x01
    94 #define FT_GASP_DO_GRAY              0x02
    95 #define FT_GASP_SYMMETRIC_SMOOTHING  0x08
    96 #define FT_GASP_SYMMETRIC_GRIDFIT    0x10
    99   /*************************************************************************
   100    *
   101    * @func:
   102    *   FT_Get_Gasp
   103    *
   104    * @description:
   105    *   Read the `gasp' table from a TrueType or OpenType font file and
   106    *   return the entry corresponding to a given character pixel size.
   107    *
   108    * @input:
   109    *   face :: The source face handle.
   110    *   ppem :: The vertical character pixel size.
   111    *
   112    * @return:
   113    *   Bit flags (see @FT_GASP_XXX), or @FT_GASP_NO_TABLE if there is no
   114    *   `gasp' table in the face.
   115    *
   116    * @since:
   117    *   2.3.0
   118    */
   119   FT_EXPORT( FT_Int )
   120   FT_Get_Gasp( FT_Face  face,
   121                FT_UInt  ppem );
   123 /* */
   125 #endif /* _FT_GASP_H_ */
   128 /* END */

mercurial