1 /***************************************************************************/
5 /* A small-bitmap cache (specification). */
7 /* Copyright 2000-2001, 2002, 2003, 2006 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
);
87 FTC_SNode_Compare( FTC_SNode snode
,
95 #endif /* __FTCSBITS_H__ */