Буфер и операции текстуры: кодер команды копирования битового массива

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. После окончания предыдущего кодера команды можно создать новый кодер команды любого типа для кодирования дополнительных команд в буфер команд.