0

私のアプリケーションは、OpenGL と FTGL を使用してテキスト出力を行います。次のようなフォントを設定しました。

Impl::font = new FTTextureFont("/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf");
if (Impl::font->Error() != 0) {
    delete Impl::font;
    throw std::runtime_error("Could not load font DejaVuSans.ttf!");
}
if (!Impl::font->FaceSize(72)) {
    delete Impl::font;
    throw std::runtime_error("Could not use DejaVuSans with size 72!");
}

私はこのようにレンダリングします:

glColor3f(1.0, 1.0, 1.0);
Impl::font->Render(my_string.c_str());

ここで大きな問題があります。プログラムのかなり早い段階で作成した文字列が 1 つありますが、これは正しくレンダリングされます。次に、後で作成される別の文字列があり、最初の文字列にも含まれる文字のみをレンダリングします。テクスチャ フォントは最初の文字列の文字に対してのみテクスチャを作成し、2 番目の文字列の文字に対しては作成しないとしか思えません。

これの原因は何ですか?初期に使用するすべての文字をロードする必要がありますか? 足りないものはありますか?

(私のコードをエラーを再現する最小限の例に要約するのはかなりの労力になるので、最初に私が間違っていることが明らかな何かを尋ねます。)

4

1 に答える 1