0

我正在使用 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 错误。

有任何想法吗?

谢谢,雅科邦

4

1 回答 1

1

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

于 2013-10-14T06:28:11.937 回答