ReactOS 0.4.15-dev-7934-g1dc8d80
ftcglyph.h File Reference
#include <ft2build.h>
#include "ftcmanag.h"
Include dependency graph for ftcglyph.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  FTC_FamilyRec_
 
struct  FTC_GNodeRec_
 
struct  FTC_GQueryRec_
 
struct  FTC_GCacheRec_
 
struct  FTC_GCacheClassRec_
 

Macros

#define FTC_FAMILY(x)   ( (FTC_Family)(x) )
 
#define FTC_FAMILY_P(x)   ( (FTC_Family*)(x) )
 
#define FTC_GNODE(x)   ( (FTC_GNode)(x) )
 
#define FTC_GNODE_P(x)   ( (FTC_GNode*)(x) )
 
#define FTC_GQUERY(x)   ( (FTC_GQuery)(x) )
 
#define FTC_GCACHE(x)   ((FTC_GCache)(x))
 
#define FTC_GCACHE_CLASS(x)   ((FTC_GCacheClass)(x))
 
#define FTC_CACHE_GCACHE_CLASS(x)    FTC_GCACHE_CLASS( FTC_CACHE(x)->org_class )
 
#define FTC_CACHE_FAMILY_CLASS(x)    ( (FTC_MruListClass)FTC_CACHE_GCACHE_CLASS( x )->family_class )
 
#define FTC_FAMILY_FREE(family, cache)
 
#define FTC_GCACHE_LOOKUP_CMP(cache, famcmp, nodecmp, hash, gindex, query, node, error)
 

Typedefs

typedef FT_BEGIN_HEADER struct FTC_FamilyRec_ FTC_FamilyRec
 
typedef FT_BEGIN_HEADER struct FTC_FamilyRec_FTC_Family
 
typedef struct FTC_GNodeRec_ FTC_GNodeRec
 
typedef struct FTC_GNodeRec_FTC_GNode
 
typedef struct FTC_GQueryRec_ FTC_GQueryRec
 
typedef struct FTC_GQueryRec_FTC_GQuery
 
typedef struct FTC_GCacheRec_ FTC_GCacheRec
 
typedef struct FTC_GCacheRec_FTC_GCache
 
typedef struct FTC_GCacheClassRec_ FTC_GCacheClassRec
 
typedef const FTC_GCacheClassRecFTC_GCacheClass
 

Functions

 FTC_GNode_Init (FTC_GNode node, FT_UInt gindex, FTC_Family family)
 
 FTC_GNode_Compare (FTC_GNode gnode, FTC_GQuery gquery, FTC_Cache cache, FT_Bool *list_changed)
 
 FTC_GNode_UnselectFamily (FTC_GNode gnode, FTC_Cache cache)
 
 FTC_GNode_Done (FTC_GNode node, FTC_Cache cache)
 
 FTC_Family_Init (FTC_Family family, FTC_Cache cache)
 
 FTC_GCache_New (FTC_Manager manager, FTC_GCacheClass clazz, FTC_GCache *acache)
 

Macro Definition Documentation

◆ FTC_CACHE_FAMILY_CLASS

#define FTC_CACHE_FAMILY_CLASS (   x)     ( (FTC_MruListClass)FTC_CACHE_GCACHE_CLASS( x )->family_class )

Definition at line 250 of file ftcglyph.h.

◆ FTC_CACHE_GCACHE_CLASS

#define FTC_CACHE_GCACHE_CLASS (   x)     FTC_GCACHE_CLASS( FTC_CACHE(x)->org_class )

Definition at line 248 of file ftcglyph.h.

◆ FTC_FAMILY

#define FTC_FAMILY (   x)    ( (FTC_Family)(x) )

Definition at line 144 of file ftcglyph.h.

◆ FTC_FAMILY_FREE

#define FTC_FAMILY_FREE (   family,
  cache 
)
Value:
(FTC_MruNode)(family) )
#define FTC_GCACHE(x)
Definition: ftcglyph.h:219
FTC_MruList_Remove(FTC_MruList list, FTC_MruNode node)
Definition: ftcmru.c:308
typedefFT_BEGIN_HEADER struct FTC_MruNodeRec_ * FTC_MruNode
Definition: ftcmru.h:61
Definition: cache.c:49

Definition at line 273 of file ftcglyph.h.

◆ FTC_FAMILY_P

#define FTC_FAMILY_P (   x)    ( (FTC_Family*)(x) )

Definition at line 145 of file ftcglyph.h.

◆ FTC_GCACHE

#define FTC_GCACHE (   x)    ((FTC_GCache)(x))

Definition at line 219 of file ftcglyph.h.

◆ FTC_GCACHE_CLASS

#define FTC_GCACHE_CLASS (   x)    ((FTC_GCacheClass)(x))

Definition at line 246 of file ftcglyph.h.

◆ FTC_GCACHE_LOOKUP_CMP

#define FTC_GCACHE_LOOKUP_CMP (   cache,
  famcmp,
  nodecmp,
  hash,
  gindex,
  query,
  node,
  error 
)
Value:
FT_BEGIN_STMNT \
FTC_GCache _gcache = FTC_GCACHE( cache ); \
FTC_GQuery _gquery = (FTC_GQuery)( query ); \
FTC_MruNode _mrunode; \
\
\
_gquery->gindex = (gindex); \
\
FTC_MRULIST_LOOKUP_CMP( &_gcache->families, _gquery, _fcompare, \
_mrunode, error ); \
_gquery->family = FTC_FAMILY( _mrunode ); \
if ( !error ) \
{ \
FTC_Family _gqfamily = _gquery->family; \
\
\
_gqfamily->num_nodes++; \
\
FTC_CACHE_LOOKUP_CMP( cache, nodecmp, hash, query, node, error ); \
\
if ( --_gqfamily->num_nodes == 0 ) \
FTC_FAMILY_FREE( _gqfamily, _gcache ); \
} \
FT_BEGIN_HEADER struct FTC_FamilyRec_ * FTC_Family
struct FTC_GQueryRec_ * FTC_GQuery
#define FTC_FAMILY(x)
Definition: ftcglyph.h:144
FT_Bool(* FTC_MruNode_CompareFunc)(FTC_MruNode node, FT_Pointer key)
Definition: ftcmru.h:90
#define FT_END_STMNT
Definition: ftconfig.h:353
#define error(str)
Definition: mkdosfs.c:1605
FTC_Family family
Definition: ftcglyph.h:163
FT_UInt gindex
Definition: ftcglyph.h:162
Definition: _hash_fun.h:40
Definition: dlist.c:348

Definition at line 280 of file ftcglyph.h.

◆ FTC_GNODE

#define FTC_GNODE (   x)    ( (FTC_GNode)(x) )

Definition at line 156 of file ftcglyph.h.

◆ FTC_GNODE_P

#define FTC_GNODE_P (   x)    ( (FTC_GNode*)(x) )

Definition at line 157 of file ftcglyph.h.

◆ FTC_GQUERY

#define FTC_GQUERY (   x)    ( (FTC_GQuery)(x) )

Definition at line 167 of file ftcglyph.h.

Typedef Documentation

◆ FTC_Family

◆ FTC_FamilyRec

◆ FTC_GCache

◆ FTC_GCacheClass

Definition at line 244 of file ftcglyph.h.

◆ FTC_GCacheClassRec

◆ FTC_GCacheRec

◆ FTC_GNode

◆ FTC_GNodeRec

◆ FTC_GQuery

◆ FTC_GQueryRec

Function Documentation

◆ FTC_Family_Init()

FTC_Family_Init ( FTC_Family  family,
FTC_Cache  cache 
)

Definition at line 106 of file ftcglyph.c.

108 {
110
111
112 family->clazz = clazz->family_class;
113 family->num_nodes = 0;
114 family->cache = cache;
115 }
#define FTC_CACHE_GCACHE_CLASS(x)
Definition: ftcglyph.h:248
FTC_MruListClass family_class
Definition: ftcglyph.h:240

Referenced by ftc_basic_family_init().

◆ FTC_GCache_New()

FTC_GCache_New ( FTC_Manager  manager,
FTC_GCacheClass  clazz,
FTC_GCache acache 
)

Definition at line 175 of file ftcglyph.c.

178 {
179 return FTC_Manager_RegisterCache( manager, (FTC_CacheClass)clazz,
180 (FTC_Cache*)acache );
181 }
FTC_Manager_RegisterCache(FTC_Manager manager, FTC_CacheClass clazz, FTC_Cache *acache)
Definition: ftcmanag.c:580

Referenced by FTC_ImageCache_New(), and FTC_SBitCache_New().

◆ FTC_GNode_Compare()

FTC_GNode_Compare ( FTC_GNode  gnode,
FTC_GQuery  gquery,
FTC_Cache  cache,
FT_Bool list_changed 
)

Definition at line 86 of file ftcglyph.c.

90 {
91 return ftc_gnode_compare( FTC_NODE( gnode ), gquery,
92 cache, list_changed );
93 }
#define FTC_NODE(x)
Definition: ftccache.h:69
ftc_gnode_compare(FTC_Node ftcgnode, FT_Pointer ftcgquery, FTC_Cache cache, FT_Bool *list_changed)
Definition: ftcglyph.c:66

Referenced by FTC_ImageCache_Lookup(), and FTC_ImageCache_LookupScaler().

◆ FTC_GNode_Done()

FTC_GNode_Done ( FTC_GNode  node,
FTC_Cache  cache 
)

Definition at line 55 of file ftcglyph.c.

57 {
58 /* finalize the node */
59 gnode->gindex = 0;
60
62 }
FTC_GNode_UnselectFamily(FTC_GNode gnode, FTC_Cache cache)
Definition: ftcglyph.c:42

Referenced by ftc_inode_free(), and ftc_snode_free().

◆ FTC_GNode_Init()

FTC_GNode_Init ( FTC_GNode  node,
FT_UInt  gindex,
FTC_Family  family 
)

Definition at line 31 of file ftcglyph.c.

34 {
35 gnode->family = family;
36 gnode->gindex = gindex;
37 family->num_nodes++;
38 }

Referenced by FTC_INode_New(), and FTC_SNode_New().

◆ FTC_GNode_UnselectFamily()

FTC_GNode_UnselectFamily ( FTC_GNode  gnode,
FTC_Cache  cache 
)

Definition at line 42 of file ftcglyph.c.

44 {
45 FTC_Family family = gnode->family;
46
47
48 gnode->family = NULL;
49 if ( family && --family->num_nodes == 0 )
50 FTC_FAMILY_FREE( family, cache );
51 }
#define NULL
Definition: types.h:112
#define FTC_FAMILY_FREE(family, cache)
Definition: ftcglyph.h:273
FTC_Family family
Definition: ftcglyph.h:151

Referenced by ftc_basic_gnode_compare_faceid(), and FTC_GNode_Done().