I can't seem to find a solid explanation of these anywhere. I understand that GL_PROJECTION is the default and does not need to be changed to draw a simple square. Yet I have heard that GL_MODELVIEW is for drawing, and GL_PROJECTION is for turning the 3d into a 2d projection.
I really don't understand it (if you need modelview to draw, how can a simple program draw a square on GL_PROJECTION opengl default?). Could anyone lend a minute to explain these from a beginners point of view and when each might be used.