|
1 /***************************************************************************/ |
|
2 /* */ |
|
3 /* ftcsbits.h */ |
|
4 /* */ |
|
5 /* A small-bitmap cache (specification). */ |
|
6 /* */ |
|
7 /* Copyright 2000-2001, 2002, 2003, 2006, 2011 by */ |
|
8 /* David Turner, Robert Wilhelm, and Werner Lemberg. */ |
|
9 /* */ |
|
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. */ |
|
15 /* */ |
|
16 /***************************************************************************/ |
|
17 |
|
18 |
|
19 #ifndef __FTCSBITS_H__ |
|
20 #define __FTCSBITS_H__ |
|
21 |
|
22 |
|
23 #include <ft2build.h> |
|
24 #include FT_CACHE_H |
|
25 #include "ftcglyph.h" |
|
26 |
|
27 |
|
28 FT_BEGIN_HEADER |
|
29 |
|
30 #define FTC_SBIT_ITEMS_PER_NODE 16 |
|
31 |
|
32 typedef struct FTC_SNodeRec_ |
|
33 { |
|
34 FTC_GNodeRec gnode; |
|
35 FT_UInt count; |
|
36 FTC_SBitRec sbits[FTC_SBIT_ITEMS_PER_NODE]; |
|
37 |
|
38 } FTC_SNodeRec, *FTC_SNode; |
|
39 |
|
40 |
|
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 |
|
44 |
|
45 typedef FT_UInt |
|
46 (*FTC_SFamily_GetCountFunc)( FTC_Family family, |
|
47 FTC_Manager manager ); |
|
48 |
|
49 typedef FT_Error |
|
50 (*FTC_SFamily_LoadGlyphFunc)( FTC_Family family, |
|
51 FT_UInt gindex, |
|
52 FTC_Manager manager, |
|
53 FT_Face *aface ); |
|
54 |
|
55 typedef struct FTC_SFamilyClassRec_ |
|
56 { |
|
57 FTC_MruListClassRec clazz; |
|
58 FTC_SFamily_GetCountFunc family_get_count; |
|
59 FTC_SFamily_LoadGlyphFunc family_load_glyph; |
|
60 |
|
61 } FTC_SFamilyClassRec; |
|
62 |
|
63 typedef const FTC_SFamilyClassRec* FTC_SFamilyClass; |
|
64 |
|
65 #define FTC_SFAMILY_CLASS( x ) ((FTC_SFamilyClass)(x)) |
|
66 |
|
67 #define FTC_CACHE__SFAMILY_CLASS( x ) \ |
|
68 FTC_SFAMILY_CLASS( FTC_CACHE__GCACHE_CLASS( x )->family_class ) |
|
69 |
|
70 |
|
71 FT_LOCAL( void ) |
|
72 FTC_SNode_Free( FTC_SNode snode, |
|
73 FTC_Cache cache ); |
|
74 |
|
75 FT_LOCAL( FT_Error ) |
|
76 FTC_SNode_New( FTC_SNode *psnode, |
|
77 FTC_GQuery gquery, |
|
78 FTC_Cache cache ); |
|
79 |
|
80 #if 0 |
|
81 FT_LOCAL( FT_ULong ) |
|
82 FTC_SNode_Weight( FTC_SNode inode ); |
|
83 #endif |
|
84 |
|
85 |
|
86 #ifdef FTC_INLINE |
|
87 |
|
88 FT_LOCAL( FT_Bool ) |
|
89 FTC_SNode_Compare( FTC_SNode snode, |
|
90 FTC_GQuery gquery, |
|
91 FTC_Cache cache, |
|
92 FT_Bool* list_changed); |
|
93 |
|
94 #endif |
|
95 |
|
96 /* */ |
|
97 |
|
98 FT_END_HEADER |
|
99 |
|
100 #endif /* __FTCSBITS_H__ */ |
|
101 |
|
102 |
|
103 /* END */ |