1。每一帧的结尾应该用glGerError()看一下有没有错误。
2。如果接受一个别人的程序,而程序在开始的时候正常运行而过一段时间后出问题,则很大可能是由于glPushMatrix()和glPopMatrix()没有配对的问题,导致堆栈满,从而modelView matrix 或者 projection matrix出现问题。
顺便说一下,一般的modelview stack的depth是32,而projection statck的depth是4。
查询当前的stack深度。
GLint params[2];
glGetIntegerv(GL_MODELVIEW_STACK_DEPTH, params);
glGetIntegerv(GL_PROJECTION_STACK_DEPTH, params + 1);