Byeongsik Jeon : gdi32: Preserve the GGO_UNHINTED bits until used.

Alexandre Julliard julliard at winehq.org
Thu Jan 21 16:19:15 CST 2021


Module: wine
Branch: master
Commit: f0267395645eb8fc3b8409d7ae3b43e41929469a
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=f0267395645eb8fc3b8409d7ae3b43e41929469a

Author: Byeongsik Jeon <bsjeon at hanmail.net>
Date:   Mon Jan 11 13:18:42 2021 +0900

gdi32: Preserve the GGO_UNHINTED bits until used.

Fix a regression caused by 044315c0b3890676d9fd751d8191b0b7381e0b97.

Signed-off-by: Byeongsik Jeon <bsjeon at hanmail.net>
Signed-off-by: Huw Davies <huw at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/gdi32/font.c     | 3 +--
 dlls/gdi32/freetype.c | 2 ++
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/dlls/gdi32/font.c b/dlls/gdi32/font.c
index afd41aeec31..74ca4825de4 100644
--- a/dlls/gdi32/font.c
+++ b/dlls/gdi32/font.c
@@ -2955,6 +2955,7 @@ static DWORD get_glyph_outline( struct gdi_font *font, UINT glyph, UINT format,
         /* Windows bitmap font, e.g. Small Fonts, uses ANSI character code
            as glyph index. "Treasure Adventure Game" depends on this. */
         font_funcs->get_glyph_index( font, &index, FALSE );
+        format &= ~GGO_GLYPH_INDEX;
         /* TODO: Window also turns off tategaki for glyphs passed in by index
             if their unicode code points fall outside of the range that is
             rotated. */
@@ -2970,8 +2971,6 @@ static DWORD get_glyph_outline( struct gdi_font *font, UINT glyph, UINT format,
         }
     }
 
-    format &= ~(GGO_GLYPH_INDEX | GGO_UNHINTED);
-
     if (mat && !memcmp( mat, &identity, sizeof(*mat) )) mat = NULL;
 
     if (format == GGO_METRICS && !mat && get_gdi_font_glyph_metrics( font, index, &gm, &abc ))
diff --git a/dlls/gdi32/freetype.c b/dlls/gdi32/freetype.c
index fffa3288503..b3fc565afe8 100644
--- a/dlls/gdi32/freetype.c
+++ b/dlls/gdi32/freetype.c
@@ -3515,6 +3515,8 @@ static DWORD CDECL freetype_get_glyph_outline( struct gdi_font *font, UINT glyph
           font->matrix.eM11, font->matrix.eM12,
           font->matrix.eM21, font->matrix.eM22);
 
+    format &= ~GGO_UNHINTED;
+
     needsTransform = get_transform_matrices( font, tategaki, lpmat, matrices );
 
     vertical_metrics = (tategaki && FT_HAS_VERTICAL(ft_face));




More information about the wine-cvs mailing list