开发者

OpenGL Error underflow turns into overflow?

I am working on a project which uses OpenGL only (it's supposed to become a game one time to be specific), now after some weeks of development I stumbled across开发者_如何学Python the possibility to catch OpenGL errors with GL.GetError(). Since I dislike that it only says what went wrong but not where, I want to get the error that occurs fixed though.

So here is what happens: When launching the app there are few frames (three or four) with StackUnderflow, it switches to StackOverflow and stays that way.

I checked my Matrix-Push-Pop consistency and didn't find any unclosed matrices. It might be interesting to know that, from what I see, lighting doesn't work (all faces of the various object have the very same brightness).

Is there any other possbile cause?

(If you want to see source, there is plenty at: http://galwarcom.svn.sourceforge.net/viewvc/galwarcom/trunk/galwarcom/ )


You need to set the matrix mode before popping since each mode has a separate stack. If you do something like this, it will underflow:

glMatrixMode(GL_MODELVIEW)
glPushMatrix(); 
... stuff with model view ...
glMatrixMode(GL_PROJECTION)
glPushMatrix() 
... stuff with project matrix ...
glPopMatrix()  // projection popped
glPopMatrix()  // projection again

You are doing something like this in drawHUD(), probably other places.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜