gpt4 book ai didi

ios - CVOpenGLESTextureCacheCreateTextureFromImage 报告 "Failed to create IOSurface image (texture)"

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:51:38 26 4
gpt4 key购买 nike

谁能解释一下(或指出相关的 FM 覆盖)这个功能?

iPad 2、iOS 5.0.0、Xcode 4.2、ARC 项目。

我的项目从相机获取输入并将其与各种图像混合,最后将其全部渲染在屏幕上。

只要我没有收到内存警告,它就可以无限期地正常工作,没有内存泄漏。

didReceiveMemoryWarning 之后,调用此函数的前 5 次失败并显示“无法创建 IOSurface 图像(纹理)”。之后,屏幕变黑,程序停止响应。我可以按主页键,然后终止应用程序。

我的电话是这样的:

    err = CVOpenGLESTextureCacheCreateTextureFromImage(kCFAllocatorDefault, 
_videoTextureCache,
pixelBuffer,
NULL,
GL_TEXTURE_2D,
GL_RED_EXT,
_textureWidth,
_textureHeight,
GL_RED_EXT,
GL_UNSIGNED_BYTE,
0,
&_lumaTexture);

_videoTextureCache 最初是用这个创建的:

    //-- Create CVOpenGLESTextureCacheRef for optimal CVImageBufferRef to GLES texture conversion.
CVReturn err = CVOpenGLESTextureCacheCreate(kCFAllocatorDefault, NULL, (__bridge void *)_context, NULL, &_videoTextureCache);
if (err)
{
NSLog(@"Error at CVOpenGLESTextureCacheCreate %d", err);
return;
}

_videoTextureCache 定义如下:

CVOpenGLESTextureCacheRef _videoTextureCache;    

当我收到内存警告时,我是否需要调用一些东西来释放分配的内存?我可以nil _videoTextureCache(这样 ARC 可以清理内存),然后重新创建它吗?

到目前为止,我找到的唯一文档是声明函数的 .h 中的注释,这似乎并没有什么帮助。

有人知道其他文档吗?

-肯

最佳答案

您是否在不再需要 CVOpenGLESTextureCacheRefCVOpenGLESTextureRef 时调用 CFRelease()

苹果源代码:

关于ios - CVOpenGLESTextureCacheCreateTextureFromImage 报告 "Failed to create IOSurface image (texture)",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8709730/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com