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)redgreen:(float)greenblue:(float)bluealpha:(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)depthBiasslopeScale:(float)slopeScaleclamp:(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Параметры
viewport3D прямоугольная область для отсечения области просмотра.
Обсуждение
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)modeoffset:(NSUInteger)offsetПараметры
modeРежим, определяющий, как контролируются выборки. Если
modeустановлен вMTLVisibilityResultModeBooleanи выборки передают глубину и получают тесты с помощью шаблона, средство рендеринга пишет любое ненулевое значение в буфер. Еслиmodeустановлен вMTLVisibilityResultModeDisabled, нет никакой попытки определить, проходят ли выборки те тесты.offsetКак далеко расположение результата видимости от запуска буфера в байтах.
offsetдолжно быть кратное число 8 байтов.Обсуждение
Значение по умолчанию для
modeMTLVisibilityResultModeDisabled.visibilityResultBufferсвойствоMTLRenderPassDescriptorуказывает расположение буфера демонстрационного результата испытаний видимости. ВMTLVisibilityResultModeBooleanрежим, когда выборка передает, устройство, пишет ненулевое значение в буфер. Если никакие выборки не передают, устройство может записать нуль или может не выполнить записи вообще. Чтобы гарантировать, что ненулевое значение указывает, выборка передает, буфер должен быть инициализирован для обнуления.Оператор импорта
Objective C
@import Metal;Swift
import MetalДоступность
Доступный в iOS 8.0 и позже.
См. также
-
Устанавливает буфер для функции вершинного шейдера в индексе в буферной таблице параметра со смещением, указывающим запуск данных. (требуемый)
Объявление
Objective C
- (void)setVertexBuffer:(id<MTLBuffer>)bufferoffset:(NSUInteger)offsetatIndex:(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> [])buffersoffsets:(const NSUInteger [])offsetswithRange:(NSRange)rangeПараметры
buffersМассив буферов для установки в буферной таблице параметра.
offsetsМассив смещений, каждое из которых указывает, как далеко запуск его данных от запуска его соответствующего буфера в байтах.
rangeДиапазон индексов в буферной таблице параметра.
Обсуждение
Буфер по умолчанию в каждом индексе
nil.Оператор импорта
Objective C
@import Metal;Swift
import MetalДоступность
Доступный в iOS 8.0 и позже.
-
Устанавливает смещение, указывающее запуск данных для буфера, уже связанного с функцией вершинного шейдера. (требуемый)
Объявление
Objective C
- (void)setVertexBufferOffset:(NSUInteger)offsetatIndex:(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 *)byteslength:(NSUInteger)lengthatIndex:(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>)sampleratIndex:(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> [])samplerswithRange:(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>)samplerlodMinClamp:(float)lodMinClamplodMaxClamp:(float)lodMaxClampatIndex:(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> [])samplerslodMinClamps:(const float [])lodMinClampslodMaxClamps:(const float [])lodMaxClampswithRange:(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>)textureatIndex:(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> [])textureswithRange:(NSRange)rangeПараметры
texturesМассив текстур для установки в таблице параметра текстуры.
rangeДиапазон индексов в таблице параметра текстуры.
Обсуждение
Текстура по умолчанию в каждом индексе
nil.Оператор импорта
Objective C
@import Metal;Swift
import MetalДоступность
Доступный в iOS 8.0 и позже.
-
Устанавливает буфер для функции программы построения теней фрагмента в индексе в буферной таблице параметра со смещением, указывающим запуск данных. (требуемый)
Объявление
Objective C
- (void)setFragmentBuffer:(id<MTLBuffer>)bufferoffset:(NSUInteger)offsetatIndex:(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> [])buffersoffsets:(const NSUInteger [])offsetswithRange:(NSRange)rangeПараметры
buffersМассив буферов для установки в буферной таблице параметра.
offsetsМассив смещений, каждое из которых указывает, как далеко данные от запуска его соответствующего буфера в байтах.
rangeДиапазон индексов в буферной таблице параметра.
Обсуждение
Буфер по умолчанию в каждом индексе
nil.Оператор импорта
Objective C
@import Metal;Swift
import MetalДоступность
Доступный в iOS 8.0 и позже.
-
Устанавливает смещение, указывающее запуск данных для буфера, уже связанного с функцией программы построения теней фрагмента. (требуемый)
Объявление
Objective C
- (void)setFragmentBufferOffset:(NSUInteger)offsetatIndex:(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 *)byteslength:(NSUInteger)lengthatIndex:(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>)sampleratIndex:(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> [])samplerswithRange:(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>)samplerlodMinClamp:(float)lodMinClamplodMaxClamp:(float)lodMaxClampatIndex:(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> [])samplerslodMinClamps:(const float [])lodMinClampslodMaxClamps:(const float [])lodMaxClampswithRange:(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>)textureatIndex:(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> [])textureswithRange:(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)primitiveTypevertexStart:(NSUInteger)vertexStartvertexCount:(NSUInteger)vertexCountinstanceCount:(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)primitiveTypevertexStart:(NSUInteger)vertexStartvertexCount:(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)primitiveTypeindexCount:(NSUInteger)indexCountindexType:(MTLIndexType)indexTypeindexBuffer:(id<MTLBuffer>)indexBufferindexBufferOffset:(NSUInteger)indexBufferOffsetinstanceCount:(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)primitiveTypeindexCount:(NSUInteger)indexCountindexType:(MTLIndexType)indexTypeindexBuffer:(id<MTLBuffer>)indexBufferindexBufferOffset:(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;Константы
-
PointMTLPrimitiveTypePointРастеризируйте точку в каждой вершине. Вершинный шейдер должен обеспечить
[[point_size]], или размер точки не определен.Доступный в iOS 8.0 и позже.
-
LineMTLPrimitiveTypeLineРастеризируйте строку между каждой отдельной парой вершин, приводящих к серии несвязанных строк. Если существует нечетное число вершин, последняя вершина проигнорирована.
Доступный в iOS 8.0 и позже.
-
LineStripMTLPrimitiveTypeLineStripРастеризируйте строку между каждой парой смежных вершин, приводящих к серии связанных строк (также названный ломаной линией).
Доступный в iOS 8.0 и позже.
-
TriangleMTLPrimitiveTypeTriangleДля каждого отдельного набора трех вершин растеризируйте треугольник. Если число вершин не является кратным числом три, или одна или две вершины проигнорированы.
Доступный в iOS 8.0 и позже.
-
TriangleStripMTLPrimitiveTypeTriangleStripДля каждых трех смежных вершин растеризируйте треугольник.
Доступный в 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;Константы
-
UInt16MTLIndexTypeUInt1616-разрядное целое без знака, используемое в качестве примитивного индекса.
Доступный в iOS 8.0 и позже.
-
UInt32MTLIndexTypeUInt3232-разрядное целое без знака, используемое в качестве примитивного индекса.
Доступный в 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;Константы
-
DisabledMTLVisibilityResultModeDisabledНе контролируйте выборки, передающие глубину и получающие тесты с помощью шаблона.
Доступный в iOS 8.0 и позже.
-
BooleanMTLVisibilityResultModeBooleanУкажите, передают ли выборки глубину и получают тесты с помощью шаблона.
Доступный в 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;Константы
-
NoneMTLCullModeNoneНе отбирать.
Доступный в iOS 8.0 и позже.
-
FrontMTLCullModeFrontОтберите обращенные к передней стороне примитивы.
Доступный в iOS 8.0 и позже.
-
BackMTLCullModeBackОтберите обращенные к задней стороне примитивы.
Доступный в 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;Константы
-
ClockwiseMTLWindingClockwiseПримитив, которому подошли к концу его вершины по часовой стрелке, упорядочивает, обращено к передней стороне.
Доступный в iOS 8.0 и позже.
-
CounterClockwiseMTLWindingCounterClockwiseПримитив, которому подошли к концу его вершины против часовой стрелки, упорядочивает, обращено к передней стороне.
Доступный в 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;Константы
-
FillMTLTriangleFillModeFillРастеризируйте треугольные и треугольные примитивы полосы как заполненные треугольники.
Доступный в iOS 8.0 и позже.
-
LinesMTLTriangleFillModeLinesРастеризируйте треугольные и треугольные примитивы полосы как строки.
Доступный в iOS 8.0 и позже.
Оператор импорта
Objective C
@import Metal;Swift
import MetalДоступность
Доступный в iOS 8.0 и позже.
-
