OLD | NEW |
1 /***************************************************************************/ | 1 /***************************************************************************/ |
2 /* */ | 2 /* */ |
3 /* ftlist.h */ | 3 /* ftlist.h */ |
4 /* */ | 4 /* */ |
5 /* Generic list support for FreeType (specification). */ | 5 /* Generic list support for FreeType (specification). */ |
6 /* */ | 6 /* */ |
7 /* Copyright 1996-2001, 2003, 2007, 2010 by */ | 7 /* Copyright 1996-2001, 2003, 2007, 2010, 2013, 2014 by */ |
8 /* David Turner, Robert Wilhelm, and Werner Lemberg. */ | 8 /* David Turner, Robert Wilhelm, and Werner Lemberg. */ |
9 /* */ | 9 /* */ |
10 /* This file is part of the FreeType project, and may only be used, */ | 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 */ | 11 /* modified, and distributed under the terms of the FreeType project */ |
12 /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ | 12 /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ |
13 /* this file you indicate that you have read the license and */ | 13 /* this file you indicate that you have read the license and */ |
14 /* understand and accept it fully. */ | 14 /* understand and accept it fully. */ |
15 /* */ | 15 /* */ |
16 /***************************************************************************/ | 16 /***************************************************************************/ |
17 | 17 |
18 | 18 |
19 /*************************************************************************/ | 19 /*************************************************************************/ |
20 /* */ | 20 /* */ |
21 /* This file implements functions relative to list processing. Its */ | 21 /* This file implements functions relative to list processing. Its */ |
22 /* data structures are defined in `freetype.h'. */ | 22 /* data structures are defined in `freetype.h'. */ |
23 /* */ | 23 /* */ |
24 /*************************************************************************/ | 24 /*************************************************************************/ |
25 | 25 |
26 | 26 |
27 #ifndef __FTLIST_H__ | 27 #ifndef __FTLIST_H__ |
28 #define __FTLIST_H__ | 28 #define __FTLIST_H__ |
29 | 29 |
30 | 30 |
31 #include "../ft2build.h" | 31 #include <ft2build.h> |
32 #include "freetype.h" | 32 #include FT_FREETYPE_H |
33 | 33 |
34 #ifdef FREETYPE_H | 34 #ifdef FREETYPE_H |
35 #error "freetype.h of FreeType 1 has been loaded!" | 35 #error "freetype.h of FreeType 1 has been loaded!" |
36 #error "Please fix the directory search order for header files" | 36 #error "Please fix the directory search order for header files" |
37 #error "so that freetype.h of FreeType 2 is found first." | 37 #error "so that freetype.h of FreeType 2 is found first." |
38 #endif | 38 #endif |
39 | 39 |
40 | 40 |
41 FT_BEGIN_HEADER | 41 FT_BEGIN_HEADER |
42 | 42 |
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
166 FT_List_Up( FT_List list, | 166 FT_List_Up( FT_List list, |
167 FT_ListNode node ); | 167 FT_ListNode node ); |
168 | 168 |
169 | 169 |
170 /*************************************************************************/ | 170 /*************************************************************************/ |
171 /* */ | 171 /* */ |
172 /* <FuncType> */ | 172 /* <FuncType> */ |
173 /* FT_List_Iterator */ | 173 /* FT_List_Iterator */ |
174 /* */ | 174 /* */ |
175 /* <Description> */ | 175 /* <Description> */ |
176 /* An FT_List iterator function which is called during a list parse */ | 176 /* An FT_List iterator function that is called during a list parse */ |
177 /* by @FT_List_Iterate. */ | 177 /* by @FT_List_Iterate. */ |
178 /* */ | 178 /* */ |
179 /* <Input> */ | 179 /* <Input> */ |
180 /* node :: The current iteration list node. */ | 180 /* node :: The current iteration list node. */ |
181 /* */ | 181 /* */ |
182 /* user :: A typeless pointer passed to @FT_List_Iterate. */ | 182 /* user :: A typeless pointer passed to @FT_List_Iterate. */ |
183 /* Can be used to point to the iteration's state. */ | 183 /* Can be used to point to the iteration's state. */ |
184 /* */ | 184 /* */ |
185 typedef FT_Error | 185 typedef FT_Error |
186 (*FT_List_Iterator)( FT_ListNode node, | 186 (*FT_List_Iterator)( FT_ListNode node, |
187 void* user ); | 187 void* user ); |
188 | 188 |
189 | 189 |
190 /*************************************************************************/ | 190 /*************************************************************************/ |
191 /* */ | 191 /* */ |
192 /* <Function> */ | 192 /* <Function> */ |
193 /* FT_List_Iterate */ | 193 /* FT_List_Iterate */ |
194 /* */ | 194 /* */ |
195 /* <Description> */ | 195 /* <Description> */ |
196 /* Parse a list and calls a given iterator function on each element. */ | 196 /* Parse a list and calls a given iterator function on each element. */ |
197 /* Note that parsing is stopped as soon as one of the iterator calls */ | 197 /* Note that parsing is stopped as soon as one of the iterator calls */ |
198 /* returns a non-zero value. */ | 198 /* returns a non-zero value. */ |
199 /* */ | 199 /* */ |
200 /* <Input> */ | 200 /* <Input> */ |
201 /* list :: A handle to the list. */ | 201 /* list :: A handle to the list. */ |
202 /* iterator :: An iterator function, called on each node of the list. */ | 202 /* iterator :: An iterator function, called on each node of the list. */ |
203 /* user :: A user-supplied field which is passed as the second */ | 203 /* user :: A user-supplied field that is passed as the second */ |
204 /* argument to the iterator. */ | 204 /* argument to the iterator. */ |
205 /* */ | 205 /* */ |
206 /* <Return> */ | 206 /* <Return> */ |
207 /* The result (a FreeType error code) of the last iterator call. */ | 207 /* The result (a FreeType error code) of the last iterator call. */ |
208 /* */ | 208 /* */ |
209 FT_EXPORT( FT_Error ) | 209 FT_EXPORT( FT_Error ) |
210 FT_List_Iterate( FT_List list, | 210 FT_List_Iterate( FT_List list, |
211 FT_List_Iterator iterator, | 211 FT_List_Iterator iterator, |
212 void* user ); | 212 void* user ); |
213 | 213 |
214 | 214 |
215 /*************************************************************************/ | 215 /*************************************************************************/ |
216 /* */ | 216 /* */ |
217 /* <FuncType> */ | 217 /* <FuncType> */ |
218 /* FT_List_Destructor */ | 218 /* FT_List_Destructor */ |
219 /* */ | 219 /* */ |
220 /* <Description> */ | 220 /* <Description> */ |
221 /* An @FT_List iterator function which is called during a list */ | 221 /* An @FT_List iterator function that is called during a list */ |
222 /* finalization by @FT_List_Finalize to destroy all elements in a */ | 222 /* finalization by @FT_List_Finalize to destroy all elements in a */ |
223 /* given list. */ | 223 /* given list. */ |
224 /* */ | 224 /* */ |
225 /* <Input> */ | 225 /* <Input> */ |
226 /* system :: The current system object. */ | 226 /* system :: The current system object. */ |
227 /* */ | 227 /* */ |
228 /* data :: The current object to destroy. */ | 228 /* data :: The current object to destroy. */ |
229 /* */ | 229 /* */ |
230 /* user :: A typeless pointer passed to @FT_List_Iterate. It can */ | 230 /* user :: A typeless pointer passed to @FT_List_Iterate. It can */ |
231 /* be used to point to the iteration's state. */ | 231 /* be used to point to the iteration's state. */ |
232 /* */ | 232 /* */ |
233 typedef void | 233 typedef void |
234 (*FT_List_Destructor)( FT_Memory memory, | 234 (*FT_List_Destructor)( FT_Memory memory, |
235 void* data, | 235 void* data, |
236 void* user ); | 236 void* user ); |
237 | 237 |
238 | 238 |
239 /*************************************************************************/ | 239 /*************************************************************************/ |
240 /* */ | 240 /* */ |
241 /* <Function> */ | 241 /* <Function> */ |
242 /* FT_List_Finalize */ | 242 /* FT_List_Finalize */ |
243 /* */ | 243 /* */ |
244 /* <Description> */ | 244 /* <Description> */ |
245 /* Destroy all elements in the list as well as the list itself. */ | 245 /* Destroy all elements in the list as well as the list itself. */ |
246 /* */ | 246 /* */ |
247 /* <Input> */ | 247 /* <Input> */ |
248 /* list :: A handle to the list. */ | 248 /* list :: A handle to the list. */ |
249 /* */ | 249 /* */ |
250 /* destroy :: A list destructor that will be applied to each element */ | 250 /* destroy :: A list destructor that will be applied to each element */ |
251 /* of the list. */ | 251 /* of the list. Set this to NULL if not needed. */ |
252 /* */ | 252 /* */ |
253 /* memory :: The current memory object which handles deallocation. */ | 253 /* memory :: The current memory object that handles deallocation. */ |
254 /* */ | 254 /* */ |
255 /* user :: A user-supplied field which is passed as the last */ | 255 /* user :: A user-supplied field that is passed as the last */ |
256 /* argument to the destructor. */ | 256 /* argument to the destructor. */ |
257 /* */ | 257 /* */ |
258 /* <Note> */ | 258 /* <Note> */ |
259 /* This function expects that all nodes added by @FT_List_Add or */ | 259 /* This function expects that all nodes added by @FT_List_Add or */ |
260 /* @FT_List_Insert have been dynamically allocated. */ | 260 /* @FT_List_Insert have been dynamically allocated. */ |
261 /* */ | 261 /* */ |
262 FT_EXPORT( void ) | 262 FT_EXPORT( void ) |
263 FT_List_Finalize( FT_List list, | 263 FT_List_Finalize( FT_List list, |
264 FT_List_Destructor destroy, | 264 FT_List_Destructor destroy, |
265 FT_Memory memory, | 265 FT_Memory memory, |
266 void* user ); | 266 void* user ); |
267 | 267 |
268 | |
269 /* */ | 268 /* */ |
270 | 269 |
271 | 270 |
272 FT_END_HEADER | 271 FT_END_HEADER |
273 | 272 |
274 #endif /* __FTLIST_H__ */ | 273 #endif /* __FTLIST_H__ */ |
275 | 274 |
276 | 275 |
277 /* END */ | 276 /* END */ |
OLD | NEW |