我需要从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
}
这对您有用吗?