MTLCommandEncoder
Наследование
Не применимый
Оператор импорта
Swift
import Metal
Objective C
@import Metal;
Доступность
Доступный в iOS 8.0 и позже.
MTLCommandEncoder
протокол определяет единый интерфейс для объектов, которые могут записать команды в буфер команд.
Ваше приложение не определяет классы, реализующие этот протокол. Объекты кодера команды вместо этого создаются от Вашего имени MTLCommandBuffer
объект. Объекты кодера команды являются легкими объектами, которые Вы воссоздаете каждый раз, когда необходимо выполнить работу. Существует много различных видов кодеров команды, каждый обеспечивающий различный набор команд, которые могут быть закодированы в буфер. Кодер команды реализует MTLCommandEncoder
протокол и протокол, определенный для вида создаваемого кодера. Таблица 1 перечисляет различные виды кодеров команды, которые могут быть созданы и протоколы, которые они реализуют. Для получения дополнительной информации о том, как создать кодеры команды, посмотрите MTLCommandBuffer
протокол.
Протокол |
Описание |
---|---|
Кодер используется для задач рендеринга графики. |
|
Кодер используется для вычислительных задач. |
|
Кодер используется для задач управления памятью. |
|
Кодер раньше кодировал многократные задачи рендеринга графики параллельно. |
В то время как кодер команды активен, он имеет исключительное право добавить команды к своему буферу команд. Как только Вы заканчиваете кодировать команды, вызовите endEncoding
метод, чтобы закончить кодировать команды. Для записи дальнейших команд в тот же буфер команд создайте новый кодер команды.
Можно вызвать insertDebugSignpost:
, pushDebugGroup:
, и popDebugGroup
методы, чтобы поместить строки отладки в буфер команд и продвинуть или вытолкать строковые метки раньше идентифицировали группы закодированных команд. Эти методы не изменяют рендеринг или вычисляют поведение Вашего приложения; они привыкли отладчиком XCode к организовать команды рендеринга Вашего приложения в форме, которая может помочь Вам найти понимание, как работает Ваше приложение.
-
endEncoding () - endEncoding
ТребуемыйОбъявляет, что завершается вся генерация команды от этого кодера. (требуемый)
Объявление
Swift
func endEncoding()
Objective C
- (void)endEncoding
Обсуждение
После
endEncoding
вызывается, кодер команды не имеет никакого дальнейшего использования. Вы не можете закодировать никакие другие команды с этим кодером.Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.
-
Вставляет строку в буфер команд. (требуемый)
Объявление
Swift
func insertDebugSignpost(_
string
: String)Objective C
- (void)insertDebugSignpost:(NSString *)
string
Обсуждение
При отладке с XCode может появиться эта строка.
Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.
-
pushDebugGroup (_:) - pushDebugGroup:
Требуемый -
popDebugGroup () - popDebugGroup
ТребуемыйВыталкивает последнюю именованную строку от штабеля строковых меток. (требуемый)
Объявление
Swift
func popDebugGroup()
Objective C
- (void)popDebugGroup
Оператор импорта
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 и позже.