【发布时间】:2013-01-09 04:24:49
【问题描述】:
glTexImage2D 函数采用指向图像数据的指针。 现在在我打电话后 glGenTextures, glBindTexture,然后 glTexImage2D
在 OpenGL 中使用纹理。 我可以释放分配给图像数据 ptr 的内存吗? 还是opengl从指针复制数据在调用后将其保留在GPU中 到 glTexImage2D 还是它使用我的图像数据作为纹理?
【问题讨论】:
glTexImage2D 函数采用指向图像数据的指针。 现在在我打电话后 glGenTextures, glBindTexture,然后 glTexImage2D
在 OpenGL 中使用纹理。 我可以释放分配给图像数据 ptr 的内存吗? 还是opengl从指针复制数据在调用后将其保留在GPU中 到 glTexImage2D 还是它使用我的图像数据作为纹理?
【问题讨论】:
是的,一旦将信息指针提供给 glTexImage2D,您就可以安全地删除它,它只会将其复制到更靠近卡的位置(例如显卡内存)并从那里使用它。
int *p = getImagePixels();
glTexImage2D(GL_TEXTURE..., p);
delete [] p;
【讨论】:
查看this similar question,了解有关释放 glTexImage2D 的讨论。不过,您似乎可以。
【讨论】: