Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  1. /***************************************************************************/
  2. /*                                                                         */
  3. /*  ftcsbits.h                                                             */
  4. /*                                                                         */
  5. /*    A small-bitmap cache (specification).                                */
  6. /*                                                                         */
  7. /*  Copyright 2000-2001, 2002, 2003, 2006, 2011 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 "ftcglyph.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_LOCAL( void )
  72.   FTC_SNode_Free( FTC_SNode  snode,
  73.                   FTC_Cache  cache );
  74.  
  75.   FT_LOCAL( FT_Error )
  76.   FTC_SNode_New( FTC_SNode   *psnode,
  77.                  FTC_GQuery   gquery,
  78.                  FTC_Cache    cache );
  79.  
  80. #if 0
  81.   FT_LOCAL( FT_ULong )
  82.   FTC_SNode_Weight( FTC_SNode  inode );
  83. #endif
  84.  
  85.  
  86. #ifdef FTC_INLINE
  87.  
  88.   FT_LOCAL( FT_Bool )
  89.   FTC_SNode_Compare( FTC_SNode   snode,
  90.                      FTC_GQuery  gquery,
  91.                      FTC_Cache   cache,
  92.                      FT_Bool*    list_changed);
  93.  
  94. #endif
  95.  
  96.   /* */
  97.  
  98. FT_END_HEADER
  99.  
  100. #endif /* __FTCSBITS_H__ */
  101.  
  102.  
  103. /* END */
  104.