Мое приложение выводит текст с помощью 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());
Теперь у меня есть большая проблема: есть одна строка, которую я создаю довольно рано в программе, и она отображается правильно. Затем есть еще одна строка, которая создается позже и отображает только те буквы, которые также содержатся в первой строке. Я могу только предположить, что текстурный шрифт создает текстуры только для букв первой строки, но не для букв второй строки.
Что может быть причиной этого? Нужно ли загружать все символы, которые я буду использовать раньше? Есть что-то, что мне не хватает?
(Было бы прилично потрудиться, чтобы свести мой код к минимальному примеру, воспроизводящему ошибку, поэтому я сначала спрашиваю что-то очевидное, что я делаю неправильно.)