You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
172 lines
6.1 KiB
172 lines
6.1 KiB
/***************************************************************************/ |
|
/* */ |
|
/* ftpfr.h */ |
|
/* */ |
|
/* FreeType API for accessing PFR-specific data (specification only). */ |
|
/* */ |
|
/* Copyright 2002, 2003, 2004, 2006 by */ |
|
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ |
|
/* */ |
|
/* This file is part of the FreeType project, and may only be used, */ |
|
/* modified, and distributed under the terms of the FreeType project */ |
|
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ |
|
/* this file you indicate that you have read the license and */ |
|
/* understand and accept it fully. */ |
|
/* */ |
|
/***************************************************************************/ |
|
|
|
|
|
#ifndef __FTPFR_H__ |
|
#define __FTPFR_H__ |
|
|
|
#include <ft2build.h> |
|
#include FT_FREETYPE_H |
|
|
|
#ifdef FREETYPE_H |
|
#error "freetype.h of FreeType 1 has been loaded!" |
|
#error "Please fix the directory search order for header files" |
|
#error "so that freetype.h of FreeType 2 is found first." |
|
#endif |
|
|
|
|
|
FT_BEGIN_HEADER |
|
|
|
|
|
/*************************************************************************/ |
|
/* */ |
|
/* <Section> */ |
|
/* pfr_fonts */ |
|
/* */ |
|
/* <Title> */ |
|
/* PFR Fonts */ |
|
/* */ |
|
/* <Abstract> */ |
|
/* PFR/TrueDoc specific API. */ |
|
/* */ |
|
/* <Description> */ |
|
/* This section contains the declaration of PFR-specific functions. */ |
|
/* */ |
|
/*************************************************************************/ |
|
|
|
|
|
/********************************************************************** |
|
* |
|
* @function: |
|
* FT_Get_PFR_Metrics |
|
* |
|
* @description: |
|
* Return the outline and metrics resolutions of a given PFR face. |
|
* |
|
* @input: |
|
* face :: Handle to the input face. It can be a non-PFR face. |
|
* |
|
* @output: |
|
* aoutline_resolution :: |
|
* Outline resolution. This is equivalent to `face->units_per_EM'. |
|
* Optional (parameter can be NULL). |
|
* |
|
* ametrics_resolution :: |
|
* Metrics resolution. This is equivalent to `outline_resolution' |
|
* for non-PFR fonts. Optional (parameter can be NULL). |
|
* |
|
* ametrics_x_scale :: |
|
* A 16.16 fixed-point number used to scale distance expressed |
|
* in metrics units to device sub-pixels. This is equivalent to |
|
* `face->size->x_scale', but for metrics only. Optional (parameter |
|
* can be NULL) |
|
* |
|
* ametrics_y_scale :: |
|
* Same as `ametrics_x_scale' but for the vertical direction. |
|
* optional (parameter can be NULL) |
|
* |
|
* @return: |
|
* FreeType error code. 0 means success. |
|
* |
|
* @note: |
|
* If the input face is not a PFR, this function will return an error. |
|
* However, in all cases, it will return valid values. |
|
*/ |
|
FT_EXPORT( FT_Error ) |
|
FT_Get_PFR_Metrics( FT_Face face, |
|
FT_UInt *aoutline_resolution, |
|
FT_UInt *ametrics_resolution, |
|
FT_Fixed *ametrics_x_scale, |
|
FT_Fixed *ametrics_y_scale ); |
|
|
|
|
|
/********************************************************************** |
|
* |
|
* @function: |
|
* FT_Get_PFR_Kerning |
|
* |
|
* @description: |
|
* Return the kerning pair corresponding to two glyphs in a PFR face. |
|
* The distance is expressed in metrics units, unlike the result of |
|
* @FT_Get_Kerning. |
|
* |
|
* @input: |
|
* face :: A handle to the input face. |
|
* |
|
* left :: Index of the left glyph. |
|
* |
|
* right :: Index of the right glyph. |
|
* |
|
* @output: |
|
* avector :: A kerning vector. |
|
* |
|
* @return: |
|
* FreeType error code. 0 means success. |
|
* |
|
* @note: |
|
* This function always return distances in original PFR metrics |
|
* units. This is unlike @FT_Get_Kerning with the @FT_KERNING_UNSCALED |
|
* mode, which always returns distances converted to outline units. |
|
* |
|
* You can use the value of the `x_scale' and `y_scale' parameters |
|
* returned by @FT_Get_PFR_Metrics to scale these to device sub-pixels. |
|
*/ |
|
FT_EXPORT( FT_Error ) |
|
FT_Get_PFR_Kerning( FT_Face face, |
|
FT_UInt left, |
|
FT_UInt right, |
|
FT_Vector *avector ); |
|
|
|
|
|
/********************************************************************** |
|
* |
|
* @function: |
|
* FT_Get_PFR_Advance |
|
* |
|
* @description: |
|
* Return a given glyph advance, expressed in original metrics units, |
|
* from a PFR font. |
|
* |
|
* @input: |
|
* face :: A handle to the input face. |
|
* |
|
* gindex :: The glyph index. |
|
* |
|
* @output: |
|
* aadvance :: The glyph advance in metrics units. |
|
* |
|
* @return: |
|
* FreeType error code. 0 means success. |
|
* |
|
* @note: |
|
* You can use the `x_scale' or `y_scale' results of @FT_Get_PFR_Metrics |
|
* to convert the advance to device sub-pixels (i.e., 1/64th of pixels). |
|
*/ |
|
FT_EXPORT( FT_Error ) |
|
FT_Get_PFR_Advance( FT_Face face, |
|
FT_UInt gindex, |
|
FT_Pos *aadvance ); |
|
|
|
/* */ |
|
|
|
|
|
FT_END_HEADER |
|
|
|
#endif /* __FTPFR_H__ */ |
|
|
|
|
|
/* END */
|
|
|