/***************************************************************************/ /* */ /* ftlist.h */ /* */ /* Generic list support for FreeType (specification). */ /* */ /* Copyright 1996-2017 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. */ /* */ /***************************************************************************/ /*************************************************************************/ /* */ /* This file implements functions relative to list processing. Its */ /* data structures are defined in `freetype.h'. */ /* */ /*************************************************************************/ #ifndef FTLIST_H_ #define FTLIST_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> */ /* list_processing */ /* */ /* <Title> */ /* List Processing */ /* */ /* <Abstract> */ /* Simple management of lists. */ /* */ /* <Description> */ /* This section contains various definitions related to list */ /* processing using doubly-linked nodes. */ /* */ /* <Order> */ /* FT_List */ /* FT_ListNode */ /* FT_ListRec */ /* FT_ListNodeRec */ /* */ /* FT_List_Add */ /* FT_List_Insert */ /* FT_List_Find */ /* FT_List_Remove */ /* FT_List_Up */ /* FT_List_Iterate */ /* FT_List_Iterator */ /* FT_List_Finalize */ /* FT_List_Destructor */ /* */ /*************************************************************************/ /*************************************************************************/ /* */ /* <Function> */ /* FT_List_Find */ /* */ /* <Description> */ /* Find the list node for a given listed object. */ /* */ /* <Input> */ /* list :: A pointer to the parent list. */ /* data :: The address of the listed object. */ /* */ /* <Return> */ /* List node. NULL if it wasn't found. */ /* */ FT_EXPORT( FT_ListNode ) FT_List_Find( FT_List list, void* data ); /*************************************************************************/ /* */ /* <Function> */ /* FT_List_Add */ /* */ /* <Description> */ /* Append an element to the end of a list. */ /* */ /* <InOut> */ /* list :: A pointer to the parent list. */ /* node :: The node to append. */ /* */ FT_EXPORT( void ) FT_List_Add( FT_List list, FT_ListNode node ); /*************************************************************************/ /* */ /* <Function> */ /* FT_List_Insert */ /* */ /* <Description> */ /* Insert an element at the head of a list. */ /* */ /* <InOut> */ /* list :: A pointer to parent list. */ /* node :: The node to insert. */ /* */ FT_EXPORT( void ) FT_List_Insert( FT_List list, FT_ListNode node ); /*************************************************************************/ /* */ /* <Function> */ /* FT_List_Remove */ /* */ /* <Description> */ /* Remove a node from a list. This function doesn't check whether */ /* the node is in the list! */ /* */ /* <Input> */ /* node :: The node to remove. */ /* */ /* <InOut> */ /* list :: A pointer to the parent list. */ /* */ FT_EXPORT( void ) FT_List_Remove( FT_List list, FT_ListNode node ); /*************************************************************************/ /* */ /* <Function> */ /* FT_List_Up */ /* */ /* <Description> */ /* Move a node to the head/top of a list. Used to maintain LRU */ /* lists. */ /* */ /* <InOut> */ /* list :: A pointer to the parent list. */ /* node :: The node to move. */ /* */ FT_EXPORT( void ) FT_List_Up( FT_List list, FT_ListNode node ); /*************************************************************************/ /* */ /* <FuncType> */ /* FT_List_Iterator */ /* */ /* <Description> */ /* An FT_List iterator function that is called during a list parse */ /* by @FT_List_Iterate. */ /* */ /* <Input> */ /* node :: The current iteration list node. */ /* */ /* user :: A typeless pointer passed to @FT_List_Iterate. */ /* Can be used to point to the iteration's state. */ /* */ typedef FT_Error (*FT_List_Iterator)( FT_ListNode node, void* user ); /*************************************************************************/ /* */ /* <Function> */ /* FT_List_Iterate */ /* */ /* <Description> */ /* Parse a list and calls a given iterator function on each element. */ /* Note that parsing is stopped as soon as one of the iterator calls */ /* returns a non-zero value. */ /* */ /* <Input> */ /* list :: A handle to the list. */ /* iterator :: An iterator function, called on each node of the list. */ /* user :: A user-supplied field that is passed as the second */ /* argument to the iterator. */ /* */ /* <Return> */ /* The result (a FreeType error code) of the last iterator call. */ /* */ FT_EXPORT( FT_Error ) FT_List_Iterate( FT_List list, FT_List_Iterator iterator, void* user ); /*************************************************************************/ /* */ /* <FuncType> */ /* FT_List_Destructor */ /* */ /* <Description> */ /* An @FT_List iterator function that is called during a list */ /* finalization by @FT_List_Finalize to destroy all elements in a */ /* given list. */ /* */ /* <Input> */ /* system :: The current system object. */ /* */ /* data :: The current object to destroy. */ /* */ /* user :: A typeless pointer passed to @FT_List_Iterate. It can */ /* be used to point to the iteration's state. */ /* */ typedef void (*FT_List_Destructor)( FT_Memory memory, void* data, void* user ); /*************************************************************************/ /* */ /* <Function> */ /* FT_List_Finalize */ /* */ /* <Description> */ /* Destroy all elements in the list as well as the list itself. */ /* */ /* <Input> */ /* list :: A handle to the list. */ /* */ /* destroy :: A list destructor that will be applied to each element */ /* of the list. Set this to NULL if not needed. */ /* */ /* memory :: The current memory object that handles deallocation. */ /* */ /* user :: A user-supplied field that is passed as the last */ /* argument to the destructor. */ /* */ /* <Note> */ /* This function expects that all nodes added by @FT_List_Add or */ /* @FT_List_Insert have been dynamically allocated. */ /* */ FT_EXPORT( void ) FT_List_Finalize( FT_List list, FT_List_Destructor destroy, FT_Memory memory, void* user ); /* */ FT_END_HEADER #endif /* FTLIST_H_ */ /* END */
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
config | Folder | 0755 |
|
|
freetype.h | File | 279.94 KB | 0644 |
|
ftadvanc.h | File | 10.39 KB | 0644 |
|
ftautoh.h | File | 19.42 KB | 0644 |
|
ftbbox.h | File | 5.11 KB | 0644 |
|
ftbdf.h | File | 6.63 KB | 0644 |
|
ftbitmap.h | File | 14.35 KB | 0644 |
|
ftbzip2.h | File | 4.2 KB | 0644 |
|
ftcache.h | File | 58.1 KB | 0644 |
|
ftcffdrv.h | File | 12.11 KB | 0644 |
|
ftchapters.h | File | 9.38 KB | 0644 |
|
ftcid.h | File | 5.52 KB | 0644 |
|
fterrdef.h | File | 14.1 KB | 0644 |
|
fterrors.h | File | 11.1 KB | 0644 |
|
ftfntfmt.h | File | 4.86 KB | 0644 |
|
ftgasp.h | File | 4.68 KB | 0644 |
|
ftglyph.h | File | 37.78 KB | 0644 |
|
ftgxval.h | File | 13.08 KB | 0644 |
|
ftgzip.h | File | 5.49 KB | 0644 |
|
ftimage.h | File | 73.91 KB | 0644 |
|
ftincrem.h | File | 11.13 KB | 0644 |
|
ftlcdfil.h | File | 12.28 KB | 0644 |
|
ftlist.h | File | 16.36 KB | 0644 |
|
ftlzw.h | File | 4.15 KB | 0644 |
|
ftmac.h | File | 16.69 KB | 0644 |
|
ftmm.h | File | 29.86 KB | 0644 |
|
ftmodapi.h | File | 37.05 KB | 0644 |
|
ftmoderr.h | File | 10.17 KB | 0644 |
|
ftotval.h | File | 7.41 KB | 0644 |
|
ftoutln.h | File | 34.9 KB | 0644 |
|
ftpcfdrv.h | File | 3.68 KB | 0644 |
|
ftpfr.h | File | 6.13 KB | 0644 |
|
ftrender.h | File | 11.05 KB | 0644 |
|
ftsizes.h | File | 9.33 KB | 0644 |
|
ftsnames.h | File | 16.21 KB | 0644 |
|
ftstroke.h | File | 21.78 KB | 0644 |
|
ftsynth.h | File | 4.03 KB | 0644 |
|
ftsystem.h | File | 10.31 KB | 0644 |
|
fttrigon.h | File | 8.23 KB | 0644 |
|
ftttdrv.h | File | 15.13 KB | 0644 |
|
fttypes.h | File | 34.84 KB | 0644 |
|
ftwinfnt.h | File | 10.16 KB | 0644 |
|
t1tables.h | File | 34.21 KB | 0644 |
|
ttnameid.h | File | 58.55 KB | 0644 |
|
tttables.h | File | 44.33 KB | 0644 |
|
tttags.h | File | 5.29 KB | 0644 |
|
ttunpat.h | File | 2.28 KB | 0644 |
|