Как использовать glutBitmapString() в C++ для рисования текста на экране?
Я пытаюсь нарисовать текст на экране, используя GLUT в 2d.
Я хочу использовать glutBitmapString (), может кто-нибудь показать мне простой пример того, что вам нужно сделать, чтобы настроить и правильно использовать этот метод в C++, чтобы я мог нарисовать произвольную строку в позиции (X, Y)?
glutBitmapString(void *font, const unsigned char *string);
Я использую linux, и я знаю, что мне нужно создать объект шрифта, хотя я не уверен, как именно, и я могу предоставить его со строкой в качестве второго аргумента. Однако, как мне также указать положение x/y?
быстрый пример этого очень бы мне помог. Если вы можете показать мне от создания шрифта, чтобы вызвать метод, который был бы лучшим.
2 ответов
вы должны использовать glRasterPos
чтобы установить положение растра перед вызовом glutBitmapString()
. Обратите внимание, что каждый вызов glutBitmapString()
продвигает позицию растра, поэтому несколько последовательных вызовов будут распечатывать строки один за другим. Вы также можете установить цвет текста с помощью glColor()
. В списке указан набор доступных шрифтов здесь.
// Draw blue text at screen coordinates (100, 120), where (0, 0) is the top-left of the
// screen in an 18-point Helvetica font
glRasterPos2i(100, 120);
glColor4f(0.0f, 0.0f, 1.0f, 1.0f);
glutBitmapString(GLUT_BITMAP_HELVETICA_18, "text to render");
добавление к ответу Адама,
glColor4f(0.0f, 0.0f, 1.0f, 1.0f); //RGBA values of text color
glRasterPos2i(100, 120); //Top left corner of text
const unsigned char* t = reinterpret_cast<const unsigned char *>("text to render");
// Since 2nd argument of glutBitmapString must be const unsigned char*
glutBitmapString(GLUT_BITMAP_HELVETICA_18,t);
проверить https://www.opengl.org/resources/libraries/glut/spec3/node76.html Дополнительные параметры шрифта