From 123c7cde07c73f01e576f2ab4dd01cdc8968047a Mon Sep 17 00:00:00 2001 From: Nikolay Sivov Date: Mon, 10 Aug 2015 13:50:25 +0300 Subject: [PATCH] dwrite: Set font stretch from 'head' table as a fallback. --- dlls/dwrite/opentype.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/dlls/dwrite/opentype.c b/dlls/dwrite/opentype.c index 852ad96496f..57660a37de9 100644 --- a/dlls/dwrite/opentype.c +++ b/dlls/dwrite/opentype.c @@ -133,8 +133,13 @@ typedef struct enum TT_HEAD_MACSTYLE { - TT_HEAD_MACSTYLE_BOLD = 1 << 0, - TT_HEAD_MACSTYLE_ITALIC = 1 << 1, + TT_HEAD_MACSTYLE_BOLD = 1 << 0, + TT_HEAD_MACSTYLE_ITALIC = 1 << 1, + TT_HEAD_MACSTYLE_UNDERLINE = 1 << 2, + TT_HEAD_MACSTYLE_OUTLINE = 1 << 3, + TT_HEAD_MACSTYLE_SHADOW = 1 << 4, + TT_HEAD_MACSTYLE_CONDENSED = 1 << 5, + TT_HEAD_MACSTYLE_EXTENDED = 1 << 6, }; typedef struct @@ -1051,6 +1056,11 @@ void opentype_get_font_properties(IDWriteFontFileStream *stream, DWRITE_FONT_FAC USHORT macStyle = GET_BE_WORD(tt_head->macStyle); if (macStyle & TT_HEAD_MACSTYLE_ITALIC) props->style = DWRITE_FONT_STYLE_ITALIC; + + if (macStyle & TT_HEAD_MACSTYLE_CONDENSED) + props->stretch = DWRITE_FONT_STRETCH_CONDENSED; + else if (macStyle & TT_HEAD_MACSTYLE_EXTENDED) + props->stretch = DWRITE_FONT_STRETCH_EXPANDED; } TRACE("stretch=%d, weight=%d, style %d\n", props->stretch, props->weight, props->style);