reactos/win32ss/gdi/ntgdi/font.h
Katayama Hirofumi MZ 015cd2596c [NTGDI][FREETYPE] Follow-up of #4901 (57702ed)
- Drop APIENTRYs for static functions.
- Use FIELD_OFFSET instead of offsetof.
- Delete unnecessary ASSERTs.
- Add annotations.
CORE-11848
2022-11-27 12:42:25 +09:00

94 lines
2.1 KiB
C

#pragma once
typedef struct _FONT_ENTRY
{
LIST_ENTRY ListEntry;
FONTGDI *Font;
UNICODE_STRING FaceName;
UNICODE_STRING StyleName;
BYTE NotEnum;
} FONT_ENTRY, *PFONT_ENTRY;
typedef struct _FONT_ENTRY_MEM
{
LIST_ENTRY ListEntry;
FONT_ENTRY *Entry;
} FONT_ENTRY_MEM, *PFONT_ENTRY_MEM;
typedef struct _FONT_ENTRY_COLL_MEM
{
LIST_ENTRY ListEntry;
HANDLE Handle;
FONT_ENTRY_MEM *Entry;
} FONT_ENTRY_COLL_MEM, *PFONT_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;
} DUMMYUNIONNAME;
WORD RenderMode;
} FONT_ASPECT, *PFONT_ASPECT;
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_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 */
/*
* FONTSUBST_... --- constants for font substitutes
*/
#define FONTSUBST_FROM 0
#define FONTSUBST_TO 1
#define FONTSUBST_FROM_AND_TO 2
/*
* FONTSUBST_ENTRY --- font substitute entry
*/
typedef struct FONTSUBST_ENTRY
{
LIST_ENTRY ListEntry;
UNICODE_STRING FontNames[FONTSUBST_FROM_AND_TO];
BYTE CharSets[FONTSUBST_FROM_AND_TO];
} FONTSUBST_ENTRY, *PFONTSUBST_ENTRY;
typedef struct GDI_LOAD_FONT
{
PUNICODE_STRING pFileName;
PSHARED_MEM Memory;
DWORD Characteristics;
UNICODE_STRING RegValueName;
BOOL IsTrueType;
BYTE CharSet;
PFONT_ENTRY_MEM PrivateEntry;
} GDI_LOAD_FONT, *PGDI_LOAD_FONT;