C++ iPhone上OpenGL后的清理

C++ iPhone上OpenGL后的清理,c++,iphone,opengl-es,C++,Iphone,Opengl Es,现在,我正在iPhone上使用乌龙引擎玩OpenGL ES。这可能是一个愚蠢的问题,但当应用程序退出时,在OpenGL之后进行清理有多必要?我的问题是,我有一个静态向量来管理加载模型,并松散地确保模型不会被加载两次。因此,VBO和纹理的所有句柄都存储在静态贴图中的模型对象中。当应用程序关闭时,地图似乎不会调用单个模型对象上的析构函数,因此它们不会最终调用glDeleteBuffers() 我的问题是,如果应用程序足够小,我在运行时从不从内存中卸载和重新加载模型,那么这是完全必要的吗?或者Open

现在,我正在iPhone上使用乌龙引擎玩OpenGL ES。这可能是一个愚蠢的问题,但当应用程序退出时,在OpenGL之后进行清理有多必要?我的问题是,我有一个静态向量来管理加载模型,并松散地确保模型不会被加载两次。因此,VBO和纹理的所有句柄都存储在
静态贴图中的
模型
对象中。当应用程序关闭时,地图似乎不会调用单个模型对象上的析构函数,因此它们不会最终调用
glDeleteBuffers()


我的问题是,如果应用程序足够小,我在运行时从不从内存中卸载和重新加载模型,那么这是完全必要的吗?或者OpenGL只是为我处理了所有这些?我可以创建一个静态的
CleanUp()
函数,从应用程序的
dealloc
调用它,但这值得吗?

当实际的应用程序退出时,所有资源都会被清理掉,包括所有GL内容。别担心,操作系统不会让你的流氓应用意外泄露一堆GPU资源


在OpenGL中管理资源通常是你在应用程序生命周期中应该做的事情,但听起来你知道如何做到这一点。

太棒了!确保发布它被认为是“最佳实践”,还是完全不用担心的事情之一?当然,这类事情是最佳实践,但通常是在所有管理数据结构的上下文中。换句话说,如果您对所有数据都有很好的收集和容器,那么它们的正常清理工作(通过析构函数或您所拥有的东西)可能会以任何方式处理资源。除此之外,当流程被破坏时,不要担心。我想说,一个糟糕的做法是故意编写不进行清理的代码。(只因为你“知道你能做到”,就把东西从dealloc方法中排除掉,等等)