[692] | 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 */
|
---|