MTLBuffer
Наследование
Не применимый
Оператор импорта
Swift
import Metal
Objective C
@import Metal;
Доступность
Доступный в iOS 8.0 и позже.
MTLBuffer
протокол определяет интерфейс для объектов, представляющих выделение бесформатной, доступной для устройства памяти, которая может содержать любой тип данных. Ваше приложение не определяет классы, реализующие этот протокол.
Не создавайте a MTLBuffer
объект при помощи стандартного выделения или методов инициализации. Вместо этого используйте следующий MTLDevice
методы для создания MTLBuffer
объекты:
newBufferWithLength:options:
создает aMTLBuffer
объект с новым выделением ресурсов хранения.newBufferWithBytes:length:options:
создает aMTLBuffer
объект путем копирования данных с существующего выделения ресурсов хранения в новое выделение.newBufferWithBytesNoCopy:length:options:deallocator:
создает aMTLBuffer
возразите, что повторные использования существующее выделение ресурсов хранения и не выделяют нового хранения.
-
newTextureWithDescriptor (_: offset:bytesPerRow:) - newTextureWithDescriptor:offset:bytesPerRow:
ТребуемыйСоздает новое
MTLTexture
возразите, что использует данные вMTLBuffer
возразите как его данные изображения текстуры. (требуемый)Объявление
Swift
func newTextureWithDescriptor(_
descriptor
: MTLTextureDescriptor, offsetoffset
: Int, bytesPerRowbytesPerRow
: Int) -> MTLTexture?Objective C
- (id<MTLTexture>)newTextureWithDescriptor:(MTLTextureDescriptor *)
descriptor
offset:(NSUInteger)offset
bytesPerRow:(NSUInteger)bytesPerRow
Параметры
descriptor
Указатель на объект дескриптора текстуры, содержащий свойства созданной текстуры.
offset
Смещение от базового адреса для первой строки данных текстуры, в байтах.
bytesPerRow
Шаг от одной строки текстуры отображает к следующему в байтах.
Возвращаемое значение
Объект текстуры с данными изображения, совместно использующимися с инициирующим буфером.
Обсуждение
Новое
MTLTexture
объект и возникновениеMTLBuffer
возразите совместно используют то же выделение ресурсов хранения.bytesPerRow
иoffset
определите, как интерпретироватьMTLBuffer
выделение ресурсов хранения как 2D текстура.Этот метод имеет следующие ограничения:
Тип текстуры должен быть
MTLTextureType2D
.mipmapLevelCount
должен быть 1.offset
должно быть кратное число 64.bytesPerRow
должно быть кратное число 64.bytesPerRow
должно также быть больше, чем или равным размеру одного пикселя, в байтах, умноженных на пиксельную ширину одной строки.Поддерживаются обычные и упакованные цветные форматы пикселя.
MTLPixelFormatGBGR422
иMTLPixelFormatBGRG422
поддерживаются цветные форматы пикселя. Сжатые цветные форматы пикселя не поддерживаются.Ни глубина, ни форматы шаблона не поддерживаются.
Используя этот метод для совместного использования хранения между текстурой и буфером может предотвратить приложение определенной оптимизации текстурирования (например, пиксель swizzling и мозаичное размещение).
Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.
-
содержание () - содержание
ТребуемыйВозвращается система адресуют выделение ресурсов хранения буфера. (требуемый)
Объявление
Swift
func contents() -> UnsafeMutablePointer<Void>
Objective C
- (void *)contents
Возвращаемое значение
Указатель на совместно используемую копию буферных данных.
Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.
-
length
СвойствоЛогический размер буфера, в байтах. (требуемый) (только для чтения)
Обсуждение
Выделенный размер может быть больше, чем логический размер вследствие требований выравнивания.
Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.