/***************************************************************************/ /* */ /* ftcsbits.h */ /* */ /* A small-bitmap cache (specification). */ /* */ /* Copyright 2000-2001, 2002, 2003, 2006, 2011 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ /* modified, and distributed under the terms of the FreeType project */ /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ /* this file you indicate that you have read the license and */ /* understand and accept it fully. */ /* */ /***************************************************************************/ #ifndef __FTCSBITS_H__ #define __FTCSBITS_H__ #include #include FT_CACHE_H #include "ftcglyph.h" FT_BEGIN_HEADER #define FTC_SBIT_ITEMS_PER_NODE 16 typedef struct FTC_SNodeRec_ { FTC_GNodeRec gnode; FT_UInt count; FTC_SBitRec sbits[FTC_SBIT_ITEMS_PER_NODE]; } FTC_SNodeRec, *FTC_SNode; #define FTC_SNODE( x ) ( (FTC_SNode)( x ) ) #define FTC_SNODE_GINDEX( x ) FTC_GNODE( x )->gindex #define FTC_SNODE_FAMILY( x ) FTC_GNODE( x )->family typedef FT_UInt (*FTC_SFamily_GetCountFunc)( FTC_Family family, FTC_Manager manager ); typedef FT_Error (*FTC_SFamily_LoadGlyphFunc)( FTC_Family family, FT_UInt gindex, FTC_Manager manager, FT_Face *aface ); typedef struct FTC_SFamilyClassRec_ { FTC_MruListClassRec clazz; FTC_SFamily_GetCountFunc family_get_count; FTC_SFamily_LoadGlyphFunc family_load_glyph; } FTC_SFamilyClassRec; typedef const FTC_SFamilyClassRec* FTC_SFamilyClass; #define FTC_SFAMILY_CLASS( x ) ((FTC_SFamilyClass)(x)) #define FTC_CACHE__SFAMILY_CLASS( x ) \ FTC_SFAMILY_CLASS( FTC_CACHE__GCACHE_CLASS( x )->family_class ) FT_LOCAL( void ) FTC_SNode_Free( FTC_SNode snode, FTC_Cache cache ); FT_LOCAL( FT_Error ) FTC_SNode_New( FTC_SNode *psnode, FTC_GQuery gquery, FTC_Cache cache ); #if 0 FT_LOCAL( FT_ULong ) FTC_SNode_Weight( FTC_SNode inode ); #endif #ifdef FTC_INLINE FT_LOCAL( FT_Bool ) FTC_SNode_Compare( FTC_SNode snode, FTC_GQuery gquery, FTC_Cache cache, FT_Bool* list_changed); #endif /* */ FT_END_HEADER #endif /* __FTCSBITS_H__ */ /* END */