我可以在glTexImage2D调用后释放分配给Image的内存吗?

时间:2013-01-25 08:15:39

标签: c++ opengl 3d

glTexImage2D函数获取指向Image数据的指针。 在我打电话之后 glGenTextures, glBindTexture,然后 glTexImage2D

在OpenGl中使用纹理。 我可以释放分配给Image data ptr的内存吗? 或者是opengl从指针复制数据会在调用后将其保留在GPU内部 到glTexImage2D还是使用我的图像数据进行纹理?

2 个答案:

答案 0 :(得分:11)

是的,一旦将信息指针提供给glTexImage2D,您就可以安全地删除它,它只会将它复制到更靠近卡的地方(例如显卡内存)并从那里使用它。

int *p = getImagePixels();

glTexImage2D(GL_TEXTURE..., p);

delete [] p;

答案 1 :(得分:1)

查看this similar question以了解有关释放glTexImage2D的讨论。但是,你似乎可以。