On 05/23/2018 09:07 PM, Lucian Poston wrote:
- /**
* This is a rough hack. We search the system font collection because* the system fontfallback, which would have been searched above, is not* fully implemented as it isn't populated with any system fonts. Once* implemented, the block below can be removed.* */- if (!*mapped_length) {
IDWriteFontFamily *family;IDWriteFont *font;UINT32 i, count = IDWriteFontCollection_GetFontFamilyCount((IDWriteFontCollection *)fallback->systemcollection);for (i = 0; i < count; i++) {hr = IDWriteFontCollection_GetFontFamily((IDWriteFontCollection *)fallback->systemcollection, i, &family);if (FAILED(hr)) {ERR("Failed to get font family.\n");continue; }hr = IDWriteFontFamily_GetFirstMatchingFont(family, weight, stretch, style, &font);IDWriteFontFamily_Release(family);if (FAILED(hr)) {continue;}hr = fallback_map_characters(font, text, length, mapped_length);if (SUCCEEDED(hr) && mapped_length > 0) {*ret_font = font;break;}IDWriteFont_Release(font); }
This block will pick arbitrary font, depending on fonts user has installed, and can change if user installs more or removes some. That doesn't sound like a good idea to me, and your comment already hints at that.