glPushMatrix函數用于將當前的矩陣壓入堆棧中,保存當前矩陣的狀態。這樣可以在之后的操作中對矩陣進行修改,然后通過glPopMatrix函數將修改后的矩陣彈出堆棧,恢復之前保存的矩陣狀態。
具體使用方法如下:
glPushMatrix();
glTranslatef(1.0f, 0.0f, 0.0f);
glRotatef(45.0f, 0.0f, 0.0f, 1.0f);
glPopMatrix();
這樣就可以在一段代碼中對當前矩陣進行修改,然后通過glPopMatrix函數將修改后的矩陣恢復為之前保存的狀態。
需要注意的是,glPushMatrix和glPopMatrix函數是成對出現的,每次調用glPushMatrix都應該對應一個glPopMatrix,否則會導致堆棧溢出。另外,glPushMatrix和glPopMatrix函數只能保存和恢復當前的模型視圖矩陣,不能保存和恢復投影矩陣或紋理矩陣等其他類型的矩陣。