问题
I need to print 3 lines of text to a window as a menu.
1 - Menu
2 - Pause
3 - Exit
回答1:
Considering that you used GLUT in previous questions, the easiest would be using GLUT's built in font rendering functions.
Example:
void output(int x, int y, float r, float g, float b, int font, char *string)
{
glColor3f( r, g, b );
glRasterPos2f(x, y);
int len, i;
len = (int)strlen(string);
for (i = 0; i < len; i++) {
glutBitmapCharacter(font, string[i]);
}
}
Where font is one of GLUT font constants:
GLUT_BITMAP_8_BY_13
GLUT_BITMAP_9_BY_15
GLUT_BITMAP_TIMES_ROMAN_10
GLUT_BITMAP_TIMES_ROMAN_24
GLUT_BITMAP_HELVETICA_10
GLUT_BITMAP_HELVETICA_12
GLUT_BITMAP_HELVETICA_18
回答2:
This webpage outlines the three possible ways, and links to handy libraries that help.
There's no simple built-in way to render text, and there are (as detailed on that page) sevaral possible approaches, it's all a trade-off depending on what properties you require from your text rendering.
回答3:
Up this post because i found a really great tool to render high quality 2D text:
freetype-gl library
see sample rendering :
回答4:
A Windows-only but simple method is described here: Nehe Lesson 13
Basically, it uses these three functions:
wglUseFontBitmaps
glListBase
glCallLists
来源:https://stackoverflow.com/questions/2183270/what-is-the-easiest-way-to-print-text-to-screen-in-opengl