ReactOS 0.4.16-dev-2357-g35d0dfe
ftcbasic.c File Reference
#include <freetype/internal/ftobjs.h>
#include <freetype/internal/ftdebug.h>
#include <freetype/ftcache.h>
#include "ftcglyph.h"
#include "ftcimage.h"
#include "ftcsbits.h"
#include "ftccback.h"
#include "ftcerror.h"
Include dependency graph for ftcbasic.c:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  FTC_BasicAttrRec_
 
struct  FTC_BasicQueryRec_
 
struct  FTC_BasicFamilyRec_
 

Macros

#define FT_COMPONENT   cache
 
#define FTC_BASIC_ATTR_COMPARE(a, b)
 
#define FTC_BASIC_ATTR_HASH(a)    ( FTC_SCALER_HASH( &(a)->scaler ) + 31 * (a)->load_flags )
 

Typedefs

typedef struct FTC_BasicAttrRec_ FTC_BasicAttrRec
 
typedef struct FTC_BasicAttrRec_FTC_BasicAttrs
 
typedef struct FTC_BasicQueryRec_ FTC_BasicQueryRec
 
typedef struct FTC_BasicQueryRec_FTC_BasicQuery
 
typedef struct FTC_BasicFamilyRec_ FTC_BasicFamilyRec
 
typedef struct FTC_BasicFamilyRec_FTC_BasicFamily
 

Functions

 ftc_basic_family_compare (FTC_MruNode ftcfamily, FT_Pointer ftcquery)
 
 ftc_basic_family_init (FTC_MruNode ftcfamily, FT_Pointer ftcquery, FT_Pointer ftccache)
 
 ftc_basic_family_get_count (FTC_Family ftcfamily, FTC_Manager manager)
 
 ftc_basic_family_load_bitmap (FTC_Family ftcfamily, FT_UInt gindex, FTC_Manager manager, FT_Face *aface)
 
 ftc_basic_family_load_glyph (FTC_Family ftcfamily, FT_UInt gindex, FTC_Cache cache, FT_Glyph *aglyph)
 
 ftc_basic_gnode_compare_faceid (FTC_Node ftcgnode, FT_Pointer ftcface_id, FTC_Cache cache, FT_Bool *list_changed)
 
 FTC_ImageCache_New (FTC_Manager manager, FTC_ImageCache *acache)
 
 FTC_ImageCache_Lookup (FTC_ImageCache cache, FTC_ImageType type, FT_UInt gindex, FT_Glyph *aglyph, FTC_Node *anode)
 
 FTC_ImageCache_LookupScaler (FTC_ImageCache cache, FTC_Scaler scaler, FT_ULong load_flags, FT_UInt gindex, FT_Glyph *aglyph, FTC_Node *anode)
 
 FTC_SBitCache_New (FTC_Manager manager, FTC_SBitCache *acache)
 
 FTC_SBitCache_Lookup (FTC_SBitCache cache, FTC_ImageType type, FT_UInt gindex, FTC_SBit *ansbit, FTC_Node *anode)
 
 FTC_SBitCache_LookupScaler (FTC_SBitCache cache, FTC_Scaler scaler, FT_ULong load_flags, FT_UInt gindex, FTC_SBit *ansbit, FTC_Node *anode)
 

Variables

static const FTC_IFamilyClassRec ftc_basic_image_family_class
 
static const FTC_GCacheClassRec ftc_basic_image_cache_class
 
static const FTC_SFamilyClassRec ftc_basic_sbit_family_class
 
static const FTC_GCacheClassRec ftc_basic_sbit_cache_class
 

Macro Definition Documentation

◆ FT_COMPONENT

#define FT_COMPONENT   cache

Definition at line 29 of file ftcbasic.c.

◆ FTC_BASIC_ATTR_COMPARE

#define FTC_BASIC_ATTR_COMPARE (   a,
  b 
)
Value:
FT_BOOL( FTC_SCALER_COMPARE( &(a)->scaler, &(b)->scaler ) && \
(a)->load_flags == (b)->load_flags )
#define FTC_SCALER_COMPARE(a, b)
Definition: ftcmanag.h:154
#define FT_BOOL(x)
Definition: fttypes.h:591
GLboolean GLboolean GLboolean b
Definition: glext.h:6204
GLboolean GLboolean GLboolean GLboolean a
Definition: glext.h:6204

Definition at line 43 of file ftcbasic.c.

◆ FTC_BASIC_ATTR_HASH

#define FTC_BASIC_ATTR_HASH (   a)     ( FTC_SCALER_HASH( &(a)->scaler ) + 31 * (a)->load_flags )

Definition at line 47 of file ftcbasic.c.

Typedef Documentation

◆ FTC_BasicAttrRec

◆ FTC_BasicAttrs

◆ FTC_BasicFamily

◆ FTC_BasicFamilyRec

◆ FTC_BasicQuery

◆ FTC_BasicQueryRec

Function Documentation

◆ ftc_basic_family_compare()

ftc_basic_family_compare ( FTC_MruNode  ftcfamily,
FT_Pointer  ftcquery 
)

Definition at line 68 of file ftcbasic.c.

70 {
71 FTC_BasicFamily family = (FTC_BasicFamily)ftcfamily;
73
74
75 return FTC_BASIC_ATTR_COMPARE( &family->attrs, &query->attrs );
76 }
#define FTC_BASIC_ATTR_COMPARE(a, b)
Definition: ftcbasic.c:43
struct FTC_BasicQueryRec_ * FTC_BasicQuery
struct FTC_BasicFamilyRec_ * FTC_BasicFamily
FTC_BasicAttrRec attrs
Definition: ftcbasic.c:62

Referenced by FTC_ImageCache_Lookup(), FTC_ImageCache_LookupScaler(), FTC_SBitCache_Lookup(), and FTC_SBitCache_LookupScaler().

◆ ftc_basic_family_get_count()

ftc_basic_family_get_count ( FTC_Family  ftcfamily,
FTC_Manager  manager 
)

Definition at line 96 of file ftcbasic.c.

98 {
99 FTC_BasicFamily family = (FTC_BasicFamily)ftcfamily;
102 FT_UInt result = 0;
103
104
105 error = FTC_Manager_LookupFace( manager, family->attrs.scaler.face_id,
106 &face );
107
108 if ( error || !face )
109 return result;
110
111 if ( (FT_ULong)face->num_glyphs > FT_UINT_MAX || 0 > face->num_glyphs )
112 FT_TRACE1(( "ftc_basic_family_get_count:"
113 " the number of glyphs in this face is %ld,\n"
114 " "
115 " which is too much and thus truncated\n",
116 face->num_glyphs ));
117
118 if ( !error )
119 result = (FT_UInt)face->num_glyphs;
120
121 return result;
122 }
WORD face[3]
Definition: mesh.c:4747
FTC_Manager_LookupFace(FTC_Manager manager, FTC_FaceID face_id, FT_Face *aface)
Definition: ftcmanag.c:305
#define FT_TRACE1(varformat)
Definition: ftdebug.h:188
#define FT_UINT_MAX
Definition: ftstdlib.h:65
unsigned long FT_ULong
Definition: fttypes.h:253
int FT_Error
Definition: fttypes.h:299
unsigned int FT_UInt
Definition: fttypes.h:231
GLenum GLuint GLint GLenum face
Definition: glext.h:7025
GLuint64EXT * result
Definition: glext.h:11304
#define error(str)
Definition: mkdosfs.c:1605
FTC_ScalerRec scaler
Definition: ftcbasic.c:38
FTC_FaceID face_id
Definition: ftcache.h:443

◆ ftc_basic_family_init()

ftc_basic_family_init ( FTC_MruNode  ftcfamily,
FT_Pointer  ftcquery,
FT_Pointer  ftccache 
)

Definition at line 80 of file ftcbasic.c.

83 {
84 FTC_BasicFamily family = (FTC_BasicFamily)ftcfamily;
86 FTC_Cache cache = (FTC_Cache)ftccache;
87
88
89 FTC_Family_Init( FTC_FAMILY( family ), cache );
90 family->attrs = query->attrs;
91 return 0;
92 }
struct FTC_CacheRec_ * FTC_Cache
Definition: ftccache.h:31
FTC_Family_Init(FTC_Family family, FTC_Cache cache)
Definition: ftcglyph.c:105
#define FTC_FAMILY(x)
Definition: ftcglyph.h:143
Definition: cache.c:49

◆ ftc_basic_family_load_bitmap()

ftc_basic_family_load_bitmap ( FTC_Family  ftcfamily,
FT_UInt  gindex,
FTC_Manager  manager,
FT_Face aface 
)

Definition at line 126 of file ftcbasic.c.

130 {
131 FTC_BasicFamily family = (FTC_BasicFamily)ftcfamily;
134
135
136 error = FTC_Manager_LookupSize( manager, &family->attrs.scaler, &size );
137 if ( !error )
138 {
139 FT_Face face = size->face;
140
141
143 face,
144 gindex,
146 if ( !error )
147 *aface = face;
148 }
149
150 return error;
151 }
#define FT_LOAD_RENDER
Definition: freetype.h:3024
FT_Load_Glyph(FT_Face face, FT_UInt glyph_index, FT_Int32 load_flags)
Definition: ftobjs.c:796
FTC_Manager_LookupSize(FTC_Manager manager, FTC_Scaler scaler, FT_Size *asize)
Definition: ftcmanag.c:178
signed int FT_Int
Definition: fttypes.h:220
GLsizeiptr size
Definition: glext.h:5919
FT_UInt load_flags
Definition: ftcbasic.c:39

◆ ftc_basic_family_load_glyph()

ftc_basic_family_load_glyph ( FTC_Family  ftcfamily,
FT_UInt  gindex,
FTC_Cache  cache,
FT_Glyph aglyph 
)

Definition at line 155 of file ftcbasic.c.

159 {
160 FTC_BasicFamily family = (FTC_BasicFamily)ftcfamily;
162 FTC_Scaler scaler = &family->attrs.scaler;
165
166
167 /* we will now load the glyph image */
169 scaler,
170 &size );
171 if ( !error )
172 {
173 face = size->face;
174
176 gindex,
177 (FT_Int)family->attrs.load_flags );
178 if ( !error )
179 {
180 if ( face->glyph->format == FT_GLYPH_FORMAT_BITMAP ||
181 face->glyph->format == FT_GLYPH_FORMAT_OUTLINE )
182 {
183 /* ok, copy it */
184 FT_Glyph glyph;
185
186
187 error = FT_Get_Glyph( face->glyph, &glyph );
188 if ( !error )
189 {
190 *aglyph = glyph;
191 goto Exit;
192 }
193 }
194 else
195 error = FT_THROW( Invalid_Argument );
196 }
197 }
198
199 Exit:
200 return error;
201 }
#define FT_THROW(e)
Definition: ftdebug.h:243
FT_Get_Glyph(FT_GlyphSlot slot, FT_Glyph *aglyph)
Definition: ftglyph.c:401
static void Exit(void)
Definition: sock.c:1330

◆ ftc_basic_gnode_compare_faceid()

ftc_basic_gnode_compare_faceid ( FTC_Node  ftcgnode,
FT_Pointer  ftcface_id,
FTC_Cache  cache,
FT_Bool list_changed 
)

Definition at line 205 of file ftcbasic.c.

209 {
210 FTC_GNode gnode = (FTC_GNode)ftcgnode;
211 FTC_FaceID face_id = (FTC_FaceID)ftcface_id;
212 FTC_BasicFamily family = (FTC_BasicFamily)gnode->family;
214
215
216 if ( list_changed )
217 *list_changed = FALSE;
218 result = FT_BOOL( family->attrs.scaler.face_id == face_id );
219 if ( result )
220 {
221 /* we must call this function to avoid this node from appearing
222 * in later lookups with the same face_id!
223 */
225 }
226 return result;
227 }
#define FALSE
Definition: types.h:117
FT_BEGIN_HEADER typedef FT_Pointer FTC_FaceID
Definition: ftcache.h:171
FTC_GNode_UnselectFamily(FTC_GNode gnode, FTC_Cache cache)
Definition: ftcglyph.c:41
struct FTC_GNodeRec_ * FTC_GNode
FT_BEGIN_HEADER typedef unsigned char FT_Bool
Definition: fttypes.h:108
if(dx< 0)
Definition: linetemp.h:194
FTC_Family family
Definition: ftcglyph.h:150

◆ FTC_ImageCache_Lookup()

FTC_ImageCache_Lookup ( FTC_ImageCache  cache,
FTC_ImageType  type,
FT_UInt  gindex,
FT_Glyph aglyph,
FTC_Node anode 
)

Definition at line 285 of file ftcbasic.c.

290 {
292 FTC_Node node = 0; /* make compiler happy */
295
296
297 /* some argument checks are delayed to `FTC_Cache_Lookup' */
298 if ( !aglyph )
299 {
300 error = FT_THROW( Invalid_Argument );
301 goto Exit;
302 }
303
304 *aglyph = NULL;
305 if ( anode )
306 *anode = NULL;
307
308 /*
309 * Internal `FTC_BasicAttr->load_flags' is of type `FT_UInt',
310 * but public `FT_ImageType->flags' is of type `FT_Int32'.
311 *
312 * On 16bit systems, higher bits of type->flags cannot be handled.
313 */
314#if 0xFFFFFFFFUL > FT_UINT_MAX
315 if ( (type->flags & (FT_ULong)FT_UINT_MAX) )
316 FT_TRACE1(( "FTC_ImageCache_Lookup:"
317 " higher bits in load_flags 0x%x are dropped\n",
318 (FT_ULong)type->flags & ~((FT_ULong)FT_UINT_MAX) ));
319#endif
320
321 query.attrs.scaler.face_id = type->face_id;
322 query.attrs.scaler.width = type->width;
323 query.attrs.scaler.height = type->height;
324 query.attrs.load_flags = (FT_UInt)type->flags;
325
326 query.attrs.scaler.pixel = 1;
327 query.attrs.scaler.x_res = 0; /* make compilers happy */
328 query.attrs.scaler.y_res = 0;
329
330 hash = FTC_BASIC_ATTR_HASH( &query.attrs ) + gindex;
331
332#if 1 /* inlining is about 50% faster! */
336 hash, gindex,
337 &query,
338 node,
339 error );
340#else
341 error = FTC_GCache_Lookup( FTC_GCACHE( cache ),
342 hash, gindex,
343 FTC_GQUERY( &query ),
344 &node );
345#endif
346 if ( !error )
347 {
348 *aglyph = FTC_INODE( node )->glyph;
349
350 if ( anode )
351 {
352 *anode = node;
353 node->ref_count++;
354 }
355 }
356
357 Exit:
358 return error;
359 }
#define NULL
Definition: types.h:112
ftc_basic_family_compare(FTC_MruNode ftcfamily, FT_Pointer ftcquery)
Definition: ftcbasic.c:68
#define FTC_BASIC_ATTR_HASH(a)
Definition: ftcbasic.c:47
FTC_GNode_Compare(FTC_GNode gnode, FTC_GQuery gquery, FTC_Cache cache, FT_Bool *list_changed)
Definition: ftcglyph.c:85
#define FTC_GCACHE(x)
Definition: ftcglyph.h:218
#define FTC_GCACHE_LOOKUP_CMP(cache, famcmp, nodecmp, hash, gindex, query, node, error)
Definition: ftcglyph.h:279
#define FTC_GQUERY(x)
Definition: ftcglyph.h:166
#define FTC_INODE(x)
Definition: ftcimage.h:53
size_t FT_Offset
Definition: fttypes.h:323
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
Definition: _hash_fun.h:40
Definition: dlist.c:348

◆ FTC_ImageCache_LookupScaler()

FTC_ImageCache_LookupScaler ( FTC_ImageCache  cache,
FTC_Scaler  scaler,
FT_ULong  load_flags,
FT_UInt  gindex,
FT_Glyph aglyph,
FTC_Node anode 
)

Definition at line 365 of file ftcbasic.c.

371 {
373 FTC_Node node = 0; /* make compiler happy */
376
377
378 /* some argument checks are delayed to `FTC_Cache_Lookup' */
379 if ( !aglyph || !scaler )
380 {
381 error = FT_THROW( Invalid_Argument );
382 goto Exit;
383 }
384
385 *aglyph = NULL;
386 if ( anode )
387 *anode = NULL;
388
389 /*
390 * Internal `FTC_BasicAttr->load_flags' is of type `FT_UInt',
391 * but public `FT_Face->face_flags' is of type `FT_Long'.
392 *
393 * On long > int systems, higher bits of load_flags cannot be handled.
394 */
395#if FT_ULONG_MAX > FT_UINT_MAX
396 if ( load_flags > FT_UINT_MAX )
397 FT_TRACE1(( "FTC_ImageCache_LookupScaler:"
398 " higher bits in load_flags 0x%lx are dropped\n",
399 load_flags & ~((FT_ULong)FT_UINT_MAX) ));
400#endif
401
402 query.attrs.scaler = scaler[0];
403 query.attrs.load_flags = (FT_UInt)load_flags;
404
405 hash = FTC_BASIC_ATTR_HASH( &query.attrs ) + gindex;
406
410 hash, gindex,
411 &query,
412 node,
413 error );
414 if ( !error )
415 {
416 *aglyph = FTC_INODE( node )->glyph;
417
418 if ( anode )
419 {
420 *anode = node;
421 node->ref_count++;
422 }
423 }
424
425 Exit:
426 return error;
427 }

◆ FTC_ImageCache_New()

FTC_ImageCache_New ( FTC_Manager  manager,
FTC_ImageCache acache 
)

Definition at line 274 of file ftcbasic.c.

276 {
278 (FTC_GCache*)acache );
279 }
static const FTC_GCacheClassRec ftc_basic_image_cache_class
Definition: ftcbasic.c:253
FTC_GCache_New(FTC_Manager manager, FTC_GCacheClass clazz, FTC_GCache *acache)
Definition: ftcglyph.c:174

◆ FTC_SBitCache_Lookup()

FTC_SBitCache_Lookup ( FTC_SBitCache  cache,
FTC_ImageType  type,
FT_UInt  gindex,
FTC_SBit ansbit,
FTC_Node anode 
)

Definition at line 485 of file ftcbasic.c.

490 {
493 FTC_Node node = 0; /* make compiler happy */
495
496
497 if ( anode )
498 *anode = NULL;
499
500 /* other argument checks delayed to `FTC_Cache_Lookup' */
501 if ( !ansbit )
502 return FT_THROW( Invalid_Argument );
503
504 *ansbit = NULL;
505
506 /*
507 * Internal `FTC_BasicAttr->load_flags' is of type `FT_UInt',
508 * but public `FT_ImageType->flags' is of type `FT_Int32'.
509 *
510 * On 16bit systems, higher bits of type->flags cannot be handled.
511 */
512#if 0xFFFFFFFFUL > FT_UINT_MAX
513 if ( (type->flags & (FT_ULong)FT_UINT_MAX) )
514 FT_TRACE1(( "FTC_ImageCache_Lookup:"
515 " higher bits in load_flags 0x%x are dropped\n",
516 (FT_ULong)type->flags & ~((FT_ULong)FT_UINT_MAX) ));
517#endif
518
519 query.attrs.scaler.face_id = type->face_id;
520 query.attrs.scaler.width = type->width;
521 query.attrs.scaler.height = type->height;
522 query.attrs.load_flags = (FT_UInt)type->flags;
523
524 query.attrs.scaler.pixel = 1;
525 query.attrs.scaler.x_res = 0; /* make compilers happy */
526 query.attrs.scaler.y_res = 0;
527
528 /* beware, the hash must be the same for all glyph ranges! */
529 hash = FTC_BASIC_ATTR_HASH( &query.attrs ) +
531
532#if 1 /* inlining is about 50% faster! */
536 hash, gindex,
537 &query,
538 node,
539 error );
540#else
541 error = FTC_GCache_Lookup( FTC_GCACHE( cache ),
542 hash,
543 gindex,
544 FTC_GQUERY( &query ),
545 &node );
546#endif
547 if ( error )
548 goto Exit;
549
550 *ansbit = FTC_SNODE( node )->sbits +
551 ( gindex - FTC_GNODE( node )->gindex );
552
553 if ( anode )
554 {
555 *anode = node;
556 node->ref_count++;
557 }
558
559 Exit:
560 return error;
561 }
#define FTC_GNODE(x)
Definition: ftcglyph.h:155
FTC_SNode_Compare(FTC_SNode snode, FTC_GQuery gquery, FTC_Cache cache, FT_Bool *list_changed)
Definition: ftcsbits.c:411
#define FTC_SNODE(x)
Definition: ftcsbits.h:40
#define FTC_SBIT_ITEMS_PER_NODE
Definition: ftcsbits.h:29

◆ FTC_SBitCache_LookupScaler()

FTC_SBitCache_LookupScaler ( FTC_SBitCache  cache,
FTC_Scaler  scaler,
FT_ULong  load_flags,
FT_UInt  gindex,
FTC_SBit ansbit,
FTC_Node anode 
)

Definition at line 567 of file ftcbasic.c.

573 {
576 FTC_Node node = 0; /* make compiler happy */
578
579
580 if ( anode )
581 *anode = NULL;
582
583 /* other argument checks delayed to `FTC_Cache_Lookup' */
584 if ( !ansbit || !scaler )
585 return FT_THROW( Invalid_Argument );
586
587 *ansbit = NULL;
588
589 /*
590 * Internal `FTC_BasicAttr->load_flags' is of type `FT_UInt',
591 * but public `FT_Face->face_flags' is of type `FT_Long'.
592 *
593 * On long > int systems, higher bits of load_flags cannot be handled.
594 */
595#if FT_ULONG_MAX > FT_UINT_MAX
596 if ( load_flags > FT_UINT_MAX )
597 FT_TRACE1(( "FTC_ImageCache_LookupScaler:"
598 " higher bits in load_flags 0x%lx are dropped\n",
599 load_flags & ~((FT_ULong)FT_UINT_MAX) ));
600#endif
601
602 query.attrs.scaler = scaler[0];
603 query.attrs.load_flags = (FT_UInt)load_flags;
604
605 /* beware, the hash must be the same for all glyph ranges! */
606 hash = FTC_BASIC_ATTR_HASH( &query.attrs ) +
608
612 hash, gindex,
613 &query,
614 node,
615 error );
616 if ( error )
617 goto Exit;
618
619 *ansbit = FTC_SNODE( node )->sbits +
620 ( gindex - FTC_GNODE( node )->gindex );
621
622 if ( anode )
623 {
624 *anode = node;
625 node->ref_count++;
626 }
627
628 Exit:
629 return error;
630 }

◆ FTC_SBitCache_New()

FTC_SBitCache_New ( FTC_Manager  manager,
FTC_SBitCache acache 
)

Definition at line 474 of file ftcbasic.c.

476 {
478 (FTC_GCache*)acache );
479 }
static const FTC_GCacheClassRec ftc_basic_sbit_cache_class
Definition: ftcbasic.c:453

Variable Documentation

◆ ftc_basic_image_cache_class

const FTC_GCacheClassRec ftc_basic_image_cache_class
static
Initial value:
=
{
{
sizeof ( FTC_GCacheRec ),
},
}
static const FTC_IFamilyClassRec ftc_basic_image_family_class
Definition: ftcbasic.c:237
ftc_basic_gnode_compare_faceid(FTC_Node ftcgnode, FT_Pointer ftcface_id, FTC_Cache cache, FT_Bool *list_changed)
Definition: ftcbasic.c:205
ftc_gcache_done(FTC_Cache cache)
Definition: ftcglyph.c:152
FT_BEGIN_HEADER ftc_inode_free(FTC_Node inode, FTC_Cache cache)
Definition: ftcimage.c:30
ftc_inode_weight(FTC_Node inode, FTC_Cache cache)
Definition: ftcimage.c:107
ftc_inode_new(FTC_Node *pinode, FT_Pointer gquery, FTC_Cache cache)
Definition: ftcimage.c:94
ftc_gcache_init(FTC_Cache cache)
Definition: ftcglyph.c:118
ftc_gnode_compare(FTC_Node gnode, FT_Pointer gquery, FTC_Cache cache, FT_Bool *list_changed)
Definition: ftcglyph.c:65
struct FTC_GCacheRec_ FTC_GCacheRec
struct FTC_MruListClassRec_ const * FTC_MruListClass
Definition: ftcmru.h:86

Definition at line 253 of file ftcbasic.c.

Referenced by FTC_ImageCache_New().

◆ ftc_basic_image_family_class

const FTC_IFamilyClassRec ftc_basic_image_family_class
static
Initial value:
=
{
{
sizeof ( FTC_BasicFamilyRec ),
NULL,
},
}
ftc_basic_family_load_glyph(FTC_Family ftcfamily, FT_UInt gindex, FTC_Cache cache, FT_Glyph *aglyph)
Definition: ftcbasic.c:155
struct FTC_BasicFamilyRec_ FTC_BasicFamilyRec
ftc_basic_family_init(FTC_MruNode ftcfamily, FT_Pointer ftcquery, FT_Pointer ftccache)
Definition: ftcbasic.c:80

Definition at line 237 of file ftcbasic.c.

◆ ftc_basic_sbit_cache_class

const FTC_GCacheClassRec ftc_basic_sbit_cache_class
static
Initial value:
=
{
{
sizeof ( FTC_GCacheRec ),
},
}
static const FTC_SFamilyClassRec ftc_basic_sbit_family_class
Definition: ftcbasic.c:437
ftc_snode_weight(FTC_Node snode, FTC_Cache cache)
Definition: ftcsbits.c:280
ftc_snode_new(FTC_Node *psnode, FT_Pointer gquery, FTC_Cache cache)
Definition: ftcsbits.c:267
ftc_snode_compare(FTC_Node snode, FT_Pointer gquery, FTC_Cache cache, FT_Bool *list_changed)
Definition: ftcsbits.c:326
ftc_snode_free(FTC_Node snode, FTC_Cache cache)
Definition: ftcsbits.c:66

Definition at line 453 of file ftcbasic.c.

Referenced by FTC_SBitCache_New().

◆ ftc_basic_sbit_family_class

const FTC_SFamilyClassRec ftc_basic_sbit_family_class
static
Initial value:
=
{
{
sizeof ( FTC_BasicFamilyRec ),
NULL,
},
}
ftc_basic_family_get_count(FTC_Family ftcfamily, FTC_Manager manager)
Definition: ftcbasic.c:96
ftc_basic_family_load_bitmap(FTC_Family ftcfamily, FT_UInt gindex, FTC_Manager manager, FT_Face *aface)
Definition: ftcbasic.c:126

Definition at line 437 of file ftcbasic.c.