Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Мультимедия, OpenGL/DirectX > Вывод текста в OpenGL через FreeType2


Автор: KaraKum 24.6.2008, 00:24
После функций вывода текста в OpenGL через FreeType2 в окне ничего не прорисовывается, хотя в коде нет вызова функции glEnable(GL_TEXTURE_2D);, но если закомментировать функцию glBindTexture(...);, то всё снова работает нормально (но буква, конечно, так и не прорисовывается).
Попробовал загруженный через FreeType2 глиф сохранить в файле через DevIL - файл сохранился, но "Просмотр недоступен".
Вот код:
Код

FT_Error error;
FT_Face face;
FT_New_Face(library, "dour46w.ttf", 0, &face);
FT_Load_Glyph(face, FT_Get_Char_Index(face, charcode), FT_LOAD_DEFAULT);
FT_Render_Glyph(face->glyph, FT_RENDER_MODE_NORMAL);
FT_Bitmap bitmap = face->glyph->bitmap;

//вызовы gl-функций, относящихся к прорисовке глифа на экране:
glGenTextures(1, &unTexture[0]);
glBindTexture(GL_TEXTURE_2D, unTexture[0]);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, bitmap.width, bitmap.rows, 0, GL_LUMINANCE, GL_UNSIGNED_BYTE, bitmap.buffer);

//сохранение глифа в файле через DevIL:
ILint ilTexture = ilGenImage();
ilBindImage(ilTexture);
ilTexImage(bitmap.width, bitmap.rows, 0, 1, IL_LUMINANCE, IL_UNSIGNED_BYTE, bitmap.buffer);
ilSaveImage("SavedGlyph.bmp");

Всё проходит без ошибок, файл появляется, но "Просмотр недоступен". Что не так?

Автор: KaraKum 26.6.2008, 21:34
Вопрос отчасти решился.
Проблема осталась, но, оказывается, она не в коде FreeType, а в текстурировании. Если загружать FreeType символ в нулевую текстура (по умолчанию которая), то она рисуется.

Вопрос решён.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)