116 #ifndef __FTCGLYPH_H__ 117 #define __FTCGLYPH_H__ 120 #include <ft2build.h> 144 #define FTC_FAMILY(x) ( (FTC_Family)(x) ) 145 #define FTC_FAMILY_P(x) ( (FTC_Family*)(x) ) 156 #define FTC_GNODE( x ) ( (FTC_GNode)(x) ) 157 #define FTC_GNODE_P( x ) ( (FTC_GNode*)(x) ) 167 #define FTC_GQUERY( x ) ( (FTC_GQuery)(x) ) 219 #define FTC_GCACHE( x ) ((FTC_GCache)(x)) 225 FTC_GCache_Init( FTC_GCache
cache );
232 FTC_GCache_Done( FTC_GCache
cache );
246 #define FTC_GCACHE_CLASS( x ) ((FTC_GCacheClass)(x)) 248 #define FTC_CACHE__GCACHE_CLASS( x ) \ 249 FTC_GCACHE_CLASS( FTC_CACHE(x)->org_class ) 250 #define FTC_CACHE__FAMILY_CLASS( x ) \ 251 ( (FTC_MruListClass)FTC_CACHE__GCACHE_CLASS( x )->family_class ) 258 FTC_GCache *acache );
262 FTC_GCache_Lookup( FTC_GCache
cache,
273 #define FTC_FAMILY_FREE( family, cache ) \ 274 FTC_MruList_Remove( &FTC_GCACHE((cache))->families, \ 275 (FTC_MruNode)(family) ) 280 #define FTC_GCACHE_LOOKUP_CMP( cache, famcmp, nodecmp, hash, \ 281 gindex, query, node, error ) \ 283 FTC_GCache _gcache = FTC_GCACHE( cache ); \ 284 FTC_GQuery _gquery = (FTC_GQuery)( query ); \ 285 FTC_MruNode_CompareFunc _fcompare = (FTC_MruNode_CompareFunc)(famcmp); \ 286 FTC_MruNode _mrunode; \ 289 _gquery->gindex = (gindex); \ 291 FTC_MRULIST_LOOKUP_CMP( &_gcache->families, _gquery, _fcompare, \ 293 _gquery->family = FTC_FAMILY( _mrunode ); \ 296 FTC_Family _gqfamily = _gquery->family; \ 299 _gqfamily->num_nodes++; \ 301 FTC_CACHE_LOOKUP_CMP( cache, nodecmp, hash, query, node, error ); \ 303 if ( --_gqfamily->num_nodes == 0 ) \ 304 FTC_FAMILY_FREE( _gqfamily, _gcache ); \ 311 #define FTC_GCACHE_LOOKUP_CMP( cache, famcmp, nodecmp, hash, \ 312 gindex, query, node, error ) \ 315 error = FTC_GCache_Lookup( FTC_GCACHE( cache ), hash, gindex, \ 316 FTC_GQUERY( query ), &node ); \
struct FTC_GQueryRec_ FTC_GQueryRec
struct FTC_GCacheRec_ FTC_GCacheRec
FTC_GNode_Compare(FTC_GNode gnode, FTC_GQuery gquery, FTC_Cache cache, FT_Bool *list_changed)
struct FTC_GNodeRec_ FTC_GNodeRec
FTC_GNode_UnselectFamily(FTC_GNode gnode, FTC_Cache cache)
struct FTC_GCacheRec_ * FTC_GCache
FT_BEGIN_HEADER typedef unsigned char FT_Bool
FTC_GNode_Done(FTC_GNode node, FTC_Cache cache)
FT_BEGIN_HEADER struct FTC_FamilyRec_ FTC_FamilyRec
struct FTC_GNodeRec_ * FTC_GNode
struct FTC_GCacheClassRec_ FTC_GCacheClassRec
FTC_GCache_New(FTC_Manager manager, FTC_GCacheClass clazz, FTC_GCache *acache)
const FTC_GCacheClassRec * FTC_GCacheClass
FTC_Family_Init(FTC_Family family, FTC_Cache cache)
FTC_GNode_Init(FTC_GNode node, FT_UInt gindex, FTC_Family family)
FT_BEGIN_HEADER struct FTC_FamilyRec_ * FTC_Family
struct FTC_GQueryRec_ * FTC_GQuery
FTC_MruListClass family_class
struct FTC_MruListClassRec_ const * FTC_MruListClass