Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека Разработчика iOS

Разработчик

Металлическая ссылка платформы ссылка на протокол MTLBuffer

Опции
Развертывание Target:

На этой странице
Язык:

MTLBuffer

Наследование


Не применимый

Соответствует


Оператор импорта


Swift

import Metal

Objective C

@import Metal;

Доступность


Доступный в iOS 8.0 и позже.

MTLBuffer протокол определяет интерфейс для объектов, представляющих выделение бесформатной, доступной для устройства памяти, которая может содержать любой тип данных. Ваше приложение не определяет классы, реализующие этот протокол.

Не создавайте a MTLBuffer объект при помощи стандартного выделения или методов инициализации. Вместо этого используйте следующий MTLDevice методы для создания MTLBuffer объекты:

  • newBufferWithLength:options: создает a MTLBuffer объект с новым выделением ресурсов хранения.

  • newBufferWithBytes:length:options: создает a MTLBuffer объект путем копирования данных с существующего выделения ресурсов хранения в новое выделение.

  • newBufferWithBytesNoCopy:length:options:deallocator: создает a MTLBuffer возразите, что повторные использования существующее выделение ресурсов хранения и не выделяют нового хранения.

  • Создает новое MTLTexture возразите, что использует данные в MTLBuffer возразите как его данные изображения текстуры. (требуемый)

    Объявление

    Swift

    func newTextureWithDescriptor(_ descriptor: MTLTextureDescriptor, offset offset: Int, bytesPerRow bytesPerRow: 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 Свойство

    Логический размер буфера, в байтах. (требуемый) (только для чтения)

    Объявление

    Swift

    var length: Int { get }

    Objective C

    @property(readonly) NSUInteger length

    Обсуждение

    Выделенный размер может быть больше, чем логический размер вследствие требований выравнивания.

    Оператор импорта

    Objective C

    @import Metal;

    Swift

    import Metal

    Доступность

    Доступный в iOS 8.0 и позже.