2012-09-03 45 views
1

以下代碼在iOS 4上無錯誤地工作,並在iOS5上的glTexImage2D之後在CHECK_GL_ERROR宏0x500中打印。 我搜索了這方面的信息,但沒有找到有用的東西。glTexImage2D與GL_DEPTH_COMPONENT在iOS4上運行,並且在iOS 5中失敗並且GL_INVALID_ENUM失敗

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有什麼區別? 如何解決這個問題?

回答

3

我用GL_UNSIGNED_INT替換了GL_UNSIGNED_BYTE,並且代碼在iOS 4和iOS 5上都開始工作。

相關問題