Сохранить данные MTLTexture локально в Swift - PullRequest
0 голосов
/ 03 сентября 2018

MTLTexture - это выделенная память для хранения данных отформатированного изображения, доступных для графического процессора. Мне интересно, есть ли способ сохранить данные MTLTexture локально?

Если да, то какой будет наиболее подходящий способ локального сохранения данных MTLTexture?

1 Ответ

0 голосов
/ 03 сентября 2018

Вы можете использовать функцию getBytes для получения байтовых данных изображения из текстуры:

getBytes(_:bytesPerRow:bytesPerImage:from:mipmapLevel:slice:)

Копирует блок пикселей из памяти для размещения текстуры срез в системную память по указанному адресу

https://developer.apple.com/documentation/metal/mtltexture/1516318-getbytes

Вы можете использовать байты для создания Data объекта, используя:

Data.init(bytes: UnsafeRawPointer, count: Int)

Или вы можете использовать эти данные вместе с CGCreateImage для создания изображения. Полный пример здесь:

https://github.com/metal-by-example/sample-code/blob/master/objc/14-ImageProcessing/ImageProcessing/UIImage%2BMBETextureUtilities.m

...