誰もこの機能を説明することができますか?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