1
现在,我正在使用Oolong Engine在iPhone上玩OpenGL ES。这可能是一个愚蠢的问题,但是在应用程序退出时,在OpenGL之后清理它有多必要?我的问题是我有一个管理加载模型的静态向量,并且松散地确保模型不会被加载两次。因此,维也纳组织和纹理的所有句柄都存储在static map<Model>
的Model
对象中。当应用程序关闭时,地图似乎不会调用各个Model对象上的析构函数,因此它们最终不会调用glDeleteBuffers()
。清理iPhone上的OpenGL后
我的问题是,这是完全必要的,如果应用程序足够小,我永远不会卸载并重新加载运行时的内存模型?或者OpenGL只是为我照顾这一切?我可以创建一个从应用程序的dealloc
中调用的静态CleanUp()
函数,但是值得吗?
太棒了!它被认为是确保它发布的“最佳实践”,还是它不担心的事情之一? – Perrako 2010-08-04 02:00:52
当然,这种事情是最佳实践,但通常在所有管理数据结构的背景下。换句话说,如果你的所有数据都有很好的集合和容器,那么他们的正常清理工作(通过析构函数或你有什么)很可能会照顾到资源。除此之外,当流程被拆除时,不要担心。我会说一个不好的做法是有意编写不做清理的代码。 (仅仅因为你“知道你可以”而将东西从dealloc方法等中排除出去。) – 2010-08-04 04:22:42