ftcsbits.h

Go to the documentation of this file.
00001 /***************************************************************************/
00002 /*                                                                         */
00003 /*  ftcsbits.h                                                             */
00004 /*                                                                         */
00005 /*    A small-bitmap cache (specification).                                */
00006 /*                                                                         */
00007 /*  Copyright 2000-2001, 2002, 2003, 2006 by                               */
00008 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
00009 /*                                                                         */
00010 /*  This file is part of the FreeType project, and may only be used,       */
00011 /*  modified, and distributed under the terms of the FreeType project      */
00012 /*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
00013 /*  this file you indicate that you have read the license and              */
00014 /*  understand and accept it fully.                                        */
00015 /*                                                                         */
00016 /***************************************************************************/
00017 
00018 
00019 #ifndef __FTCSBITS_H__
00020 #define __FTCSBITS_H__
00021 
00022 
00023 #include <ft2build.h>
00024 #include FT_CACHE_H
00025 #include "ftcglyph.h"
00026 
00027 
00028 FT_BEGIN_HEADER
00029 
00030 #define FTC_SBIT_ITEMS_PER_NODE  16
00031 
00032   typedef struct  FTC_SNodeRec_
00033   {
00034     FTC_GNodeRec  gnode;
00035     FT_UInt       count;
00036     FTC_SBitRec   sbits[FTC_SBIT_ITEMS_PER_NODE];
00037 
00038   } FTC_SNodeRec, *FTC_SNode;
00039 
00040 
00041 #define FTC_SNODE( x )         ( (FTC_SNode)( x ) )
00042 #define FTC_SNODE_GINDEX( x )  FTC_GNODE( x )->gindex
00043 #define FTC_SNODE_FAMILY( x )  FTC_GNODE( x )->family
00044 
00045   typedef FT_UInt
00046   (*FTC_SFamily_GetCountFunc)( FTC_Family   family,
00047                                FTC_Manager  manager );
00048 
00049   typedef FT_Error
00050   (*FTC_SFamily_LoadGlyphFunc)( FTC_Family   family,
00051                                 FT_UInt      gindex,
00052                                 FTC_Manager  manager,
00053                                 FT_Face     *aface );
00054 
00055   typedef struct  FTC_SFamilyClassRec_
00056   {
00057     FTC_MruListClassRec        clazz;
00058     FTC_SFamily_GetCountFunc   family_get_count;
00059     FTC_SFamily_LoadGlyphFunc  family_load_glyph;
00060 
00061   } FTC_SFamilyClassRec;
00062 
00063   typedef const FTC_SFamilyClassRec*  FTC_SFamilyClass;
00064 
00065 #define FTC_SFAMILY_CLASS( x )  ((FTC_SFamilyClass)(x))
00066 
00067 #define FTC_CACHE__SFAMILY_CLASS( x )  \
00068           FTC_SFAMILY_CLASS( FTC_CACHE__GCACHE_CLASS( x )->family_class )
00069 
00070 
00071   FT_LOCAL( void )
00072   FTC_SNode_Free( FTC_SNode  snode,
00073                   FTC_Cache  cache );
00074 
00075   FT_LOCAL( FT_Error )
00076   FTC_SNode_New( FTC_SNode   *psnode,
00077                  FTC_GQuery   gquery,
00078                  FTC_Cache    cache );
00079 
00080 #if 0
00081   FT_LOCAL( FT_ULong )
00082   FTC_SNode_Weight( FTC_SNode  inode );
00083 #endif
00084 
00085 
00086   FT_LOCAL( FT_Bool )
00087   FTC_SNode_Compare( FTC_SNode   snode,
00088                      FTC_GQuery  gquery,
00089                      FTC_Cache   cache );
00090 
00091   /* */
00092 
00093 FT_END_HEADER
00094 
00095 #endif /* __FTCSBITS_H__ */
00096 
00097 
00098 /* END */

Generated on Tue Jul 5 14:13:45 2011 for ROOT_528-00b_version by  doxygen 1.5.1