MTLVertexAttributeDescriptor
Соответствует
-
AnyObject -
CVarArgType -
Сопоставимый -
Hashable -
NSCopying -
NSObjectProtocol -
Печатаемый -
NSCopying -
NSObject
Оператор импорта
Swift
import Metal
Objective C
@import Metal;
Доступность
Доступный в iOS 8.0 и позже.
MTLVertexAttributeDescriptor определяет, как данные атрибута вершины хранятся в памяти и как это отображается на параметрах за функцию вершинного шейдера.
Дескриптор атрибута вершины предоставляет организационную информацию, таким образом, функция вершинного шейдера может определить местоположение и загрузить данные в свои параметры. Дескриптор отображает ячейки памяти для приписывания расположений. Это поддерживает доступ к многократным атрибутам (таким как координаты вершины, поверхность normals и координаты текстуры), которые чередованы в том же буфере.
-
formatСвойствоФормат атрибута вершины.
Объявление
Swift
var format: MTLVertexFormatObjective C
@property(assign, nonatomic) MTLVertexFormat formatОбсуждение
Это свойство указывает тип данных атрибута вершины, соответствующего входному аргументу функции языка штриховки.
MTLVertexFormatможет быть преобразован в тип данных в аргументе функции штриховки со следующими указанными ограничениями. Недопустимое преобразование типов вызывает ошибку компиляции.Преобразование векторов различных длин допустимо. Длина векторов может быть сокращена. Например,
MTLVertexFormatInt4данные могут быть сокращены до синглаintпараметр программы построения теней допустим, и последние три значения вектора отбрасываются. Векторы могут также быть расширены; например, расширениеMTLVertexFormatIntкint4векторный параметр программы построения теней допустим. При расширении дополнительные компоненты заполнены соответствующими компонентами (0,0,0,1).Знак целого числа
MTLVertexFormatне может быть брошен к параметру программы построения теней с целым типом различного знака. Например, бросая формат со знакомMTLVertexFormatIntкuintпараметр программы построения теней недопустим. КастингMTLVertexFormatUIntкintпараметр также недопустим.Целочисленное усечение не поддерживается. Например, кастинг
MTLVertexFormatIntк ashortнедопустимо. Однако кастингMTLVertexFormatShort2к векторуintзначения допустимы.Кастинг любого
MTLVertexFormatк afloatилиhalfдопустимо. Кастинг нормализованMTLVertexFormatтипы (такой какMTLVertexFormatShort2Normalized) только допустимы кfloatилиhalf.Оператор импорта
Objective C
@import Metal;Swift
import MetalДоступность
Доступный в iOS 8.0 и позже.
-
offsetСвойствоРасположение атрибута в данных вершины, определенных байтовым смещением от запуска данных вершины.
Обсуждение
offsetзначение должно быть кратным числом4байты.Оператор импорта
Objective C
@import Metal;Swift
import MetalДоступность
Доступный в iOS 8.0 и позже.
-
bufferIndexСвойствоИндекс в таблице параметра для связанного буфера вершины.
Объявление
Swift
var bufferIndex: IntObjective C
@property(assign, nonatomic) NSUInteger bufferIndexОператор импорта
Objective C
@import Metal;Swift
import MetalДоступность
Доступный в iOS 8.0 и позже.
-
Значения, указывающие организацию (тип и число) данных вершины в
MTLBuffer.Объявление
Swift
enum MTLVertexFormat : UInt { case Invalid case UChar2 case UChar3 case UChar4 case Char2 case Char3 case Char4 case UChar2Normalized case UChar3Normalized case UChar4Normalized case Char2Normalized case Char3Normalized case Char4Normalized case UShort2 case UShort3 case UShort4 case Short2 case Short3 case Short4 case UShort2Normalized case UShort3Normalized case UShort4Normalized case Short2Normalized case Short3Normalized case Short4Normalized case Half2 case Half3 case Half4 case Float case Float2 case Float3 case Float4 case Int case Int2 case Int3 case Int4 case UInt case UInt2 case UInt3 case UInt4 case Int1010102Normalized case UInt1010102Normalized }Objective C
typedef enum : NSUInteger { MTLVertexFormatInvalid = 0, MTLVertexFormatUChar2 = 1, MTLVertexFormatUChar3 = 2, MTLVertexFormatUChar4 = 3, MTLVertexFormatChar2 = 4, MTLVertexFormatChar3 = 5, MTLVertexFormatChar4 = 6, MTLVertexFormatUChar2Normalized = 7, MTLVertexFormatUChar3Normalized = 8, MTLVertexFormatUChar4Normalized = 9, MTLVertexFormatChar2Normalized = 10, MTLVertexFormatChar3Normalized = 11, MTLVertexFormatChar4Normalized = 12, MTLVertexFormatUShort2 = 13, MTLVertexFormatUShort3 = 14, MTLVertexFormatUShort4 = 15, MTLVertexFormatShort2 = 16, MTLVertexFormatShort3 = 17, MTLVertexFormatShort4 = 18, MTLVertexFormatUShort2Normalized = 19, MTLVertexFormatUShort3Normalized = 20, MTLVertexFormatUShort4Normalized = 21, MTLVertexFormatShort2Normalized = 22, MTLVertexFormatShort3Normalized = 23, MTLVertexFormatShort4Normalized = 24, MTLVertexFormatHalf2 = 25, MTLVertexFormatHalf3 = 26, MTLVertexFormatHalf4 = 27, MTLVertexFormatFloat = 28, MTLVertexFormatFloat2 = 29, MTLVertexFormatFloat3 = 30, MTLVertexFormatFloat4 = 31, MTLVertexFormatInt = 32, MTLVertexFormatInt2 = 33, MTLVertexFormatInt3 = 34, MTLVertexFormatInt4 = 35, MTLVertexFormatUInt = 36, MTLVertexFormatUInt2 = 37, MTLVertexFormatUInt3 = 38, MTLVertexFormatUInt4 = 39, MTLVertexFormatInt1010102Normalized = 40, MTLVertexFormatUInt1010102Normalized = 41 } MTLVertexFormat;Константы
-
InvalidMTLVertexFormatInvalidНедопустимый формат вершины.
Доступный в iOS 8.0 и позже.
-
UChar2MTLVertexFormatUChar2Два 8-разрядных значения без знака.
Доступный в iOS 8.0 и позже.
-
UChar3MTLVertexFormatUChar3Три 8-разрядных значения без знака.
Доступный в iOS 8.0 и позже.
-
UChar4MTLVertexFormatUChar4Четыре 8-разрядных значения без знака.
Доступный в iOS 8.0 и позже.
-
Char2MTLVertexFormatChar2Дополнительные значения двух 8-разрядных two со знаком.
Доступный в iOS 8.0 и позже.
-
Char3MTLVertexFormatChar3Дополнительные значения трех 8-разрядных two со знаком.
Доступный в iOS 8.0 и позже.
-
Char4MTLVertexFormatChar4Дополнительные значения четырех 8-разрядных two со знаком.
Доступный в iOS 8.0 и позже.
-
UChar2NormalizedMTLVertexFormatUChar2NormalizedДва нормализованных 8-разрядных значения без знака.
Доступный в iOS 8.0 и позже.
-
UChar3NormalizedMTLVertexFormatUChar3NormalizedТри нормализованных 8-разрядных значения без знака.
Доступный в iOS 8.0 и позже.
-
UChar4NormalizedMTLVertexFormatUChar4NormalizedЧетыре нормализованных 8-разрядных значения без знака.
Доступный в iOS 8.0 и позже.
-
Char2NormalizedMTLVertexFormatChar2NormalizedДополнительные значения двух нормализованных 8-разрядных two со знаком.
Доступный в iOS 8.0 и позже.
-
Char3NormalizedMTLVertexFormatChar3NormalizedДополнительные значения трех нормализованных 8-разрядных two со знаком.
Доступный в iOS 8.0 и позже.
-
Char4NormalizedMTLVertexFormatChar4NormalizedДополнительные значения четырех нормализованных 8-разрядных two со знаком.
Доступный в iOS 8.0 и позже.
-
UShort2MTLVertexFormatUShort2Два 16-разрядных значения без знака.
Доступный в iOS 8.0 и позже.
-
UShort3MTLVertexFormatUShort3Три 16-разрядных значения без знака.
Доступный в iOS 8.0 и позже.
-
UShort4MTLVertexFormatUShort4Четыре 16-разрядных значения без знака.
Доступный в iOS 8.0 и позже.
-
Short2MTLVertexFormatShort2Дополнительные значения двух 16-разрядных two со знаком.
Доступный в iOS 8.0 и позже.
-
Short3MTLVertexFormatShort3Дополнительные значения трех 16-разрядных two со знаком.
Доступный в iOS 8.0 и позже.
-
Short4MTLVertexFormatShort4Дополнительные значения четырех 16-разрядных two со знаком.
Доступный в iOS 8.0 и позже.
-
UShort2NormalizedMTLVertexFormatUShort2NormalizedДва нормализованных 16-разрядных значения без знака
Доступный в iOS 8.0 и позже.
-
UShort3NormalizedMTLVertexFormatUShort3NormalizedТри нормализованных 16-разрядных значения без знака.
Доступный в iOS 8.0 и позже.
-
UShort4NormalizedMTLVertexFormatUShort4NormalizedЧетыре нормализованных 16-разрядных значения без знака.
Доступный в iOS 8.0 и позже.
-
Short2NormalizedMTLVertexFormatShort2NormalizedДополнительные значения двух нормализованных 16-разрядных two со знаком.
Доступный в iOS 8.0 и позже.
-
Short3NormalizedMTLVertexFormatShort3NormalizedДополнительные значения трех нормализованных 16-разрядных two со знаком.
Доступный в iOS 8.0 и позже.
-
Short4NormalizedMTLVertexFormatShort4NormalizedДополнительные значения четырех нормализованных 16-разрядных two со знаком.
Доступный в iOS 8.0 и позже.
-
Half2MTLVertexFormatHalf2Две полуточности значения с плавающей точкой.
Доступный в iOS 8.0 и позже.
-
Half3MTLVertexFormatHalf3Три полуточности значения с плавающей точкой.
Доступный в iOS 8.0 и позже.
-
Half4MTLVertexFormatHalf4Четыре полуточности значения с плавающей точкой.
Доступный в iOS 8.0 и позже.
-
FloatMTLVertexFormatFloatОдна одинарная точность значение с плавающей точкой.
Доступный в iOS 8.0 и позже.
-
Float2MTLVertexFormatFloat2Две одинарной точности значения с плавающей точкой.
Доступный в iOS 8.0 и позже.
-
Float3MTLVertexFormatFloat3Три одинарной точности значения с плавающей точкой.
Доступный в iOS 8.0 и позже.
-
Float4MTLVertexFormatFloat4Четыре одинарной точности значения с плавающей точкой.
Доступный в iOS 8.0 и позже.
-
IntMTLVertexFormatIntДополнительное значение одного 32-разрядного two со знаком.
Доступный в iOS 8.0 и позже.
-
Int2MTLVertexFormatInt2Дополнительные значения двух 32-разрядных two со знаком.
Доступный в iOS 8.0 и позже.
-
Int3MTLVertexFormatInt3Дополнительные значения трех 32-разрядных two со знаком.
Доступный в iOS 8.0 и позже.
-
Int4MTLVertexFormatInt4Дополнительные значения четырех 32-разрядных two со знаком.
Доступный в iOS 8.0 и позже.
-
UIntMTLVertexFormatUIntОдно 32-разрядное значение без знака.
Доступный в iOS 8.0 и позже.
-
UInt2MTLVertexFormatUInt2Два 32-разрядных значения без знака.
Доступный в iOS 8.0 и позже.
-
UInt3MTLVertexFormatUInt3Три 32-разрядных значения без знака.
Доступный в iOS 8.0 и позже.
-
UInt4MTLVertexFormatUInt4Четыре 32-разрядных значения без знака.
Доступный в iOS 8.0 и позже.
-
Int1010102NormalizedMTLVertexFormatInt1010102NormalizedОдно упакованное 32-разрядное значение с дополнительными целочисленными значениями четырех нормализованных two со знаком, расположенными как 10 битов, 10 битов, 10 битов и 2 бита.
Доступный в iOS 8.0 и позже.
-
UInt1010102NormalizedMTLVertexFormatUInt1010102NormalizedОдно упакованное 32-разрядное значение с четырьмя нормализованными значениями целого без знака, расположенными как 10 битов, 10 битов, 10 битов и 2 бита.
Доступный в iOS 8.0 и позже.
Оператор импорта
Objective C
@import Metal;Swift
import MetalДоступность
Доступный в iOS 8.0 и позже.
-
