我有使用旧 OpenGL ES 1 的 Android 项目。我正在使用这种嵌套调用:
...
gl.glPushMatrix();
...
gl.glPushMatrix();
...
gl.glPopMatrix();
...
gl.glPopMatrix();
...
它在模拟器和我的手机上运行良好,但在我的选项卡和我兄弟的选项卡上不起作用(对象的位置错误)。根据我的测试,似乎不支持嵌套的 glPushMatrix ,就像堆栈大小只有 1 一样,所以第一个 POP 不会返回到之前的 PUSH 状态,而是返回到第一个 PUSH 状态。我尝试了不使用嵌套调用的解决方法,它工作正常,但这样的解决方案使我的下一个工作复杂化。那是已知的事情吗?某些设备上的堆栈大小是否只有 1?我认为它应该至少是 32 或类似的东西。它是否以某种方式可检测和/或可配置?我可以以某种方式将矩阵导出到某个数组或不同的结构中以创建自己的堆栈并手动从中加载吗?谢谢。