Techwiki:Win32k/RFONT
Revision as of 10:22, 2 March 2012 by ThePhysicist (talk | contribs)
Windows XP version of Realized Font structure. Pool tag is 'Gfnt'
typedef struct
{
PRFONT prfntPrev; // 000
PRFONT prfntNext; // 004
} RFONTLINK, *PRFONTLINK;
typedef struct
{
PMATRIX pmx;
ULONG ulMode;
} EXFORMOBJ;
typedef struct
{
GLYPHDATA *pgdNext; // 000
GLYPHDATA *pgdThreshold; // 004
PBYTE pjFirstBlockEnd; // 008
void * pdblBase; // 00c
ULONG cMetrics; // 010
DWORD unknow_014;
ULONG cjbbl; // 018
ULONG cBlocksMax; // 01c
ULONG cBlocks; // 020
ULONG cGlyphs; // 024
ULONG cjTotal; // 028
void * pbblBase; // 02c
void * pbblCur; // 030
GLYPHBITS * pgbNext; // 034
GLYPHBITS * pgbThreshold; // 038
PBYTE pjAuxCacheMem; // 03c
ULONG cjAuxCacheMem; // 040
ULONG cjGlyphMax; // 044
BOOL bSmallMetrics; // 048
ULONG iMax; // 04c
ULONG iFirst; // 050
ULONG cBits; // 054
// size = 058
} CACHE;
typedef struct _FONTOBJ
{
ULONG iUniq;
ULONG iFace;
ULONG cxMax;
FLONG flFontType;
ULONG_PTR iTTUniq;
ULONG_PTR iFile;
SIZE sizLogResPpi;
ULONG ulStyleSize;
PVOID pvConsumer;
PVOID pvProducer;
} FONTOBJ;
typedef struct _RFONT
{
FONTOBJ fobj; // 000
ULONG iUnique; // 02c
FLONG flType; // 030
ULONG ulContent; // 034
PVOID hdevProducer; // 038
BOOL bDeviceFont; // 03c
PVOID hdevConsumer; // 040
DHPDEV dhpdev; // 044
PFE * ppfe; // 048
PFF * pPFF; // 04c
FD_XFORM fdx; // 050
ULONG cBitsPerPel; // 060
MATRIX mxWorldToDevice; // 064
ULONG iGraphicsMode; // 0a0
FLOATOBJ eptflNtoWScale_x_i; // 0a4
FLOATOBJ eptflNtoWScale_y_i; // 0ac
ULONG bNtoWIdent; // 0b4
EXFORMOBJ xoForDDI; // 0b8
unsigned unk_000; // 0c0
MATRIX mxForDDI; // 0c4
ULONG flRealizedType; // 100
POINTL ptlUnderline1; // 104
POINTL ptlStrikeOut; // 10c
POINTL ptlULThickness; // 114
POINTL ptlSOThickness; // 11c
LONG lCharInc; // 124
FIX fxMaxAscent; // 128
FIX fxMaxDescent; // 12C
FIX fxMaxExtent; // 130
POINTFX ptfxMaxAscent; // 134
POINTFX ptfxMaxDescent; // 13C
ULONG cxMax; // 144
LONG lMaxAscent; // 148
LONG lMaxHeight; // 14C
ULONG cyMax; // 150
ULONG cjGlyphMax; // 154
FD_XFORM fdxQuantized; // 158
LONG lNonLinearExtLeading; // 168
LONG lNonLinearIntLeading;
LONG lNonLinearMaxCharWidth;
LONG lNonLinearAvgCharWidth;
ULONG ulOrientation; // 178
POINTEF pteUnitBase; //
FLOATOBJ efWtoDBase;
FLOATOBJ efDtoWBase;
LONG lAscent; // 19C
POINTEF pteUnitAscent; //
FLOATOBJ efWtoDAscent;
FLOATOBJ efDtoWAscent;
LONG lEscapement; // 1c0
FLOATOBJ efWtoDEsc;
FLOATOBJ efDtoWEsc;
FLOATOBJ efEscToBase; // 1e4
FLOATOBJ efEscToAscent; // 1ec
HGLYPH * phg; // 1f4
HGLYPH hgBreak; // 1f8
FIX fxBreak; // 1fc
FD_GLYPHSET * pfdg; // 200
void * wcgp; // 204
FLONG flInfo; // 208
ULONG cSelected; // 20c
RFONTLINK rflPDEV; // 210
RFONTLINK rflPFF;
void * hsemCache; // 220
CACHE cache; // 224
POINTL ptlSim; // 27c
BOOL bNeededPaths; // 284
FLOATOBJ efDtoWBase_31; // 288
FLOATOBJ efDtoWAscent_31; // 290
TEXTMETRICW * ptmw; // 298
LONG lMaxNegA; // 29c
LONG lMaxNegC; // 2a0
LONG lMinWidthD; // 2a4
BOOL bIsSystemFont; // 2a8
FLONG flEUDCState; // 2ac
PRFONT prfntSystemTT;
PRFONT prfntSysEUDC;
PRFONT prfntDefEUDC;
PRFONT paprfntFaceName;
PRFONT aprfntQuickBuff[8]; // 2c0
BOOL bFilledEudcArray;
ULONG ulTimeStamp;
ULONG uiNumLinks;
BOOL bVertical; // 2ec
HSEMAPHORE hsemCache1; // 2f0
} RFONT, *PRFONT; // size 0x2F4 allocated in RFONTOBJ::bRealizeFont
iUnique
- Does NOT match fobj.iUniq. (0)
flType
ulContent
- Can be one of:
RFONT_CONTENT_METRICS RFONT_CONTENT_BITMAPS RFONT_CONTENT_PATHS
hdevProducer
- HDEV of the font driver that loaded this font.
bDeviceFont
- TRUE if the font is a device font.
hdevConsumer
- HDEV of the driver that uses this RFONT to output text.
dhpdev
- Driver defined device handle, that identifies the
ppfe pPFF fdx cBitsPerPel mxWorldToDevice iGraphicsMode eptflNtoWScale_x_i eptflNtoWScale_y_i bNtoWIdent xoForDDI unk_000 mxForDDI
flRealizedType
- See FDM_TYPE_XXX flags.
cxMax
- Maximum glyph bitmap width, in pixels for this font instance. Not used for outlines.
cyMax
- Maximum glyph bitmap height, in pixels for this font instance. Not used for outlines.
cjGlyphMax
- Maximum bitmap size of a glyph, in bytes for this font instance.
phg
- Pointer to an array of HGLYPHs.
pfdg
'wcgp
- Pointer to Gdi glyph cache ('Gcac')
flInfo
- see FM_INFO_* in IFIMETRICS
hsemCache
- HSEMAPHORE to protect the cache
lMaxNegA
- See CHWIDTHINFO and FD_DEVICEMETRICS lMinA
lMaxNegC
- See CHWIDTHINFO and FD_DEVICEMETRICS lMinC
lMinWidthD
- See CHWIDTHINFO and FD_DEVICEMETRICS lMinD
hsemCache1
- HSEMAPHORE to protect the cache
References
- FD_DEVICEMETRICS
- IFIMETRICS
- Windows Symbol files, gdikdx.dll.