In aller Kürze: es gibt einen "Matrixstack". Ein Stack ist ein Speicher nach dem LIFO-Prinzip: last in, first out. Das heißt wenn ich Kuh, Pferd und Hund in den Speicher "pushe", und dann "pop" ausführe, bekomme ich Hund. "Poppe" ich dann nochmal, erhalte ich Pferd und so weiter. Der zuletzt auf den Stapel gelegte Wert kommt also als erstes wieder heraus.
Und in OpenGL ist der Sinn dahinter einfach, dass man den Zustand der Matrix (Translate, Rotate, Scale) auf den Stack schreibt, um ihn später weiter verwenden zu können. In dem von dir verlinkten Codebeispiel ersetzt das Pop die Befehle
Delphi-Quelltext
1: 2:
| glLoadIdentity(); glTranslatef(0,0,-10); |
, die man normalerweise zweimal schreiben müsste. Durch Push und Pop bleibt die Matrix gespeichert, und kann erneut verwendet werden.