Formatting.
Removed double src/cache/ftcimage.h. Replaced FTC_Image_Type with #defines since this contains bit flags and not enumerated values.
This commit is contained in:
parent
2909475716
commit
3dc4374f43
|
@ -54,7 +54,7 @@
|
|||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* maximum number of chunk sets in a given chunk cache */
|
||||
/* maximum number of chunk sets in a given chunk cache */
|
||||
#define FTC_MAX_CHUNK_SETS 16
|
||||
|
||||
|
||||
|
@ -62,32 +62,32 @@
|
|||
typedef struct FTC_ChunkSetRec_* FTC_ChunkSet;
|
||||
typedef struct FTC_Chunk_CacheRec_* FTC_Chunk_Cache;
|
||||
|
||||
typedef struct FTC_ChunkNodeRec_
|
||||
typedef struct FTC_ChunkNodeRec_
|
||||
{
|
||||
FTC_CacheNodeRec root;
|
||||
FTC_ChunkSet cset;
|
||||
FT_UShort cset_index;
|
||||
FT_UShort num_elements;
|
||||
FT_Byte* elements;
|
||||
FTC_CacheNodeRec root;
|
||||
FTC_ChunkSet cset;
|
||||
FT_UShort cset_index;
|
||||
FT_UShort num_elements;
|
||||
FT_Byte* elements;
|
||||
|
||||
} FTC_ChunkNodeRec;
|
||||
|
||||
#define FTC_CHUNKNODE_TO_LRUNODE(x) ((FT_ListNode)(x))
|
||||
#define FTC_LRUNODE_TO_CHUNKNODE(x) ((FTC_ChunkNode)(x))
|
||||
|
||||
#define FTC_CHUNKNODE_TO_LRUNODE( x ) ((FT_ListNode)( x ))
|
||||
#define FTC_LRUNODE_TO_CHUNKNODE( x ) ((FTC_ChunkNode)( x ))
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* chunk set methods */
|
||||
/* */
|
||||
|
||||
/* used to set "element_max", "element_count" and "element_size" */
|
||||
typedef FT_Error (*FTC_ChunkSet_SizesFunc) ( FTC_ChunkSet cset,
|
||||
FT_Pointer type );
|
||||
|
||||
|
||||
typedef FT_Error (*FTC_ChunkSet_InitFunc) ( FTC_ChunkSet cset,
|
||||
FT_Pointer type );
|
||||
/* used to set "element_max", "element_count" and "element_size" */
|
||||
typedef FT_Error (*FTC_ChunkSet_SizesFunc) ( FTC_ChunkSet cset,
|
||||
FT_Pointer type );
|
||||
|
||||
typedef FT_Error (*FTC_ChunkSet_InitFunc) ( FTC_ChunkSet cset,
|
||||
FT_Pointer type );
|
||||
|
||||
typedef void (*FTC_ChunkSet_DoneFunc) ( FTC_ChunkSet cset );
|
||||
|
||||
|
@ -95,14 +95,13 @@
|
|||
FT_Pointer type );
|
||||
|
||||
|
||||
typedef FT_Error (*FTC_ChunkSet_NewNodeFunc) ( FTC_ChunkSet cset,
|
||||
FT_UInt index,
|
||||
FTC_ChunkNode* anode );
|
||||
|
||||
typedef FT_Error (*FTC_ChunkSet_NewNodeFunc)( FTC_ChunkSet cset,
|
||||
FT_UInt index,
|
||||
FTC_ChunkNode* anode );
|
||||
typedef void (*FTC_ChunkSet_DestroyNodeFunc)( FTC_ChunkNode node );
|
||||
|
||||
typedef void (*FTC_ChunkSet_DestroyNodeFunc)( FTC_ChunkNode node );
|
||||
|
||||
typedef FT_ULong (*FTC_ChunkSet_SizeNodeFunc) ( FTC_ChunkNode node );
|
||||
typedef FT_ULong (*FTC_ChunkSet_SizeNodeFunc) ( FTC_ChunkNode node );
|
||||
|
||||
|
||||
typedef struct FTC_ChunkSet_Class_
|
||||
|
@ -151,24 +150,24 @@
|
|||
/* the abstract chunk cache object */
|
||||
typedef struct FTC_Chunk_CacheRec_
|
||||
{
|
||||
FTC_CacheRec root;
|
||||
FT_Lru csets_lru; /* static chunk set lru list */
|
||||
FTC_ChunkSet last_cset; /* small cache :-) */
|
||||
FTC_CacheRec root;
|
||||
FT_Lru csets_lru; /* static chunk set lru list */
|
||||
FTC_ChunkSet last_cset; /* small cache :-) */
|
||||
|
||||
} FTC_Chunk_CacheRec;
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* These functions are exported so that they can be called from */
|
||||
/* user-provided cache classes; otherwise, they are really parts of the */
|
||||
/* user-provided cache classes; otherwise, they are really part of the */
|
||||
/* cache sub-system internals. */
|
||||
/* */
|
||||
|
||||
FT_EXPORT_FUNC( FT_Error )
|
||||
FTC_ChunkNode_Init( FTC_ChunkNode node,
|
||||
FTC_ChunkSet cset,
|
||||
FT_UInt index,
|
||||
FT_Bool alloc );
|
||||
FT_EXPORT_FUNC( FT_Error ) FTC_ChunkNode_Init( FTC_ChunkNode node,
|
||||
FTC_ChunkSet cset,
|
||||
FT_UInt index,
|
||||
FT_Bool alloc );
|
||||
|
||||
#define FTC_ChunkNode_Ref( n ) \
|
||||
FTC_CACHENODE_TO_DATA_P( &(n)->root )->ref_count++
|
||||
|
@ -177,33 +176,24 @@
|
|||
FTC_CACHENODE_TO_DATA_P( &(n)->root )->ref_count--
|
||||
|
||||
|
||||
FT_EXPORT_DEF( void )
|
||||
FTC_ChunkNode_Destroy( FTC_ChunkNode node );
|
||||
FT_EXPORT_DEF( void ) FTC_ChunkNode_Destroy( FTC_ChunkNode node );
|
||||
|
||||
FT_EXPORT_DEF( FT_Error ) FTC_Chunk_Cache_Init( FTC_Chunk_Cache cache );
|
||||
|
||||
FT_EXPORT_DEF( void ) FTC_Chunk_Cache_Done( FTC_Chunk_Cache cache );
|
||||
|
||||
|
||||
FT_EXPORT_DEF( FT_Error ) FTC_ChunkSet_New( FTC_Chunk_Cache cache,
|
||||
FT_Pointer type,
|
||||
FTC_ChunkSet* aset );
|
||||
|
||||
FT_EXPORT_DEF( FT_Error )
|
||||
FTC_Chunk_Cache_Init( FTC_Chunk_Cache cache );
|
||||
FT_EXPORT_DEF( FT_Error ) FTC_ChunkSet_Lookup_Node(
|
||||
FTC_ChunkSet cset,
|
||||
FT_UInt glyph_index,
|
||||
FTC_ChunkNode* anode,
|
||||
FT_UInt* aindex );
|
||||
|
||||
|
||||
FT_EXPORT_DEF( void )
|
||||
FTC_Chunk_Cache_Done( FTC_Chunk_Cache cache );
|
||||
|
||||
|
||||
|
||||
|
||||
FT_EXPORT_DEF( FT_Error )
|
||||
FTC_ChunkSet_New( FTC_Chunk_Cache cache,
|
||||
FT_Pointer type,
|
||||
FTC_ChunkSet *aset );
|
||||
|
||||
|
||||
FT_EXPORT_DEF( FT_Error )
|
||||
FTC_ChunkSet_Lookup_Node( FTC_ChunkSet cset,
|
||||
FT_UInt glyph_index,
|
||||
FTC_ChunkNode *anode,
|
||||
FT_UInt *aindex );
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@ -211,4 +201,5 @@
|
|||
|
||||
#endif /* FTCCHUNK_H */
|
||||
|
||||
|
||||
/* END */
|
||||
|
|
|
@ -24,13 +24,13 @@
|
|||
/* For example, see `ftcimage.h' and `ftcimage.c' which */
|
||||
/* implement a FT_Glyph cache based on this code. */
|
||||
/* */
|
||||
/* NOTE: for now, each glyph set is implemented as a static hash table */
|
||||
/* it's be interesting to experiment with dynamic hashes to see */
|
||||
/* if this improves performance or not (I don't know why but */
|
||||
/* something tells me it won't ?!) */
|
||||
/* NOTE: For now, each glyph set is implemented as a static hash table. */
|
||||
/* It would be interesting to experiment with dynamic hashes to */
|
||||
/* see whether this improves performance or not (I don't know why */
|
||||
/* but something tells me it won't). */
|
||||
/* */
|
||||
/* in all cases, this change should not affect any derived */
|
||||
/* glyph cache class.. */
|
||||
/* In all cases, this change should not affect any derived glyph */
|
||||
/* cache class. */
|
||||
/* */
|
||||
/*************************************************************************/
|
||||
|
||||
|
@ -69,11 +69,12 @@
|
|||
#define FTC_MAX_GLYPH_SETS 16
|
||||
#define FTC_GSET_HASH_SIZE_DEFAULT 64
|
||||
|
||||
|
||||
typedef struct FTC_GlyphSetRec_* FTC_GlyphSet;
|
||||
typedef struct FTC_GlyphNodeRec_* FTC_GlyphNode;
|
||||
typedef struct FTC_Glyph_CacheRec_* FTC_Glyph_Cache;
|
||||
|
||||
typedef struct FTC_GlyphNodeRec_
|
||||
typedef struct FTC_GlyphNodeRec_
|
||||
{
|
||||
FTC_CacheNodeRec root;
|
||||
FTC_GlyphNode gset_next; /* next in glyph set's bucket list */
|
||||
|
@ -83,9 +84,9 @@
|
|||
} FTC_GlyphNodeRec;
|
||||
|
||||
|
||||
#define FTC_GLYPHNODE(x) ( (FTC_GlyphNode)(x) )
|
||||
#define FTC_GLYPHNODE_TO_LRUNODE( n ) ( (FT_ListNode)(n) )
|
||||
#define FTC_LRUNODE_TO_GLYPHNODE( n ) ( (FTC_GlyphNode)(n) )
|
||||
#define FTC_GLYPHNODE( x ) ( (FTC_GlyphNode)( x ) )
|
||||
#define FTC_GLYPHNODE_TO_LRUNODE( n ) ( (FT_ListNode)( n ) )
|
||||
#define FTC_LRUNODE_TO_GLYPHNODE( n ) ( (FTC_GlyphNode)( n ) )
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
|
@ -93,24 +94,24 @@
|
|||
/* Glyph set methods. */
|
||||
/* */
|
||||
|
||||
typedef FT_Error (*FTC_GlyphSet_InitFunc) ( FTC_GlyphSet gset,
|
||||
FT_Pointer type );
|
||||
typedef FT_Error (*FTC_GlyphSet_InitFunc) ( FTC_GlyphSet gset,
|
||||
FT_Pointer type );
|
||||
|
||||
typedef void (*FTC_GlyphSet_DoneFunc) ( FTC_GlyphSet gset );
|
||||
typedef void (*FTC_GlyphSet_DoneFunc) ( FTC_GlyphSet gset );
|
||||
|
||||
typedef FT_Bool (*FTC_GlyphSet_CompareFunc)( FTC_GlyphSet gset,
|
||||
FT_Pointer type );
|
||||
typedef FT_Bool (*FTC_GlyphSet_CompareFunc) ( FTC_GlyphSet gset,
|
||||
FT_Pointer type );
|
||||
|
||||
|
||||
typedef FT_Error (*FTC_GlyphSet_NewNodeFunc)( FTC_GlyphSet gset,
|
||||
FT_UInt gindex,
|
||||
FTC_GlyphNode *anode );
|
||||
typedef FT_Error (*FTC_GlyphSet_NewNodeFunc) ( FTC_GlyphSet gset,
|
||||
FT_UInt gindex,
|
||||
FTC_GlyphNode* anode );
|
||||
|
||||
typedef void (*FTC_GlyphSet_DestroyNodeFunc)( FTC_GlyphNode node,
|
||||
FTC_GlyphSet gset );
|
||||
typedef void (*FTC_GlyphSet_DestroyNodeFunc)( FTC_GlyphNode node,
|
||||
FTC_GlyphSet gset );
|
||||
|
||||
typedef FT_ULong (*FTC_GlyphSet_SizeNodeFunc)( FTC_GlyphNode node,
|
||||
FTC_GlyphSet gset );
|
||||
typedef FT_ULong (*FTC_GlyphSet_SizeNodeFunc) ( FTC_GlyphNode node,
|
||||
FTC_GlyphSet gset );
|
||||
|
||||
|
||||
typedef struct FTC_GlyphSet_Class_
|
||||
|
@ -154,8 +155,8 @@
|
|||
typedef struct FTC_Glyph_CacheRec_
|
||||
{
|
||||
FTC_CacheRec root;
|
||||
FT_Lru gsets_lru; /* static sets lru list */
|
||||
FTC_GlyphSet last_gset; /* small cache :o) */
|
||||
FT_Lru gsets_lru; /* static sets lru list */
|
||||
FTC_GlyphSet last_gset; /* small cache :-) */
|
||||
|
||||
} FTC_Glyph_CacheRec;
|
||||
|
||||
|
@ -163,14 +164,13 @@
|
|||
/*************************************************************************/
|
||||
/* */
|
||||
/* These functions are exported so that they can be called from */
|
||||
/* user-provided cache classes; otherwise, they are really parts of the */
|
||||
/* user-provided cache classes; otherwise, they are really part of the */
|
||||
/* cache sub-system internals. */
|
||||
/* */
|
||||
|
||||
FT_EXPORT_FUNC( void )
|
||||
FTC_GlyphNode_Init( FTC_GlyphNode node,
|
||||
FTC_GlyphSet gset,
|
||||
FT_UInt gindex );
|
||||
FT_EXPORT_FUNC( void ) FTC_GlyphNode_Init( FTC_GlyphNode node,
|
||||
FTC_GlyphSet gset,
|
||||
FT_UInt gindex );
|
||||
|
||||
#define FTC_GlyphNode_Ref( n ) \
|
||||
FTC_CACHENODE_TO_DATA_P( &(n)->root )->ref_count++
|
||||
|
@ -179,32 +179,22 @@
|
|||
FTC_CACHENODE_TO_DATA_P( &(n)->root )->ref_count--
|
||||
|
||||
|
||||
FT_EXPORT_DEF( void )
|
||||
FTC_GlyphNode_Destroy( FTC_GlyphNode node,
|
||||
FTC_Glyph_Cache cache );
|
||||
FT_EXPORT_DEF( void ) FTC_GlyphNode_Destroy( FTC_GlyphNode node,
|
||||
FTC_Glyph_Cache cache );
|
||||
|
||||
FT_EXPORT_DEF( FT_Error ) FTC_Glyph_Cache_Init( FTC_Glyph_Cache cache );
|
||||
|
||||
FT_EXPORT_DEF( void ) FTC_Glyph_Cache_Done( FTC_Glyph_Cache cache );
|
||||
|
||||
|
||||
FT_EXPORT_DEF( FT_Error ) FTC_GlyphSet_New( FTC_Glyph_Cache cache,
|
||||
FT_Pointer type,
|
||||
FTC_GlyphSet* aset );
|
||||
|
||||
FT_EXPORT_DEF( FT_Error )
|
||||
FTC_Glyph_Cache_Init( FTC_Glyph_Cache cache );
|
||||
|
||||
|
||||
FT_EXPORT_DEF( void )
|
||||
FTC_Glyph_Cache_Done( FTC_Glyph_Cache cache );
|
||||
|
||||
|
||||
|
||||
|
||||
FT_EXPORT_DEF( FT_Error )
|
||||
FTC_GlyphSet_New( FTC_Glyph_Cache cache,
|
||||
FT_Pointer type,
|
||||
FTC_GlyphSet *aset );
|
||||
|
||||
|
||||
FT_EXPORT_DEF( FT_Error )
|
||||
FTC_GlyphSet_Lookup_Node( FTC_GlyphSet gset,
|
||||
FT_UInt glyph_index,
|
||||
FTC_GlyphNode *anode );
|
||||
FT_EXPORT_DEF( FT_Error ) FTC_GlyphSet_Lookup_Node(
|
||||
FTC_GlyphSet gset,
|
||||
FT_UInt glyph_index,
|
||||
FTC_GlyphNode* anode );
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
@ -214,4 +204,5 @@
|
|||
|
||||
#endif /* FTCGLYPH_H */
|
||||
|
||||
|
||||
/* END */
|
||||
|
|
|
@ -4,9 +4,6 @@
|
|||
/* */
|
||||
/* FreeType Image cache (body). */
|
||||
/* */
|
||||
/* Each image cache really manages FT_Glyph objects :-) */
|
||||
/* */
|
||||
/* */
|
||||
/* Copyright 2000 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
|
@ -19,6 +16,13 @@
|
|||
/***************************************************************************/
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* Each image cache really manages FT_Glyph objects. */
|
||||
/* */
|
||||
/*************************************************************************/
|
||||
|
||||
|
||||
#ifndef FTCIMAGE_H
|
||||
#define FTCIMAGE_H
|
||||
|
||||
|
@ -44,44 +48,23 @@
|
|||
|
||||
#define FTC_IMAGE_FORMAT( x ) ( (x) & 7 )
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* <Enum> */
|
||||
/* FTC_Image_Type */
|
||||
/* */
|
||||
/* <Description> */
|
||||
/* An enumeration used to list the types of glyph images found in a */
|
||||
/* glyph image cache. */
|
||||
/* */
|
||||
/* <Fields> */
|
||||
/* ftc_image_mono :: Monochrome bitmap glyphs. */
|
||||
/* */
|
||||
/* ftc_image_grays :: Anti-aliased bitmap glyphs. */
|
||||
/* */
|
||||
/* ftc_image_outline :: Scaled (and hinted) outline glyphs. */
|
||||
/* */
|
||||
/* ftc_master_outline :: Unscaled original outline glyphs. */
|
||||
/* */
|
||||
/* <Note> */
|
||||
/* Other types may be defined in the future. */
|
||||
/* */
|
||||
typedef enum FTC_Image_Type_
|
||||
{
|
||||
ftc_image_format_bitmap = 0,
|
||||
ftc_image_format_outline = 1,
|
||||
|
||||
ftc_image_flag_monochrome = 16,
|
||||
ftc_image_flag_unhinted = 32,
|
||||
ftc_image_flag_autohinted = 64,
|
||||
ftc_image_flag_unscaled = 128,
|
||||
ftc_image_flag_no_sbits = 256,
|
||||
#define ftc_image_format_bitmap 0
|
||||
#define ftc_image_format_outline 1
|
||||
|
||||
ftc_image_mono = ftc_image_format_bitmap |
|
||||
ftc_image_flag_monochrome, /* monochrome bitmap */
|
||||
ftc_image_grays = ftc_image_format_bitmap, /* anti-aliased bitmap */
|
||||
ftc_image_outline = ftc_image_format_outline /* scaled outline */
|
||||
#define ftc_image_flag_monochrome 16
|
||||
#define ftc_image_flag_unhinted 32
|
||||
#define ftc_image_flag_autohinted 64
|
||||
#define ftc_image_flag_unscaled 128
|
||||
#define ftc_image_flag_no_sbits 256
|
||||
|
||||
} FTC_Image_Type;
|
||||
/* monochrome bitmap */
|
||||
#define ftc_image_mono ftc_image_format_bitmap | \
|
||||
ftc_image_flag_monochrome
|
||||
/* anti-aliased bitmap */
|
||||
#define ftc_image_grays ftc_image_format_bitmap
|
||||
/* scaled outline */
|
||||
#define ftc_image_outline ftc_image_format_outline
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
|
@ -128,10 +111,10 @@
|
|||
/* Creates a new glyph image cache. */
|
||||
/* */
|
||||
/* <Input> */
|
||||
/* manager :: The parent manager for the image cache. */
|
||||
/* manager :: The parent manager for the image cache. */
|
||||
/* */
|
||||
/* <Output> */
|
||||
/* acache :: A handle to the new glyph image cache object. */
|
||||
/* acache :: A handle to the new glyph image cache object. */
|
||||
/* */
|
||||
/* <Return> */
|
||||
/* FreeType error code. 0 means success. */
|
||||
|
@ -160,10 +143,10 @@
|
|||
/* failure. */
|
||||
/* */
|
||||
/* <Return> */
|
||||
/* error code, 0 means success */
|
||||
/* FreeType error code. 0 means success. */
|
||||
/* */
|
||||
/* <Note> */
|
||||
/* the returned glyph is owned and manager by the glyph image cache. */
|
||||
/* 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 FT_Glyph_Copy() and modify the new one. */
|
||||
/* */
|
||||
|
@ -171,12 +154,10 @@
|
|||
/* taken by the glyphs it holds, the returned glyph might disappear */
|
||||
/* on a later invocation of this function! It's a cache after all... */
|
||||
/* */
|
||||
FT_EXPORT_DEF( FT_Error )
|
||||
FTC_Image_Cache_Lookup( FTC_Image_Cache cache,
|
||||
FTC_Image_Desc* desc,
|
||||
FT_UInt gindex,
|
||||
FT_Glyph* aglyph );
|
||||
|
||||
FT_EXPORT_DEF( FT_Error ) FTC_Image_Cache_Lookup( FTC_Image_Cache cache,
|
||||
FTC_Image_Desc* desc,
|
||||
FT_UInt gindex,
|
||||
FT_Glyph* aglyph );
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
|
|
@ -91,9 +91,9 @@
|
|||
/* FreeType error code. 0 means success. */
|
||||
/* */
|
||||
/* <Note> */
|
||||
/* the face requester should not perform funny things on the returned */
|
||||
/* The face requester should not perform funny things on the returned */
|
||||
/* face object, like creating a new FT_Size for it, or setting a */
|
||||
/* transform through FT_Set_Transform !! */
|
||||
/* transformation through FT_Set_Transform()! */
|
||||
/* */
|
||||
typedef FT_Error (*FTC_Face_Requester)( FTC_FaceID face_id,
|
||||
FT_Library library,
|
||||
|
|
|
@ -1,190 +0,0 @@
|
|||
/***************************************************************************/
|
||||
/* */
|
||||
/* ftcimage.c */
|
||||
/* */
|
||||
/* FreeType Image cache (body). */
|
||||
/* */
|
||||
/* Each image cache really manages FT_Glyph objects :-) */
|
||||
/* */
|
||||
/* */
|
||||
/* Copyright 2000 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
/* modified, and distributed under the terms of the FreeType project */
|
||||
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
|
||||
/* this file you indicate that you have read the license and */
|
||||
/* understand and accept it fully. */
|
||||
/* */
|
||||
/***************************************************************************/
|
||||
|
||||
|
||||
#ifndef FTCIMAGE_H
|
||||
#define FTCIMAGE_H
|
||||
|
||||
|
||||
#include <freetype/cache/ftcglyph.h>
|
||||
#include <freetype/ftglyph.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/*************************************************************************/
|
||||
/*************************************************************************/
|
||||
/***** *****/
|
||||
/***** IMAGE CACHE OBJECT *****/
|
||||
/***** *****/
|
||||
/*************************************************************************/
|
||||
/*************************************************************************/
|
||||
/*************************************************************************/
|
||||
|
||||
|
||||
#define FTC_IMAGE_FORMAT( x ) ( (x) & 7 )
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* <Enum> */
|
||||
/* FTC_Image_Type */
|
||||
/* */
|
||||
/* <Description> */
|
||||
/* An enumeration used to list the types of glyph images found in a */
|
||||
/* glyph image cache. */
|
||||
/* */
|
||||
/* <Fields> */
|
||||
/* ftc_image_mono :: Monochrome bitmap glyphs. */
|
||||
/* */
|
||||
/* ftc_image_grays :: Anti-aliased bitmap glyphs. */
|
||||
/* */
|
||||
/* ftc_image_outline :: Scaled (and hinted) outline glyphs. */
|
||||
/* */
|
||||
/* ftc_master_outline :: Unscaled original outline glyphs. */
|
||||
/* */
|
||||
/* <Note> */
|
||||
/* Other types may be defined in the future. */
|
||||
/* */
|
||||
typedef enum FTC_Image_Type_
|
||||
{
|
||||
ftc_image_format_bitmap = 0,
|
||||
ftc_image_format_outline = 1,
|
||||
|
||||
ftc_image_flag_monochrome = 16,
|
||||
ftc_image_flag_unhinted = 32,
|
||||
ftc_image_flag_autohinted = 64,
|
||||
ftc_image_flag_unscaled = 128,
|
||||
ftc_image_flag_no_sbits = 256,
|
||||
|
||||
ftc_image_mono = ftc_image_format_bitmap |
|
||||
ftc_image_flag_monochrome, /* monochrome bitmap */
|
||||
ftc_image_grays = ftc_image_format_bitmap, /* anti-aliased bitmap */
|
||||
ftc_image_outline = ftc_image_format_outline /* scaled outline */
|
||||
|
||||
} FTC_Image_Type;
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* <Struct> */
|
||||
/* FTC_Image_Desc */
|
||||
/* */
|
||||
/* <Description> */
|
||||
/* A simple structure used to describe a given glyph image category. */
|
||||
/* */
|
||||
/* <Fields> */
|
||||
/* size :: An FTC_SizeRec used to describe the glyph's face & */
|
||||
/* size. */
|
||||
/* */
|
||||
/* image_type :: The glyph image's type. */
|
||||
/* */
|
||||
typedef struct FTC_Image_Desc_
|
||||
{
|
||||
FTC_FontRec font;
|
||||
FT_UInt image_type;
|
||||
|
||||
} FTC_Image_Desc;
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* <Type> */
|
||||
/* FTC_Image_Cache */
|
||||
/* */
|
||||
/* <Description> */
|
||||
/* A handle to an glyph image cache object. They are designed to */
|
||||
/* hold many distinct glyph images, while not exceeding a certain */
|
||||
/* memory threshold. */
|
||||
/* */
|
||||
typedef struct FTC_Image_CacheRec_* FTC_Image_Cache;
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* <Function> */
|
||||
/* FTC_Image_Cache_New */
|
||||
/* */
|
||||
/* <Description> */
|
||||
/* 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. */
|
||||
/* */
|
||||
FT_EXPORT_DEF( FT_Error ) FTC_Image_Cache_New( FTC_Manager manager,
|
||||
FTC_Image_Cache* acache );
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* <Function> */
|
||||
/* FTC_Image_Cache_Lookup */
|
||||
/* */
|
||||
/* <Description> */
|
||||
/* Retrieves a given glyph image from a glyph image cache. */
|
||||
/* */
|
||||
/* <Input> */
|
||||
/* cache :: A handle to the source glyph image cache. */
|
||||
/* */
|
||||
/* desc :: A pointer to a glyph image descriptor. */
|
||||
/* */
|
||||
/* gindex :: The glyph index to retrieve. */
|
||||
/* */
|
||||
/* <Output> */
|
||||
/* aglyph :: The corresponding FT_Glyph object. 0 in case of */
|
||||
/* failure. */
|
||||
/* */
|
||||
/* <Return> */
|
||||
/* error code, 0 means success */
|
||||
/* */
|
||||
/* <Note> */
|
||||
/* the returned glyph is owned and manager by the glyph image cache. */
|
||||
/* Never try to transform or discard it manually! You can however */
|
||||
/* create a copy with FT_Glyph_Copy() and modify the new one. */
|
||||
/* */
|
||||
/* Because the glyph image cache limits the total amount of memory */
|
||||
/* taken by the glyphs it holds, the returned glyph might disappear */
|
||||
/* on a later invocation of this function! It's a cache after all... */
|
||||
/* */
|
||||
FT_EXPORT_DEF( FT_Error )
|
||||
FTC_Image_Cache_Lookup( FTC_Image_Cache cache,
|
||||
FTC_Image_Desc* desc,
|
||||
FT_UInt gindex,
|
||||
FT_Glyph* aglyph );
|
||||
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#endif /* FTCIMAGE_H */
|
||||
|
||||
|
||||
/* END */
|
|
@ -40,7 +40,7 @@ Cache_DRV_SRC := $(CACHE_DIR_)ftlru.c \
|
|||
Cache_DRV_H := $(CACHE_H_DIR_)ftlru.h \
|
||||
$(CACHE_H_DIR_)ftcmanag.h \
|
||||
$(CACHE_H_DIR_)ftcglyph.h \
|
||||
$(CACHE_DIR_)ftcimage.h
|
||||
$(CACHE_H_DIR_)ftcimage.h
|
||||
|
||||
|
||||
# Cache driver object(s)
|
||||
|
|
Loading…
Reference in New Issue