I have an OpenGL
project which uses GLUT
(not freeglut) wherein I would like to display 2D text on the viewport at a fixed location. The rest of my
I ran into this same problem using glut to create a model of the solar system. Here's how I solved it: (using your code from above)
glDisable(GL_TEXTURE_2D); //added this
glMatrixMode(GL_PROJECTION);
glPushMatrix();
glLoadIdentity();
gluOrtho2D(0.0, win_width, 0.0, win_height);
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glLoadIdentity();
glRasterPos2i(10, 10);
string s = "Some text";
void * font = GLUT_BITMAP_9_BY_15;
for (string::iterator i = s.begin(); i != s.end(); ++i)
{
char c = *i;
glColor3d(1.0, 0.0, 0.0);
glutBitmapCharacter(font, c);
}
glMatrixMode(GL_PROJECTION); //swapped this with...
glPopMatrix();
glMatrixMode(GL_MODELVIEW); //...this
glPopMatrix();
//added this
glEnable(GL_TEXTURE_2D);
You'll note i switched glMatrixMode(GL_PROJECTION);
and glMatrixMode(GL_MODELVIEW);
near the end. I decided to do this because of this website. I also has to surround the code section with glDisable(GL_TEXTURE_2D)
and glEnable(GL_TEXTURE_2D)
.
Hope that helps- I worked for me. My solar system uses classes to perform all of this, I'd be happy to share more details upon request.