OpenGL - Stack overflow if I do, Stack underflow if I don't!
Posted
by
Wayne Werner
on Game Development
See other posts from Game Development
or by Wayne Werner
Published on 2011-02-27T13:53:36Z
Indexed on
2011/02/27
15:32 UTC
Read the original article
Hit count: 514
Hi,
I'm in a multimedia class in college, and we're "learning" OpenGL as part of the class. I'm trying to figure out how the OpenGL camera vs. modelview works, and so I found this example. I'm trying to port the example to Python using the OpenGL bindings - it starts up OpenGL much faster, so for testing purposes it's a lot nicer - but I keep running into a stack overflow error with the glPushMatrix in this code:
def cube():
for x in xrange(10):
glPushMatrix()
glTranslated(-positionx[x + 1] * 10, 0, -positionz[x + 1] * 10); #translate the cube
glutSolidCube(2); #draw the cube
glPopMatrix();
According to this reference, that happens when the matrix stack is full.
So I thought, "well, if it's full, let me just pop the matrix off the top of the stack, and there will be room". I modified the code to:
def cube():
glPopMatrix()
for x in xrange(10):
glPushMatrix()
glTranslated(-positionx[x + 1] * 10, 0, -positionz[x + 1] * 10); #translate the cube
glutSolidCube(2); #draw the cube
glPopMatrix();
And now I get a buffer underflow error - which apparently happens when the stack has only one matrix.
So am I just waaay off base in my understanding? Or is there some way to increase the matrix stack size?
Also, if anyone has some good (online) references (examples, etc.) for understanding how the camera/model matrices work together, I would sincerely appreciate them!
Thanks!
© Game Development or respective owner