1 /***************************************************************************/
5 /* A small-bitmap cache (specification). */
7 /* Copyright 2000-2001, 2002, 2003, 2006, 2011 by */
8 /* David Turner, Robert Wilhelm, and Werner Lemberg. */
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 */
12 /* license, LICENSE.TXT. By continuing to use, modify, or distribute */
13 /* this file you indicate that you have read the license and */
14 /* understand and accept it fully. */
16 /***************************************************************************/
19 #ifndef __FTCSBITS_H__
20 #define __FTCSBITS_H__
30 #define FTC_SBIT_ITEMS_PER_NODE 16
32 typedef struct FTC_SNodeRec_
36 FTC_SBitRec sbits[FTC_SBIT_ITEMS_PER_NODE];
38 } FTC_SNodeRec, *FTC_SNode;
41 #define FTC_SNODE( x ) ( (FTC_SNode)( x ) )
42 #define FTC_SNODE_GINDEX( x ) FTC_GNODE( x )->gindex
43 #define FTC_SNODE_FAMILY( x ) FTC_GNODE( x )->family
46 (*FTC_SFamily_GetCountFunc)( FTC_Family family,
47 FTC_Manager manager );
50 (*FTC_SFamily_LoadGlyphFunc)( FTC_Family family,
55 typedef struct FTC_SFamilyClassRec_
57 FTC_MruListClassRec clazz;
58 FTC_SFamily_GetCountFunc family_get_count;
59 FTC_SFamily_LoadGlyphFunc family_load_glyph;
61 } FTC_SFamilyClassRec;
63 typedef const FTC_SFamilyClassRec* FTC_SFamilyClass;
65 #define FTC_SFAMILY_CLASS( x ) ((FTC_SFamilyClass)(x))
67 #define FTC_CACHE__SFAMILY_CLASS( x ) \
68 FTC_SFAMILY_CLASS( FTC_CACHE__GCACHE_CLASS( x )->family_class )
72 FTC_SNode_Free( FTC_SNode snode,
76 FTC_SNode_New( FTC_SNode *psnode,
82 FTC_SNode_Weight( FTC_SNode inode );
89 FTC_SNode_Compare( FTC_SNode snode,
92 FT_Bool* list_changed);
100 #endif /* __FTCSBITS_H__ */