From e65d7bb948d3a25a7d73bcfb3b9a799425c0319a Mon Sep 17 00:00:00 2001 From: Grigori Goronzy Date: Sat, 23 May 2015 13:20:55 +0200 Subject: directwrite: add 'width' attribute This is required for proper font matching. --- libass/ass_directwrite.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libass/ass_directwrite.cpp b/libass/ass_directwrite.cpp index f00b7b8..415afef 100644 --- a/libass/ass_directwrite.cpp +++ b/libass/ass_directwrite.cpp @@ -148,6 +148,11 @@ static void destroy_font(void *data) free(priv); } +static int map_width(int stretch) +{ + return stretch * (100 / DWRITE_FONT_STRETCH_MEDIUM); +} + static void scan_fonts(IDWriteFactory *factory, ASS_FontProvider *provider) { HRESULT hr = S_OK; @@ -187,6 +192,7 @@ static void scan_fonts(IDWriteFactory *factory, ASS_FontProvider *provider) return; meta.weight = font->GetWeight(); + meta.width = map_width(font->GetStretch()); font->GetMetrics(&metrics); style = font->GetStyle(); meta.slant = (style==DWRITE_FONT_STYLE_NORMAL)? FONT_SLANT_NONE: -- cgit v1.2.3