How do I draw text with GLUT / OpenGL in C++?
How do I draw a text string onto the screen using GLUT / OpenGL drawing functions?
Solution 1:
There are two ways to draw strings with GLUT
glutStrokeString will draw text in 3D
(source: uwa.edu.au)
and glutBitmapString will draw text facing the user
(source: sourceforge.net)
Solution 2:
void RenderString(float x, float y, void *font, const char* string, RGB const& rgb)
{
char *c;
glColor3f(rgb.r, rgb.g, rgb.b);
glRasterPos2f(x, y);
glutBitmapString(font, string);
}
And you can call it like;
RenderString(0.0f, 0.0f, GLUT_BITMAP_TIMES_ROMAN_24, "Hello", RGB(1.0f, 0.0f, 0.0f));
Solution 3:
If you don't like the built-in stroke font or bitmap font that comes with GLUT as per epatel's answer, you'll have to roll your own solution.
NeHe has some good tutorials (along with fully-working sample code) on this:
- Lesson 13 - Bitmap Fonts
- Lesson 14 - Outline Fonts
- Lesson 15 - Texture-Mapped Outline Fonts
Solution 4:
It's generally a bit nasty and not straightforward. Give this tool a try:
http://students.cs.byu.edu/~bfish/glfontdl.php