iphone - 释放由 GLKTextureLoader 分配的纹理(GLKTextureInfo 对象)

标签 iphone ios ios5 opengl-es-2.0 glkit

iOS 开发的新手,尤其是 iOS 5 上与 OpenGL 相关的新功能,所以如果我的问题很基础,我深表歉意。

我正在开发的应用程序旨在接收相机帧并通过 OpenGL ES 在屏幕上显示它们(图形人员将接管它并添加我知之甚少的实际 OpenGL 绘图)。该应用程序是 XCode4 开发的,目标是运行 iOS 5 的 iPhone4。目前,我使用了 ARC 和 GLKit 功能,除了在将图像加载为纹理时发生内存泄漏外,一切正常。该应用很快就会收到“内存警告”。

具体想问一下如何释放分配给

的贴图
@property(retain) GLKTextureInfo *texture;

-(void)setTextureCGImage:(CGImageRef)image 
{
    NSError *error;

    self.texture = [GLKTextureLoader textureWithCGImage:image options:nil error:&error];

    if (error) 
    {
        NSLog(@"Error loading texture from image: %@",error);
    }
}

image 是从相机框架构建的 quartz 图像(来自 apple 的示例代码)。我知道问题不在代码的那部分,因为如果我禁用分配,应用程序不会收到警告。

最佳答案

我认为这是一个 super hacky 的解决方案,但它似乎有效:

在赋值之前添加以下内容:

GLuint name = self.texture.name;
glDeleteTextures(1, &name);

如果有更官方的方式(或者如果这是官方方式),如果有人能告诉我,我将不胜感激。

关于iphone - 释放由 GLKTextureLoader 分配的纹理(GLKTextureInfo 对象),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8720221/

相关文章:

iphone - 为什么 viewDidLoad 在更新 UI 之前等待?

ios - UISwitch 在 iOS map 标注中无响应

javascript - 在我的 Cordova 项目中,我想在 iOS 键盘 'done' 按钮单击上触发一个功能(搜索功能)

ios - 如何将 JSON 响应保存到可从加载到 UIWebWiew 中的本地 HTML 文件中访问的文件

xcode - 在 iOS5 中将自定义 Retina 图像添加到 TabBar

iphone - Apple 使用哪个硬件芯片/供应商进行硬件加速 AES/SHA-1 加密?

ios - PageViewController 页面指示器向上推 View

iphone - 为 Objective C 转换 CURL 命令

ios - 如何在 SceneKit 中创建柔体

version-control - 在 iOS 5 模拟器中更新应用程序版本时,应用程序图标不会改变