diff options
Diffstat (limited to 'src/ports')
-rw-r--r-- | src/ports/SkTypeface_win_dw.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/ports/SkTypeface_win_dw.cpp b/src/ports/SkTypeface_win_dw.cpp index 9ff9177012..ae4e3f7105 100644 --- a/src/ports/SkTypeface_win_dw.cpp +++ b/src/ports/SkTypeface_win_dw.cpp @@ -18,6 +18,7 @@ #include "SkDWriteFontFileStream.h" #include "SkFontDescriptor.h" #include "SkFontStream.h" +#include "SkOTTable_fvar.h" #include "SkOTTable_head.h" #include "SkOTTable_hhea.h" #include "SkOTTable_OS_2.h" @@ -376,6 +377,13 @@ SkAdvancedTypefaceMetrics* DWriteFontTypeface::onGetAdvancedTypefaceMetrics( return info; } + // There are versions of DirectWrite which support named instances for system variation fonts, + // but no means to indicate that such a typeface is a variation. + AutoTDWriteTable<SkOTTableFontVariations> fvarTable(fDWriteFontFace.get()); + if (fvarTable.fExists) { + info->fFlags |= SkAdvancedTypefaceMetrics::kMultiMaster_FontFlag; + } + //There exist CJK fonts which set the IsFixedPitch and Monospace bits, //but have full width, latin half-width, and half-width kana. bool fixedWidth = (postTable->isFixedPitch && |