2016-05-25 6 views
2

CVPixelBufferに裏打ちされたMTLTextureを生成する正しい方法は何ですか?CVPixelBufferに裏打ちされたMTLTextureを作成する方法

私は、次のコードを持っているが、それが漏れているようだ:

func PixelBufferToMTLTexture(pixelBuffer:CVPixelBuffer) -> MTLTexture 
{ 
    var texture:MTLTexture! 

    let width = CVPixelBufferGetWidth(pixelBuffer) 
    let height = CVPixelBufferGetHeight(pixelBuffer) 

    let format:MTLPixelFormat = .BGRA8Unorm 


    var textureRef : Unmanaged<CVMetalTextureRef>? 

    let status = CVMetalTextureCacheCreateTextureFromImage(nil, 
                  videoTextureCache!.takeUnretainedValue(), 
                  pixelBuffer, 
                  nil, 
                  format, 
                  width, 
                  height, 
                  0, 
                  &textureRef) 

    if(status == kCVReturnSuccess) 
    { 
     texture = CVMetalTextureGetTexture(textureRef!.takeUnretainedValue()) 
    } 

    return texture 
} 
+0

はどのようにメモリリークがあると判断したのですか?どのような種類のオブジェクトが漏れていますか? – warrenm

答えて

1

ああ、私が行方不明になった?:textureRef .release()

関連する問題