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

Go to the source code of this file.

Functions

 ftc_inode_free (FTC_Node ftcinode, FTC_Cache cache)
 
 FTC_INode_Free (FTC_INode inode, FTC_Cache cache)
 
 FTC_INode_New (FTC_INode *pinode, FTC_GQuery gquery, FTC_Cache cache)
 
 ftc_inode_new (FTC_Node *ftcpinode, FT_Pointer ftcgquery, FTC_Cache cache)
 
 ftc_inode_weight (FTC_Node ftcinode, FTC_Cache ftccache)
 

Function Documentation

◆ FTC_INode_Free()

FTC_INode_Free ( FTC_INode  inode,
FTC_Cache  cache 
)

Definition at line 49 of file ftcimage.c.

51 {
53 }
#define FTC_NODE(x)
Definition: ftccache.h:69
ftc_inode_free(FTC_Node ftcinode, FTC_Cache cache)
Definition: ftcimage.c:30
Definition: cache.c:49
Definition: fs.h:78

Referenced by FTC_INode_New().

◆ ftc_inode_free()

ftc_inode_free ( FTC_Node  ftcinode,
FTC_Cache  cache 
)

Definition at line 30 of file ftcimage.c.

32 {
33 FTC_INode inode = (FTC_INode)ftcinode;
34 FT_Memory memory = cache->memory;
35
36
37 if ( inode->glyph )
38 {
39 FT_Done_Glyph( inode->glyph );
40 inode->glyph = NULL;
41 }
42
44 FT_FREE( inode );
45 }
#define NULL
Definition: types.h:112
FTC_GNode_Done(FTC_GNode gnode, FTC_Cache cache)
Definition: ftcglyph.c:54
#define FTC_GNODE(x)
Definition: ftcglyph.h:155
FT_BEGIN_HEADER struct FTC_INodeRec_ * FTC_INode
FT_Done_Glyph(FT_Glyph glyph)
Definition: ftglyph.c:641
#define FT_FREE(ptr)
Definition: ftmemory.h:337
typedefFT_BEGIN_HEADER struct FT_MemoryRec_ * FT_Memory
Definition: ftsystem.h:64
static char memory[1024 *256]
Definition: process.c:122

Referenced by FTC_INode_Free().

◆ FTC_INode_New()

FTC_INode_New ( FTC_INode pinode,
FTC_GQuery  gquery,
FTC_Cache  cache 
)

Definition at line 58 of file ftcimage.c.

61 {
62 FT_Memory memory = cache->memory;
65
66
67 if ( !FT_NEW( inode ) )
68 {
69 FTC_GNode gnode = FTC_GNODE( inode );
70 FTC_Family family = gquery->family;
71 FT_UInt gindex = gquery->gindex;
73
74
75 /* initialize its inner fields */
76 FTC_GNode_Init( gnode, gindex, family );
77
78 /* we will now load the glyph image */
79 error = clazz->family_load_glyph( family, gindex, cache,
80 &inode->glyph );
81 if ( error )
82 {
84 inode = NULL;
85 }
86 }
87
88 *pinode = inode;
89 return error;
90 }
FTC_GNode_Init(FTC_GNode gnode, FT_UInt gindex, FTC_Family family)
Definition: ftcglyph.c:30
FT_BEGIN_HEADER struct FTC_FamilyRec_ * FTC_Family
FTC_INode_Free(FTC_INode inode, FTC_Cache cache)
Definition: ftcimage.c:49
#define FTC_CACHE_IFAMILY_CLASS(x)
Definition: ftcimage.h:74
#define FT_NEW(ptr)
Definition: ftmemory.h:339
int FT_Error
Definition: fttypes.h:299
unsigned int FT_UInt
Definition: fttypes.h:231
#define error(str)
Definition: mkdosfs.c:1605
FTC_Family family
Definition: ftcglyph.h:162
FT_UInt gindex
Definition: ftcglyph.h:161
FTC_IFamily_LoadGlyphFunc family_load_glyph
Definition: ftcimage.h:66

Referenced by ftc_inode_new().

◆ ftc_inode_new()

ftc_inode_new ( FTC_Node ftcpinode,
FT_Pointer  ftcgquery,
FTC_Cache  cache 
)

Definition at line 94 of file ftcimage.c.

97 {
98 FTC_INode *pinode = (FTC_INode*)ftcpinode;
99 FTC_GQuery gquery = (FTC_GQuery)ftcgquery;
100
101
102 return FTC_INode_New( pinode, gquery, cache );
103 }
struct FTC_GQueryRec_ * FTC_GQuery
FTC_INode_New(FTC_INode *pinode, FTC_GQuery gquery, FTC_Cache cache)
Definition: ftcimage.c:58

◆ ftc_inode_weight()

ftc_inode_weight ( FTC_Node  ftcinode,
FTC_Cache  ftccache 
)

Definition at line 107 of file ftcimage.c.

109 {
110 FTC_INode inode = (FTC_INode)ftcinode;
111 FT_Offset size = 0;
112 FT_Glyph glyph = inode->glyph;
113
114 FT_UNUSED( ftccache );
115
116
117 switch ( glyph->format )
118 {
119 case FT_GLYPH_FORMAT_BITMAP:
120 {
121 FT_BitmapGlyph bitg;
122
123
124 bitg = (FT_BitmapGlyph)glyph;
125 size = bitg->bitmap.rows * (FT_Offset)FT_ABS( bitg->bitmap.pitch ) +
126 sizeof ( *bitg );
127 }
128 break;
129
130 case FT_GLYPH_FORMAT_OUTLINE:
131 {
132 FT_OutlineGlyph outg;
133
134
135 outg = (FT_OutlineGlyph)glyph;
136 size = (FT_Offset)outg->outline.n_points *
137 ( sizeof ( FT_Vector ) + sizeof ( FT_Byte ) ) +
139 sizeof ( *outg );
140 }
141 break;
142
143 default:
144 ;
145 }
146
147 size += sizeof ( *inode );
148 return size;
149 }
struct FT_BitmapGlyphRec_ * FT_BitmapGlyph
Definition: ftglyph.h:131
struct FT_OutlineGlyphRec_ * FT_OutlineGlyph
Definition: ftglyph.h:186
#define FT_ABS(a)
Definition: ftobjs.h:73
unsigned char FT_Byte
Definition: fttypes.h:154
signed short FT_Short
Definition: fttypes.h:198
size_t FT_Offset
Definition: fttypes.h:323
GLsizeiptr size
Definition: glext.h:5919
#define FT_UNUSED(arg)
FT_Bitmap bitmap
Definition: ftglyph.h:172
unsigned int rows
Definition: ftimage.h:262
int pitch
Definition: ftimage.h:264
FT_Glyph_Format format
Definition: ftglyph.h:116
FT_Outline outline
Definition: ftglyph.h:220
short n_contours
Definition: ftimage.h:338
short n_points
Definition: ftimage.h:339
ActualNumberDriverObjects * sizeof(PDRIVER_OBJECT)) PDRIVER_OBJECT *DriverObjectList