gpt4 book ai didi

android - 嵌套的 glPushMatrix 不起作用(堆栈大小 1?)

转载 作者:行者123 更新时间:2023-11-29 21:51:01 28 4
gpt4 key购买 nike

我有使用旧 OpenGL ES 1 的 Android 项目。我正在使用这种嵌套调用:

...
gl.glPushMatrix();
...
gl.glPushMatrix();
...
gl.glPopMatrix();
...
gl.glPopMatrix();
...

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

最佳答案

您可以使用以下方法读取堆栈的深度:

glGetIntegerv(GL_MAX_MODELVIEW_STACK_DEPTH, &result);

确实至少应该是 32。

这是假设您实际上正在使用 GL_MODELVIEW 矩阵堆栈,并且您不会不小心将所有转换插入 GL_PROJECTION 或其他内容。

理想情况下,您应该自己计算矩阵,因为此功能已被弃用。

关于android - 嵌套的 glPushMatrix 不起作用(堆栈大小 1?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14418010/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com