misc/libfreetype/include/freetype/ftpfr.h
changeset 9431 0f5961910e27
parent 9357 a501f5ec7b34
parent 9429 7a97a554ac80
child 9433 f0a8ac191839
equal deleted inserted replaced
9357:a501f5ec7b34 9431:0f5961910e27
     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 /***************************************************************************/
       
    17 
       
    18 
       
    19 #ifndef __FTPFR_H__
       
    20 #define __FTPFR_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 FT_BEGIN_HEADER
       
    33 
       
    34 
       
    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   /*************************************************************************/
       
    50 
       
    51 
       
    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 );
       
    95 
       
    96 
       
    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 );
       
   133 
       
   134 
       
   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 );
       
   163 
       
   164  /* */
       
   165 
       
   166 
       
   167 FT_END_HEADER
       
   168 
       
   169 #endif /* __FTPFR_H__ */
       
   170 
       
   171 
       
   172 /* END */