I have a moving 3d scene set up, and I want to make a stationary 2d GUI overlay that is always on top, when I try making 2d shapes I don’t see anything. When I call: glMatrixMode(GL_PROJECTION); my 3d scene disappears and I’m left with a blank window…
here is the code I’m using for the overlay
EDIT: updated code
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(-100, 100, -100, 100);
glDisable(GL_DEPTH_TEST);
glDisable(GL_CULL_FACE);
glDisable(GL_TEXTURE_2D);
glDisable(GL_LIGHTING);
glColor3f(1, 1, 1);
glPushMatrix();
glBegin(GL_QUADS);
glVertex3f(-5.0f, 5.0f, 0.0f);
glVertex3f(-5.0f, -5.0f, 0.0f);
glVertex3f(5.0f, -5.0f, 0.0f);
glVertex3f(5.0f, 5.0f, 0.0f);
glEnd();
glPopMatrix();
glEnable(GL_DEPTH_TEST);
glutSwapBuffers();
You must draw your quad in the other order. By default, OpenGL use counterclockwise front facing polygons. That means that you don’t see your polygon because you see only its back face.
You might take a look at glFrontFace.
EDIT:
Also, if that doesn’t work, you could try to disable the following states:
You might want use
glPushAttribandglPopAttribin order not to mess your state.