Skip to content

Instantly share code, notes, and snippets.

@trilliwon
Created May 7, 2019 04:48
Show Gist options
  • Save trilliwon/fa264f4fcd875d84ad02c6e3e12facdb to your computer and use it in GitHub Desktop.
Save trilliwon/fa264f4fcd875d84ad02c6e3e12facdb to your computer and use it in GitHub Desktop.
makeTextureFromCVPixelBuffer
func makeTextureFromCVPixelBuffer(pixelBuffer: CVPixelBuffer, textureFormat: MTLPixelFormat) -> MTLTexture? {
let width = CVPixelBufferGetWidth(pixelBuffer)
let height = CVPixelBufferGetHeight(pixelBuffer)
// Create a Metal texture from the image buffer.
var cvTextureOut: CVMetalTexture?
CVMetalTextureCacheCreateTextureFromImage(kCFAllocatorDefault, textureCache, pixelBuffer, nil, textureFormat, width, height, 0, &cvTextureOut)
guard let cvTexture = cvTextureOut, let texture = CVMetalTextureGetTexture(cvTexture) else {
CVMetalTextureCacheFlush(textureCache, 0)
return nil
}
return texture
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment