diff options
Diffstat (limited to 'include/freetype/ftadvanc.h')
-rw-r--r-- | include/freetype/ftadvanc.h | 136 |
1 files changed, 92 insertions, 44 deletions
diff --git a/include/freetype/ftadvanc.h b/include/freetype/ftadvanc.h index 108b1ce..b2451be 100644 --- a/include/freetype/ftadvanc.h +++ b/include/freetype/ftadvanc.h @@ -2,9 +2,9 @@ /* */ /* ftadvanc.h */ /* */ -/* FreeType access the glyph advances (specification only). */ +/* Quick computation of advance widths (specification only). */ /* */ -/* Copyright 1996-2001, 2002, 2003, 2004, 2005, 2006, 2007 by */ +/* Copyright 2008 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -15,33 +15,64 @@ /* */ /***************************************************************************/ -#ifndef __FREETYPE_ADVANCE_H__ -#define __FREETYPE_ADVANCE_H__ + +#ifndef __FTADVANC_H__ +#define __FTADVANC_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: + * quick_advance + * + * @title: + * Quick retrieval of advance values + * + * @abstract: + * Retrieve horizontal and vertical advance values without processing + * glyph outlines, if possible. + * + * @description: + * This section contains functions to quickly extract advance values + * without handling glyph outlines, if possible. + */ + + /*************************************************************************/ /* */ /* <Const> */ /* FT_ADVANCE_FLAG_FAST_ONLY */ /* */ /* <Description> */ - /* a bit-flag to be or-ed to the 'flags' parameter of the */ - /* @FT_Get_Advance and @FT_Get_Advances. */ + /* A bit-flag to be OR-ed with the `flags' parameter of the */ + /* @FT_Get_Advance and @FT_Get_Advances functions. */ /* */ - /* when set, it indicates that you want these functions to fail */ - /* if the corresponding hinting mode or font driver doesn't */ - /* allow for very quick advance computation. */ + /* If set, it indicates that you want these functions to fail if the */ + /* corresponding hinting mode or font driver doesn't allow for very */ + /* quick advance computation. */ /* */ - /* typically, unscaled, unhinted, bitmapped and light-hinted glyphs */ - /* can have their advance width(s) computed very quickly. */ + /* Typically, glyphs which are either unscaled, unhinted, bitmapped, */ + /* or light-hinted can have their advance width computed very */ + /* quickly. */ /* */ - /* not so for normal and bytecode hinted modes, which require */ - /* loading/scaling/hinting the glyph outline instead, which is */ - /* extremely slow by comparison */ + /* Normal and bytecode hinted modes, which require loading, scaling, */ + /* and hinting of the glyph outline, are extremely slow by */ + /* comparison. */ /* */ -#define FT_ADVANCE_FLAG_FAST_ONLY 0x20000000U +#define FT_ADVANCE_FLAG_FAST_ONLY 0x20000000UL /*************************************************************************/ @@ -50,82 +81,99 @@ /* FT_Get_Advance */ /* */ /* <Description> */ - /* Retrieve the advance of a given glyph outline in a FT_Face. */ - /* by default, the unhinted advance is returned in font units */ + /* Retrieve the advance value of a given glyph outline in an */ + /* @FT_Face. By default, the unhinted advance is returned in font */ + /* units. */ /* */ /* <Input> */ - /* face :: source FT_Face handle */ - /* gindex :: glyph index */ - /* load_flags :: a set of bit-flags similar to those used */ - /* when calling @FT_Load_Glyph, used to determine */ - /* what kind of advances you need. */ + /* face :: The source @FT_Face handle. */ + /* */ + /* gindex :: The glyph index. */ + /* */ + /* load_flags :: A set of bit flags similar to those used when */ + /* calling @FT_Load_Glyph, used to determine what kind */ + /* of advances you need. */ /* <Output> */ - /* padvance :: the advance value, in either font units or 16.16 */ + /* padvance :: The advance value, in either font units or 16.16 */ /* format. */ /* */ - /* if @FT_LOAD_VERTICAL_LAYOUT is set, this is the */ + /* If @FT_LOAD_VERTICAL_LAYOUT is set, this is the */ /* vertical advance corresponding to a vertical layout. */ - /* otherwise, it's the horizontal advance in an */ + /* Otherwise, it is the horizontal advance in a */ /* horizontal layout. */ + /* */ /* <Return> */ /* FreeType error code. 0 means success. */ /* */ /* <Note> */ /* This function may fail if you use @FT_ADVANCE_FLAG_FAST_ONLY and */ - /* if the corresponding's font backend doesn't have a quick way to */ + /* if the corresponding font backend doesn't have a quick way to */ /* retrieve the advances. */ /* */ - /* A scaled advance is returned in 16.16 format, but isn't */ - /* transformed by the affine transform specified by @FT_Set_Transform */ + /* A scaled advance is returned in 16.16 format but isn't transformed */ + /* by the affine transformation specified by @FT_Set_Transform. */ /* */ FT_EXPORT( FT_Error ) FT_Get_Advance( FT_Face face, FT_UInt gindex, - FT_UInt load_flags, + FT_Int32 load_flags, FT_Fixed *padvance ); + /*************************************************************************/ /* */ /* <Function> */ /* FT_Get_Advances */ /* */ /* <Description> */ - /* Retrieve the advance of several glyph outlines in a FT_Face. */ - /* by default, the unhinted advances are returned in font units */ + /* Retrieve the advance values of several glyph outlines in an */ + /* @FT_Face. By default, the unhinted advances are returned in font */ + /* units. */ /* */ /* <Input> */ - /* face :: source FT_Face handle */ - /* start :: first glyph index */ - /* count :: number of advances you want to retrieve */ - /* load_flags :: a set of bit-flags similar to those used when */ + /* face :: The source @FT_Face handle. */ + /* */ + /* start :: The first glyph index. */ + /* */ + /* count :: The number of advance values you want to retrieve. */ + /* */ + /* load_flags :: A set of bit flags similar to those used when */ /* calling @FT_Load_Glyph. */ /* */ /* <Output> */ - /* padvance :: the advances, in either font units or 16.16 format. */ - /* this array must contain at least 'count' elements */ + /* padvance :: The advances, in either font units or 16.16 format. */ + /* This array must contain at least `count' elements. */ /* */ - /* if @FT_LOAD_VERTICAL_LAYOUT is set, these are the */ + /* If @FT_LOAD_VERTICAL_LAYOUT is set, these are the */ /* vertical advances corresponding to a vertical layout. */ - /* otherwise, they are the horizontal advances in an */ + /* Otherwise, they are the horizontal advances in a */ /* horizontal layout. */ + /* */ /* <Return> */ /* FreeType error code. 0 means success. */ /* */ /* <Note> */ /* This function may fail if you use @FT_ADVANCE_FLAG_FAST_ONLY and */ - /* if the corresponding's font backend doesn't have a quick way to */ + /* if the corresponding font backend doesn't have a quick way to */ /* retrieve the advances. */ /* */ - /* Scaled advances are returned in 16.16 format, but aren't */ - /* transformed by the affine transform specified by @FT_Set_Transform */ + /* Scaled advances are returned in 16.16 format but aren't */ + /* transformed by the affine transformation specified by */ + /* @FT_Set_Transform. */ /* */ FT_EXPORT( FT_Error ) FT_Get_Advances( FT_Face face, FT_UInt start, FT_UInt count, - FT_UInt load_flags, + FT_Int32 load_flags, FT_Fixed *padvances ); /* */ -#endif /* __FREETYPE_ADVANCE_H__ */ + +FT_END_HEADER + +#endif /* __FTADVANC_H__ */ + + +/* END */ |