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

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

Разработчик

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

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

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

MTLCommandQueue

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


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

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


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


Swift

import Metal

Objective C

@import Metal;

Доступность


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

MTLCommandQueue протокол определяет интерфейс для объекта, который может поставить упорядоченный список в очередь буферов команд для Металлического устройства для выполнения. В целом очереди команды ориентированы на многопотоковое исполнение и позволяют многократным выдающимся буферам команд быть закодированными одновременно.

Ваше приложение не определяет классы, реализующие этот протокол. Для создания очереди команды вызовите newCommandQueue или newCommandQueueWithMaxCommandBufferCount: метод a MTLDevice объект. Очередь, возвращенная newCommandQueueWithMaxCommandBufferCount: метод ограничивает число незаконченных буферов команд. Как правило, Вы создаете одну или более очередей команды, когда Ваше приложение инициализируется, и затем имейте в наличии те очереди всюду по времени жизни Вашего приложения.

Для фактического выполнения рендеринга используйте очередь команды для создания одного или более объектов буфера команд, затем закодируйте команды в те объекты и передайте их очереди. Существует два метода для создания MTLCommandBuffer объекты: commandBuffer и commandBufferWithUnretainedReferences. В большинстве случаев Вы используете commandBuffer метод, потому что это создает буфер команд, содержащий сильную ссылку к любым объектам, которые необходимы, чтобы закончить выполнять команды, закодированные в буфере команд. В очень редких ситуациях Вы используете commandBufferWithUnretainedReferences метод для создания буфера команд, не сохраняющего сильные ссылки к этим объектам. В этом случае Вы ответственны за поддержание этих объектов, пока команды, закодированные в буфере команд, не закончили выполняться.

  • commandBuffer () - commandBuffer Требуемый

    Создает буфер команд. (требуемый)

    Объявление

    Swift

    func commandBuffer() -> MTLCommandBuffer!

    Objective C

    - (id<MTLCommandBuffer>)commandBuffer

    Возвращаемое значение

    Объект буфера команд.

    Обсуждение

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

    Этот метод устанавливает retainedReferences свойство возвращенного буфера команд к YEStrue.

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

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

    Objective C

    @import Metal;

    Swift

    import Metal

    Доступность

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

    См. также

    retainedReferences

  • Создает буфер команд, не содержащий сильные ссылки ни к каким объектам (таким как буферы, текстуры, сэмплеры, и утверждающий объекты), ссылаемый кодерами команды, создающимися из этого буфера команд. (требуемый)

    Объявление

    Swift

    func commandBufferWithUnretainedReferences() -> MTLCommandBuffer

    Objective C

    - (id<MTLCommandBuffer>)commandBufferWithUnretainedReferences

    Возвращаемое значение

    Объект буфера команд, не содержащий ссылку ни на какие объекты.

    Обсуждение

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

    В большинстве случаев используйте commandBuffer метод вместо commandBufferWithUnretainedReferences.

    Этот метод устанавливает retainedReferences свойство возвращенного буфера команд к NOfalse.

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

    Objective C

    @import Metal;

    Swift

    import Metal

    Доступность

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

    См. также

    retainedReferences

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

    Объявление

    Swift

    func insertDebugCaptureBoundary()

    Objective C

    - (void)insertDebugCaptureBoundary

    Обсуждение

    Когда отладка включена, insertDebugCaptureBoundary сообщает XCode о том, когда выполнить получение кадра. presentDrawable: и presentDrawable:atTime: методы MTLCommandBuffer так же сообщите XCode о получении кадра, так вызов insertDebugCaptureBoundary только если не присутствуют те методы.

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

    Objective C

    @import Metal;

    Swift

    import Metal

    Доступность

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

  • device Свойство

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

    Объявление

    Swift

    var device: MTLDevice { get }

    Objective C

    @property(readonly) id< MTLDevice > device

    Обсуждение

    Эта очередь команды может только использоваться с этим устройством.

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

    Objective C

    @import Metal;

    Swift

    import Metal

    Доступность

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

  • label Требуемое свойство

    Строка раньше идентифицировала очередь команды. (требуемый)

    Объявление

    Swift

    var label: String? { get set }

    Objective C

    @property(copy, atomic) NSString *label

    Обсуждение

    Когда очередь команды просматривается в отладчике XCode, эта строка используется для маркировки объекта.

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

    Objective C

    @import Metal;

    Swift

    import Metal

    Доступность

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