If glOrtho() is not called in the program, what default values does it take? Does it depend on the OpenGL driver implementation? What does the OpenGL spec. suggest?

the identity matrix

Sometime you should crack open the red book and go to the end. It has all the default values in the specification including the default matrices. I think pretty much all matrices are the identity are startup.

You can also google “OpenGL specification” and crack open any version and find all the default values for everything there.

… for MODELVIEW. Each matrix stack has an associated stack pointer. Initially, there is only one matrix on each stack, and all matrices are set to the identity.

glOrtho — multiply the current matrix with an orthographic matrix

glOrtho MULTIPLIES the CURRENT matrix… so it cannot have a “default” value. It only modifies the current matrix (projection, modelview or texture, depending on what you selected). So not calling glOrtho doesn’t modify the current matrix, simple…

Now, the default matrices (if we are talking about fixed function pipeline) are all set to identity matrix.