MTLArgument
Оператор импорта
Swift
import Metal
Objective C
@import Metal;
Доступность
Доступный в iOS 8.0 и позже.
A MTLArgument
объект описывает отдельный аргумент к Металлической функции. Ваше приложение использует MTLArgument
свойства для чтения подробных данных об аргументе функции, поскольку это было определено на Металлическом Языке Штриховки. Можно определить тип данных параметра, ограничения доступа и его связанный тип ресурса. Для буфера, текстуры и threadgroup параметров памяти, дополнительные свойства могут быть считаны для определения большего количества подробных данных о параметре.
Ваше приложение не создает a MTLArgument
возразите непосредственно. Создание a MTLRenderPipelineState
или MTLComputePipelineState
объект может генерировать отражательный объект (MTLRenderPipelineReflection
или MTLComputePipelineReflection
) это содержит MTLArgument
объекты.
-
name
Свойство -
access
СвойствоДоступ для чтения функции и/или доступ для записи к параметру. (только для чтения)
Объявление
Swift
var access: MTLArgumentAccess { get }
Objective C
@property(readonly) MTLArgumentAccess access
Обсуждение
Это свойство указывает тип спецификаторов доступа (только для чтения, только для записи, или чтение-запись) используемый в Металлическом коде языка штриховки. Для получения информации о возможных значениях посмотрите
MTLArgumentAccess
.Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.
-
active
СвойствоЕсли
YES
true
, этот параметр используется в Металлической функции языка штриховки и был установлен в индекс в таблице параметра. ЕслиNO
false
, этот параметр не используется в Металлической функции языка штриховки и может быть проигнорирован. (только для чтения)Объявление
Swift
var active: Bool { get }
Objective C
@property(readonly, getter=isActive) BOOL active
Обсуждение
Для параметра, чтобы быть активным, код языка штриховки должен использовать параметр в функции и код платформы (
MTLComputeCommandEncoder
илиMTLRenderCommandEncoder
) должен указать индекс для аргумента функции в соответствующей таблице параметра. Например, для удовлетворения требования кода платформы приложение может вызватьsetVertexBuffer:offset:atIndex:
методMTLRenderCommandEncoder
указать индекс в буферной таблице параметра для aMTLBuffer
объект, использующийся в качестве параметра функции вершины.Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.
-
index
СвойствоИндекс в таблице параметра, соответствующей аргументу функции. (только для чтения)
Обсуждение
Кодер команды (
MTLComputeCommandEncoder
илиMTLRenderCommandEncoder
) указывает индекс в соответствующей таблице параметра. Например, приложение может вызватьsetTexture:atIndex:
методMTLComputeCommandEncoder
указать индекс в таблице параметра текстуры для aMTLTexture
объект, использующийся в качестве параметра вычислить функции.Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.
-
type
СвойствоТип ресурса параметра. (только для чтения)
Объявление
Swift
var type: MTLArgumentType { get }
Objective C
@property(readonly) MTLArgumentType type
Обсуждение
Это свойство указывает, какой тип ресурса используется (буфер, текстура, сэмплер или threadgroup память) в коде языка штриховки. Для получения информации о возможных значениях посмотрите
MTLArgumentType
.Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.
-
bufferAlignment
СвойствоТребуемое выравнивание байта в памяти для буферных данных в аргументе функции. (только для чтения)
Объявление
Swift
var bufferAlignment: Int { get }
Objective C
@property(readonly) NSUInteger bufferAlignment
Обсуждение
Если параметром не является буфер, запрашивать это свойство является фатальной ошибкой.
Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.
-
bufferDataSize
СвойствоРазмер, в байтах, буферных данных в аргументе функции. (только для чтения)
Объявление
Swift
var bufferDataSize: Int { get }
Objective C
@property(readonly) NSUInteger bufferDataSize
Обсуждение
Если параметром не является буфер, запрашивать это свойство является фатальной ошибкой.
Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.
-
bufferDataType
СвойствоТип данных буферных данных в аргументе функции. (только для чтения)
Объявление
Swift
var bufferDataType: MTLDataType { get }
Objective C
@property(readonly) MTLDataType bufferDataType
Обсуждение
Если параметром не является буфер, запрашивать это свойство является фатальной ошибкой.
Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.
-
bufferStructType
СвойствоВозвращает описание данных структуры, содержавшихся в буферном параметре. (только для чтения)
Объявление
Swift
var bufferStructType: MTLStructType? { get }
Objective C
@property(readonly) MTLStructType *bufferStructType
Обсуждение
Для получения информации о возможных возвращенных значениях посмотрите
MTLStructType
. Если параметром не является буфер, запрашивать это свойство является фатальной ошибкой. Если параметром является буфер, но тип данных буфера не является структурой, значение этого свойстваnil
.Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.
-
textureDataType
СвойствоТип данных параметра текстуры. (только для чтения)
Объявление
Swift
var textureDataType: MTLDataType { get }
Objective C
@property(readonly) MTLDataType textureDataType
Обсуждение
Для получения информации о возможных значениях посмотрите
MTLDataType
. Если параметром не является текстура, запрашивать это свойство является фатальной ошибкой.Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.
-
textureType
СвойствоТип текстуры параметра текстуры. (только для чтения)
Объявление
Swift
var textureType: MTLTextureType { get }
Objective C
@property(readonly) MTLTextureType textureType
Обсуждение
Для получения информации о возможных значениях посмотрите
MTLTextureType
. Если параметром не является текстура, запрашивать это свойство является фатальной ошибкой.Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.
-
threadgroupMemoryAlignment
СвойствоТребуемое выравнивание байта в памяти для threadgroup данных в параметре вычислить функции. (только для чтения)
Объявление
Swift
var threadgroupMemoryAlignment: Int { get }
Objective C
@property(readonly) NSUInteger threadgroupMemoryAlignment
Обсуждение
Если параметром не является threadgroup, запрашивать это свойство является фатальной ошибкой. Металлическая реализация определяет это значение.
Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.
-
threadgroupMemoryDataSize
СвойствоРазмер, в байтах, threadgroup данных в параметре вычислить функции. (только для чтения)
Объявление
Swift
var threadgroupMemoryDataSize: Int { get }
Objective C
@property(readonly) NSUInteger threadgroupMemoryDataSize
Обсуждение
Если параметром не является threadgroup, запрашивать это свойство является фатальной ошибкой. Металлическая реализация определяет это значение.
Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.
-
Функциональные ограничения доступа к данным параметра в коде языка штриховки.
Объявление
Swift
enum MTLArgumentAccess : UInt { case ReadOnly case ReadWrite case WriteOnly }
Objective C
typedef enum : NSUInteger { MTLArgumentAccessReadOnly = 0, MTLArgumentAccessReadWrite = 1, MTLArgumentAccessWriteOnly = 2 } MTLArgumentAccess;
Константы
-
ReadOnly
MTLArgumentAccessReadOnly
Функция может только считать свои данные параметра.
Доступный в iOS 8.0 и позже.
-
ReadWrite
MTLArgumentAccessReadWrite
Функция может или считать или записать свои данные параметра.
Доступный в iOS 8.0 и позже.
-
WriteOnly
MTLArgumentAccessWriteOnly
Функция может только записать свои данные параметра.
Доступный в iOS 8.0 и позже.
Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.
-
-
Тип ресурса связался с параметром функции.
Объявление
Swift
enum MTLArgumentType : UInt { case Buffer case ThreadgroupMemory case Texture case Sampler }
Objective C
typedef enum : NSUInteger { MTLArgumentTypeBuffer = 0, MTLArgumentTypeThreadgroupMemory = 1, MTLArgumentTypeTexture = 2, MTLArgumentTypeSampler = 3 } MTLArgumentType;
Константы
-
Buffer
MTLArgumentTypeBuffer
Этим параметром является буфер.
Доступный в iOS 8.0 и позже.
-
ThreadgroupMemory
MTLArgumentTypeThreadgroupMemory
Этим параметром является указатель на threadgroup память.
Доступный в iOS 8.0 и позже.
-
Texture
MTLArgumentTypeTexture
Этим параметром является текстура.
Доступный в iOS 8.0 и позже.
-
Sampler
MTLArgumentTypeSampler
Этим параметром является сэмплер.
Доступный в iOS 8.0 и позже.
Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.
-
-
Тип данных аргумента функции, как это объявляется в коде языка штриховки.
Объявление
Swift
enum MTLDataType : UInt { case None case Struct case Array case Float case Float2 case Float3 case Float4 case Float2x2 case Float2x3 case Float2x4 case Float3x2 case Float3x3 case Float3x4 case Float4x2 case Float4x3 case Float4x4 case Half case Half2 case Half3 case Half4 case Half2x2 case Half2x3 case Half2x4 case Half3x2 case Half3x3 case Half3x4 case Half4x2 case Half4x3 case Half4x4 case Int case Int2 case Int3 case Int4 case UInt case UInt2 case UInt3 case UInt4 case Short case Short2 case Short3 case Short4 case UShort case UShort2 case UShort3 case UShort4 case Char case Char2 case Char3 case Char4 case UChar case UChar2 case UChar3 case UChar4 case Bool case Bool2 case Bool3 case Bool4 }
Objective C
typedef enum : NSUInteger { MTLDataTypeNone = 0, MTLDataTypeStruct = 1, MTLDataTypeArray = 2, MTLDataTypeFloat = 3, MTLDataTypeFloat2 = 4, MTLDataTypeFloat3 = 5, MTLDataTypeFloat4 = 6, MTLDataTypeFloat2x2 = 7, MTLDataTypeFloat2x3 = 8, MTLDataTypeFloat2x4 = 9, MTLDataTypeFloat3x2 = 10, MTLDataTypeFloat3x3 = 11, MTLDataTypeFloat3x4 = 12, MTLDataTypeFloat4x2 = 13, MTLDataTypeFloat4x3 = 14, MTLDataTypeFloat4x4 = 15, MTLDataTypeHalf = 16, MTLDataTypeHalf2 = 17, MTLDataTypeHalf3 = 18, MTLDataTypeHalf4 = 19, MTLDataTypeHalf2x2 = 20, MTLDataTypeHalf2x3 = 21, MTLDataTypeHalf2x4 = 22, MTLDataTypeHalf3x2 = 23, MTLDataTypeHalf3x3 = 24, MTLDataTypeHalf3x4 = 25, MTLDataTypeHalf4x2 = 26, MTLDataTypeHalf4x3 = 27, MTLDataTypeHalf4x4 = 28, MTLDataTypeInt = 29, MTLDataTypeInt2 = 30, MTLDataTypeInt3 = 31, MTLDataTypeInt4 = 32, MTLDataTypeUInt = 33, MTLDataTypeUInt2 = 34, MTLDataTypeUInt3 = 35, MTLDataTypeUInt4 = 36, MTLDataTypeShort = 37, MTLDataTypeShort2 = 38, MTLDataTypeShort3 = 39, MTLDataTypeShort4 = 40, MTLDataTypeUShort = 41, MTLDataTypeUShort2 = 42, MTLDataTypeUShort3 = 43, MTLDataTypeUShort4 = 44, MTLDataTypeChar = 45, MTLDataTypeChar2 = 46, MTLDataTypeChar3 = 47, MTLDataTypeChar4 = 48, MTLDataTypeUChar = 49, MTLDataTypeUChar2 = 50, MTLDataTypeUChar3 = 51, MTLDataTypeUChar4 = 52, MTLDataTypeBool = 53, MTLDataTypeBool2 = 54, MTLDataTypeBool3 = 55, MTLDataTypeBool4 = 56 } MTLDataType;
Константы
-
None
MTLDataTypeNone
Параметр не соответствует никакому типу данных. Если параметр не имеет никакого допустимого типа данных, это только возвращается.
Доступный в iOS 8.0 и позже.
-
Struct
MTLDataTypeStruct
Структура.
Доступный в iOS 8.0 и позже.
-
Array
MTLDataTypeArray
Массив.
Доступный в iOS 8.0 и позже.
-
Float
MTLDataTypeFloat
32-разрядное значение с плавающей точкой.
Доступный в iOS 8.0 и позже.
-
Float2
MTLDataTypeFloat2
Вектор с 2 компонентами с 32-разрядными значениями с плавающей точкой.
Доступный в iOS 8.0 и позже.
-
Float3
MTLDataTypeFloat3
Вектор с 3 компонентами с 32-разрядными значениями с плавающей точкой.
Доступный в iOS 8.0 и позже.
-
Float4
MTLDataTypeFloat4
Вектор с 4 компонентами с 32-разрядными значениями с плавающей точкой.
Доступный в iOS 8.0 и позже.
-
Float2x2
MTLDataTypeFloat2x2
2x2 матрица компонента с 32-разрядными значениями с плавающей точкой.
Доступный в iOS 8.0 и позже.
-
Float2x3
MTLDataTypeFloat2x3
2x3 матрица компонента с 32-разрядными значениями с плавающей точкой.
Доступный в iOS 8.0 и позже.
-
Float2x4
MTLDataTypeFloat2x4
2x4 матрица компонента с 32-разрядными значениями с плавающей точкой.
Доступный в iOS 8.0 и позже.
-
Float3x2
MTLDataTypeFloat3x2
3x2 матрица компонента с 32-разрядными значениями с плавающей точкой.
Доступный в iOS 8.0 и позже.
-
Float3x3
MTLDataTypeFloat3x3
3x3 матрица компонента с 32-разрядными значениями с плавающей точкой.
Доступный в iOS 8.0 и позже.
-
Float3x4
MTLDataTypeFloat3x4
3x4 матрица компонента с 32-разрядными значениями с плавающей точкой.
Доступный в iOS 8.0 и позже.
-
Float4x2
MTLDataTypeFloat4x2
4x2 матрица компонента с 32-разрядными значениями с плавающей точкой.
Доступный в iOS 8.0 и позже.
-
Float4x3
MTLDataTypeFloat4x3
4x3 матрица компонента с 32-разрядными значениями с плавающей точкой.
Доступный в iOS 8.0 и позже.
-
Float4x4
MTLDataTypeFloat4x4
4x4 матрица компонента с 32-разрядными значениями с плавающей точкой.
Доступный в iOS 8.0 и позже.
-
Half
MTLDataTypeHalf
16-разрядное значение с плавающей точкой.
Доступный в iOS 8.0 и позже.
-
Half2
MTLDataTypeHalf2
Вектор с 2 компонентами с 16-разрядными значениями с плавающей точкой.
Доступный в iOS 8.0 и позже.
-
Half3
MTLDataTypeHalf3
Вектор с 3 компонентами с 16-разрядными значениями с плавающей точкой.
Доступный в iOS 8.0 и позже.
-
Half4
MTLDataTypeHalf4
Вектор с 4 компонентами с 16-разрядными значениями с плавающей точкой.
Доступный в iOS 8.0 и позже.
-
Half2x2
MTLDataTypeHalf2x2
2x2 матрица компонента с 16-разрядными значениями с плавающей точкой.
Доступный в iOS 8.0 и позже.
-
Half2x3
MTLDataTypeHalf2x3
2x3 матрица компонента с 16-разрядными значениями с плавающей точкой.
Доступный в iOS 8.0 и позже.
-
Half2x4
MTLDataTypeHalf2x4
2x4 матрица компонента с 16-разрядными значениями с плавающей точкой.
Доступный в iOS 8.0 и позже.
-
Half3x2
MTLDataTypeHalf3x2
3x2 матрица компонента с 16-разрядными значениями с плавающей точкой.
Доступный в iOS 8.0 и позже.
-
Half3x3
MTLDataTypeHalf3x3
3x3 матрица компонента с 16-разрядными значениями с плавающей точкой.
Доступный в iOS 8.0 и позже.
-
Half3x4
MTLDataTypeHalf3x4
3x4 матрица компонента с 16-разрядными значениями с плавающей точкой.
Доступный в iOS 8.0 и позже.
-
Half4x2
MTLDataTypeHalf4x2
4x2 матрица компонента с 16-разрядными значениями с плавающей точкой.
Доступный в iOS 8.0 и позже.
-
Half4x3
MTLDataTypeHalf4x3
4x3 матрица компонента с 16-разрядными значениями с плавающей точкой.
Доступный в iOS 8.0 и позже.
-
Half4x4
MTLDataTypeHalf4x4
4x4 матрица компонента с 16-разрядными значениями с плавающей точкой.
Доступный в iOS 8.0 и позже.
-
Int
MTLDataTypeInt
32-разрядное целочисленное значение со знаком.
Доступный в iOS 8.0 и позже.
-
Int2
MTLDataTypeInt2
Вектор с 2 компонентами с 32-разрядными целочисленными значениями со знаком.
Доступный в iOS 8.0 и позже.
-
Int3
MTLDataTypeInt3
Вектор с 3 компонентами с 32-разрядными целочисленными значениями со знаком.
Доступный в iOS 8.0 и позже.
-
Int4
MTLDataTypeInt4
Вектор с 4 компонентами с 32-разрядными целочисленными значениями со знаком.
Доступный в iOS 8.0 и позже.
-
UInt
MTLDataTypeUInt
32-разрядное целочисленное значение без знака.
Доступный в iOS 8.0 и позже.
-
UInt2
MTLDataTypeUInt2
Вектор с 2 компонентами с 32-разрядными целочисленными значениями без знака.
Доступный в iOS 8.0 и позже.
-
UInt3
MTLDataTypeUInt3
Вектор с 3 компонентами с 32-разрядными целочисленными значениями без знака.
Доступный в iOS 8.0 и позже.
-
UInt4
MTLDataTypeUInt4
Вектор с 4 компонентами с 32-разрядными целочисленными значениями без знака.
Доступный в iOS 8.0 и позже.
-
Short
MTLDataTypeShort
16-разрядное целочисленное значение со знаком.
Доступный в iOS 8.0 и позже.
-
Short2
MTLDataTypeShort2
Вектор с 2 компонентами с 16-разрядными целочисленными значениями со знаком.
Доступный в iOS 8.0 и позже.
-
Short3
MTLDataTypeShort3
Вектор с 3 компонентами с 16-разрядными целочисленными значениями со знаком.
Доступный в iOS 8.0 и позже.
-
Short4
MTLDataTypeShort4
Вектор с 4 компонентами с 16-разрядными целочисленными значениями со знаком.
Доступный в iOS 8.0 и позже.
-
UShort
MTLDataTypeUShort
16-разрядное целочисленное значение без знака.
Доступный в iOS 8.0 и позже.
-
UShort2
MTLDataTypeUShort2
Вектор с 2 компонентами с 16-разрядными целочисленными значениями без знака.
Доступный в iOS 8.0 и позже.
-
UShort3
MTLDataTypeUShort3
Вектор с 3 компонентами с 16-разрядными целочисленными значениями без знака.
Доступный в iOS 8.0 и позже.
-
UShort4
MTLDataTypeUShort4
Вектор с 4 компонентами с 16-разрядными целочисленными значениями без знака.
Доступный в iOS 8.0 и позже.
-
Char
MTLDataTypeChar
8-разрядное целочисленное значение со знаком.
Доступный в iOS 8.0 и позже.
-
Char2
MTLDataTypeChar2
Вектор с 2 компонентами с 8-разрядными целочисленными значениями со знаком.
Доступный в iOS 8.0 и позже.
-
Char3
MTLDataTypeChar3
Вектор с 3 компонентами с 8-разрядными целочисленными значениями со знаком.
Доступный в iOS 8.0 и позже.
-
Char4
MTLDataTypeChar4
Вектор с 4 компонентами с 8-разрядными целочисленными значениями со знаком.
Доступный в iOS 8.0 и позже.
-
UChar
MTLDataTypeUChar
8-разрядное целочисленное значение без знака.
Доступный в iOS 8.0 и позже.
-
UChar2
MTLDataTypeUChar2
Вектор с 2 компонентами с 8-разрядными целочисленными значениями без знака.
Доступный в iOS 8.0 и позже.
-
UChar3
MTLDataTypeUChar3
Вектор с 3 компонентами с 8-разрядными целочисленными значениями без знака.
Доступный в iOS 8.0 и позже.
-
UChar4
MTLDataTypeUChar4
Вектор с 4 компонентами с 8-разрядными целочисленными значениями без знака.
Доступный в iOS 8.0 и позже.
-
Bool
MTLDataTypeBool
Булево значение.
Доступный в iOS 8.0 и позже.
-
Bool2
MTLDataTypeBool2
Вектор с 2 компонентами с булевыми значениями.
Доступный в iOS 8.0 и позже.
-
Bool3
MTLDataTypeBool3
Вектор с 3 компонентами с булевыми значениями.
Доступный в iOS 8.0 и позже.
-
Bool4
MTLDataTypeBool4
Вектор с 4 компонентами с булевыми значениями.
Доступный в iOS 8.0 и позже.
Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.
-