+ if (glyph_index == 0) {
+ std::fprintf(stderr, "Couldn't find U+%x in primary face, falling back to symbol face\n",
+ *i);
+ glyph_index = FT_Get_Char_Index(symbolface, *i);
+ if (glyph_index == 0) {
+ std::fprintf(stderr, "Couldn't find U+%x in symbol face, ignoring\n", *i);
+ continue;
+ }
+ if (FT_Load_Glyph(symbolface, glyph_index, FT_LOAD_RENDER))
+ throw std::runtime_error("Couldn't load glyph from symbol face");
+ slot = symbolface->glyph;
+ } else {
+ if (FT_Load_Glyph(face, glyph_index, FT_LOAD_RENDER))
+ throw std::runtime_error("Couldn't load glyph from primary face");
+ slot = face->glyph;