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 и позже.
