MTLRenderPassAttachmentDescriptor
Наследование
-
NSObject -
MTLRenderPassAttachmentDescriptor -
MTLRenderPassColorAttachmentDescriptor -
MTLRenderPassDepthAttachmentDescriptor -
MTLRenderPassStencilAttachmentDescriptor
-
NSObject -
MTLRenderPassAttachmentDescriptor -
MTLRenderPassColorAttachmentDescriptor -
MTLRenderPassDepthAttachmentDescriptor -
MTLRenderPassStencilAttachmentDescriptor
Соответствует
-
AnyObject -
CVarArgType -
Сопоставимый -
Hashable -
NSCopying -
NSObjectProtocol -
Печатаемый -
NSCopying -
NSObject
Оператор импорта
Swift
import Metal
Objective C
@import Metal;
Доступность
Доступный в iOS 8.0 и позже.
A MTLRenderPassAttachmentDescriptor объект используется для конфигурирования отдельной цели рендеринга кадрового буфера. Каждый MTLRenderPassAttachmentDescriptor объект указывает одну текстуру, в которую может вписать передача рендеринга графики.
Как правило, Вы непосредственно не создаете MTLRenderPassAttachmentDescriptor объекты. Вместо этого когда Вы инициализируете a MTLRenderPassDescriptor объект, набор по умолчанию присоединяемых объектов создается автоматически. Для каждого присоединения, которое Вы намереваетесь использовать в качестве цели рендеринга, Вы получаете MTLRenderPassAttachmentDescriptor объект от рендеринга передает дескриптор и конфигурирует его свойства для того, как это используется во время этой передачи рендеринга.
Необходимо установить присоединение texture свойство, выбирая надлежащий формат пикселя. level, slice, и depthPlane свойства указывают уровень множественного отображения, часть и плоскость глубины (для 3D текстур) текстуры, соответственно.
loadAction и storeAction свойства указывают действия, выполняющиеся в запуске или конце передачи рендеринга, соответственно, для присоединения. Например, если loadAction свойство присоединения установлено в MTLLoadActionClear, тогда в начале передачи рендеринга, содержание текстуры заполнено значением, которое подходяще для типа присоединения.
Там являются определенными MTLRenderPassAttachmentDescriptor подклассы для цвета, глубины и присоединений шаблона. Каждый подкласс обеспечивает дополнительные свойства для конфигурирования для такого присоединения. Таблица 1 обеспечивает список подклассов.
Присоединяемый тип |
Присоединяемый подкласс дескриптора передачи рендеринга |
|---|---|
Цветное присоединение |
|
Присоединение глубины |
|
Присоединение шаблона |
Мультивыборка
Для выполнения мультивыбранного сглаженного рендеринга Вы используете две текстуры. Присоединение aMTLTextureType2DMultisample текстурируйте к texture свойство и 2D или кубическая текстура к resolveTexture свойство. Когда команда рендеринга выполняется, весь рендеринг выполняется к мультидемонстрационной текстуре, как обычно. Тогда содержание мультидемонстрационной текстуры разрешено и записано в текстуру решения. resolveLevel, resolveSlice, и resolveDepthPlane свойства указывают, где разрешенное изображение записано в. Содержание мультидемонстрационной текстуры тогда отбрасывается.
-
textureСвойствоОбъект текстуры связался с этим присоединением.
Объявление
Swift
var texture: MTLTexture?Objective C
@property(nonatomic, strong) id< MTLTexture > textureОбсуждение
Необходимо установить присоединение
textureсвойство, выбирая надлежащий формат пикселя для текстуры.Для хранения значений цвета в присоединении используйте текстуру с цветным-renderable форматом пикселя.
Для хранения значений глубины используйте текстуру с форматом пикселя глубины-renderable, такой как
MTLPixelFormatDepth32Float.Для хранения значений шаблона используйте текстуру с форматом пикселя шаблона-renderable, такой как
MTLPixelFormatStencil8.
Оператор импорта
Objective C
@import Metal;Swift
import MetalДоступность
Доступный в iOS 8.0 и позже.
-
levelСвойствоУровень множественного отображения текстуры, привыкшей для рендеринга к присоединению.
Обсуждение
Значение по умолчанию
0.Оператор импорта
Objective C
@import Metal;Swift
import MetalДоступность
Доступный в iOS 8.0 и позже.
-
sliceСвойствоЧасть текстуры, привыкшей для рендеринга к присоединению.
Обсуждение
Значение по умолчанию
0.Оператор импорта
Objective C
@import Metal;Swift
import MetalДоступность
Доступный в iOS 8.0 и позже.
-
depthPlaneСвойствоПлоскость глубины текстуры, представляющейся к.
Обсуждение
Значение по умолчанию
0. Если текстура не является 3D текстурой, то это свойство проигнорировано.Оператор импорта
Objective C
@import Metal;Swift
import MetalДоступность
Доступный в iOS 8.0 и позже.
-
loadActionСвойствоДействие, выполняемое этим присоединением в начале рендеринга, передает для кодера команды рендеринга.
Объявление
Swift
var loadAction: MTLLoadActionObjective C
@property(nonatomic) MTLLoadAction loadActionОбсуждение
Если Ваше приложение представляет все пиксели присоединения для данного кадра для лучшей производительности, использовать
MTLLoadActionDontCare, который позволяет GPU избегать загружать существующее содержание текстуры. Иначе, использоватьMTLLoadActionClearочистить предыдущее содержание присоединения илиMTLLoadActionLoadсохранить их. Для лучшей производительности использоватьMTLLoadActionDontCare.MTLLoadActionClearтакже избегает стоимости загрузки существующего содержания текстуры, но это все еще несет расходы заполнения места назначения со сплошным цветом.Оператор импорта
Objective C
@import Metal;Swift
import MetalДоступность
Доступный в iOS 8.0 и позже.
-
storeActionСвойствоДействие, выполняемое этим присоединением в конце рендеринга, передает для кодера команды рендеринга.
Объявление
Swift
var storeAction: MTLStoreActionObjective C
@property(nonatomic) MTLStoreAction storeActionОбсуждение
Если для Вашего приложения не нужны данные в текстуре после того, как передача рендеринга завершена, использовать
MTLStoreActionDontCare. Иначе, использоватьMTLStoreActionStoreесли текстура непосредственно сохранена илиMTLStoreActionMultisampleResolveесли текстура является мультивыбранной текстурой.Когда
storeActionMTLStoreActionMultisampleResolve,resolveTextureсвойство должно быть установлено в текстуру использовать в качестве цели для действия решения.resolveLevel,resolveSlice, иresolveDepthPlaneсвойства могут также использоваться для мультидемонстрационной работы решения для указания уровня множественного отображения, части куба и плоскости глубины мультидемонстрационной текстуры, соответственно. В большинстве случаев, значения по умолчанию дляresolveLevel,resolveSlice, иresolveDepthPlaneприменимы.Оператор импорта
Objective C
@import Metal;Swift
import MetalДоступность
Доступный в iOS 8.0 и позже.
-
resolveTextureСвойствоКогда мультивыбранные данные текстуры разрешены в единственные демонстрационные значения, текстура использовала в качестве места назначения.
Объявление
Swift
var resolveTexture: MTLTexture?Objective C
@property(nonatomic, strong) id< MTLTexture > resolveTextureОбсуждение
Если
storeActionустановлен вMTLStoreActionMultisampleResolve, тогда необходимо установить это свойство для указания на текстуру. Иначе,resolveTextureпроигнорирован.Оператор импорта
Objective C
@import Metal;Swift
import MetalДоступность
Доступный в iOS 8.0 и позже.
-
resolveLevelСвойствоУровень множественного отображения текстуры используется для мультидемонстрационного действия решения.
Обсуждение
Если
storeActionустановлен вMTLStoreActionMultisampleResolve, тогда это свойство требуется. Значение по умолчанию0.Оператор импорта
Objective C
@import Metal;Swift
import MetalДоступность
Доступный в iOS 8.0 и позже.
-
resolveSliceСвойствоЧасть текстуры используется для мультидемонстрационного действия решения.
Обсуждение
Если
storeActionустановлен вMTLStoreActionMultisampleResolve, тогда это свойство требуется. Значение по умолчанию0.Оператор импорта
Objective C
@import Metal;Swift
import MetalДоступность
Доступный в iOS 8.0 и позже.
-
resolveDepthPlaneСвойствоПлоскость глубины текстуры используется для мультидемонстрационного действия решения.
Объявление
Swift
var resolveDepthPlane: IntObjective C
@property(nonatomic) NSUInteger resolveDepthPlaneОбсуждение
Если
storeActionустановлен вMTLStoreActionMultisampleResolve, тогда это свойство требуется. Значение по умолчанию0.Оператор импорта
Objective C
@import Metal;Swift
import MetalДоступность
Доступный в iOS 8.0 и позже.
Типы данных
-
Действие, выполняемое в начале рендеринга, передает для кодера команды рендеринга.
Объявление
Swift
enum MTLLoadAction : UInt { case DontCare case Load case Clear }Objective C
typedef enum : NSUInteger { MTLLoadActionDontCare = 0, MTLLoadActionLoad = 1, MTLLoadActionClear = 2 } MTLLoadAction;Оператор импорта
Objective C
@import Metal;Swift
import MetalДоступность
Доступный в iOS 8.0 и позже.
-
Действие, выполняемое в конце рендеринга, передает для кодера команды рендеринга.
Объявление
Swift
enum MTLStoreAction : UInt { case DontCare case Store case MultisampleResolve }Objective C
typedef enum : NSUInteger { MTLStoreActionDontCare = 0, MTLStoreActionStore = 1, MTLStoreActionMultisampleResolve = 2 } MTLStoreAction;Оператор импорта
Objective C
@import Metal;Swift
import MetalДоступность
Доступный в iOS 8.0 и позже.
