MTLBlitCommandEncoder
Наследование
Не применимый
Оператор импорта
Swift
import Metal
Objective C
@import Metal;
Доступность
Доступный в iOS 8.0 и позже.
MTLBlitCommandEncoder протокол используется для определения интерфейса для объектов, которые могут закодировать копирующие ресурс команды в кадровый буфер. Используйте эти команды для управления содержанием текстур и буферов.
Операции копирования данных могут быть необходимыми для обработки изображений и текстурировать эффекты, такие как размывание или отражения. Вы также используете этих операторов для доступа к данным изображения, представляющимся вне экрана.
Ваше приложение не определяет классы, реализующие этот протокол. Создать a MTLBlitCommandEncoder объект, сначала вызовите blitCommandEncoder метод MTLCommandBuffer объект, в который Вы хотите закодировать команды копирования битового массива. Затем, обратитесь к методам MTLBlitCommandEncoder объект ставить в очередь команды копирования битового массива. Тогда вызовите endEncoding закончить процесс кодирования.
-
copyFromBuffer (_: sourceOffset:toBuffer:destinationOffset:size:) - copyFromBuffer:sourceOffset:toBuffer:destinationOffset:size:ТребуемыйДанные копий между двумя буферными объектами: из источника буферизуют в целевой буфер. (требуемый)
Объявление
Swift
func copyFromBuffer(_sourceBuffer: MTLBuffer, sourceOffsetsourceOffset: Int, toBufferdestinationBuffer: MTLBuffer, destinationOffsetdestinationOffset: Int, sizesize: Int)Objective C
- (void)copyFromBuffer:(id<MTLBuffer>)sourceBuffersourceOffset:(NSUInteger)sourceOffsettoBuffer:(id<MTLBuffer>)destinationBufferdestinationOffset:(NSUInteger)destinationOffsetsize:(NSUInteger)sizeПараметры
sourceBufferИсточник
MTLBufferобъект для работы копии. Значение не должно бытьnil.sourceOffsetТо, где в источнике буферизуют копирование, запускается с в байтах. Значение должно быть кратным числом
4байты.destinationBufferМесто назначения
MTLBufferобъект для работы копии. Значение не должно бытьnil.destinationOffsetТо, где в месте назначения буферизуют копирование, запускается в байтах. Значение должно быть кратным числом
4байты.sizeЧисло байтов для копирования. Значение должно быть кратным числом
4байты.Обсуждение
Использовать
sourceOffsetначинать копировать данные с где-нибудь в исходном буфере и использованииdestinationOffsetначинать копировать данные в где-нибудь в целевом буфере.Если источник и место назначения являются тем же буфером и диапазоном, скопированным перекрытия, результаты не определены.
Оператор импорта
Objective C
@import Metal;Swift
import MetalДоступность
Доступный в iOS 8.0 и позже.
-
copyFromBuffer(_:sourceOffset:sourceBytesPerRow:sourceBytesPerImage:sourceSize:toTexture:destinationSlice:destinationLevel:destinationOrigin:) - copyFromBuffer:sourceOffset:sourceBytesPerRow:sourceBytesPerImage:sourceSize:toTexture:destinationSlice:destinationLevel:destinationOrigin:ТребуемыйДанные изображения копий из источника буферизуют в целевую текстуру. (требуемый)
Объявление
Swift
func copyFromBuffer(_sourceBuffer: MTLBuffer, sourceOffsetsourceOffset: Int, sourceBytesPerRowsourceBytesPerRow: Int, sourceBytesPerImagesourceBytesPerImage: Int, sourceSizesourceSize: MTLSize, toTexturedestinationTexture: MTLTexture, destinationSlicedestinationSlice: Int, destinationLeveldestinationLevel: Int, destinationOrigindestinationOrigin: MTLOrigin)Objective C
- (void)copyFromBuffer:(id<MTLBuffer>)sourceBuffersourceOffset:(NSUInteger)sourceOffsetsourceBytesPerRow:(NSUInteger)sourceBytesPerRowsourceBytesPerImage:(NSUInteger)sourceBytesPerImagesourceSize:(MTLSize)sourceSizetoTexture:(id<MTLTexture>)destinationTexturedestinationSlice:(NSUInteger)destinationSlicedestinationLevel:(NSUInteger)destinationLeveldestinationOrigin:(MTLOrigin)destinationOriginПараметры
sourceBufferИсточник
MTLBufferобъект, содержащий данные для работы копии. Значение не должно бытьnil.sourceOffsetТо, где в источнике буферизуют копирование, запускается с в байтах. Расположение должно быть выровненное к размеру формата пикселя целевой текстуры. Значение должно быть кратным числом
64байты.sourceBytesPerRowЭто указывает шаг в байтах между строками исходной буферной памяти. Значение должно быть кратным числом
64байты и должны быть, должно быть меньше чем или равно 32 767 умноженным размером одного пикселя целевой текстурыsourceBytesPerImageДля 3D текстур и 2D текстур массива, шага в байтах между 2D изображениями исходной буферной памяти. Значение должно быть кратным числом
64байты.sourceSizeЧисло пикселей, по ширине, высоты, и глубины, для копирования в текстуру. Когда Вы копируете 1D, текстура, высота и глубина должны быть
1. При копировании 2D текстуры глубина должна быть1.destinationTextureМесто назначения
MTLTextureобъект для работы копии. Значение не должно бытьnilи не должен быть aframebufferOnlyтекстура, и не должна иметь формата пикселя PVRTC.destinationSliceЧасть целевой текстуры.
destinationLevelУровень множественного отображения целевой текстуры.
destinationOriginТо, где в месте назначения текстурируют копирование, запускается в байтах.
Обсуждение
Использовать
destinationSliceиdestinationLevelвыбрать единственное изображение целевой текстуры.Если формат пикселя текстуры является сжатым форматом, то
sourceSizeесли блок расширяется вне границ текстуры, должен быть кратное число размера блока формата пикселя или быть зафиксировано к краю текстуры. Для сжатого формата,sourceBytesPerRowчисло байтов от запуска одной строки блоков к запуску следующей строки блоков.Оператор импорта
Objective C
@import Metal;Swift
import MetalДоступность
Доступный в iOS 8.0 и позже.
-
copyFromTexture(_:sourceSlice:sourceLevel:sourceOrigin:sourceSize:toTexture:destinationSlice:destinationLevel:destinationOrigin:) - copyFromTexture:sourceSlice:sourceLevel:sourceOrigin:sourceSize:toTexture:destinationSlice:destinationLevel:destinationOrigin:ТребуемыйДанные изображения копий от части источника текстурируют к части целевой текстуры. (требуемый)
Объявление
Swift
func copyFromTexture(_sourceTexture: MTLTexture, sourceSlicesourceSlice: Int, sourceLevelsourceLevel: Int, sourceOriginsourceOrigin: MTLOrigin, sourceSizesourceSize: MTLSize, toTexturedestinationTexture: MTLTexture, destinationSlicedestinationSlice: Int, destinationLeveldestinationLevel: Int, destinationOrigindestinationOrigin: MTLOrigin)Objective C
- (void)copyFromTexture:(id<MTLTexture>)sourceTexturesourceSlice:(NSUInteger)sourceSlicesourceLevel:(NSUInteger)sourceLevelsourceOrigin:(MTLOrigin)sourceOriginsourceSize:(MTLSize)sourceSizetoTexture:(id<MTLTexture>)destinationTexturedestinationSlice:(NSUInteger)destinationSlicedestinationLevel:(NSUInteger)destinationLeveldestinationOrigin:(MTLOrigin)destinationOriginПараметры
sourceTextureИсточник
MTLTextureобъект для работы копии. Значение не должно бытьnilи не должен быть aframebufferOnlyтекстура.sourceSliceЧасть исходной текстуры.
sourceLevelУровень множественного отображения исходной текстуры.
sourceOriginИсточник части источника текстурирует для работы копии.
sourceSizeРазмер части источника текстурирует для работы копии.
destinationTextureМесто назначения
MTLTextureобъект для работы копии. Значение не должно бытьnilи не должен быть aframebufferOnlyтекстура.destinationSliceЧасть целевой текстуры.
destinationLevelУровень множественного отображения целевой текстуры.
destinationOriginТо, где в месте назначения текстурируют копирование, запускается.
Обсуждение
Использовать
sourceSliceиsourceLevelвместе выбрать единственное изображение исходной текстуры. ИспользоватьdestinationSliceиdestinationLevelвыбрать единственное изображение целевой текстуры.Источник и целевые текстуры должны иметь тот же формат пикселя и то же демонстрационное количество. Для сжатых форматов пикселя область копии должна быть выровненная к размеру блока того формата пикселя. Перекрывающиеся области в единственной текстуре приводят к неопределенным результатам.
Этот метод не может использоваться с подобластью текстуры, имеющей формат пикселя PVRTC. Метод может использоваться при копировании всей текстуры с форматом пикселя PVRTC.
Оператор импорта
Objective C
@import Metal;Swift
import MetalДоступность
Доступный в iOS 8.0 и позже.
-
copyFromTexture(_:sourceSlice:sourceLevel:sourceOrigin:sourceSize:toBuffer:destinationOffset:destinationBytesPerRow:destinationBytesPerImage:) - copyFromTexture:sourceSlice:sourceLevel:sourceOrigin:sourceSize:toBuffer:destinationOffset:destinationBytesPerRow:destinationBytesPerImage:ТребуемыйДанные изображения копий от части источника текстурируют в целевой буфер. (требуемый)
Объявление
Swift
func copyFromTexture(_sourceTexture: MTLTexture, sourceSlicesourceSlice: Int, sourceLevelsourceLevel: Int, sourceOriginsourceOrigin: MTLOrigin, sourceSizesourceSize: MTLSize, toBufferdestinationBuffer: MTLBuffer, destinationOffsetdestinationOffset: Int, destinationBytesPerRowdestinationBytesPerRow: Int, destinationBytesPerImagedestinationBytesPerImage: Int)Objective C
- (void)copyFromTexture:(id<MTLTexture>)sourceTexturesourceSlice:(NSUInteger)sourceSlicesourceLevel:(NSUInteger)sourceLevelsourceOrigin:(MTLOrigin)sourceOriginsourceSize:(MTLSize)sourceSizetoBuffer:(id<MTLBuffer>)destinationBufferdestinationOffset:(NSUInteger)destinationOffsetdestinationBytesPerRow:(NSUInteger)destinationBytesPerRowdestinationBytesPerImage:(NSUInteger)destinationBytesPerImageПараметры
sourceTextureИсточник
MTLTextureобъект для работы копии. Значение не должно бытьnilи не должен быть aframebufferOnlyтекстура. Текстура должна иметь демонстрационное количество1.sourceSliceЧасть исходной текстуры.
sourceLevelУровень множественного отображения исходной текстуры.
sourceOriginИсточник части источника текстурирует для работы копии.
sourceSizeРазмер части источника текстурирует для работы копии.
destinationBufferЦелевой буфер для работы копии.
destinationOffsetБайтовое смещение в буфер для копирования первой строки в. Значение должно быть кратным числом
64байты.destinationBytesPerRowШаг в байтах между строками источника текстурирует память. Значение должно быть кратным числом
64байты.destinationBytesPerImageДля 3D текстур и 2DArray текстуры, шаг в байтах между 2D изображениями источника текстурирует память. Значение должно быть кратным числом
64байты. и должно быть меньше чем или равно32767умноженный на размер одного пикселя исходной текстуры.Обсуждение
Использовать
sourceSliceиsourceLevelвыбрать единственное изображение исходной текстуры.Если формат пикселя текстуры является сжатым форматом, то
sourceSizeесли блок расширяется вне границ текстуры, должен быть кратное число размера блока формата пикселя или быть зафиксировано к краю текстуры. Для сжатого формата,destinationBytesPerRowчисло байтов от запуска одной строки блоков к запуску следующей строки блоков.Если исходная текстура имеет формат пикселя PVRTC, этот метод не может использоваться.
Оператор импорта
Objective C
@import Metal;Swift
import MetalДоступность
Доступный в iOS 8.0 и позже.
-
Заполняет буфер постоянным значением в каждом байте. (требуемый)
Объявление
Objective C
- (void)fillBuffer:(id<MTLBuffer>)bufferrange:(NSRange)rangevalue:(uint8_t)valueПараметры
bufferMTLBufferвозразите для заполнения. Значение не должно бытьnil.rangeДиапазон байтов для заполнения. Выравнивание и длина диапазона должны оба быть кратным числом
4байты. Длина диапазона не должна быть0.valueЗначение для записи в каждый байт.
Оператор импорта
Objective C
@import Metal;Swift
import MetalДоступность
Доступный в iOS 8.0 и позже.
-
Генерирует множественно отображается для текстуры от основного уровня множественного отображения до максимального уровня. (требуемый)
Объявление
Swift
func generateMipmapsForTexture(_tex: MTLTexture)Objective C
- (void)generateMipmapsForTexture:(id<MTLTexture>)texПараметры
texMTLTextureобъект, для которого можно генерировать, множественно отображается.Обсуждение
Множественные отображения сгенерированы с масштабированными изображениями для всех уровней до максимального уровня.
mipmapLevelCountдляtexдолжно быть больше, чем 1. Множественно отобразите работы генерации только для текстур с цветом-renderable и - поддающиеся фильтрованию форматы пикселя.Оператор импорта
Objective C
@import Metal;Swift
import MetalДоступность
Доступный в iOS 8.0 и позже.
