I have a chunk of code for displaying bimapped text that is supposed to set up the window by loading the identity matrices and then using glOrtho(0,1,0,1,0,1), immediately followed by a glRasterPos2f(x,y). It works correctly the first time through, but after I pop the matrices back, do some other stuff, then come back, push the matrices, load the identities, etc., the first image I drew disappears and the new one appears. All subsequent calls to the function continue to display everything but the first one. I tried printing out the matrices and got this:

It seems to me that the first one is correct, and all the others are wrong, no? How can this be if I am loading the identity (in BOTH stacks), then only issuing a glOrtho(0,1,0,1,0,1) and a glRasterPos2f(x,y) before I print out the matrices?

Sure… here it is. DrawingArea is just
a wrapper class for gtkGLArea… the only
additional thing that I do there is make
sure that the right drawing area is current.