modules/freetype2/include/ftpfr.h

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 /***************************************************************************/
     2 /*                                                                         */
     3 /*  ftpfr.h                                                                */
     4 /*                                                                         */
     5 /*    FreeType API for accessing PFR-specific data (specification only).   */
     6 /*                                                                         */
     7 /*  Copyright 2002, 2003, 2004, 2006, 2008, 2009 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 __FTPFR_H__
    20 #define __FTPFR_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 FT_BEGIN_HEADER
    35   /*************************************************************************/
    36   /*                                                                       */
    37   /* <Section>                                                             */
    38   /*    pfr_fonts                                                          */
    39   /*                                                                       */
    40   /* <Title>                                                               */
    41   /*    PFR Fonts                                                          */
    42   /*                                                                       */
    43   /* <Abstract>                                                            */
    44   /*    PFR/TrueDoc specific API.                                          */
    45   /*                                                                       */
    46   /* <Description>                                                         */
    47   /*    This section contains the declaration of PFR-specific functions.   */
    48   /*                                                                       */
    49   /*************************************************************************/
    52  /**********************************************************************
    53   *
    54   * @function:
    55   *    FT_Get_PFR_Metrics
    56   *
    57   * @description:
    58   *    Return the outline and metrics resolutions of a given PFR face.
    59   *
    60   * @input:
    61   *    face :: Handle to the input face.  It can be a non-PFR face.
    62   *
    63   * @output:
    64   *    aoutline_resolution ::
    65   *      Outline resolution.  This is equivalent to `face->units_per_EM'
    66   *      for non-PFR fonts.  Optional (parameter can be NULL).
    67   *
    68   *    ametrics_resolution ::
    69   *      Metrics resolution.  This is equivalent to `outline_resolution'
    70   *      for non-PFR fonts.  Optional (parameter can be NULL).
    71   *
    72   *    ametrics_x_scale ::
    73   *      A 16.16 fixed-point number used to scale distance expressed
    74   *      in metrics units to device sub-pixels.  This is equivalent to
    75   *      `face->size->x_scale', but for metrics only.  Optional (parameter
    76   *      can be NULL).
    77   *
    78   *    ametrics_y_scale ::
    79   *      Same as `ametrics_x_scale' but for the vertical direction.
    80   *      optional (parameter can be NULL).
    81   *
    82   * @return:
    83   *    FreeType error code.  0~means success.
    84   *
    85   * @note:
    86   *   If the input face is not a PFR, this function will return an error.
    87   *   However, in all cases, it will return valid values.
    88   */
    89   FT_EXPORT( FT_Error )
    90   FT_Get_PFR_Metrics( FT_Face    face,
    91                       FT_UInt   *aoutline_resolution,
    92                       FT_UInt   *ametrics_resolution,
    93                       FT_Fixed  *ametrics_x_scale,
    94                       FT_Fixed  *ametrics_y_scale );
    97  /**********************************************************************
    98   *
    99   * @function:
   100   *    FT_Get_PFR_Kerning
   101   *
   102   * @description:
   103   *    Return the kerning pair corresponding to two glyphs in a PFR face.
   104   *    The distance is expressed in metrics units, unlike the result of
   105   *    @FT_Get_Kerning.
   106   *
   107   * @input:
   108   *    face  :: A handle to the input face.
   109   *
   110   *    left  :: Index of the left glyph.
   111   *
   112   *    right :: Index of the right glyph.
   113   *
   114   * @output:
   115   *    avector :: A kerning vector.
   116   *
   117   * @return:
   118   *    FreeType error code.  0~means success.
   119   *
   120   * @note:
   121   *    This function always return distances in original PFR metrics
   122   *    units.  This is unlike @FT_Get_Kerning with the @FT_KERNING_UNSCALED
   123   *    mode, which always returns distances converted to outline units.
   124   *
   125   *    You can use the value of the `x_scale' and `y_scale' parameters
   126   *    returned by @FT_Get_PFR_Metrics to scale these to device sub-pixels.
   127   */
   128   FT_EXPORT( FT_Error )
   129   FT_Get_PFR_Kerning( FT_Face     face,
   130                       FT_UInt     left,
   131                       FT_UInt     right,
   132                       FT_Vector  *avector );
   135  /**********************************************************************
   136   *
   137   * @function:
   138   *    FT_Get_PFR_Advance
   139   *
   140   * @description:
   141   *    Return a given glyph advance, expressed in original metrics units,
   142   *    from a PFR font.
   143   *
   144   * @input:
   145   *    face   :: A handle to the input face.
   146   *
   147   *    gindex :: The glyph index.
   148   *
   149   * @output:
   150   *    aadvance :: The glyph advance in metrics units.
   151   *
   152   * @return:
   153   *    FreeType error code.  0~means success.
   154   *
   155   * @note:
   156   *    You can use the `x_scale' or `y_scale' results of @FT_Get_PFR_Metrics
   157   *    to convert the advance to device sub-pixels (i.e., 1/64th of pixels).
   158   */
   159   FT_EXPORT( FT_Error )
   160   FT_Get_PFR_Advance( FT_Face   face,
   161                       FT_UInt   gindex,
   162                       FT_Pos   *aadvance );
   164  /* */
   167 FT_END_HEADER
   169 #endif /* __FTPFR_H__ */
   172 /* END */

mercurial