任何人都可以解釋(或指出相關的FM覆蓋)這個功能嗎?CVOpenGLESTextureCacheCreateTextureFromImage報告「無法創建IOSurface圖像(紋理)」
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
中聲明函數的地方的註釋,這似乎並沒有幫助。
任何人都知道其他文檔?
-Ken
這是相關的? https://開頭github上。com/BradLarson/GPUImage/issues/220 – Abhinit 2012-10-10 16:28:57