Go to most recent revision | Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
3918 | Serge | 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 |
||
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 */ |