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: MTLLoadAction
Objective 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: MTLStoreAction
Objective C
@property(nonatomic) MTLStoreAction storeAction
Обсуждение
Если для Вашего приложения не нужны данные в текстуре после того, как передача рендеринга завершена, использовать
MTLStoreActionDontCare
. Иначе, использоватьMTLStoreActionStore
если текстура непосредственно сохранена илиMTLStoreActionMultisampleResolve
если текстура является мультивыбранной текстурой.Когда
storeAction
MTLStoreActionMultisampleResolve
,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: Int
Objective 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 и позже.