[NTGDI][FREETYPE][SETUP][INF] Support FontLink (#7009)

If East Asian people were unable
to see the Latin characters, it
becomes a barrier to mutual
understanding.
FontLink will break that barrier.
JIRA issue: CORE-9616
JIRA issue: CORE-15480
- Modify font substitutes.
- Unify the lock variables.
- Add FONTLINK and
  FONTLINK_CHAIN structures.
- Add FontLink_Create and
  FontLink_Destroy functions.
- Add FontLink_Chain_Init,
  FontLink_Chain_Free,
  FontLink_Chain_LoadReg,
  FontLink_Chain_Populate, and
  FontLink_Chain_FindGlyph
  functions.
- Implement FontLink.
- Add font file DroidSansFallback.ttf
  for LiveCD.
This commit is contained in:
Katayama Hirofumi MZ 2024-06-30 22:15:34 +09:00 committed by GitHub
parent f28e983932
commit 0f9e889736
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
9 changed files with 840 additions and 103 deletions

View file

@ -914,7 +914,7 @@ NtGdiGetOutlineTextMetricsInternalW (HDC hDC,
}
TextIntUpdateSize(dc, TextObj, FontGDI, TRUE);
TEXTOBJ_UnlockText(TextObj);
Size = IntGetOutlineTextMetrics(FontGDI, 0, NULL);
Size = IntGetOutlineTextMetrics(FontGDI, 0, NULL, FALSE);
if (!otm) return Size;
if (Size > Data)
{
@ -928,7 +928,7 @@ NtGdiGetOutlineTextMetricsInternalW (HDC hDC,
return 0;
}
RtlZeroMemory(potm, Size);
IntGetOutlineTextMetrics(FontGDI, Size, potm);
IntGetOutlineTextMetrics(FontGDI, Size, potm, FALSE);
_SEH2_TRY
{

File diff suppressed because it is too large Load diff

View file

@ -124,7 +124,7 @@ INT FASTCALL IntGdiAddFontResourceEx(PUNICODE_STRING FileName, DWORD Characteris
HANDLE FASTCALL IntGdiAddFontMemResource(PVOID Buffer, DWORD dwSize, PDWORD pNumAdded);
BOOL FASTCALL IntGdiRemoveFontMemResource(HANDLE hMMFont);
ULONG FASTCALL ftGdiGetGlyphOutline(PDC,WCHAR,UINT,LPGLYPHMETRICS,ULONG,PVOID,LPMAT2,BOOL);
INT FASTCALL IntGetOutlineTextMetrics(PFONTGDI,UINT,OUTLINETEXTMETRICW *);
INT FASTCALL IntGetOutlineTextMetrics(PFONTGDI, UINT, OUTLINETEXTMETRICW*, BOOL);
BOOL FASTCALL TextIntUpdateSize(PDC,PTEXTOBJ,PFONTGDI,BOOL);
BOOL FASTCALL ftGdiGetRasterizerCaps(LPRASTERIZER_STATUS);
BOOL FASTCALL TextIntGetTextExtentPoint(PDC,PTEXTOBJ,LPCWSTR,INT,ULONG,LPINT,LPINT,LPSIZE,FLONG);