00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef __FTCSBITS_H__
00020 #define __FTCSBITS_H__
00021
00022
00023 #include <ft2build.h>
00024 #include FT_CACHE_H
00025 #include "ftcglyph.h"
00026
00027
00028 FT_BEGIN_HEADER
00029
00030 #define FTC_SBIT_ITEMS_PER_NODE 16
00031
00032 typedef struct FTC_SNodeRec_
00033 {
00034 FTC_GNodeRec gnode;
00035 FT_UInt count;
00036 FTC_SBitRec sbits[FTC_SBIT_ITEMS_PER_NODE];
00037
00038 } FTC_SNodeRec, *FTC_SNode;
00039
00040
00041 #define FTC_SNODE( x ) ( (FTC_SNode)( x ) )
00042 #define FTC_SNODE_GINDEX( x ) FTC_GNODE( x )->gindex
00043 #define FTC_SNODE_FAMILY( x ) FTC_GNODE( x )->family
00044
00045 typedef FT_UInt
00046 (*FTC_SFamily_GetCountFunc)( FTC_Family family,
00047 FTC_Manager manager );
00048
00049 typedef FT_Error
00050 (*FTC_SFamily_LoadGlyphFunc)( FTC_Family family,
00051 FT_UInt gindex,
00052 FTC_Manager manager,
00053 FT_Face *aface );
00054
00055 typedef struct FTC_SFamilyClassRec_
00056 {
00057 FTC_MruListClassRec clazz;
00058 FTC_SFamily_GetCountFunc family_get_count;
00059 FTC_SFamily_LoadGlyphFunc family_load_glyph;
00060
00061 } FTC_SFamilyClassRec;
00062
00063 typedef const FTC_SFamilyClassRec* FTC_SFamilyClass;
00064
00065 #define FTC_SFAMILY_CLASS( x ) ((FTC_SFamilyClass)(x))
00066
00067 #define FTC_CACHE__SFAMILY_CLASS( x ) \
00068 FTC_SFAMILY_CLASS( FTC_CACHE__GCACHE_CLASS( x )->family_class )
00069
00070
00071 FT_LOCAL( void )
00072 FTC_SNode_Free( FTC_SNode snode,
00073 FTC_Cache cache );
00074
00075 FT_LOCAL( FT_Error )
00076 FTC_SNode_New( FTC_SNode *psnode,
00077 FTC_GQuery gquery,
00078 FTC_Cache cache );
00079
00080 #if 0
00081 FT_LOCAL( FT_ULong )
00082 FTC_SNode_Weight( FTC_SNode inode );
00083 #endif
00084
00085
00086 FT_LOCAL( FT_Bool )
00087 FTC_SNode_Compare( FTC_SNode snode,
00088 FTC_GQuery gquery,
00089 FTC_Cache cache );
00090
00091
00092
00093 FT_END_HEADER
00094
00095 #endif
00096
00097
00098