在OpenGL教程中,我从未见过有人在程序结束前调用glDeleteFramebuffers
。
我应该在关闭申请前删除FrameBuffer吗?或者OpenGL驱动程序会为我做这个吗?
P.S。关于纹理glDeleteTextures
的相同问题。
答案 0 :(得分:0)
当该进程退出时,驱动程序将释放与进程的OpenGL对象关联的所有资源。如果应用程序在没有清理的情况下退出,您不必担心系统范围的泄漏。
即使机制不同,行为也非常类似于内存分配。如果在退出之前没有释放所有动态分配的内存,则应用程序分配的所有内存仍将返回给系统。 (*)
尽管如此,我认为在退出之前明确清理所有资源通常是一种很好的方式。如果您使用检测内存泄漏的工具,它也会有所帮助。
(*)我在谈论现代的全功能操作系统,就像它们通常用在台式电脑,智能手机或平板电脑上一样。我可以想象在最小的操作系统上可能不是这样。