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