gdi32: Fixup the internal ntmFlags for bitmap fonts.
authorAkihiro Sagawa <sagawa.aki@gmail.com>
Thu, 31 Dec 2015 04:33:15 +0000 (13:33 +0900)
committerAlexandre Julliard <julliard@winehq.org>
Tue, 5 Jan 2016 10:48:47 +0000 (11:48 +0100)
The value is used not for APIs, but for our fake-bold implementation.

Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
dlls/gdi32/freetype.c

index 693a54ddd718756e4f6238e44067d455c5bb45dd..f7cd0eea2694ab70398ff66e66794edcc7d054a5 100644 (file)
@@ -1942,9 +1942,17 @@ static inline DWORD get_ntm_flags( FT_Face ft_face )
 {
     DWORD flags = 0;
     FT_ULong table_size = 0;
+    FT_WinFNT_HeaderRec winfnt_header;
 
     if (ft_face->style_flags & FT_STYLE_FLAG_ITALIC) flags |= NTM_ITALIC;
     if (ft_face->style_flags & FT_STYLE_FLAG_BOLD)   flags |= NTM_BOLD;
+
+    /* fixup the flag for our fake-bold implementation. */
+    if (!FT_IS_SCALABLE( ft_face ) &&
+        !pFT_Get_WinFNT_Header( ft_face, &winfnt_header ) &&
+        winfnt_header.weight > FW_NORMAL )
+        flags |= NTM_BOLD;
+
     if (flags == 0) flags = NTM_REGULAR;
 
     if (!pFT_Load_Sfnt_Table( ft_face, FT_MAKE_TAG( 'C','F','F',' ' ), 0, NULL, &table_size ))