FreeType-2.1.10 API Reference
Cache Sub-System
Synopsis
#FTC_ManagerFTC_Manager #FTC_Manager_LookupSizeFTC_Manager_LookupSize #FTC_SBitCache_NewFTC_SBitCache_New #FTC_FaceIDFTC_FaceID #FTC_Node_UnrefFTC_Node_Unref #FTC_SBitCache_LookupFTC_SBitCache_Lookup #FTC_Face_RequesterFTC_Face_Requester #FTC_CMapCacheFTC_CMapCache #FTC_CMapCacheFTC_CMapCache #FTC_FontRecFTC_FontRec #FTC_CMapCache_NewFTC_CMapCache_New #FTC_CMapDescFTC_CMapDesc #FTC_FontFTC_Font #FTC_CMapCache_LookupFTC_CMapCache_Lookup #FTC_CMapTypeFTC_CMapType #FTC_NodeFTC_Node #FTC_ImageCacheFTC_ImageCache #FTC_CMapIdRecFTC_CMapIdRec #FTC_Manager_NewFTC_Manager_New #FTC_ImageCache_NewFTC_ImageCache_New #FTC_CMapDescRecFTC_CMapDescRec #FTC_Manager_ResetFTC_Manager_Reset #FTC_ImageCache_LookupFTC_ImageCache_Lookup #FTC_CMapCache_NewFTC_CMapCache_New #FTC_Manager_DoneFTC_Manager_Done #FTC_SBitFTC_SBit #FTC_CMapCache_LookupFTC_CMapCache_Lookup #FTC_Manager_LookupFaceFTC_Manager_LookupFace #FTC_SBitRecFTC_SBitRec #FTC_Manager_CompressFTC_Manager_Compress #FTC_ScalerRecFTC_ScalerRec #FTC_SBitCacheFTC_SBitCache This section describes the FreeType 2 cache sub-system which is still in beta.
FTC_Manager 
  
typedef struct FTC_ManagerRec_*  FTC_Manager;
This object is used to cache one or more ft2-base_interface.html#FT_FaceFT_Face  objects, along with corresponding ft2-base_interface.html#FT_SizeFT_Size  objects.
FTC_FaceID 
  
typedef struct FTC_FaceIDRec_*  FTC_FaceID;
An opaque pointer type that is used to identity face objects. The contents of such objects is application-dependent.
FTC_Face_Requester 
  
typedef ft2-basic_types.html#FT_ErrorFT_Error   (*
FTC_Face_Requester)( ft2-cache_subsystem.html#FTC_FaceIDFTC_FaceID   face_id,
                         
ft2-base_interface.html#FT_LibraryFT_Library   library,
                         
ft2-basic_types.html#FT_PointerFT_Pointer   request_data,
                         
ft2-base_interface.html#FT_FaceFT_Face *    aface );
A callback function provided by client applications. It is used to translate a given ft2-cache_subsystem.html#FTC_FaceIDFTC_FaceID  into a new valid ft2-base_interface.html#FT_FaceFT_Face  object.
input face_id The face ID to resolve.
library A handle to a FreeType library object.
data Application-provided request data.
output aface A new ft2-base_interface.html#FT_FaceFT_Face  handle.
return FreeType error code. 0 means success.
note The face requester should not perform funny things on the returned face object, like creating a new ft2-base_interface.html#FT_SizeFT_Size  for it, or setting a transformation through ft2-base_interface.html#FT_Set_TransformFT_Set_Transform !
FTC_FontRec 
  
typedef struct  FTC_FontRec_
  {
    
ft2-cache_subsystem.html#FTC_FaceIDFTC_FaceID   face_id;
    
ft2-basic_types.html#FT_UShortFT_UShort    pix_width;
    
ft2-basic_types.html#FT_UShortFT_UShort    pix_height;
  } 
FTC_FontRec;
A simple structure used to describe a given `font' to the cache manager. Note that a `font' is the combination of a given face with a given character size.
fields face_id The ID of the face to use.
pix_width The character width in integer pixels.
pix_height The character height in integer pixels.
FTC_Font 
  
typedef ft2-cache_subsystem.html#FTC_FontRecFTC_FontRec *  FTC_Font;
A simple handle to an ft2-cache_subsystem.html#FTC_FontRecFTC_FontRec  structure.
FTC_Node 
  
typedef struct FTC_NodeRec_*  FTC_Node;
An opaque handle to a cache node object. Each cache node is reference-counted. A node with a count of 0 might be flushed out of a full cache whenever a lookup request is performed.
If you lookup nodes, you have the ability to "acquire" them, i.e., to increment their reference count. This will prevent the node from being flushed out of the cache until you explicitly "release" it (see ft2-cache_subsystem.html#FTC_Node_UnrefFTC_Node_Unref ).
See also ft2-cache_subsystem.html#FTC_SBitCache_LookupFTC_SBitCache_Lookup  and ft2-cache_subsystem.html#FTC_ImageCache_LookupFTC_ImageCache_Lookup .
FTC_Manager_New 
  FT_EXPORT( 
ft2-basic_types.html#FT_ErrorFT_Error  )
  
FTC_Manager_New( ft2-base_interface.html#FT_LibraryFT_Library           library,
                   
ft2-basic_types.html#FT_UIntFT_UInt              max_faces,
                   
ft2-basic_types.html#FT_UIntFT_UInt              max_sizes,
                   
ft2-basic_types.html#FT_ULongFT_ULong             max_bytes,
                   
ft2-cache_subsystem.html#FTC_Face_RequesterFTC_Face_Requester   requester,
                   
ft2-basic_types.html#FT_PointerFT_Pointer           req_data,
                   
ft2-cache_subsystem.html#FTC_ManagerFTC_Manager         *amanager );
Creates a new cache manager.
input library The parent FreeType library handle to use.
max_bytes Maximum number of bytes to use for cached data. Use 0 for defaults.
requester An application-provided callback used to translate face IDs into real ft2-base_interface.html#FT_FaceFT_Face  objects.
req_data A generic pointer that is passed to the requester each time it is called (see ft2-cache_subsystem.html#FTC_Face_RequesterFTC_Face_Requester ).
output amanager A handle to a new manager object. 0 in case of failure.
return FreeType error code. 0 means success.
FTC_Manager_Reset 
  FT_EXPORT( 
void )
  
FTC_Manager_Reset( ft2-cache_subsystem.html#FTC_ManagerFTC_Manager   manager );
Empties a given cache manager. This simply gets rid of all the currently cached ft2-base_interface.html#FT_FaceFT_Face  and ft2-base_interface.html#FT_SizeFT_Size  objects within the manager.
inout manager A handle to the manager.
FTC_Manager_Done 
  FT_EXPORT( 
void )
  
FTC_Manager_Done( ft2-cache_subsystem.html#FTC_ManagerFTC_Manager   manager );
Destroys a given manager after emptying it.
input manager A handle to the target cache manager object.
FTC_Manager_LookupFace 
  FT_EXPORT( 
ft2-basic_types.html#FT_ErrorFT_Error  )
  
FTC_Manager_LookupFace( ft2-cache_subsystem.html#FTC_ManagerFTC_Manager   manager,
                          
ft2-cache_subsystem.html#FTC_FaceIDFTC_FaceID    face_id,
                          
ft2-base_interface.html#FT_FaceFT_Face      *aface );
Retrieves the ft2-base_interface.html#FT_FaceFT_Face  object that corresponds to a given face ID through a cache manager.
input manager A handle to the cache manager.
face_id The ID of the face object.
output aface A handle to the face object.
return FreeType error code. 0 means success.
note The returned ft2-base_interface.html#FT_FaceFT_Face  object is always owned by the manager. You should never try to discard it yourself.
The ft2-base_interface.html#FT_FaceFT_Face  object doesn't necessarily have a current size object (i.e., face->size can be 0). If you need a specific `font size', use ft2-cache_subsystem.html#FTC_Manager_LookupSizeFTC_Manager_LookupSize  instead.
Never change the face's transformation matrix (i.e., never call the ft2-base_interface.html#FT_Set_TransformFT_Set_Transform  function) on a returned face! If you need to transform glyphs, do it yourself after glyph loading.
FTC_ScalerRec 
  
typedef struct  FTC_ScalerRec_
  {
    
ft2-cache_subsystem.html#FTC_FaceIDFTC_FaceID   face_id;
    
ft2-basic_types.html#FT_UIntFT_UInt      width;
    
ft2-basic_types.html#FT_UIntFT_UInt      height;
    
ft2-basic_types.html#FT_IntFT_Int       pixel;
    
ft2-basic_types.html#FT_UIntFT_UInt      x_res;
    
ft2-basic_types.html#FT_UIntFT_UInt      y_res;
  } 
FTC_ScalerRec, *FTC_Scaler;
A structure used to describe a given character size in either pixels or points to the cache manager. See ft2-cache_subsystem.html#FTC_Manager_LookupSizeFTC_Manager_LookupSize .
fields face_id The source face ID.
width The character width.
height The character height.
pixel A Boolean. If TRUE, the `width' and `height' fields are interpreted as integer pixel character sizes. Otherwise, they are expressed as 1/64th of points.
x_res Only used when `pixel' is FALSE to indicate the horizontal resolution in dpi.
y_res Only used when `pixel' is FALSE to indicate the vertical resolution in dpi.
note This type is mainly used to retrieve ft2-base_interface.html#FT_SizeFT_Size  objects through the cache manager.
FTC_Manager_LookupSize 
  FT_EXPORT( 
ft2-basic_types.html#FT_ErrorFT_Error  )
  
FTC_Manager_LookupSize( ft2-cache_subsystem.html#FTC_ManagerFTC_Manager   manager,
                          FTC_Scaler   scaler,
                          
ft2-base_interface.html#FT_SizeFT_Size      *asize );
Retrieve the ft2-base_interface.html#FT_SizeFT_Size  object that corresponds to a given ?FTC_Scaler? through a cache manager.
input manager A handle to the cache manager.
scaler A scaler handle.
output asize A handle to the size object.
return FreeType error code. 0 means success.
note The returned ft2-base_interface.html#FT_SizeFT_Size  object is always owned by the manager. You should never try to discard it by yourself.
You can access the parent ft2-base_interface.html#FT_FaceFT_Face  object simply as `size->face' if you need it. Note that this object is also owned by the manager.
FTC_Node_Unref 
  FT_EXPORT( 
void )
  
FTC_Node_Unref( ft2-cache_subsystem.html#FTC_NodeFTC_Node      node,
                  
ft2-cache_subsystem.html#FTC_ManagerFTC_Manager   manager );
  /* remove all nodes belonging to a given face_id */
  FT_EXPORT( 
void )
  FTC_Manager_RemoveFaceID( 
ft2-cache_subsystem.html#FTC_ManagerFTC_Manager   manager,
                            
ft2-cache_subsystem.html#FTC_FaceIDFTC_FaceID    face_id );
Decrement a cache node's internal reference count. When the count reaches 0, it is not destroyed but becomes eligible for subsequent cache flushes.
input node The cache node handle.
manager The cache manager handle.
FTC_CMapCache 
  
typedef struct FTC_CMapCacheRec_*  FTC_CMapCache;
An opaque handle used to manager a charmap cache. This cache is to hold character codes -> glyph indices mappings.
FTC_CMapCache_New 
  FT_EXPORT( 
ft2-basic_types.html#FT_ErrorFT_Error  )
  
FTC_CMapCache_New( ft2-cache_subsystem.html#FTC_ManagerFTC_Manager      manager,
                     
ft2-cache_subsystem.html#FTC_CMapCacheFTC_CMapCache   *acache );
Creates a new charmap cache.
input manager A handle to the cache manager.
output acache A new cache handle. NULL in case of error.
return FreeType error code. 0 means success.
note Like all other caches, this one will be destroyed with the cache manager.
FTC_CMapCache_Lookup 
  FT_EXPORT( 
ft2-basic_types.html#FT_UIntFT_UInt  )
  
FTC_CMapCache_Lookup( ft2-cache_subsystem.html#FTC_CMapCacheFTC_CMapCache   cache,
                        
ft2-cache_subsystem.html#FTC_CMapDescFTC_CMapDesc    cmap_desc,
                        FT_UInt32      
char_code );
Translates a character code into a glyph index, using the charmap cache.
input cache A charmap cache handle.
cmap_desc A charmap descriptor handle.
char_code The character code (in the corresponding charmap).
return Glyph index. 0 means "no glyph".
note This function doesn't return ft2-cache_subsystem.html#FTC_NodeFTC_Node  handles, since there is no real use for them with typical uses of charmaps.
FTC_ImageCache 
  
typedef struct FTC_ImageCacheRec_*  FTC_ImageCache;
A handle to an glyph image cache object. They are designed to hold many distinct glyph images while not exceeding a certain memory threshold.
FTC_ImageCache_New 
  FT_EXPORT( 
ft2-basic_types.html#FT_ErrorFT_Error  )
  
FTC_ImageCache_New( ft2-cache_subsystem.html#FTC_ManagerFTC_Manager       manager,
                      
ft2-cache_subsystem.html#FTC_ImageCacheFTC_ImageCache   *acache );
Creates a new glyph image cache.
input manager The parent manager for the image cache.
output acache A handle to the new glyph image cache object.
return FreeType error code. 0 means success.
FTC_ImageCache_Lookup 
  FT_EXPORT( 
ft2-basic_types.html#FT_ErrorFT_Error  )
  
FTC_ImageCache_Lookup( ft2-cache_subsystem.html#FTC_ImageCacheFTC_ImageCache   cache,
                         FTC_ImageType   type,
                         
ft2-basic_types.html#FT_UIntFT_UInt          gindex,
                         
ft2-glyph_management.html#FT_GlyphFT_Glyph        *aglyph,
                         
ft2-cache_subsystem.html#FTC_NodeFTC_Node        *anode );
Retrieves a given glyph image from a glyph image cache.
input cache A handle to the source glyph image cache.
type A pointer to a glyph image type descriptor.
gindex The glyph index to retrieve.
output aglyph The corresponding ft2-glyph_management.html#FT_GlyphFT_Glyph  object. 0 in case of failure.
anode Used to return the address of of the corresponding cache node after incrementing its reference count (see note below).
return FreeType error code. 0 means success.
note The returned glyph is owned and managed by the glyph image cache. Never try to transform or discard it manually! You can however create a copy with ft2-glyph_management.html#FT_Glyph_CopyFT_Glyph_Copy  and modify the new one.
If `anode' is not NULL, it receives the address of the cache node containing the glyph image, after increasing its reference count. This ensures that the node (as well as the FT_Glyph) will always be kept in the cache until you call ft2-cache_subsystem.html#FTC_Node_UnrefFTC_Node_Unref  to `release' it.
If `anode' is NULL, the cache node is left unchanged, which means that the FT_Glyph could be flushed out of the cache on the next call to one of the caching sub-system APIs. Don't assume that it is persistent!
FTC_SBit 
  
typedef struct FTC_SBitRec_*  FTC_SBit;
A handle to a small bitmap descriptor. See the ft2-cache_subsystem.html#FTC_SBitRecFTC_SBitRec  structure for details.
FTC_SBitRec 
  
typedef struct  FTC_SBitRec_
  {
    
ft2-basic_types.html#FT_ByteFT_Byte    width;
    
ft2-basic_types.html#FT_ByteFT_Byte    height;
    
ft2-basic_types.html#FT_CharFT_Char    left;
    
ft2-basic_types.html#FT_CharFT_Char    top;
    
ft2-basic_types.html#FT_ByteFT_Byte    format;
    
ft2-basic_types.html#FT_ByteFT_Byte    max_grays;
    
ft2-basic_types.html#FT_ShortFT_Short   pitch;
    
ft2-basic_types.html#FT_CharFT_Char    xadvance;
    
ft2-basic_types.html#FT_CharFT_Char    yadvance;
    
ft2-basic_types.html#FT_ByteFT_Byte *  buffer;
  } 
FTC_SBitRec;
A very compact structure used to describe a small glyph bitmap.
fields width The bitmap width in pixels.
height The bitmap height in pixels.
left The horizontal distance from the pen position to the left bitmap border (a.k.a. `left side bearing', or `lsb').
top The vertical distance from the pen position (on the baseline) to the upper bitmap border (a.k.a. `top side bearing'). The distance is positive for upwards Y coordinates.
format The format of the glyph bitmap (monochrome or gray).
max_grays Maximum gray level value (in the range 1 to 255).
pitch The number of bytes per bitmap line. May be positive or negative.
xadvance The horizontal advance width in pixels.
yadvance The vertical advance height in pixels.
buffer A pointer to the bitmap pixels.
FTC_SBitCache 
  
typedef struct FTC_SBitCacheRec_*  FTC_SBitCache;
A handle to a small bitmap cache. These are special cache objects used to store small glyph bitmaps (and anti-aliased pixmaps) in a much more efficient way than the traditional glyph image cache implemented by ft2-cache_subsystem.html#FTC_ImageCacheFTC_ImageCache .
FTC_SBitCache_New 
  FT_EXPORT( 
ft2-basic_types.html#FT_ErrorFT_Error  )
  
FTC_SBitCache_New( ft2-cache_subsystem.html#FTC_ManagerFTC_Manager      manager,
                     
ft2-cache_subsystem.html#FTC_SBitCacheFTC_SBitCache   *acache );
Creates a new cache to store small glyph bitmaps.
input manager A handle to the source cache manager.
output acache A handle to the new sbit cache. NULL in case of error.
return FreeType error code. 0 means success.
FTC_SBitCache_Lookup 
  FT_EXPORT( 
ft2-basic_types.html#FT_ErrorFT_Error  )
  
FTC_SBitCache_Lookup( ft2-cache_subsystem.html#FTC_SBitCacheFTC_SBitCache     cache,
                        FTC_ImageType    type,
                        
ft2-basic_types.html#FT_UIntFT_UInt           gindex,
                        
ft2-cache_subsystem.html#FTC_SBitFTC_SBit         *sbit,
                        
ft2-cache_subsystem.html#FTC_NodeFTC_Node         *anode );
Looks up a given small glyph bitmap in a given sbit cache and `lock' it to prevent its flushing from the cache until needed.
input cache A handle to the source sbit cache.
type A pointer to the glyph image type descriptor.
gindex The glyph index.
output sbit A handle to a small bitmap descriptor.
anode Used to return the address of of the corresponding cache node after incrementing its reference count (see note below).
return FreeType error code. 0 means success.
note The small bitmap descriptor and its bit buffer are owned by the cache and should never be freed by the application. They might as well disappear from memory on the next cache lookup, so don't treat them as persistent data.
The descriptor's `buffer' field is set to 0 to indicate a missing glyph bitmap.
If `anode' is not NULL, it receives the address of the cache node containing the bitmap, after increasing its reference count. This ensures that the node (as well as the image) will always be kept in the cache until you call ft2-cache_subsystem.html#FTC_Node_UnrefFTC_Node_Unref  to `release' it.
If `anode' is NULL, the cache node is left unchanged, which means that the bitmap could be flushed out of the cache on the next call to one of the caching sub-system APIs. Don't assume that it is persistent!
FTC_CMapCache 
  
typedef struct FTC_CMapCacheRec_*  FTC_CMapCache;
An opaque handle used to manager a charmap cache. This cache is to hold character codes -> glyph indices mappings.
FTC_CMapDesc 
  
typedef struct FTC_CMapDescRec_*  FTC_CMapDesc;
A handle to an ft2-cache_subsystem.html#FTC_CMapDescRecFTC_CMapDescRec  structure used to describe a given charmap in a charmap cache.
Each ft2-cache_subsystem.html#FTC_CMapDescFTC_CMapDesc  describes which charmap (of which ft2-cache_subsystem.html#FTC_FaceIDFTC_FaceID ) we want to use in ft2-cache_subsystem.html#FTC_CMapCache_LookupFTC_CMapCache_Lookup .
FTC_CMapType 
  
typedef enum  FTC_CMapType_
  {
    
ft2-cache_subsystem.html#FTC_CMapTypeFTC_CMAP_BY_INDEX     = 0,
    
ft2-cache_subsystem.html#FTC_CMapTypeFTC_CMAP_BY_ENCODING  = 1,
    
ft2-cache_subsystem.html#FTC_CMapTypeFTC_CMAP_BY_ID        = 2
  } 
FTC_CMapType;
The list of valid ft2-cache_subsystem.html#FTC_CMapDescFTC_CMapDesc  types. They indicate how we want to address a charmap within an ft2-cache_subsystem.html#FTC_FaceIDFTC_FaceID .
values FTC_CMAP_BY_INDEX Address a charmap by its index in the corresponding ft2-base_interface.html#FT_FaceFT_Face .
FTC_CMAP_BY_ENCODING Use a ft2-base_interface.html#FT_FaceFT_Face  charmap that corresponds to a given encoding.
FTC_CMAP_BY_ID Use an ft2-base_interface.html#FT_FaceFT_Face  charmap that corresponds to a given (platform,encoding) ID. See ft2-cache_subsystem.html#FTC_CMapIdRecFTC_CMapIdRec .
FTC_CMapIdRec 
  
typedef struct  FTC_CMapIdRec_
  {
    
ft2-basic_types.html#FT_UIntFT_UInt   platform;
    
ft2-basic_types.html#FT_UIntFT_UInt   encoding;
  } 
FTC_CMapIdRec;
A short structure to identify a charmap by a (platform,encoding) pair of values.
fields platform The platform ID.
encoding The encoding ID.
FTC_CMapDescRec 
  
typedef struct  FTC_CMapDescRec_
  {
    
ft2-cache_subsystem.html#FTC_FaceIDFTC_FaceID     face_id;
    
ft2-cache_subsystem.html#FTC_CMapTypeFTC_CMapType   type;
    
union    {
      
ft2-basic_types.html#FT_UIntFT_UInt         index;
      
ft2-base_interface.html#FT_EncodingFT_Encoding     encoding;
      
ft2-cache_subsystem.html#FTC_CMapIdRecFTC_CMapIdRec   id;
    } u;
  } 
FTC_CMapDescRec;
A structure to describe a given charmap to ft2-cache_subsystem.html#FTC_CMapCacheFTC_CMapCache .
fields face_id ft2-cache_subsystem.html#FTC_FaceIDFTC_FaceID  of the face this charmap belongs to.
type The type of charmap, see ft2-cache_subsystem.html#FTC_CMapTypeFTC_CMapType .
u.index :: For ft2-cache_subsystem.html#FTC_CMapTypeFTC_CMAP_BY_INDEX  types, this is the charmap index (within a ft2-base_interface.html#FT_FaceFT_Face ) we want to use.
u.encoding :: For ft2-cache_subsystem.html#FTC_CMapTypeFTC_CMAP_BY_ENCODING  types, this is the charmap encoding we want to use. see ft2-base_interface.html#FT_EncodingFT_Encoding .
u.id :: For ft2-cache_subsystem.html#FTC_CMapTypeFTC_CMAP_BY_ID  types, this is the (platform,encoding) pair we want to use. see ft2-cache_subsystem.html#FTC_CMapIdRecFTC_CMapIdRec  and ft2-base_interface.html#FT_CharMapRecFT_CharMapRec .
FTC_CMapCache_New 
  FT_EXPORT( 
ft2-basic_types.html#FT_ErrorFT_Error  )
  
FTC_CMapCache_New( ft2-cache_subsystem.html#FTC_ManagerFTC_Manager      manager,
                     
ft2-cache_subsystem.html#FTC_CMapCacheFTC_CMapCache   *acache );
Creates a new charmap cache.
input manager A handle to the cache manager.
output acache A new cache handle. NULL in case of error.
return FreeType error code. 0 means success.
note Like all other caches, this one will be destroyed with the cache manager.
FTC_CMapCache_Lookup 
  FT_EXPORT( 
ft2-basic_types.html#FT_UIntFT_UInt  )
  
FTC_CMapCache_Lookup( ft2-cache_subsystem.html#FTC_CMapCacheFTC_CMapCache   cache,
                        
ft2-cache_subsystem.html#FTC_CMapDescFTC_CMapDesc    cmap_desc,
                        FT_UInt32      
char_code );
Translates a character code into a glyph index, using the charmap cache.
input cache A charmap cache handle.
cmap_desc A charmap descriptor handle.
char_code The character code (in the corresponding charmap).
return Glyph index. 0 means "no glyph".
note This function doesn't return ft2-cache_subsystem.html#FTC_NodeFTC_Node  handles, since there is no real use for them with typical uses of charmaps.
FTC_Manager_Compress 
  FT_EXPORT( 
void )
  
FTC_Manager_Compress( ft2-cache_subsystem.html#FTC_ManagerFTC_Manager   manager );
  /* try to flush `count' old nodes from the cache; return the number
   * of really flushed nodes
   */
  FT_EXPORT( 
ft2-basic_types.html#FT_UIntFT_UInt  )
  FTC_Manager_FlushN( 
ft2-cache_subsystem.html#FTC_ManagerFTC_Manager   manager,
                      
ft2-basic_types.html#FT_UIntFT_UInt       count );
  /* this must be used 
internally for the moment */
  FT_EXPORT( 
ft2-basic_types.html#FT_ErrorFT_Error  )
  FTC_Manager_RegisterCache( 
ft2-cache_subsystem.html#FTC_ManagerFTC_Manager       manager,
                             FTC_CacheClass   clazz,
                             FTC_Cache       *acache );
This function is used to check the state of the cache manager if its `num_bytes' field is greater than its `max_bytes' field. It will flush as many old cache nodes as possible (ignoring cache nodes with a non-zero reference count).
inout manager A handle to the cache manager.
note Client applications should not call this function directly. It is normally invoked by specific cache implementations.
The reason this function is exported is to allow client-specific cache classes.
