FreeType を使用したテキストのレンダリングに行き詰まっています。特に非 ASCII 文字は頭痛の種です。いくつかの試行錯誤の後、なんとかテキストをレンダリングすることができましたが、ウムラウトが表示されません:
std::string text = "Hauptmenü";
for(std::string::iterator it = text.begin(); it != text.end(); ++it) {
std::cout << *it;
FT_Face face = loadFace(faceName);
FT_Set_Pixel_Sizes(face, 0, fontSize);
if(FT_Load_Char(face, *it, FT_LOAD_DEFAULT)) {
std::cout << "Could not load character '" << character << "'" << std::endl;
}
FT_Get_Glyph(face->glyph, &glyph);
FT_Glyph_To_Bitmap(&glyph, FT_RENDER_MODE_NORMAL, 0, 1);
//render the glyphs to screen and so on
}
フォントのロード、グリフの取得などは基本的に機能していますが、「ü」はレンダリングされません。これは私の出力がどのように見えるかです:
「ü」以外のすべての文字が表示されます。
これは私のコンソールで終わっているので、'ü' が 2 つの文字に分割されているため、文字列の繰り返しに何か問題があるに違いないと思います。最後の 2 文字で取得したグリフ ビットマップは、幅と高さが両方とも 0 です。
どうすればこれを修正できますか?