1049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/***************************************************************************/ 2049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 3049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* ftpfr.h */ 4049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 5049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* FreeType API for accessing PFR-specific data (specification only). */ 6049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 70a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project/* Copyright 2002, 2003, 2004, 2006, 2008, 2009 by */ 8049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* David Turner, Robert Wilhelm, and Werner Lemberg. */ 9049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 10049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* This file is part of the FreeType project, and may only be used, */ 11049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* modified, and distributed under the terms of the FreeType project */ 12049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 13049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* this file you indicate that you have read the license and */ 14049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* understand and accept it fully. */ 15049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 16049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/***************************************************************************/ 17049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 18049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 19049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#ifndef __FTPFR_H__ 20049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define __FTPFR_H__ 21049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 22049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include <ft2build.h> 23049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include FT_FREETYPE_H 24049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 25049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#ifdef FREETYPE_H 26049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#error "freetype.h of FreeType 1 has been loaded!" 27049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#error "Please fix the directory search order for header files" 28049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#error "so that freetype.h of FreeType 2 is found first." 29049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif 30049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 31049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 32049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source ProjectFT_BEGIN_HEADER 33049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 34049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 35049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 36049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 37049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Section> */ 38049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* pfr_fonts */ 39049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 40049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Title> */ 41049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* PFR Fonts */ 42049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 43049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Abstract> */ 44049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* PFR/TrueDoc specific API. */ 45049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 46049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 47049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* This section contains the declaration of PFR-specific functions. */ 48049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 49049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 50049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 51049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 52049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /********************************************************************** 53049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 54049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @function: 55049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * FT_Get_PFR_Metrics 56049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 57049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 58049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * Return the outline and metrics resolutions of a given PFR face. 59049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 60049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @input: 61049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * face :: Handle to the input face. It can be a non-PFR face. 62049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 63049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @output: 64049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * aoutline_resolution :: 650a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project * Outline resolution. This is equivalent to `face->units_per_EM' 660a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project * for non-PFR fonts. Optional (parameter can be NULL). 67049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 68049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * ametrics_resolution :: 69049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * Metrics resolution. This is equivalent to `outline_resolution' 70049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * for non-PFR fonts. Optional (parameter can be NULL). 71049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 72049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * ametrics_x_scale :: 73049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * A 16.16 fixed-point number used to scale distance expressed 74049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * in metrics units to device sub-pixels. This is equivalent to 75049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * `face->size->x_scale', but for metrics only. Optional (parameter 760a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project * can be NULL). 77049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 78049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * ametrics_y_scale :: 79049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * Same as `ametrics_x_scale' but for the vertical direction. 800a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project * optional (parameter can be NULL). 81049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 82049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @return: 830a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project * FreeType error code. 0~means success. 84049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 85049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @note: 86049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * If the input face is not a PFR, this function will return an error. 87049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * However, in all cases, it will return valid values. 88049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 89049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_EXPORT( FT_Error ) 90049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Get_PFR_Metrics( FT_Face face, 91049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_UInt *aoutline_resolution, 92049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_UInt *ametrics_resolution, 93049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Fixed *ametrics_x_scale, 94049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Fixed *ametrics_y_scale ); 95049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 96049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 97049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /********************************************************************** 98049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 99049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @function: 100049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * FT_Get_PFR_Kerning 101049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 102049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 103049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * Return the kerning pair corresponding to two glyphs in a PFR face. 104049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * The distance is expressed in metrics units, unlike the result of 105049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @FT_Get_Kerning. 106049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 107049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @input: 108049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * face :: A handle to the input face. 109049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 110049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * left :: Index of the left glyph. 111049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 112049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * right :: Index of the right glyph. 113049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 114049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @output: 115049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * avector :: A kerning vector. 116049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 117049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @return: 1180a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project * FreeType error code. 0~means success. 119049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 120049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @note: 121049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * This function always return distances in original PFR metrics 122049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * units. This is unlike @FT_Get_Kerning with the @FT_KERNING_UNSCALED 123049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * mode, which always returns distances converted to outline units. 124049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 125049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * You can use the value of the `x_scale' and `y_scale' parameters 126049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * returned by @FT_Get_PFR_Metrics to scale these to device sub-pixels. 127049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 128049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_EXPORT( FT_Error ) 129049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Get_PFR_Kerning( FT_Face face, 130049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_UInt left, 131049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_UInt right, 132049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Vector *avector ); 133049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 134049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 135049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /********************************************************************** 136049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 137049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @function: 138049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * FT_Get_PFR_Advance 139049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 140049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @description: 141049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * Return a given glyph advance, expressed in original metrics units, 142049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * from a PFR font. 143049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 144049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @input: 145049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * face :: A handle to the input face. 146049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 147049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * gindex :: The glyph index. 148049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 149049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @output: 150049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * aadvance :: The glyph advance in metrics units. 151049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 152049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @return: 1530a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project * FreeType error code. 0~means success. 154049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * 155049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * @note: 156049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * You can use the `x_scale' or `y_scale' results of @FT_Get_PFR_Metrics 157049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project * to convert the advance to device sub-pixels (i.e., 1/64th of pixels). 158049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project */ 159049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_EXPORT( FT_Error ) 160049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Get_PFR_Advance( FT_Face face, 161049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_UInt gindex, 162049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Pos *aadvance ); 163049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 164049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 165049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 166049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 167049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source ProjectFT_END_HEADER 168049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 169049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif /* __FTPFR_H__ */ 170049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 171049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 172049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* END */ 173