misc/libfreetype/src/cache/ftcsbits.h
changeset 5172 88f2e05288ba
equal deleted inserted replaced
5171:f9283dc4860d 5172:88f2e05288ba
       
     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 */