-
- FcPattern* pattern = FcPatternBuild (
- 0, FC_FILE, FcTypeString, font_files.get(FontFiles::NORMAL).get().string().c_str(), static_cast<char *> (0)
- );
- FcObjectSet* object_set = FcObjectSetBuild (FC_FAMILY, FC_STYLE, FC_LANG, FC_FILE, static_cast<char *> (0));
- FcFontSet* font_set = FcFontList (fc_config, pattern, object_set);
- if (font_set) {
- for (int i = 0; i < font_set->nfont; ++i) {
- FcPattern* font = font_set->fonts[i];
- FcChar8* file;
- FcChar8* family;
- FcChar8* style;
- if (
- FcPatternGetString (font, FC_FILE, 0, &file) == FcResultMatch &&
- FcPatternGetString (font, FC_FAMILY, 0, &family) == FcResultMatch &&
- FcPatternGetString (font, FC_STYLE, 0, &style) == FcResultMatch
- ) {
- font_name = reinterpret_cast<char const *> (family);
- }
- }
-
- FcFontSetDestroy (font_set);