1 | /***************************************************************************/
|
---|
2 | /* */
|
---|
3 | /* ftcsbits.h */
|
---|
4 | /* */
|
---|
5 | /* A small-bitmap cache (specification). */
|
---|
6 | /* */
|
---|
7 | /* Copyright 2000-2001, 2002, 2003 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 FT_CACHE_INTERNAL_GLYPH_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_EXPORT( void )
|
---|
72 | FTC_SNode_Free( FTC_SNode snode,
|
---|
73 | FTC_Cache cache );
|
---|
74 |
|
---|
75 | FT_EXPORT( FT_Error )
|
---|
76 | FTC_SNode_New( FTC_SNode *psnode,
|
---|
77 | FTC_GQuery gquery,
|
---|
78 | FTC_Cache cache );
|
---|
79 |
|
---|
80 | FT_EXPORT( FT_ULong )
|
---|
81 | FTC_SNode_Weight( FTC_SNode inode );
|
---|
82 |
|
---|
83 |
|
---|
84 | FT_EXPORT( FT_Bool )
|
---|
85 | FTC_SNode_Compare( FTC_SNode snode,
|
---|
86 | FTC_GQuery gquery,
|
---|
87 | FTC_Cache cache );
|
---|
88 |
|
---|
89 | /* */
|
---|
90 |
|
---|
91 | FT_END_HEADER
|
---|
92 |
|
---|
93 | #endif /* __FTCSBITS_H__ */
|
---|
94 |
|
---|
95 |
|
---|
96 | /* END */
|
---|