48 #include FT_FREETYPE_H
51 #error "freetype.h of FreeType 1 has been loaded!"
52 #error "Please fix the directory search order for header files"
53 #error "so that freetype.h of FreeType 2 is found first."
56 #define xxFT_DEBUG_ERROR
148 FTC_MruNode *anode );
162 #define FTC_MRULIST_LOOKUP_CMP( list, key, compare, node, error ) \
164 FTC_MruNode* _pfirst = &(list)->nodes; \
165 FTC_MruNode_CompareFunc _compare = (FTC_MruNode_CompareFunc)(compare); \
166 FTC_MruNode _first, _node; \
169 error = FTC_Err_Ok; \
170 _first = *(_pfirst); \
178 if ( _compare( _node, (key) ) ) \
180 if ( _node != _first ) \
181 FTC_MruNode_Up( _pfirst, _node ); \
186 _node = _node->next; \
188 } while ( _node != _first) ; \
191 error = FTC_MruList_New( (list), (key), (FTC_MruNode*)(void*)&(node) ); \
196 #define FTC_MRULIST_LOOKUP( list, key, node, error ) \
197 FTC_MRULIST_LOOKUP_CMP( list, key, (list)->clazz.node_compare, node, error )
208 FTC_MruNode *pnode );
210 #define FTC_MRULIST_LOOKUP( list, key, node, error ) \
211 error = FTC_MruList_Lookup( (list), (key), (FTC_MruNode*)&(node) )
216 #define FTC_MRULIST_LOOP( list, node ) \
218 FTC_MruNode _first = (list)->nodes; \
223 FTC_MruNode _node = _first; \
228 *(FTC_MruNode*)&(node) = _node;
231 #define FTC_MRULIST_LOOP_END() \
232 _node = _node->next; \
234 } while ( _node != _first ); \
struct FTC_MruListRec_ FTC_MruListRec
typedefFT_BEGIN_HEADER struct FTC_MruNodeRec_ * FTC_MruNode
FT_Bool(* FTC_MruNode_CompareFunc)(FTC_MruNode node, FT_Pointer key)
FTC_MruNode_Remove(FTC_MruNode *plist, FTC_MruNode node)
FTC_MruListClassRec clazz
FT_BEGIN_HEADER typedef unsigned char FT_Bool
FTC_MruList_Init(FTC_MruList list, FTC_MruListClass clazz, FT_UInt max_nodes, FT_Pointer data, FT_Memory memory)
FTC_MruList_RemoveSelection(FTC_MruList list, FTC_MruNode_CompareFunc selection, FT_Pointer key)
FTC_MruNode_CompareFunc node_compare
FTC_MruNode_ResetFunc node_reset
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
FTC_MruNode_Up(FTC_MruNode *plist, FTC_MruNode node)
FTC_MruNode_DoneFunc node_done
FTC_MruList_Done(FTC_MruList list)
FTC_MruNode_InitFunc node_init
struct FTC_MruListClassRec_ FTC_MruListClassRec
FTC_MruList_New(FTC_MruList list, FT_Pointer key, FTC_MruNode *anode)
typedefFT_BEGIN_HEADER struct FT_MemoryRec_ * FT_Memory
void(* FTC_MruNode_DoneFunc)(FTC_MruNode node, FT_Pointer data)
struct FTC_MruNodeRec_ FTC_MruNodeRec
FTC_MruList_Remove(FTC_MruList list, FTC_MruNode node)
FT_Error(* FTC_MruNode_InitFunc)(FTC_MruNode node, FT_Pointer key, FT_Pointer data)
struct FTC_MruListClassRec_ const * FTC_MruListClass
FTC_MruList_Reset(FTC_MruList list)
FTC_MruNode_Prepend(FTC_MruNode *plist, FTC_MruNode node)
FT_Error(* FTC_MruNode_ResetFunc)(FTC_MruNode node, FT_Pointer key, FT_Pointer data)