我正在使用android 4.1,并尝试在NDK上使用glTexSubImage2D,但没有成功。
如果我改用glTexImage2D,它确实可以工作。

这有效:

 // Creation:
 glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, tempTexture->mWidth, tempTexture->mHeight, 0, GL_RGBA, GL_UNSIGNED_BYTE, (GLvoid*)tempTexture->mData);

 // Render loop:
  glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, info.width, info.height, 0, GL_RGBA, GL_UNSIGNED_BYTE, (GLvoid*)pixels);


这是行不通的(我什么也没画):

 // Creation:
 glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, tempTexture->mWidth, tempTexture->mHeight, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);

 // Render loop:
 glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, info.width, info.height, GL_RGBA, GL_UNSIGNED_BYTE, (GLvoid*)pixels);


我确保宽度和高度正确,但是仍然无法正常工作-我收到GL_INVALID_ENUM错误。

有任何想法吗?

谢谢,
雅各邦

最佳答案

好,我解决了。显然,glTexSubImage2D中使用的宽度并不总是应该的,有时会更大一些。

10-02 12:05