10

glTexImage2D 函数采用指向图像数据的指针。现在我调用了 glGenTextures、glBindTexture 和 glTexImage2D

在 OpenGL 中使用纹理。我可以释放分配给图像数据 ptr 的内存吗?还是opengl在调用glTexImage2D后从指针复制数据将其保留在GPU内,或者它使用我的图像数据作为纹理?

4

2 回答 2

14

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

int *p = getImagePixels();

glTexImage2D(GL_TEXTURE..., p);

delete [] p;
于 2013-01-25T08:25:31.010 回答
1

查看这个类似的问题,了解有关释放 glTexImage2D 的讨论。不过,您似乎可以。

于 2013-01-25T08:28:04.990 回答