Huw Davies : gdi32: Add a helper to retrieve a bitmap font' s internal leading.

Alexandre Julliard julliard at winehq.org
Tue Mar 27 12:48:06 CDT 2012


Module: wine
Branch: master
Commit: 45d79feaf5789bdc4c0a2c98ee54b672a4bfbe36
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=45d79feaf5789bdc4c0a2c98ee54b672a4bfbe36

Author: Huw Davies <huw at codeweavers.com>
Date:   Tue Mar 27 11:48:43 2012 +0100

gdi32: Add a helper to retrieve a bitmap font's internal leading.

---

 dlls/gdi32/freetype.c |   16 ++++++++++++----
 1 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/dlls/gdi32/freetype.c b/dlls/gdi32/freetype.c
index 446175e..6f916c1 100644
--- a/dlls/gdi32/freetype.c
+++ b/dlls/gdi32/freetype.c
@@ -1594,6 +1594,17 @@ static inline DWORD get_ntm_flags( FT_Face ft_face )
     return flags;
 }
 
+static inline int get_bitmap_internal_leading( FT_Face ft_face )
+{
+    int internal_leading = 0;
+    FT_WinFNT_HeaderRec winfnt_header;
+
+    if (!pFT_Get_WinFNT_Header( ft_face, &winfnt_header ))
+        internal_leading = winfnt_header.internal_leading;
+
+    return internal_leading;
+}
+
 #define ADDFONT_EXTERNAL_FONT 0x01
 #define ADDFONT_FORCE_BITMAP  0x02
 #define ADDFONT_ADD_TO_CACHE  0x04
@@ -1609,7 +1620,6 @@ static void AddFaceToList(FT_Face ft_face, const char *file, void *font_data_ptr
         Face *face;
         struct list *face_elem_ptr;
         FT_WinFNT_HeaderRec winfnt_header;
-        int internal_leading;
         FONTSIGNATURE fs;
         My_FT_Bitmap_Size *size = NULL;
         FT_Fixed version;
@@ -1621,7 +1631,6 @@ static void AddFaceToList(FT_Face ft_face, const char *file, void *font_data_ptr
 
         StyleW = towstr(CP_ACP, ft_face->style_name);
 
-        internal_leading = 0;
         memset(&fs, 0, sizeof(fs));
 
         pOS2 = pFT_Get_Sfnt_Table(ft_face, ft_sfnt_os2);
@@ -1647,7 +1656,6 @@ static void AddFaceToList(FT_Face ft_face, const char *file, void *font_data_ptr
                   winfnt_header.vertical_resolution,winfnt_header.horizontal_resolution, winfnt_header.nominal_point_size);
             if(TranslateCharsetInfo((DWORD*)(UINT_PTR)winfnt_header.charset, &csi, TCI_SRCCHARSET))
                 fs = csi.fs;
-            internal_leading = winfnt_header.internal_leading;
         }
 
         version = get_font_version( ft_face );
@@ -1709,7 +1717,7 @@ static void AddFaceToList(FT_Face ft_face, const char *file, void *font_data_ptr
             face->size.size = size->size;
             face->size.x_ppem = size->x_ppem;
             face->size.y_ppem = size->y_ppem;
-            face->size.internal_leading = internal_leading;
+            face->size.internal_leading = get_bitmap_internal_leading( ft_face );
             face->scalable = FALSE;
         }
 




More information about the wine-cvs mailing list