MTLVertexAttributeDescriptor
Соответствует
-
AnyObject
-
CVarArgType
-
Сопоставимый
-
Hashable
-
NSCopying
-
NSObjectProtocol
-
Печатаемый
-
NSCopying
-
NSObject
Оператор импорта
Swift
import Metal
Objective C
@import Metal;
Доступность
Доступный в iOS 8.0 и позже.
MTLVertexAttributeDescriptor
определяет, как данные атрибута вершины хранятся в памяти и как это отображается на параметрах за функцию вершинного шейдера.
Дескриптор атрибута вершины предоставляет организационную информацию, таким образом, функция вершинного шейдера может определить местоположение и загрузить данные в свои параметры. Дескриптор отображает ячейки памяти для приписывания расположений. Это поддерживает доступ к многократным атрибутам (таким как координаты вершины, поверхность normals и координаты текстуры), которые чередованы в том же буфере.
-
format
СвойствоФормат атрибута вершины.
Объявление
Swift
var format: MTLVertexFormat
Objective 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: Int
Objective 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;
Константы
-
Invalid
MTLVertexFormatInvalid
Недопустимый формат вершины.
Доступный в iOS 8.0 и позже.
-
UChar2
MTLVertexFormatUChar2
Два 8-разрядных значения без знака.
Доступный в iOS 8.0 и позже.
-
UChar3
MTLVertexFormatUChar3
Три 8-разрядных значения без знака.
Доступный в iOS 8.0 и позже.
-
UChar4
MTLVertexFormatUChar4
Четыре 8-разрядных значения без знака.
Доступный в iOS 8.0 и позже.
-
Char2
MTLVertexFormatChar2
Дополнительные значения двух 8-разрядных two со знаком.
Доступный в iOS 8.0 и позже.
-
Char3
MTLVertexFormatChar3
Дополнительные значения трех 8-разрядных two со знаком.
Доступный в iOS 8.0 и позже.
-
Char4
MTLVertexFormatChar4
Дополнительные значения четырех 8-разрядных two со знаком.
Доступный в iOS 8.0 и позже.
-
UChar2Normalized
MTLVertexFormatUChar2Normalized
Два нормализованных 8-разрядных значения без знака.
Доступный в iOS 8.0 и позже.
-
UChar3Normalized
MTLVertexFormatUChar3Normalized
Три нормализованных 8-разрядных значения без знака.
Доступный в iOS 8.0 и позже.
-
UChar4Normalized
MTLVertexFormatUChar4Normalized
Четыре нормализованных 8-разрядных значения без знака.
Доступный в iOS 8.0 и позже.
-
Char2Normalized
MTLVertexFormatChar2Normalized
Дополнительные значения двух нормализованных 8-разрядных two со знаком.
Доступный в iOS 8.0 и позже.
-
Char3Normalized
MTLVertexFormatChar3Normalized
Дополнительные значения трех нормализованных 8-разрядных two со знаком.
Доступный в iOS 8.0 и позже.
-
Char4Normalized
MTLVertexFormatChar4Normalized
Дополнительные значения четырех нормализованных 8-разрядных two со знаком.
Доступный в iOS 8.0 и позже.
-
UShort2
MTLVertexFormatUShort2
Два 16-разрядных значения без знака.
Доступный в iOS 8.0 и позже.
-
UShort3
MTLVertexFormatUShort3
Три 16-разрядных значения без знака.
Доступный в iOS 8.0 и позже.
-
UShort4
MTLVertexFormatUShort4
Четыре 16-разрядных значения без знака.
Доступный в iOS 8.0 и позже.
-
Short2
MTLVertexFormatShort2
Дополнительные значения двух 16-разрядных two со знаком.
Доступный в iOS 8.0 и позже.
-
Short3
MTLVertexFormatShort3
Дополнительные значения трех 16-разрядных two со знаком.
Доступный в iOS 8.0 и позже.
-
Short4
MTLVertexFormatShort4
Дополнительные значения четырех 16-разрядных two со знаком.
Доступный в iOS 8.0 и позже.
-
UShort2Normalized
MTLVertexFormatUShort2Normalized
Два нормализованных 16-разрядных значения без знака
Доступный в iOS 8.0 и позже.
-
UShort3Normalized
MTLVertexFormatUShort3Normalized
Три нормализованных 16-разрядных значения без знака.
Доступный в iOS 8.0 и позже.
-
UShort4Normalized
MTLVertexFormatUShort4Normalized
Четыре нормализованных 16-разрядных значения без знака.
Доступный в iOS 8.0 и позже.
-
Short2Normalized
MTLVertexFormatShort2Normalized
Дополнительные значения двух нормализованных 16-разрядных two со знаком.
Доступный в iOS 8.0 и позже.
-
Short3Normalized
MTLVertexFormatShort3Normalized
Дополнительные значения трех нормализованных 16-разрядных two со знаком.
Доступный в iOS 8.0 и позже.
-
Short4Normalized
MTLVertexFormatShort4Normalized
Дополнительные значения четырех нормализованных 16-разрядных two со знаком.
Доступный в iOS 8.0 и позже.
-
Half2
MTLVertexFormatHalf2
Две полуточности значения с плавающей точкой.
Доступный в iOS 8.0 и позже.
-
Half3
MTLVertexFormatHalf3
Три полуточности значения с плавающей точкой.
Доступный в iOS 8.0 и позже.
-
Half4
MTLVertexFormatHalf4
Четыре полуточности значения с плавающей точкой.
Доступный в iOS 8.0 и позже.
-
Float
MTLVertexFormatFloat
Одна одинарная точность значение с плавающей точкой.
Доступный в iOS 8.0 и позже.
-
Float2
MTLVertexFormatFloat2
Две одинарной точности значения с плавающей точкой.
Доступный в iOS 8.0 и позже.
-
Float3
MTLVertexFormatFloat3
Три одинарной точности значения с плавающей точкой.
Доступный в iOS 8.0 и позже.
-
Float4
MTLVertexFormatFloat4
Четыре одинарной точности значения с плавающей точкой.
Доступный в iOS 8.0 и позже.
-
Int
MTLVertexFormatInt
Дополнительное значение одного 32-разрядного two со знаком.
Доступный в iOS 8.0 и позже.
-
Int2
MTLVertexFormatInt2
Дополнительные значения двух 32-разрядных two со знаком.
Доступный в iOS 8.0 и позже.
-
Int3
MTLVertexFormatInt3
Дополнительные значения трех 32-разрядных two со знаком.
Доступный в iOS 8.0 и позже.
-
Int4
MTLVertexFormatInt4
Дополнительные значения четырех 32-разрядных two со знаком.
Доступный в iOS 8.0 и позже.
-
UInt
MTLVertexFormatUInt
Одно 32-разрядное значение без знака.
Доступный в iOS 8.0 и позже.
-
UInt2
MTLVertexFormatUInt2
Два 32-разрядных значения без знака.
Доступный в iOS 8.0 и позже.
-
UInt3
MTLVertexFormatUInt3
Три 32-разрядных значения без знака.
Доступный в iOS 8.0 и позже.
-
UInt4
MTLVertexFormatUInt4
Четыре 32-разрядных значения без знака.
Доступный в iOS 8.0 и позже.
-
Int1010102Normalized
MTLVertexFormatInt1010102Normalized
Одно упакованное 32-разрядное значение с дополнительными целочисленными значениями четырех нормализованных two со знаком, расположенными как 10 битов, 10 битов, 10 битов и 2 бита.
Доступный в iOS 8.0 и позже.
-
UInt1010102Normalized
MTLVertexFormatUInt1010102Normalized
Одно упакованное 32-разрядное значение с четырьмя нормализованными значениями целого без знака, расположенными как 10 битов, 10 битов, 10 битов и 2 бита.
Доступный в iOS 8.0 и позже.
Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.
-