ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

ftcimage.h
Go to the documentation of this file.
00001 /***************************************************************************/
00002 /*                                                                         */
00003 /*  ftcimage.h                                                             */
00004 /*                                                                         */
00005 /*    FreeType Generic Image 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  /*
00020   *  FTC_ICache is an _abstract_ cache used to store a single FT_Glyph
00021   *  image per cache node.
00022   *
00023   *  FTC_ICache extends FTC_GCache.  For an implementation example,
00024   *  see FTC_ImageCache in `src/cache/ftbasic.c'.
00025   */
00026 
00027 
00028   /*************************************************************************/
00029   /*                                                                       */
00030   /* Each image cache really manages FT_Glyph objects.                     */
00031   /*                                                                       */
00032   /*************************************************************************/
00033 
00034 
00035 #ifndef __FTCIMAGE_H__
00036 #define __FTCIMAGE_H__
00037 
00038 
00039 #include <ft2build.h>
00040 #include FT_CACHE_H
00041 #include "ftcglyph.h"
00042 
00043 FT_BEGIN_HEADER
00044 
00045 
00046   /* the FT_Glyph image node type - we store only 1 glyph per node */
00047   typedef struct  FTC_INodeRec_
00048   {
00049     FTC_GNodeRec  gnode;
00050     FT_Glyph      glyph;
00051 
00052   } FTC_INodeRec, *FTC_INode;
00053 
00054 #define FTC_INODE( x )         ( (FTC_INode)( x ) )
00055 #define FTC_INODE_GINDEX( x )  FTC_GNODE(x)->gindex
00056 #define FTC_INODE_FAMILY( x )  FTC_GNODE(x)->family
00057 
00058   typedef FT_Error
00059   (*FTC_IFamily_LoadGlyphFunc)( FTC_Family  family,
00060                                 FT_UInt     gindex,
00061                                 FTC_Cache   cache,
00062                                 FT_Glyph   *aglyph );
00063 
00064   typedef struct  FTC_IFamilyClassRec_
00065   {
00066     FTC_MruListClassRec        clazz;
00067     FTC_IFamily_LoadGlyphFunc  family_load_glyph;
00068 
00069   } FTC_IFamilyClassRec;
00070 
00071   typedef const FTC_IFamilyClassRec*  FTC_IFamilyClass;
00072 
00073 #define FTC_IFAMILY_CLASS( x )  ((FTC_IFamilyClass)(x))
00074 
00075 #define FTC_CACHE__IFAMILY_CLASS( x ) \
00076           FTC_IFAMILY_CLASS( FTC_CACHE__GCACHE_CLASS(x)->family_class )
00077 
00078 
00079   /* can be used as a @FTC_Node_FreeFunc */
00080   FT_LOCAL( void )
00081   FTC_INode_Free( FTC_INode  inode,
00082                   FTC_Cache  cache );
00083 
00084   /* Can be used as @FTC_Node_NewFunc.  `gquery.index' and `gquery.family'
00085    * must be set correctly.  This function will call the `family_load_glyph'
00086    * method to load the FT_Glyph into the cache node.
00087    */
00088   FT_LOCAL( FT_Error )
00089   FTC_INode_New( FTC_INode   *pinode,
00090                  FTC_GQuery   gquery,
00091                  FTC_Cache    cache );
00092 
00093 #if 0
00094   /* can be used as @FTC_Node_WeightFunc */
00095   FT_LOCAL( FT_ULong )
00096   FTC_INode_Weight( FTC_INode  inode );
00097 #endif
00098 
00099 
00100  /* */
00101 
00102 FT_END_HEADER
00103 
00104 #endif /* __FTCIMAGE_H__ */
00105 
00106 
00107 /* END */

Generated on Sat May 26 2012 04:32:39 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.