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>)
sourceBuffer
sourceOffset:(NSUInteger)sourceOffset
toBuffer:(id<MTLBuffer>)destinationBuffer
destinationOffset:(NSUInteger)destinationOffset
size:(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>)
sourceBuffer
sourceOffset:(NSUInteger)sourceOffset
sourceBytesPerRow:(NSUInteger)sourceBytesPerRow
sourceBytesPerImage:(NSUInteger)sourceBytesPerImage
sourceSize:(MTLSize)sourceSize
toTexture:(id<MTLTexture>)destinationTexture
destinationSlice:(NSUInteger)destinationSlice
destinationLevel:(NSUInteger)destinationLevel
destinationOrigin:(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>)
sourceTexture
sourceSlice:(NSUInteger)sourceSlice
sourceLevel:(NSUInteger)sourceLevel
sourceOrigin:(MTLOrigin)sourceOrigin
sourceSize:(MTLSize)sourceSize
toTexture:(id<MTLTexture>)destinationTexture
destinationSlice:(NSUInteger)destinationSlice
destinationLevel:(NSUInteger)destinationLevel
destinationOrigin:(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>)
sourceTexture
sourceSlice:(NSUInteger)sourceSlice
sourceLevel:(NSUInteger)sourceLevel
sourceOrigin:(MTLOrigin)sourceOrigin
sourceSize:(MTLSize)sourceSize
toBuffer:(id<MTLBuffer>)destinationBuffer
destinationOffset:(NSUInteger)destinationOffset
destinationBytesPerRow:(NSUInteger)destinationBytesPerRow
destinationBytesPerImage:(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>)
buffer
range:(NSRange)range
value:(uint8_t)value
Параметры
buffer
MTLBuffer
возразите для заполнения. Значение не должно быть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
Параметры
tex
MTLTexture
объект, для которого можно генерировать, множественно отображается.Обсуждение
Множественные отображения сгенерированы с масштабированными изображениями для всех уровней до максимального уровня.
mipmapLevelCount
дляtex
должно быть больше, чем 1. Множественно отобразите работы генерации только для текстур с цветом-renderable и - поддающиеся фильтрованию форматы пикселя.Оператор импорта
Objective C
@import Metal;
Swift
import Metal
Доступность
Доступный в iOS 8.0 и позже.