From 9cd11eb1031152ea996309e1fceb9d5c1ec6e69b Mon Sep 17 00:00:00 2001 From: Katayama Hirofumi MZ Date: Sun, 4 Aug 2019 15:15:52 +0900 Subject: [PATCH] [WIN32SS][NTGDI] Fix condition of bold emulation (#1787) - Define EMUBOLD_NEEDED macro to determine the condition of bold emuration necessity. - Use this macro. - Loose the condition. --- win32ss/gdi/ntgdi/freetype.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/win32ss/gdi/ntgdi/freetype.c b/win32ss/gdi/ntgdi/freetype.c index fb8741c8d8b..2578bc04e27 100644 --- a/win32ss/gdi/ntgdi/freetype.c +++ b/win32ss/gdi/ntgdi/freetype.c @@ -41,6 +41,10 @@ #define _TMPF_VARIABLE_PITCH TMPF_FIXED_PITCH #endif +/* Is bold emulation necessary? */ +#define EMUBOLD_NEEDED(original, request) \ + ((request) != FW_DONTCARE) && ((request) - (original) >= FW_BOLD - FW_MEDIUM) + extern const MATRIX gmxWorldToDeviceDefault; extern const MATRIX gmxWorldToPageDefault; static const FT_Matrix identityMat = {(1 << 16), 0, 0, (1 << 16)}; @@ -4100,7 +4104,7 @@ TextIntGetTextExtentPoint(PDC dc, TextIntUpdateSize(dc, TextObj, FontGDI, FALSE); plf = &TextObj->logfont.elfEnumLogfontEx.elfLogFont; - EmuBold = (plf->lfWeight >= FW_BOLD && FontGDI->OriginalWeight <= FW_NORMAL); + EmuBold = EMUBOLD_NEEDED(FontGDI->OriginalWeight, plf->lfWeight); EmuItalic = (plf->lfItalic && !FontGDI->OriginalItalic); Render = IntIsFontRenderingEnabled(); @@ -5885,7 +5889,7 @@ IntExtTextOutW( face = FontGDI->SharedFace->Face; plf = &TextObj->logfont.elfEnumLogfontEx.elfLogFont; - EmuBold = (plf->lfWeight >= FW_BOLD && FontGDI->OriginalWeight <= FW_NORMAL); + EmuBold = EMUBOLD_NEEDED(FontGDI->OriginalWeight, plf->lfWeight); EmuItalic = (plf->lfItalic && !FontGDI->OriginalItalic); if (Render) -- 2.17.1