Skip to content

Commit 82b7d4f

Browse files
authored
[FREETYPE][NTGDI] Fix ftGdiGetTextMetricsW return for raster fonts (reactos#7635)
Try to get ready to support raster fonts. JIRA issue: CORE-17327 - Fix the return value of ftGdiGetTextMetricsW function for raster fonts.
1 parent dad3a09 commit 82b7d4f

File tree

1 file changed

+9
-8
lines changed

1 file changed

+9
-8
lines changed

win32ss/gdi/ntgdi/freetype.c

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3164,7 +3164,7 @@ IntGetOutlineTextMetrics(PFONTGDI FontGDI,
31643164

31653165
Otm->otmSize = Cache->OutlineRequiredSize;
31663166

3167-
FillTM(&Otm->otmTextMetrics, FontGDI, pOS2, pHori, !Error ? &WinFNT : 0);
3167+
FillTM(&Otm->otmTextMetrics, FontGDI, pOS2, pHori, (Error ? NULL : &WinFNT));
31683168

31693169
if (!pOS2)
31703170
goto skip_os2;
@@ -5318,25 +5318,26 @@ ftGdiGetTextMetricsW(
53185318
Status = STATUS_SUCCESS;
53195319

53205320
IntLockFreeType();
5321+
5322+
Error = FT_Get_WinFNT_Header(Face, &Win);
53215323
pOS2 = FT_Get_Sfnt_Table(Face, ft_sfnt_os2);
5322-
if (NULL == pOS2)
5324+
pHori = FT_Get_Sfnt_Table(Face, ft_sfnt_hhea);
5325+
5326+
if (!pOS2 && Error)
53235327
{
53245328
DPRINT1("Can't find OS/2 table - not TT font?\n");
53255329
Status = STATUS_INTERNAL_ERROR;
53265330
}
53275331

5328-
pHori = FT_Get_Sfnt_Table(Face, ft_sfnt_hhea);
5329-
if (NULL == pHori)
5332+
if (!pHori && Error)
53305333
{
53315334
DPRINT1("Can't find HHEA table - not TT font?\n");
53325335
Status = STATUS_INTERNAL_ERROR;
53335336
}
53345337

5335-
Error = FT_Get_WinFNT_Header(Face, &Win);
5336-
5337-
if (NT_SUCCESS(Status) || !Error)
5338+
if (NT_SUCCESS(Status))
53385339
{
5339-
FillTM(&ptmwi->TextMetric, FontGDI, pOS2, pHori, !Error ? &Win : 0);
5340+
FillTM(&ptmwi->TextMetric, FontGDI, pOS2, pHori, (Error ? NULL : &Win));
53405341

53415342
/* FIXME: Fill Diff member */
53425343
}

0 commit comments

Comments
 (0)