Буфер и операции текстуры: кодер команды копирования битового массива
MTLBlitCommandEncoder
обеспечивает методы для копирования данных между ресурсами (буферы и текстуры). Операции копирования данных могут быть необходимыми для обработки изображений и текстурировать эффекты, такие как размывание или отражения. Они могут привыкнуть к данным изображения доступа, представляющимся вне экрана.
Для выполнения операций копирования данных сначала создайте a MTLBlitCommandEncoder
объект путем вызова blitCommandEncoder
метод MTLCommandBuffer
. Тогда вызовите MTLBlitCommandEncoder
методы, описанные ниже для кодирования команд на буфер команд.
Копирование данных в памяти GPU между объектами ресурса
Следующий MTLBlitCommandEncoder
методы копируют данные изображения между объектами ресурса: между двумя буферными объектами, между двумя объектами текстуры, и между буфером и текстурой.
Копирование данных между двумя буферами
Метод copyFromBuffer:sourceOffset:toBuffer:destinationOffset:size:
данные копий между двумя буферами: из источника буферизуют в целевой буфер toBuffer
. Если источник и место назначения являются тем же буфером и диапазоном, скопированным перекрытия, результаты не определены.
Копирование данных от буфера до текстуры
Метод copyFromBuffer:sourceOffset:sourceBytesPerRow:sourceBytesPerImage:sourceSize:toTexture:destinationSlice:destinationLevel:destinationOrigin:
данные изображения копий из источника буферизуют в целевую текстуру toTexture
.
Копирование данных между двумя текстурами
Метод copyFromTexture:sourceSlice:sourceLevel:sourceOrigin:sourceSize:toTexture:destinationSlice:destinationLevel:destinationOrigin:
копирует область данных изображения между двумя текстурами: от единственной части куба и множественно отображают уровень исходной текстуры к целевой текстуре toTexture
.
Копирование данных с текстуры на буфер
Метод copyFromTexture:sourceSlice:sourceLevel:sourceOrigin:sourceSize:toBuffer:destinationOffset:destinationBytesPerRow:destinationBytesPerImage:
копирует область данных изображения от единственной части куба, и множественно отобразите уровень исходной текстуры в целевой буфер toBuffer
.
Генерация множественно отображается
generateMipmapsForTexture:
метод MTLBlitCommandEncoder
автоматически генерируйте, множественно отображается для данной текстуры, запускающейся с основного изображения текстуры уровня. generateMipmapsForTexture:
создает масштабируемые изображения для всех, множественно отображают уровни до максимального уровня.
Для получения дополнительной информации о том, как число множественных отображений и размер каждого множественное отображение определяются, посмотрите Части.
Заполнение содержания буфера
fillBuffer:range:value:
метод MTLBlitCommandEncoder
хранит 8-разрядную константу value
в каждом байте по указанному range
из данного буфера.
Окончание кодирующий для кодера команды копирования битового массива
Для окончания команд кодирования для кодера команды копирования битового массива вызвать endEncoding
. После окончания предыдущего кодера команды можно создать новый кодер команды любого типа для кодирования дополнительных команд в буфер команд.