views:

372

answers:

3

I need to print 3 lines of text to a window as a menu.

1 - Menu
2 - Pause
3 - Exit
+1  A: 

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.

unwind
+1  A: 

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
Kornel Kisielewicz
A: 

A Windows-only but simple method is described here: Nehe Lesson 13

Basically, it uses these three functions:

  • wglUseFontBitmaps
  • glListBase
  • glCallLists
Kronikarz