我有一块GLvoid* data
,其中包含整个图像,该图像在整个程序中定期更新。我用glTexImage2D
用这个数据初始化GPU上的纹理。我应该向glTexSubImage2D提供完整或部分图像吗?
我想用glTexSubImage2D
根据需要更新部分纹理。 documentation for glTexSubImage2D描述了GLvoid* pixels
参数:
指定一个指向内存中图像数据的指针。
这期待什么“图像数据”?我可以提供整个GLvoid* data
,还是期待一个缓冲区,只有包含正在复制的数据?
如果期望部分数据,是否有替代方法来提供整个缓冲区?
反过来说:'glTexSubImage2D'不用于更新GPU内存中的纹理的一部分,它用于将图像数据缓冲区的一部分上传到GPU内存。 – Steeve
glPixelStore的GL_PACK_ROW_LENGTH会解决问题吗? (以及GL_PACK_SKIP_PIXELS和GL_PACK_SKIP_ROWS)。自己没有挖得太深,因此是一个评论,而不是一个答案。 – Columbo