我正在使用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中使用的宽度并不总是应该的,有时会更大一些。