zenilib  0.5.3.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
ftadvanc.h
Go to the documentation of this file.
1 /***************************************************************************/
2 /* */
3 /* ftadvanc.h */
4 /* */
5 /* Quick computation of advance widths (specification only). */
6 /* */
7 /* Copyright 2008 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 __FTADVANC_H__
20 #define __FTADVANC_H__
21 
22 
23 #include <ft2build.h>
24 #include FT_FREETYPE_H
25 
26 #ifdef FREETYPE_H
27 #error "freetype.h of FreeType 1 has been loaded!"
28 #error "Please fix the directory search order for header files"
29 #error "so that freetype.h of FreeType 2 is found first."
30 #endif
31 
32 
34 
35 
36  /**************************************************************************
37  *
38  * @section:
39  * quick_advance
40  *
41  * @title:
42  * Quick retrieval of advance values
43  *
44  * @abstract:
45  * Retrieve horizontal and vertical advance values without processing
46  * glyph outlines, if possible.
47  *
48  * @description:
49  * This section contains functions to quickly extract advance values
50  * without handling glyph outlines, if possible.
51  */
52 
53 
54  /*************************************************************************/
55  /* */
56  /* <Const> */
57  /* FT_ADVANCE_FLAG_FAST_ONLY */
58  /* */
59  /* <Description> */
60  /* A bit-flag to be OR-ed with the `flags' parameter of the */
61  /* @FT_Get_Advance and @FT_Get_Advances functions. */
62  /* */
63  /* If set, it indicates that you want these functions to fail if the */
64  /* corresponding hinting mode or font driver doesn't allow for very */
65  /* quick advance computation. */
66  /* */
67  /* Typically, glyphs which are either unscaled, unhinted, bitmapped, */
68  /* or light-hinted can have their advance width computed very */
69  /* quickly. */
70  /* */
71  /* Normal and bytecode hinted modes, which require loading, scaling, */
72  /* and hinting of the glyph outline, are extremely slow by */
73  /* comparison. */
74  /* */
75 #define FT_ADVANCE_FLAG_FAST_ONLY 0x20000000UL
76 
77 
78  /*************************************************************************/
79  /* */
80  /* <Function> */
81  /* FT_Get_Advance */
82  /* */
83  /* <Description> */
84  /* Retrieve the advance value of a given glyph outline in an */
85  /* @FT_Face. By default, the unhinted advance is returned in font */
86  /* units. */
87  /* */
88  /* <Input> */
89  /* face :: The source @FT_Face handle. */
90  /* */
91  /* gindex :: The glyph index. */
92  /* */
93  /* load_flags :: A set of bit flags similar to those used when */
94  /* calling @FT_Load_Glyph, used to determine what kind */
95  /* of advances you need. */
96  /* <Output> */
97  /* padvance :: The advance value, in either font units or 16.16 */
98  /* format. */
99  /* */
100  /* If @FT_LOAD_VERTICAL_LAYOUT is set, this is the */
101  /* vertical advance corresponding to a vertical layout. */
102  /* Otherwise, it is the horizontal advance in a */
103  /* horizontal layout. */
104  /* */
105  /* <Return> */
106  /* FreeType error code. 0 means success. */
107  /* */
108  /* <Note> */
109  /* This function may fail if you use @FT_ADVANCE_FLAG_FAST_ONLY and */
110  /* if the corresponding font backend doesn't have a quick way to */
111  /* retrieve the advances. */
112  /* */
113  /* A scaled advance is returned in 16.16 format but isn't transformed */
114  /* by the affine transformation specified by @FT_Set_Transform. */
115  /* */
118  FT_UInt gindex,
119  FT_Int32 load_flags,
120  FT_Fixed *padvance );
121 
122 
123  /*************************************************************************/
124  /* */
125  /* <Function> */
126  /* FT_Get_Advances */
127  /* */
128  /* <Description> */
129  /* Retrieve the advance values of several glyph outlines in an */
130  /* @FT_Face. By default, the unhinted advances are returned in font */
131  /* units. */
132  /* */
133  /* <Input> */
134  /* face :: The source @FT_Face handle. */
135  /* */
136  /* start :: The first glyph index. */
137  /* */
138  /* count :: The number of advance values you want to retrieve. */
139  /* */
140  /* load_flags :: A set of bit flags similar to those used when */
141  /* calling @FT_Load_Glyph. */
142  /* */
143  /* <Output> */
144  /* padvance :: The advances, in either font units or 16.16 format. */
145  /* This array must contain at least `count' elements. */
146  /* */
147  /* If @FT_LOAD_VERTICAL_LAYOUT is set, these are the */
148  /* vertical advances corresponding to a vertical layout. */
149  /* Otherwise, they are the horizontal advances in a */
150  /* horizontal layout. */
151  /* */
152  /* <Return> */
153  /* FreeType error code. 0 means success. */
154  /* */
155  /* <Note> */
156  /* This function may fail if you use @FT_ADVANCE_FLAG_FAST_ONLY and */
157  /* if the corresponding font backend doesn't have a quick way to */
158  /* retrieve the advances. */
159  /* */
160  /* Scaled advances are returned in 16.16 format but aren't */
161  /* transformed by the affine transformation specified by */
162  /* @FT_Set_Transform. */
163  /* */
165  FT_Get_Advances( FT_Face face,
166  FT_UInt start,
167  FT_UInt count,
168  FT_Int32 load_flags,
169  FT_Fixed *padvances );
170 
171 /* */
172 
173 
175 
176 #endif /* __FTADVANC_H__ */
177 
178 
179 /* END */
int FT_Error
Definition: fttypes.h:296
#define FT_END_HEADER
Definition: ftheader.h:54
GLuint start
Definition: glew.h:1239
#define FT_BEGIN_HEADER
Definition: ftheader.h:36
FT_Get_Advance(FT_Face face, FT_UInt gindex, FT_Int32 load_flags, FT_Fixed *padvance)
Definition: ftadvanc.c:70
GLint GLsizei count
Definition: gl2ext.h:1011
GLenum face
Definition: gl2ext.h:1490
FT_Get_Advances(FT_Face face, FT_UInt start, FT_UInt count, FT_Int32 load_flags, FT_Fixed *padvances)
Definition: ftadvanc.c:105
signed long FT_Fixed
Definition: fttypes.h:284
unsigned int FT_UInt
Definition: fttypes.h:227
#define FT_EXPORT(x)
Definition: ftconfig.h:500