but if you call PushMatrix() it copies the current state and makes a new 'card' on the stack the state of the 'card' below it is saved, and all changes go to the current one when you're done using that state, you can PopMatrix() to remove it and you go back to the state you were at before calling PushMatrix() here's a simple example glTranslatef(0.0, 0.0, 5.0); PushMatrix(); glTranslatef(5.0, 0.0, 0.0); drawPoint(); PopMatrix(); drawPoint(); that will go into the screen 5 units, then add a new matrix to the stack then move 5 points to the right, draw a point then it removes the state of being moved to the right 5 points * exacube_ has joined #exalten and the next point is drawn in the middle of the screen