【发布时间】:2013-11-19 09:28:44
【问题描述】:
我编写了一个使用 GLKit 的 OpenGL ES 2.0 场景的应用程序。我现在正在寻找确保我管理与 GLKView 和 GLKViewController 关联的所有内存。
我已经在 GLKView 上找到了 deleteDrawable 属性,它有助于在场景不在屏幕上时释放内存。
我感兴趣的是使用内存的 GLKit 的其他部分 - 例如使用 GLKViewController 时在幕后设置的缓冲区 - 这些是否需要在 ARC 下以某种方式手动释放,如果需要如何?使用 GLKit 在 ARC 下进行内存管理还有其他注意事项吗?
感谢您的任何见解!
【问题讨论】:
-
考虑到 VBO 创建的数据存储在所有引用 VBO 的 VAO 被销毁或删除它们的引用之前无法释放,我想说除了 Objective C 引用计数之外,您还需要实现 GL 引用计数.在附加到 VAO 时删除 VBO 不会自动释放内存,有关更详细的讨论,请参阅answer I wrote recently。您可能希望封装 VAO 并实现您自己的参考层。计数。
标签: ios memory-management automatic-ref-counting opengl-es-2.0 glkit