Github User Fetcher
1.0.0
C Application with Server and GUI
Loading...
Searching...
No Matches
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 (C) 2008-2024 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 <freetype/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
* quick_advance
39
*
40
* @title:
41
* Quick retrieval of advance values
42
*
43
* @abstract:
44
* Retrieve horizontal and vertical advance values without processing
45
* glyph outlines, if possible.
46
*
47
* @description:
48
* This section contains functions to quickly extract advance values
49
* without handling glyph outlines, if possible.
50
*
51
* @order:
52
* FT_Get_Advance
53
* FT_Get_Advances
54
*
55
*/
56
57
58
/**************************************************************************
59
*
60
* @enum:
61
* FT_ADVANCE_FLAG_FAST_ONLY
62
*
63
* @description:
64
* A bit-flag to be OR-ed with the `flags` parameter of the
65
* @FT_Get_Advance and @FT_Get_Advances functions.
66
*
67
* If set, it indicates that you want these functions to fail if the
68
* corresponding hinting mode or font driver doesn't allow for very quick
69
* advance computation.
70
*
71
* Typically, glyphs that are either unscaled, unhinted, bitmapped, or
72
* light-hinted can have their advance width computed very quickly.
73
*
74
* Normal and bytecode hinted modes that require loading, scaling, and
75
* hinting of the glyph outline, are extremely slow by comparison.
76
*/
77
#define FT_ADVANCE_FLAG_FAST_ONLY 0x20000000L
78
79
80
/**************************************************************************
81
*
82
* @function:
83
* FT_Get_Advance
84
*
85
* @description:
86
* Retrieve the advance value of a given glyph outline in an @FT_Face.
87
*
88
* @input:
89
* face ::
90
* The source @FT_Face handle.
91
*
92
* gindex ::
93
* The glyph index.
94
*
95
* load_flags ::
96
* A set of bit flags similar to those used when calling
97
* @FT_Load_Glyph, used to determine what kind of advances you need.
98
*
99
* @output:
100
* padvance ::
101
* The advance value. If scaling is performed (based on the value of
102
* `load_flags`), the advance value is in 16.16 format. Otherwise, it
103
* is in font units.
104
*
105
* If @FT_LOAD_VERTICAL_LAYOUT is set, this is the vertical advance
106
* corresponding to a vertical layout. Otherwise, it is the horizontal
107
* advance in a horizontal layout.
108
*
109
* @return:
110
* FreeType error code. 0 means success.
111
*
112
* @note:
113
* This function may fail if you use @FT_ADVANCE_FLAG_FAST_ONLY and if
114
* the corresponding font backend doesn't have a quick way to retrieve
115
* the advances.
116
*
117
* A scaled advance is returned in 16.16 format but isn't transformed by
118
* the affine transformation specified by @FT_Set_Transform.
119
*/
120
FT_EXPORT
(
FT_Error
)
121
FT_Get_Advance
(
FT_Face
face,
122
FT_UInt
gindex,
123
FT_Int32 load_flags,
124
FT_Fixed
*padvance );
125
126
127
/**************************************************************************
128
*
129
* @function:
130
* FT_Get_Advances
131
*
132
* @description:
133
* Retrieve the advance values of several glyph outlines in an @FT_Face.
134
*
135
* @input:
136
* face ::
137
* The source @FT_Face handle.
138
*
139
* start ::
140
* The first glyph index.
141
*
142
* count ::
143
* The number of advance values you want to retrieve.
144
*
145
* load_flags ::
146
* A set of bit flags similar to those used when calling
147
* @FT_Load_Glyph.
148
*
149
* @output:
150
* padvance ::
151
* The advance values. This array, to be provided by the caller, must
152
* contain at least `count` elements.
153
*
154
* If scaling is performed (based on the value of `load_flags`), the
155
* advance values are in 16.16 format. Otherwise, they are in font
156
* units.
157
*
158
* If @FT_LOAD_VERTICAL_LAYOUT is set, these are the vertical advances
159
* corresponding to a vertical layout. Otherwise, they are the
160
* horizontal advances in a horizontal layout.
161
*
162
* @return:
163
* FreeType error code. 0 means success.
164
*
165
* @note:
166
* This function may fail if you use @FT_ADVANCE_FLAG_FAST_ONLY and if
167
* the corresponding font backend doesn't have a quick way to retrieve
168
* the advances.
169
*
170
* Scaled advances are returned in 16.16 format but aren't transformed by
171
* the affine transformation specified by @FT_Set_Transform.
172
*/
173
FT_EXPORT
(
FT_Error
)
174
FT_Get_Advances
(
FT_Face
face,
175
FT_UInt
start,
176
FT_UInt
count,
177
FT_Int32 load_flags,
178
FT_Fixed
*padvances );
179
180
/* */
181
182
183
FT_END_HEADER
184
185
#endif
/* FTADVANC_H_ */
186
187
188
/* END */
FT_Get_Advances
FT_Get_Advances(FT_Face face, FT_UInt start, FT_UInt count, FT_Int32 load_flags, FT_Fixed *padvances)
FT_Get_Advance
FT_Get_Advance(FT_Face face, FT_UInt gindex, FT_Int32 load_flags, FT_Fixed *padvance)
FT_END_HEADER
#define FT_END_HEADER
Definition
ftheader.h:57
FT_BEGIN_HEADER
#define FT_BEGIN_HEADER
Definition
ftheader.h:37
FT_Fixed
signed long FT_Fixed
Definition
fttypes.h:290
FT_Error
int FT_Error
Definition
fttypes.h:302
FT_UInt
unsigned int FT_UInt
Definition
fttypes.h:234
FT_EXPORT
#define FT_EXPORT(x)
Definition
public-macros.h:104
FT_FaceRec_
Definition
freetype.h:1230
nix
store
w4wi2ik0fkz57b7i8ds4fr1jnj0333j0-freetype-2.13.3-dev
include
freetype2
freetype
ftadvanc.h
Generated by
1.10.0