【问题标题】:Memory Management Practices for GLKit under ARC?ARC下GLKit的内存管理实践?
【发布时间】: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


【解决方案1】:

GLKit 是一个 Objective-C 框架。每当您处理 Objective-C 对象时,ARC 都会管理它们的内存。

所以要回答您的问题,不,您不需要手动释放内存,前提是您只创建 Objective-C 对象(如 GLKViewControllerGLKView、...)。

【讨论】:

    猜你喜欢
    • 2013-12-05
    • 1970-01-01
    • 2013-01-17
    • 1970-01-01
    • 2011-11-14
    • 1970-01-01
    • 2012-05-29
    • 2013-10-03
    • 2013-06-08
    相关资源
    最近更新 更多