如何为使用CVMetalTexturecache创建的纹理指定纹理



我需要从cvpixelbuffers创建纹理,因此我使用cvmetaltexturecache来生成它们。我想将这些纹理用作渲染目标,但我没有找到指定mtlTextureusage的方法。

纹理图参数被标记为"保留供将来使用"

如果没有办法这样做,继续使用TextureCache并执行闪电器或从纹理上的字样创建纹理会更快吗?

我正在使用cvmetaltexturecache生成源自cvppixelbufferpool的金属纹理。我正在使用cvmetaltexturecachecreateTextureFromage来创建金属纹理本身,例如:

var pixelBuffer:CVPixelBuffer // this I get from CVPixelBufferPoolCreatePixelBufferWithAuxAttributes
var mTexture:CVMetalTexture?
let textureAttributes = [kCVPixelBufferPoolAllocationThresholdKey as String : Int(maxBufferCount)] as CFDictionary
if  CVMetalTextureCacheCreateTextureFromImage(kCFAllocatorDefault, metalTextureCache,pixelBuffer!,textureAttributes,MTLPixelFormat.bgra8Unorm,Int(globals_L.displaySize[0]),Int(globals_L.displaySize[1]), 0, &mTexture)  != kCVReturnSuccess {
    print("Problem creating a metal texture from pixel buffer")
}
else {
    metalTexture = mTexture  // now we use this metalTexture to render 
}

这对您有用吗?

相关内容

  • 没有找到相关文章

最新更新