现在,我正在使用乌龙引擎在iPhone上玩OpenGL ES。这可能是一个愚蠢的问题,但是当应用程序退出时,在OpenGL之后清理它有多大必要?我的问题是我有一个静态向量来管理加载模型,并松散地确保模型不会加载两次。因此,VBO和纹理的所有句柄都存储在Model
中的static map<Model>
个对象中。当应用程序关闭时,地图似乎不会调用单个Model对象上的析构函数,因此它们最终不会调用glDeleteBuffers()
。
我的问题是,这是完全必要的,如果应用程序足够小,我永远不会在运行时从内存中卸载和重装模型吗?或者OpenGL是否只为我照顾这一切?我可以创建一个从应用程序的CleanUp()
调用的静态dealloc
函数,但值得吗?
答案 0 :(得分:3)
当实际应用退出时,所有资源都会被清除,包括所有GL内容。别担心,操作系统不会让你的流氓应用程序意外泄漏一堆GPU资源。
一般情况下,在应用程序生命周期中管理Open GL中的资源是您应该做的事情,但听起来您知道如何执行此操作。