mirror of
https://github.com/reactos/reactos.git
synced 2025-08-07 05:52:57 +00:00
[NTGDI][FREETYPE] Add special structure for hashing (#4916)
Add FONT_CACHE_HASHED structure and use it. CORE-11848
This commit is contained in:
parent
062a8f20a9
commit
4d0d22aee2
2 changed files with 77 additions and 79 deletions
|
@ -25,42 +25,42 @@ typedef struct _FONT_ENTRY_COLL_MEM
|
|||
|
||||
#include <pshpack1.h> /* We don't like padding for these structures for hashing */
|
||||
|
||||
typedef struct _EMULATION_BOLD_ITALIC
|
||||
{
|
||||
BYTE Bold;
|
||||
BYTE Italic;
|
||||
} EMULATION_BOLD_ITALIC, *PEMULATION_BOLD_ITALIC;
|
||||
|
||||
typedef struct _FONT_ASPECT
|
||||
{
|
||||
_ANONYMOUS_UNION union {
|
||||
EMULATION_BOLD_ITALIC Emu;
|
||||
WORD EmuBoldItalic;
|
||||
struct {
|
||||
BYTE Bold;
|
||||
BYTE Italic;
|
||||
} Emu;
|
||||
} DUMMYUNIONNAME;
|
||||
WORD RenderMode;
|
||||
} FONT_ASPECT, *PFONT_ASPECT;
|
||||
|
||||
typedef struct _FONT_CACHE_HASHED
|
||||
{
|
||||
INT GlyphIndex;
|
||||
FT_Face Face;
|
||||
LONG lfHeight;
|
||||
_ANONYMOUS_UNION union {
|
||||
DWORD AspectValue;
|
||||
FONT_ASPECT Aspect;
|
||||
} DUMMYUNIONNAME;
|
||||
FT_Matrix matTransform;
|
||||
} FONT_CACHE_HASHED, *PFONT_CACHE_HASHED;
|
||||
|
||||
#include <poppack.h>
|
||||
|
||||
typedef struct _FONT_CACHE_ENTRY
|
||||
{
|
||||
LIST_ENTRY ListEntry;
|
||||
FT_BitmapGlyph BitmapGlyph;
|
||||
DWORD dwHash;
|
||||
|
||||
/* The following members are hashed */
|
||||
INT GlyphIndex;
|
||||
FT_Face Face;
|
||||
LONG lfHeight;
|
||||
_ANONYMOUS_UNION union {
|
||||
FONT_ASPECT Aspect;
|
||||
DWORD AspectValue;
|
||||
} DUMMYUNIONNAME;
|
||||
FT_Matrix matTransform;
|
||||
FONT_CACHE_HASHED Hashed;
|
||||
} FONT_CACHE_ENTRY, *PFONT_CACHE_ENTRY;
|
||||
|
||||
#include <poppack.h>
|
||||
|
||||
C_ASSERT(FIELD_OFFSET(FONT_CACHE_ENTRY, GlyphIndex) % sizeof(DWORD) == 0); /* for hashing */
|
||||
C_ASSERT(sizeof(FONT_CACHE_ENTRY) % sizeof(DWORD) == 0); /* for hashing */
|
||||
C_ASSERT(FIELD_OFFSET(FONT_CACHE_ENTRY, Hashed) % sizeof(DWORD) == 0); /* for hashing */
|
||||
C_ASSERT(sizeof(FONT_CACHE_HASHED) % sizeof(DWORD) == 0); /* for hashing */
|
||||
|
||||
/*
|
||||
* FONTSUBST_... --- constants for font substitutes
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue