glTexImage2D 函数采用指向图像数据的指针。现在我调用了 glGenTextures、glBindTexture 和 glTexImage2D
在 OpenGL 中使用纹理。我可以释放分配给图像数据 ptr 的内存吗?还是opengl在调用glTexImage2D后从指针复制数据将其保留在GPU内,或者它使用我的图像数据作为纹理?
是的,一旦将信息指针提供给 glTexImage2D,您就可以安全地删除它,它只会将其复制到更靠近卡的位置(例如显卡内存)并从那里使用它。
int *p = getImagePixels();
glTexImage2D(GL_TEXTURE..., p);
delete [] p;
查看这个类似的问题,了解有关释放 glTexImage2D 的讨论。不过,您似乎可以。