【问题标题】:can I free the memory allocated to Image after glTexImage2D call?我可以在 glTexImage2D 调用后释放分配给 Image 的内存吗?
【发布时间】:2013-01-09 04:24:49
【问题描述】:

glTexImage2D 函数采用指向图像数据的指针。 现在在我打电话后 glGenTextures, glBindTexture,然后 glTexImage2D

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

【问题讨论】:

    标签: c++ opengl 3d


    【解决方案1】:

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

    int *p = getImagePixels();
    
    glTexImage2D(GL_TEXTURE..., p);
    
    delete [] p;
    

    【讨论】:

      【解决方案2】:

      查看this similar question,了解有关释放 glTexImage2D 的讨论。不过,您似乎可以。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-01-11
        • 1970-01-01
        • 2021-09-09
        • 2011-03-29
        • 2018-08-29
        • 2015-06-26
        • 1970-01-01
        相关资源
        最近更新 更多