MTLRenderCommandEncoder
Наследование
Не применимый
Оператор импорта
Swift
import Metal
Objective C
@import Metal;
Доступность
Доступный в iOS 8.0 и позже.
MTLRenderCommandEncoder
протокол используется для определения интерфейса для объектов, кодирующих состояние рендеринга графики и команды в буфер команд. Ваше приложение не определяет классы, реализующие этот протокол.
Выполнять передачу рендеринга с кодером команды рендеринга:
Создайте a
MTLRenderCommandEncoder
объект путем вызоваrenderCommandEncoderWithDescriptor:
методMTLCommandBuffer
объект, в котором Вы хотите закодировать команды рендеринга. (Не используйте стандартное выделение и методы инициализации для создания aMTLRenderCommandEncoder
объект.) Кодер команды рендеринга представляет единственную передачу рендеринга в определенное присоединение. Как правило, Вы создаете aMTLRenderPassAttachmentDescriptor
возразите один раз, чтобы описать присоединение и затем использоватьMTLRenderPassAttachmentDescriptor
неоднократно для столького же рендеринга передает сколько место назначения для рендеринга команд.Вызовите
setRenderPipelineState:
метод для указания aMTLRenderPipelineState
это определяет состояние конвейера рендеринга графики, включая функции программы построения теней. (Вы обычно создаете этоMTLRenderPipelineState
нечасто; например, когда инициализируется Ваше приложение. Когда Вы создаете aMTLRenderPipelineState
, у Вас есть опция получить отражательные данные вMTLRenderPipelineReflection
это показывает подробные данные вершины и функций фрагмента и их параметров.)Укажите ресурсы для ввода к и выведите от функций программы построения теней. Установите расположение (индекс) каждого ресурса в его соответствующей таблице параметра.
Укажите дополнительное состояние стандартной функции, такое как область просмотра, разрежьте ножницами прямоугольник, тест глубины, и получите тестовые настройки с помощью шаблона.
Нарисуйте графические примитивы.
Вызовите
endEncoding
метод для завершения кодера команды рендеринга.
-
Указывает постоянный совмещенный цвет и альфа-значения. (требуемый)
Объявление
Swift
func setBlendColorRed(_
red
: Float, greengreen
: Float, blueblue
: Float, alphaalpha
: Float)Objective C
- (void)setBlendColorRed:(float)
red
green:(float)green
blue:(float)blue
alpha:(float)alpha
Параметры
red
Постоянное красное значение смешения.
green
Постоянное зеленое значение смешения.
blue
Постоянное синее значение смешения.
alpha
Постоянная альфа смешивает значение.
Обсуждение
Постоянный совмещенный цвет и альфа-значения запрашивают все присоединения для этого кодера. Можно использовать
red
,green
, иblue
значения сMTLBlendFactorBlendColor
иMTLBlendFactorOneMinusBlendColor
факторы смешения.alpha
значение может использоваться сMTLBlendFactorBlendAlpha
иMTLBlendFactorOneMinusBlendAlpha
факторы смешения.Значение по умолчанию (0, 0, 0, 0), который является
MTLBlendFactorZero
. Для других значений посмотритеMTLBlendFactor
.Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.
-
setCullMode (_:) - setCullMode:
ТребуемыйСредства управления, отобраны ли примитивы, когда переднее направление, обратная обточка, или не отобрал вообще. (требуемый)
Объявление
Swift
func setCullMode(_
cullMode
: MTLCullMode)Objective C
- (void)setCullMode:(MTLCullMode)
cullMode
Параметры
cullMode
Какие примитивы отобраны, если таковые имеются.
Обсуждение
Отбор может использоваться для удаления невидимой поверхности на некоторых геометрических моделях, таких как ориентируемая сфера, представленная с заполненными треугольниками. (Поверхность является ориентируемой, если ее примитивы последовательно рисуются или в по часовой стрелке или в против часовой стрелки упорядочивают.)
Значение по умолчанию
MTLCullModeNone
. Для других возможных значений посмотритеMTLCullMode
.Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.
См. также
-
Корректирует значения глубины от функций фрагмента масштабным коэффициентом и масштабирующимся смещением, фиксируя смещение к максимальной сумме. (требуемый)
Объявление
Swift
func setDepthBias(_
depthBias
: Float, slopeScaleslopeScale
: Float, clampclamp
: Float)Objective C
- (void)setDepthBias:(float)
depthBias
slopeScale:(float)slopeScale
clamp:(float)clamp
Параметры
depthBias
Систематическая ошибка, применяющаяся ко всем фрагментам.
slopeScale
Смещение, масштабирующееся с градиентом глубины примитива.
clamp
Максимальное значение смещения для применения к фрагменту.
Обсуждение
Значения по умолчанию:
depthBias
=0.0
;slopeScale
=0.0
;clamp
=0.0
.Масштабируемое наклоном смещение используется, чтобы улучшить и подстроить схемы затенения и избежать теневых прыщей (неумышленное самозатенение) и другие артефакты глубины, вызывающиеся компланарными многоугольниками. Смещение применяется к растеризированной глубине и влияет и на тестирование глубины и значение глубины, записанное в буфер глубины. Значение Смещения вычисляется следующим образом:
Смещение = (плавание)
depthBias
* 2^ (exp (макс. abs (z) в примитиве) - r) +slopeScale
* MaxSlopeгде r является самым маленьким положительным представимым значением в буфере глубины, который является числом битов мантиссы в представлении с плавающей точкой (исключая скрытый бит); например, 23 для float32.
MaxSlope является самым большим наклоном значения глубины в пикселе.
clamp
применяется как минута или макс., в зависимости от ее знака. Еслиclamp
> 0, затем Смещение = минута (clamp
, Смещение). Еслиclamp
<0, затем Смещение = макс. (clamp
, Смещение). Еслиclamp
нуль, он не применяется.Если также
depthBias
илиslopeScale
является ненулевым, тогда финал, вычисленное Смещение добавляется к значению глубины.Смещение только влияет на треугольные примитивы. Смещение глубины не применяется к точкам или строкам.
Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.
-
Устанавливает глубину и тестовое состояние шаблона. (требуемый)
Объявление
Swift
func setDepthStencilState(_
depthStencilState
: MTLDepthStencilState)Objective C
- (void)setDepthStencilState:(id<MTLDepthStencilState>)
depthStencilState
Параметры
depthStencilState
Объект, содержащий состояние шаблона и глубина.
Обсуждение
Глубина и состояния шаблона должны быть совместимы с текущей присоединяемой конфигурацией. Если тестирование глубины или запись глубины включены,
MTLRenderPassDescriptor
должен включать присоединение глубины. Если тестирование шаблона или запись шаблона включены,MTLRenderPassDescriptor
должен включать присоединение шаблона.Состояние глубины/шаблона по умолчанию
nil
, таким образом, поведение определяется значениями по умолчанию для свойствMTLDepthStencilDescriptor
.Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.
См. также
-
Устанавливает вьющийся порядок обращенных к передней стороне примитивов. (требуемый)
Объявление
Swift
func setFrontFacingWinding(_
frontFacingWinding
: MTLWinding)Objective C
- (void)setFrontFacingWinding:(MTLWinding)
frontFacingWinding
Параметры
frontFacingWinding
Проветривание, по часовой стрелке или против часовой стрелки, который считается обращенным к передней стороне примитивом.
Обсуждение
Значение по умолчанию
MTLWindingClockwise
.Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.
См. также
-
Устанавливает текущий конвейерный объект состояния рендеринга. (требуемый)
Объявление
Swift
func setRenderPipelineState(_
pipelineState
: MTLRenderPipelineState)Objective C
- (void)setRenderPipelineState:(id<MTLRenderPipelineState>)
pipelineState
Параметры
pipelineState
Объект, содержащий оцененную графику, представляющую конвейерное состояние, такое как программа построения теней, функционирует, видимость, смешение, и мультивыбирающий состояние.
Обсуждение
Необходимо установить конвейерное состояние рендеринга прежде, чем выпустить любые команды рисования.
Конвейерное состояние рендеринга по умолчанию
nil
, таким образом, поведение определяется значением по умолчаниюMTLRenderPipelineDescriptor
.Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.
-
setScissorRect (_:) - setScissorRect:
ТребуемыйУказывает, что прямоугольник для фрагмента режет ножницами тест. Отбрасываются фрагменты, лежащие вне разрезать ножницами прямоугольника. (требуемый)
Объявление
Swift
func setScissorRect(_
rect
: MTLScissorRect)Objective C
- (void)setScissorRect:(MTLScissorRect)
rect
Параметры
rect
Источник и размер разрезать ножницами прямоугольника.
Обсуждение
Разрезать ножницами прямоугольник должен лечь полностью в текущем присоединении.
Значение по умолчанию (0, 0, ширина, высота), где ширина и высота являются размерностями x и y присоединения, соответственно.
Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.
-
Устанавливает ссылочное значение шаблона для сравнительных испытаний шаблона. (требуемый)
Объявление
Swift
func setStencilReferenceValue(_
ref
: UInt32)Objective C
- (void)setStencilReferenceValue:(uint32_t)
ref
Параметры
ref
Ссылочное значение шаблона.
Обсуждение
Тест шаблона использует ссылочное значение шаблона, как описано для
MTLStencilDescriptor
. Значение по умолчанию 0.Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.
-
Наборы, как растеризировать треугольник и треугольник, разделяют примитивы. (требуемый)
Объявление
Swift
func setTriangleFillMode(_
fillMode
: MTLTriangleFillMode)Objective C
- (void)setTriangleFillMode:(MTLTriangleFillMode)
fillMode
Параметры
fillMode
Режим, определяющий, растеризировать ли треугольные и треугольные примитивы полосы как строки (
MTLTriangleFillModeLines
) или как заполненные треугольники (MTLTriangleFillModeFill
).Обсуждение
В
MTLTriangleFillModeFill
режим, растеризация рисует все пиксели, содержавшие в треугольнике. ВMTLTriangleFillModeLines
режим, растеризация проводит линии вокруг краев треугольников, и оставляет внутреннюю часть незаполненной.Значение по умолчанию
MTLTriangleFillModeFill
.Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.
-
setViewport (_:) - setViewport:
ТребуемыйУстанавливает область просмотра, использующуюся для преобразования вершин от нормализованных координат устройства до координат окна. (требуемый)
Объявление
Swift
func setViewport(_
viewport
: MTLViewport)Objective C
- (void)setViewport:(MTLViewport)
viewport
Параметры
viewport
3D прямоугольная область для отсечения области просмотра.
Обсуждение
x/y прямоугольник области просмотра должен лечь полностью в текущем присоединяемом размере. znear и zfar должны быть между
0.0
и1.0
. Зеркальное отражение позволяется.Отсекаются фрагменты, лежащие за пределами области просмотра вдоль размерностей x и y. Фрагменты за пределами z рядом и далеких плоскостей отсечения отсекаются.
Значения по умолчанию для области просмотра
originX = 0.0, originY = 0.0, width = w, height = h, znear = 0.0, and zfar = 1.0
, гдеw
иh
размерности x и y присоединения, соответственно.Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.
-
Средства управления, как контролировать выборки, передающие глубину и получающие тесты с помощью шаблона. (требуемый)
Объявление
Swift
func setVisibilityResultMode(_
mode
: MTLVisibilityResultMode, offsetoffset
: Int)Objective C
- (void)setVisibilityResultMode:(MTLVisibilityResultMode)
mode
offset:(NSUInteger)offset
Параметры
mode
Режим, определяющий, как контролируются выборки. Если
mode
установлен вMTLVisibilityResultModeBoolean
и выборки передают глубину и получают тесты с помощью шаблона, средство рендеринга пишет любое ненулевое значение в буфер. Еслиmode
установлен вMTLVisibilityResultModeDisabled
, нет никакой попытки определить, проходят ли выборки те тесты.offset
Как далеко расположение результата видимости от запуска буфера в байтах.
offset
должно быть кратное число 8 байтов.Обсуждение
Значение по умолчанию для
mode
MTLVisibilityResultModeDisabled
.visibilityResultBuffer
свойствоMTLRenderPassDescriptor
указывает расположение буфера демонстрационного результата испытаний видимости. ВMTLVisibilityResultModeBoolean
режим, когда выборка передает, устройство, пишет ненулевое значение в буфер. Если никакие выборки не передают, устройство может записать нуль или может не выполнить записи вообще. Чтобы гарантировать, что ненулевое значение указывает, выборка передает, буфер должен быть инициализирован для обнуления.Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.
См. также
-
Устанавливает буфер для функции вершинного шейдера в индексе в буферной таблице параметра со смещением, указывающим запуск данных. (требуемый)
Объявление
Objective C
- (void)setVertexBuffer:(id<MTLBuffer>)
buffer
offset:(NSUInteger)offset
atIndex:(NSUInteger)index
Параметры
buffer
Буфер для установки в таблице параметра.
offset
Как далеко запуск данных от запуска буфера в байтах.
index
Индекс в буферной таблице параметра.
Обсуждение
Буфер по умолчанию в каждом индексе
nil
.Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.
-
Устанавливает массив буферов для функции вершинного шейдера в диапазоне индексов в буферной таблице параметра. Этот метод также указывает соответствующие смещения для запуска каждого набора данных. (требуемый)
Объявление
Swift
func setVertexBuffers(_
buffers
: UnsafePointer<MTLBuffer?>, offsetsoffsets
: UnsafePointer<Int>, withRangerange
: NSRange)Objective C
- (void)setVertexBuffers:(const id<MTLBuffer> [])
buffers
offsets:(const NSUInteger [])offsets
withRange:(NSRange)range
Параметры
buffers
Массив буферов для установки в буферной таблице параметра.
offsets
Массив смещений, каждое из которых указывает, как далеко запуск его данных от запуска его соответствующего буфера в байтах.
range
Диапазон индексов в буферной таблице параметра.
Обсуждение
Буфер по умолчанию в каждом индексе
nil
.Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.
-
Устанавливает смещение, указывающее запуск данных для буфера, уже связанного с функцией вершинного шейдера. (требуемый)
Объявление
Objective C
- (void)setVertexBufferOffset:(NSUInteger)
offset
atIndex:(NSUInteger)index
Параметры
offset
Как далеко данные от запуска буфера в байтах.
index
Индекс в буферной таблице параметра.
Обсуждение
Вызовите этот метод для изменения смещения, которое Вы указали при привязке буфера с
setVertexBuffer:offset:atIndex:
илиsetVertexBuffers:offsets:withRange:
метод, или указать смещение данных после того, как обязательные данные непосредственно к вершинному шейдеру функционируют сsetVertexBytes:length:atIndex:
метод.Используя этот метод может привести к более быстрой производительности, чем привязка того же буфера снова с различным смещением.
Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.3 и позже.
-
Устанавливает блок данных для функции вершинного шейдера в индексе в буферной таблице параметра. (требуемый)
Объявление
Objective C
- (void)setVertexBytes:(const void *)
bytes
length:(NSUInteger)length
atIndex:(NSUInteger)index
Параметры
bytes
Адрес памяти, с которого можно скопировать данные.
length
Размер, в байтах, данных, которые будут скопированы.
index
Индекс в буферной таблице параметра.
Обсуждение
Используя этот метод эквивалентно созданию нового
MTLBuffer
объект от указанных данных и затем привязки его к вершинному шейдеру функционирует сsetVertexBuffer:offset:atIndex:
илиsetVertexBuffers:offsets:withRange:
метод, но избегает возможной производительности наверху создания посредникаMTLBuffer
объект.Этот метод является подходящим только для небольших, буферов данных с одним разовым использованием. Создайте a
MTLBuffer
возразите вместо этого, если Ваш буфер превышает 4 КБ в длине или сохранится для многократного использования (например, чтобы быть связанным с другим кодером команды для рендеринга следующего кадра).Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.3 и позже.
-
Устанавливает состояние сэмплера для функции вершинного шейдера в индексе в таблице параметра состояния сэмплера. (требуемый)
Объявление
Swift
func setVertexSamplerState(_
sampler
: MTLSamplerState, atIndexindex
: Int)Objective C
- (void)setVertexSamplerState:(id<MTLSamplerState>)
sampler
atIndex:(NSUInteger)index
Параметры
sampler
Состояние сэмплера для установки в таблице параметра.
index
Индекс в таблице параметра сэмплера.
Обсуждение
Состояние сэмплера по умолчанию в каждом индексе
nil
.Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.
-
Устанавливает массив состояний сэмплера для функции вершинного шейдера в диапазоне индексов в таблице параметра состояния сэмплера. (требуемый)
Объявление
Swift
func setVertexSamplerStates(_
samplers
: UnsafePointer<MTLSamplerState?>, withRangerange
: NSRange)Objective C
- (void)setVertexSamplerStates:(const id<MTLSamplerState> [])
samplers
withRange:(NSRange)range
Параметры
samplers
Массив состояний сэмплера для установки в таблице параметра.
range
Диапазон индексов в таблице параметра сэмплера.
Обсуждение
Состояние сэмплера по умолчанию в каждом индексе
nil
.Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.
-
setVertexSamplerState (_: lodMinClamp:lodMaxClamp:atIndex:) - setVertexSamplerState:lodMinClamp:lodMaxClamp:atIndex:
ТребуемыйУстанавливает состояние сэмплера для функции вершинного шейдера в индексе в таблице параметра состояния сэмплера. Этот метод также указывает значения зажима для минимального и максимального уровня подробности. (требуемый)
Объявление
Swift
func setVertexSamplerState(_
sampler
: MTLSamplerState, lodMinClamplodMinClamp
: Float, lodMaxClamplodMaxClamp
: Float, atIndexindex
: Int)Objective C
- (void)setVertexSamplerState:(id<MTLSamplerState>)
sampler
lodMinClamp:(float)lodMinClamp
lodMaxClamp:(float)lodMaxClamp
atIndex:(NSUInteger)index
Параметры
sampler
Состояние сэмплера для установки в таблице параметра.
lodMinClamp
Минимальный уровень подробности, использующейся при выборке текстуры.
lodMaxClamp
Максимальный уровень подробности, использующейся при выборке текстуры.
index
Индекс в таблице параметра сэмплера.
Обсуждение
Когда этот метод используется, значения зажима
lodMinClamp
иlodMaxClamp
свойства состояния сэмплера проигнорированы.Состояние сэмплера по умолчанию в каждом индексе
nil
.Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.
-
setVertexSamplerStates (_: lodMinClamps:lodMaxClamps:withRange:) - setVertexSamplerStates:lodMinClamps:lodMaxClamps:withRange:
ТребуемыйУстанавливает массив состояний сэмплера для функции вершинного шейдера в диапазоне индексов в таблице параметра состояния сэмплера. Этот метод также указывает соответствующие значения зажима для минимальных и максимальных уровней подробности. (требуемый)
Объявление
Swift
func setVertexSamplerStates(_
samplers
: UnsafePointer<MTLSamplerState?>, lodMinClampslodMinClamps
: UnsafePointer<Float>, lodMaxClampslodMaxClamps
: UnsafePointer<Float>, withRangerange
: NSRange)Objective C
- (void)setVertexSamplerStates:(const id<MTLSamplerState> [])
samplers
lodMinClamps:(const float [])lodMinClamps
lodMaxClamps:(const float [])lodMaxClamps
withRange:(NSRange)range
Параметры
samplers
Массив состояний сэмплера для установки в таблице параметра.
lodMinClamps
Массив минимальных уровней подробности, использующихся при выборке текстур и соответствующих
samplers
массив.lodMaxClamps
Массив максимальных уровней подробности, использующихся при выборке текстур и соответствующих
samplers
массив.range
Диапазон индексов в таблице параметра сэмплера.
Обсуждение
Когда этот метод используется, значения зажима
lodMinClamp
иlodMaxClamp
свойства состояния сэмплера проигнорированы.Состояние сэмплера по умолчанию в каждом индексе
nil
.Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.
-
Устанавливает текстуру для функции вершинного шейдера в индексе в таблице параметра текстуры. (требуемый)
Объявление
Swift
func setVertexTexture(_
texture
: MTLTexture?, atIndexindex
: Int)Objective C
- (void)setVertexTexture:(id<MTLTexture>)
texture
atIndex:(NSUInteger)index
Параметры
texture
Текстура для установки в таблице параметра.
index
Индекс в таблице параметра текстуры.
Обсуждение
Текстура по умолчанию в каждом индексе
nil
.Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.
-
Устанавливает массив текстур для функции вершинного шейдера в диапазоне индексов в таблице параметра текстуры. (требуемый)
Объявление
Swift
func setVertexTextures(_
textures
: UnsafePointer<MTLTexture?>, withRangerange
: NSRange)Objective C
- (void)setVertexTextures:(const id<MTLTexture> [])
textures
withRange:(NSRange)range
Параметры
textures
Массив текстур для установки в таблице параметра текстуры.
range
Диапазон индексов в таблице параметра текстуры.
Обсуждение
Текстура по умолчанию в каждом индексе
nil
.Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.
-
Устанавливает буфер для функции программы построения теней фрагмента в индексе в буферной таблице параметра со смещением, указывающим запуск данных. (требуемый)
Объявление
Objective C
- (void)setFragmentBuffer:(id<MTLBuffer>)
buffer
offset:(NSUInteger)offset
atIndex:(NSUInteger)index
Параметры
buffer
Буфер для установки в таблице параметра.
offset
Как далеко данные от запуска буфера в байтах.
index
Индекс в буферной таблице параметра.
Обсуждение
Буфер по умолчанию в каждом индексе
nil
.Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.
-
Устанавливает массив буферов для функции программы построения теней фрагмента в диапазоне индексов в буферной таблице параметра. Этот метод также указывает соответствующие смещения для запуска каждого набора данных. (требуемый)
Объявление
Swift
func setFragmentBuffers(_
buffers
: UnsafePointer<MTLBuffer?>, offsetsoffsets
: UnsafePointer<Int>, withRangerange
: NSRange)Objective C
- (void)setFragmentBuffers:(const id<MTLBuffer> [])
buffers
offsets:(const NSUInteger [])offsets
withRange:(NSRange)range
Параметры
buffers
Массив буферов для установки в буферной таблице параметра.
offsets
Массив смещений, каждое из которых указывает, как далеко данные от запуска его соответствующего буфера в байтах.
range
Диапазон индексов в буферной таблице параметра.
Обсуждение
Буфер по умолчанию в каждом индексе
nil
.Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.
-
Устанавливает смещение, указывающее запуск данных для буфера, уже связанного с функцией программы построения теней фрагмента. (требуемый)
Объявление
Objective C
- (void)setFragmentBufferOffset:(NSUInteger)
offset
atIndex:(NSUInteger)index
Параметры
offset
Как далеко данные от запуска буфера в байтах.
index
Индекс в буферной таблице параметра.
Обсуждение
Вызовите этот метод для изменения смещения, которое Вы указали при привязке буфера с
setFragmentBuffer:offset:atIndex:
илиsetFragmentBuffers:offsets:withRange:
метод, или указать смещение данных после того, как обязательные данные непосредственно к программе построения теней фрагмента функционируют сsetFragmentBytes:length:atIndex:
метод.Используя этот метод может привести к более быстрой производительности, чем привязка того же буфера снова с различным смещением.
Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.3 и позже.
-
Устанавливает блок данных для функции программы построения теней фрагмента в индексе в буферной таблице параметра. (требуемый)
Объявление
Objective C
- (void)setFragmentBytes:(const void *)
bytes
length:(NSUInteger)length
atIndex:(NSUInteger)index
Параметры
bytes
Адрес памяти, с которого можно скопировать данные.
length
Размер, в байтах, данных, которые будут скопированы.
index
Индекс в буферной таблице параметра.
Обсуждение
Используя этот метод эквивалентно созданию нового
MTLBuffer
объект от указанных данных и затем привязки его к программе построения теней фрагмента функционирует сsetFragmentBuffer:offset:atIndex:
илиsetFragmentBuffers:offsets:withRange:
метод, но избегает возможной производительности наверху создания посредникаMTLBuffer
объект.Этот метод является подходящим только для небольших, буферов данных с одним разовым использованием. Создайте a
MTLBuffer
возразите вместо этого, если Ваш буфер превышает 4 КБ в длине или сохранится для многократного использования (например, чтобы быть связанным с другим кодером команды для рендеринга следующего кадра).Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.3 и позже.
-
Устанавливает состояние сэмплера для функции программы построения теней фрагмента в индексе в таблице параметра состояния сэмплера. (требуемый)
Объявление
Swift
func setFragmentSamplerState(_
sampler
: MTLSamplerState, atIndexindex
: Int)Objective C
- (void)setFragmentSamplerState:(id<MTLSamplerState>)
sampler
atIndex:(NSUInteger)index
Параметры
sampler
Состояние сэмплера для установки в таблице параметра.
index
Индекс в таблице параметра сэмплера.
Обсуждение
Состояние сэмплера по умолчанию в каждом индексе
nil
.Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.
-
Устанавливает массив состояний сэмплера для функции программы построения теней фрагмента в диапазоне индексов в таблице параметра состояния сэмплера. (требуемый)
Объявление
Swift
func setFragmentSamplerStates(_
samplers
: UnsafePointer<MTLSamplerState?>, withRangerange
: NSRange)Objective C
- (void)setFragmentSamplerStates:(const id<MTLSamplerState> [])
samplers
withRange:(NSRange)range
Параметры
samplers
Массив состояний сэмплера для установки в таблице параметра.
range
Диапазон индексов в таблице параметра сэмплера.
Обсуждение
Состояние сэмплера по умолчанию в каждом индексе
nil
.Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.
-
setFragmentSamplerState (_: lodMinClamp:lodMaxClamp:atIndex:) - setFragmentSamplerState:lodMinClamp:lodMaxClamp:atIndex:
ТребуемыйУстанавливает состояние сэмплера для функции программы построения теней фрагмента в индексе в таблице параметра состояния сэмплера. Этот метод также указывает значения зажима для минимального и максимального уровня подробности. (требуемый)
Объявление
Swift
func setFragmentSamplerState(_
sampler
: MTLSamplerState, lodMinClamplodMinClamp
: Float, lodMaxClamplodMaxClamp
: Float, atIndexindex
: Int)Objective C
- (void)setFragmentSamplerState:(id<MTLSamplerState>)
sampler
lodMinClamp:(float)lodMinClamp
lodMaxClamp:(float)lodMaxClamp
atIndex:(NSUInteger)index
Параметры
sampler
Состояние сэмплера для установки в таблице параметра.
lodMinClamp
Минимальный уровень подробности, использующейся при выборке текстуры.
lodMaxClamp
Максимальный уровень подробности, использующейся при выборке текстуры.
index
Индекс в таблице параметра сэмплера.
Обсуждение
Когда этот метод используется, значения зажима
lodMinClamp
иlodMaxClamp
свойства состояния сэмплера проигнорированы.Состояние сэмплера по умолчанию в каждом индексе
nil
.Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.
-
setFragmentSamplerStates (_: lodMinClamps:lodMaxClamps:withRange:) - setFragmentSamplerStates:lodMinClamps:lodMaxClamps:withRange:
ТребуемыйУстанавливает массив состояний сэмплера для функции программы построения теней фрагмента в диапазоне индексов в таблице параметра состояния сэмплера. Этот метод также указывает соответствующие значения зажима для минимальных и максимальных уровней подробности. (требуемый)
Объявление
Swift
func setFragmentSamplerStates(_
samplers
: UnsafePointer<MTLSamplerState?>, lodMinClampslodMinClamps
: UnsafePointer<Float>, lodMaxClampslodMaxClamps
: UnsafePointer<Float>, withRangerange
: NSRange)Objective C
- (void)setFragmentSamplerStates:(const id<MTLSamplerState> [])
samplers
lodMinClamps:(const float [])lodMinClamps
lodMaxClamps:(const float [])lodMaxClamps
withRange:(NSRange)range
Параметры
samplers
Массив состояний сэмплера для установки в таблице параметра.
lodMinClamps
Массив минимальных уровней подробности, использующихся при выборке текстур и соответствующих
samplers
массив.lodMaxClamps
Массив максимальных уровней подробности, использующихся при выборке текстур и соответствующих
samplers
массив.range
Диапазон индексов в таблице параметра сэмплера.
Обсуждение
Когда этот метод используется, значения зажима
lodMinClamp
иlodMaxClamp
свойства состояния сэмплера проигнорированы.Состояние сэмплера по умолчанию в каждом индексе
nil
.Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.
-
Устанавливает текстуру для функции программы построения теней фрагмента в индексе в таблице параметра текстуры. (требуемый)
Объявление
Swift
func setFragmentTexture(_
texture
: MTLTexture?, atIndexindex
: Int)Objective C
- (void)setFragmentTexture:(id<MTLTexture>)
texture
atIndex:(NSUInteger)index
Параметры
texture
Текстура для установки в таблице параметра.
index
Индекс в таблице параметра текстуры.
Обсуждение
Текстура по умолчанию в каждом индексе
nil
.Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.
-
Устанавливает массив текстур для функции программы построения теней фрагмента в диапазоне индексов в таблице параметра текстуры. (требуемый)
Объявление
Swift
func setFragmentTextures(_
textures
: UnsafePointer<MTLTexture?>, withRangerange
: NSRange)Objective C
- (void)setFragmentTextures:(const id<MTLTexture> [])
textures
withRange:(NSRange)range
Параметры
textures
Массив текстур для установки в таблице параметра текстуры.
range
Диапазон индексов в таблице параметра текстуры.
Обсуждение
Текстура по умолчанию в каждом индексе
nil
.Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.
-
drawPrimitives (_: vertexStart:vertexCount:instanceCount:) - drawPrimitives:vertexStart:vertexCount:instanceCount:
ТребуемыйРендеринг много экземпляров примитивов с помощью данных вершины в непрерывных элементах матрицы. (требуемый)
Объявление
Swift
func drawPrimitives(_
primitiveType
: MTLPrimitiveType, vertexStartvertexStart
: Int, vertexCountvertexCount
: Int, instanceCountinstanceCount
: Int)Objective C
- (void)drawPrimitives:(MTLPrimitiveType)
primitiveType
vertexStart:(NSUInteger)vertexStart
vertexCount:(NSUInteger)vertexCount
instanceCount:(NSUInteger)instanceCount
Параметры
primitiveType
Тип примитивов, в которые собраны вершины.
vertexStart
Первый индекс, который нарисует.
vertexCount
Число индексов для рисования.
instanceCount
Число экземпляров для рисования.
Обсуждение
Экземпляр запускается с первой вершины в элементе матрицы в индексе
vertexStart
и концы в элементе матрицы в индексеvertexStart + vertexCount - 1
.instanceCount
определяет число экземпляров для рисования.Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.
-
Рендеринг один экземпляр примитивов с помощью данных вершины в непрерывных элементах матрицы. (требуемый)
Объявление
Swift
func drawPrimitives(_
primitiveType
: MTLPrimitiveType, vertexStartvertexStart
: Int, vertexCountvertexCount
: Int)Objective C
- (void)drawPrimitives:(MTLPrimitiveType)
primitiveType
vertexStart:(NSUInteger)vertexStart
vertexCount:(NSUInteger)vertexCount
Параметры
primitiveType
Тип примитивов, в которые собраны вершины.
vertexStart
Для каждого экземпляра, первый индекс, который нарисует.
vertexCount
Для каждого экземпляра, числа индексов для рисования.
Обсуждение
Получение запускается с первой вершины в элементе матрицы в индексе
vertexStart
и концы в элементе матрицы в индексеvertexStart + vertexCount - 1
.drawPrimitives:vertexStart:vertexCount:
совпадает сdrawPrimitives:vertexStart:vertexCount:instanceCount:
сinstanceCount
=1.Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.
-
drawIndexedPrimitives (_: indexCount:indexType:indexBuffer:indexBufferOffset:instanceCount:) - drawIndexedPrimitives:indexCount:indexType:indexBuffer:indexBufferOffset:instanceCount:
ТребуемыйРендеринг много экземпляров примитивов с помощью индексного списка указан в буфере. (требуемый)
Объявление
Swift
func drawIndexedPrimitives(_
primitiveType
: MTLPrimitiveType, indexCountindexCount
: Int, indexTypeindexType
: MTLIndexType, indexBufferindexBuffer
: MTLBuffer, indexBufferOffsetindexBufferOffset
: Int, instanceCountinstanceCount
: Int)Objective C
- (void)drawIndexedPrimitives:(MTLPrimitiveType)
primitiveType
indexCount:(NSUInteger)indexCount
indexType:(MTLIndexType)indexType
indexBuffer:(id<MTLBuffer>)indexBuffer
indexBufferOffset:(NSUInteger)indexBufferOffset
instanceCount:(NSUInteger)instanceCount
Параметры
primitiveType
Тип примитива, в который собраны вершины.
indexCount
Для каждого экземпляра, числа индексов для чтения из индексного буфера.
indexType
Тип данных индексов: любой 16-разрядное целое без знака (
MTLIndexTypeUInt16
) или 32-разрядное целое без знака (MTLIndexTypeUInt32
).indexBuffer
Буфер, содержащий индексы к вершинам.
indexBufferOffset
Байтовое смещение в
indexBuffer
начинать читать индексы из.instanceCount
Число экземпляров для рисования.
Обсуждение
Примитивная функциональность перезапуска добавляется с самым большим индексным значением целого без знака, относительно
indexType
(0xFFFF дляMTLIndexTypeUInt16
или 0xFFFFFFFF дляMTLIndexTypeUInt32
). Это функция заканчивает рисовать текущий примитив в указанном индексе и начинает рисовать новый со следующим индексом.indexBufferOffset
должен быть выровненный к 4 байтам.Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.
-
drawIndexedPrimitives (_: indexCount:indexType:indexBuffer:indexBufferOffset:) - drawIndexedPrimitives:indexCount:indexType:indexBuffer:indexBufferOffset:
ТребуемыйРендеринг один экземпляр примитивов с помощью индексного списка указан в буфере. (требуемый)
Объявление
Swift
func drawIndexedPrimitives(_
primitiveType
: MTLPrimitiveType, indexCountindexCount
: Int, indexTypeindexType
: MTLIndexType, indexBufferindexBuffer
: MTLBuffer, indexBufferOffsetindexBufferOffset
: Int)Objective C
- (void)drawIndexedPrimitives:(MTLPrimitiveType)
primitiveType
indexCount:(NSUInteger)indexCount
indexType:(MTLIndexType)indexType
indexBuffer:(id<MTLBuffer>)indexBuffer
indexBufferOffset:(NSUInteger)indexBufferOffset
Параметры
primitiveType
Тип примитива, в который собраны вершины.
indexCount
Для каждого экземпляра, числа индексов для чтения из индексного буфера.
indexType
Тип данных индексов: любое 16-разрядное целое без знака (
MTLIndexTypeUInt16
) или 32-разрядное целое без знака (MTLIndexTypeUInt32
).indexBuffer
Буфер, содержащий индексы к вершинам.
indexBufferOffset
Байтовое смещение в
indexBuffer
начинать читать индексы из.Обсуждение
Примитивная функциональность перезапуска добавляется с самым большим индексным значением целого без знака, относительно
indexType
(0xFFFF дляMTLIndexTypeUInt16
или 0xFFFFFFFF дляMTLIndexTypeUInt32
). Это функция заканчивает рисовать текущий примитив в указанном индексе и начинает рисовать новый со следующим индексом.indexBufferOffset
должен быть выровненный к 4 байтам.drawIndexedPrimitives:indexCount:indexType:indexBuffer:indexBufferOffset:
совпадает сdrawIndexedPrimitives:indexCount:indexType:indexBuffer:indexBufferOffset:instanceCount:
сinstanceCount
=1.Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.
Типы данных
-
Геометрический тип примитива для команд рисования.
Объявление
Swift
enum MTLPrimitiveType : UInt { case Point case Line case LineStrip case Triangle case TriangleStrip }
Objective C
typedef enum : NSUInteger { MTLPrimitiveTypePoint = 0, MTLPrimitiveTypeLine = 1, MTLPrimitiveTypeLineStrip = 2, MTLPrimitiveTypeTriangle = 3, MTLPrimitiveTypeTriangleStrip = 4 } MTLPrimitiveType;
Константы
-
Point
MTLPrimitiveTypePoint
Растеризируйте точку в каждой вершине. Вершинный шейдер должен обеспечить
[[point_size]]
, или размер точки не определен.Доступный в iOS 8.0 и позже.
-
Line
MTLPrimitiveTypeLine
Растеризируйте строку между каждой отдельной парой вершин, приводящих к серии несвязанных строк. Если существует нечетное число вершин, последняя вершина проигнорирована.
Доступный в iOS 8.0 и позже.
-
LineStrip
MTLPrimitiveTypeLineStrip
Растеризируйте строку между каждой парой смежных вершин, приводящих к серии связанных строк (также названный ломаной линией).
Доступный в iOS 8.0 и позже.
-
Triangle
MTLPrimitiveTypeTriangle
Для каждого отдельного набора трех вершин растеризируйте треугольник. Если число вершин не является кратным числом три, или одна или две вершины проигнорированы.
Доступный в iOS 8.0 и позже.
-
TriangleStrip
MTLPrimitiveTypeTriangleStrip
Для каждых трех смежных вершин растеризируйте треугольник.
Доступный в iOS 8.0 и позже.
Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.
-
-
Индексный тип для индексного буфера, что ссылочные вершины геометрических примитивов.
Объявление
Swift
enum MTLIndexType : UInt { case UInt16 case UInt32 }
Objective C
typedef enum : NSUInteger { MTLIndexTypeUInt16 = 0, MTLIndexTypeUInt32 = 1 } MTLIndexType;
Константы
-
UInt16
MTLIndexTypeUInt16
16-разрядное целое без знака, используемое в качестве примитивного индекса.
Доступный в iOS 8.0 и позже.
-
UInt32
MTLIndexTypeUInt32
32-разрядное целое без знака, используемое в качестве примитивного индекса.
Доступный в iOS 8.0 и позже.
Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.
-
-
Режим, определяющий, передают ли выборки глубину и получают тесты с помощью шаблона и контролировать ли выборки та передача.
Объявление
Swift
enum MTLVisibilityResultMode : UInt { case Disabled case Boolean }
Objective C
typedef enum : NSUInteger { MTLVisibilityResultModeDisabled = 0, MTLVisibilityResultModeBoolean = 1 } MTLVisibilityResultMode;
Константы
-
Disabled
MTLVisibilityResultModeDisabled
Не контролируйте выборки, передающие глубину и получающие тесты с помощью шаблона.
Доступный в iOS 8.0 и позже.
-
Boolean
MTLVisibilityResultModeBoolean
Укажите, передают ли выборки глубину и получают тесты с помощью шаблона.
Доступный в iOS 8.0 и позже.
Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.
-
-
Режим, определяющий, выполнить ли отбор и который тип примитивных отобрать.
Объявление
Swift
enum MTLCullMode : UInt { case None case Front case Back }
Objective C
typedef enum : NSUInteger { MTLCullModeNone = 0, MTLCullModeFront = 1, MTLCullModeBack = 2 } MTLCullMode;
Константы
-
None
MTLCullModeNone
Не отбирать.
Доступный в iOS 8.0 и позже.
-
Front
MTLCullModeFront
Отберите обращенные к передней стороне примитивы.
Доступный в iOS 8.0 и позже.
-
Back
MTLCullModeBack
Отберите обращенные к задней стороне примитивы.
Доступный в iOS 8.0 и позже.
Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.
-
-
Правило проветривания вершины, определяющее обращенный к передней стороне примитив.
Объявление
Swift
enum MTLWinding : UInt { case Clockwise case CounterClockwise }
Objective C
typedef enum : NSUInteger { MTLWindingClockwise = 0, MTLWindingCounterClockwise = 1 } MTLWinding;
Константы
-
Clockwise
MTLWindingClockwise
Примитив, которому подошли к концу его вершины по часовой стрелке, упорядочивает, обращено к передней стороне.
Доступный в iOS 8.0 и позже.
-
CounterClockwise
MTLWindingCounterClockwise
Примитив, которому подошли к концу его вершины против часовой стрелки, упорядочивает, обращено к передней стороне.
Доступный в iOS 8.0 и позже.
Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.
-
-
Режим, определяющий, как растеризировать треугольные и треугольные примитивы полосы.
Объявление
Swift
enum MTLTriangleFillMode : UInt { case Fill case Lines }
Objective C
typedef enum : NSUInteger { MTLTriangleFillModeFill = 0, MTLTriangleFillModeLines = 1 } MTLTriangleFillMode;
Константы
-
Fill
MTLTriangleFillModeFill
Растеризируйте треугольные и треугольные примитивы полосы как заполненные треугольники.
Доступный в iOS 8.0 и позже.
-
Lines
MTLTriangleFillModeLines
Растеризируйте треугольные и треугольные примитивы полосы как строки.
Доступный в iOS 8.0 и позже.
Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.
-