[Index] | [TOC] |
FT_List | FT_List_Add | FT_List_Iterate |
FT_ListNode | FT_List_Insert | FT_List_Iterator |
FT_ListRec | FT_List_Find | FT_List_Finalize |
FT_ListNodeRec | FT_List_Remove | FT_List_Destructor |
FT_List_Up |
This section contains various definitions related to list processing using doubly-linked nodes.
Defined in FT_TYPES_H (freetype/fttypes.h).
typedef struct FT_ListRec_* FT_List;
A handle to a list record (see FT_ListRec).
[Index] | [Top] | [TOC] |
Defined in FT_TYPES_H (freetype/fttypes.h).
typedef struct FT_ListNodeRec_* FT_ListNode;
Many elements and objects in FreeType are listed through an FT_List record (see FT_ListRec). As its name suggests, an FT_ListNode is a handle to a single list element.
[Index] | [Top] | [TOC] |
Defined in FT_TYPES_H (freetype/fttypes.h).
typedef struct FT_ListRec_ { FT_ListNode head; FT_ListNode tail; } FT_ListRec;
A structure used to hold a simple doubly-linked list. These are used in many parts of FreeType.
head |
The head (first element) of doubly-linked list. |
tail |
The tail (last element) of doubly-linked list. |
[Index] | [Top] | [TOC] |
Defined in FT_TYPES_H (freetype/fttypes.h).
typedef struct FT_ListNodeRec_ { FT_ListNode prev; FT_ListNode next; void* data; } FT_ListNodeRec;
A structure used to hold a single list element.
prev |
The previous element in the list. NULL if first. |
next |
The next element in the list. NULL if last. |
data |
A typeless pointer to the listed object. |
[Index] | [Top] | [TOC] |
Defined in FT_LIST_H (freetype/ftlist.h).
FT_EXPORT( void ) FT_List_Add( FT_List list, FT_ListNode node );
Append an element to the end of a list.
list |
A pointer to the parent list. |
node |
The node to append. |
[Index] | [Top] | [TOC] |
Defined in FT_LIST_H (freetype/ftlist.h).
FT_EXPORT( void ) FT_List_Insert( FT_List list, FT_ListNode node );
Insert an element at the head of a list.
list |
A pointer to parent list. |
node |
The node to insert. |
[Index] | [Top] | [TOC] |
Defined in FT_LIST_H (freetype/ftlist.h).
FT_EXPORT( FT_ListNode ) FT_List_Find( FT_List list, void* data );
Find the list node for a given listed object.
list |
A pointer to the parent list. |
data |
The address of the listed object. |
List node. NULL if it wasn't found.
[Index] | [Top] | [TOC] |
Defined in FT_LIST_H (freetype/ftlist.h).
FT_EXPORT( void ) FT_List_Remove( FT_List list, FT_ListNode node );
Remove a node from a list. This function doesn't check whether the node is in the list!
node |
The node to remove. |
list |
A pointer to the parent list. |
[Index] | [Top] | [TOC] |
Defined in FT_LIST_H (freetype/ftlist.h).
FT_EXPORT( void ) FT_List_Up( FT_List list, FT_ListNode node );
Move a node to the head/top of a list. Used to maintain LRU lists.
list |
A pointer to the parent list. |
node |
The node to move. |
[Index] | [Top] | [TOC] |
Defined in FT_LIST_H (freetype/ftlist.h).
FT_EXPORT( FT_Error ) FT_List_Iterate( FT_List list, FT_List_Iterator iterator, void* user );
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.
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. |
The result (a FreeType error code) of the last iterator call.
[Index] | [Top] | [TOC] |
Defined in FT_LIST_H (freetype/ftlist.h).
typedef FT_Error (*FT_List_Iterator)( FT_ListNode node, void* user );
An FT_List iterator function that is called during a list parse by FT_List_Iterate.
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. |
[Index] | [Top] | [TOC] |
Defined in FT_LIST_H (freetype/ftlist.h).
FT_EXPORT( void ) FT_List_Finalize( FT_List list, FT_List_Destructor destroy, FT_Memory memory, void* user );
Destroy all elements in the list as well as the list itself.
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. |
This function expects that all nodes added by FT_List_Add or FT_List_Insert have been dynamically allocated.
[Index] | [Top] | [TOC] |
Defined in FT_LIST_H (freetype/ftlist.h).
typedef void (*FT_List_Destructor)( FT_Memory memory, void* data, void* user );
An FT_List iterator function that is called during a list finalization by FT_List_Finalize to destroy all elements in a given list.
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. |
[Index] | [Top] | [TOC] |