带有GL_DEPTH_COMPONENT的glTexImage2D适用于iOS4,并且在iOS 5中使用GL_INVALID_ENUM失败

时间:2012-09-03 13:06:42

标签: ios ios5 opengl-es ios4 glteximage2d

以下代码在iOS 4上无错误地工作,并在iOS5上的glTexImage2D之后在CHECK_GL_ERROR宏0x500中打印。 我搜索了这方面的信息,但没有找到任何有用的信息。

GLuint depthTexId = 0;
glGenTextures(1, &depthTexId);
CHECK_GL_ERROR();
glActiveTexture(GL_TEXTURE0);
CHECK_GL_ERROR();
glBindTexture(GL_TEXTURE_2D, depthTexId);
CHECK_GL_ERROR();
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
CHECK_GL_ERROR();
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
CHECK_GL_ERROR();
glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT, 512, 512, 0, GL_DEPTH_COMPONENT, GL_UNSIGNED_BYTE, 0);
CHECK_GL_ERROR();

我尝试更改glTexImage2D的参数,但没有成功。 它为什么这样工作? iOS 4和5有什么区别? 如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

我已将GL_UNSIGNED_BYTE替换为GL_UNSIGNED_INT,代码开始在iOS 4和iOS 5上都有效。