Android GLException:堆栈下溢

时间:2014-08-23 12:33:31

标签: android opengl matrix stackunderflow

GL堆栈下溢发生在 glPopMatrix();

我无法弄清楚我遇到的问题..但我只是猜测推送& pop Matrix ...

我知道弹出堆栈没有任何内容可能会发生'堆栈下溢... 但我不认为我遇到了这个问题..请给我一个答案!

gl.glMatrixMode(GL10.GL_MODELVIEW);
            gl.glLoadIdentity();
            gl.glPushMatrix();
                gl.glScalef(1f, 1f, 1f);
                gl.glTranslatef(0f, 0f, 0f);

                gl.glMatrixMode(GL10.GL_TEXTURE);
                gl.glLoadIdentity();
                gl.glTranslatef(0.0f, bgScroll1,0.0f);
                background.draw(gl);
            gl.glPopMatrix();  //stack underflow happens at this line

1 个答案:

答案 0 :(得分:1)

GL为每种矩阵类型维护一个单独的矩阵堆栈:GL_MODELVIEWGL_PROJECTION,adn GL_TEXTURE。推/弹矩阵操作始终在当前矩阵模式下工作(与所有与矩阵相关的GL命令)。因此,您的代码会推送到modelview堆栈,并尝试从纹理矩阵堆栈弹出,这可能是空的。

修改纹理矩阵后,应将矩阵模式设置回GL_MODELVIEW