Hi, I have the following simple hello world program from the OpenGL red book:
#include <GL/glut.h>
void display() {
glClearColor(0,0,0,0);
glClear(GL_COLOR_BUFFER_BIT);
// glOrtho(0,1,0,1,-1,1);
glColor3f(1,1,1);
glBegin(GL_POLYGON);
glVertex3f(.25,.25,0);
glVertex3f(.75,.25,0);
glVertex3f(.75,.75,0);
glVertex3f(.25,.75,0);
glEnd();
glFlush();
}
int main(int argc, char **argv) {
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(400, 400);
glutCreateWindow("blah");
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0,1,0,1,-1,1);
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
This works fine, but if I add glOrtho() to the display function, the window sometimes shows the square in the right position, sometimes shows it offset, and sometimes doesn’t show the square at all. Any hints on what’s going on here?