WebGL2RenderingContext: метод copyBufferSubData()
Базовая поддержка Широко доступна
Эта функция хорошо отработана и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с сентября 2021 года.
Примечание: Эта функция доступна в Web Workers.
Метод WebGL2RenderingContext.copyBufferSubData() API WebGL 2 копирует часть данных из одного буфера в другой.
Синтаксис
copyBufferSubData(readTarget, writeTarget, readOffset, writeOffset, size)
Параметры
readTarget,writeTarget-
GLenumопределяющий точку привязки (цель), из которой нужно читать или писать данные. Возможные значения:-
gl.ARRAY_BUFFER: Буфер, содержащий атрибуты вершин, такие как координаты вершин, данные координат текстуры или данные цвета вершин. -
gl.ELEMENT_ARRAY_BUFFER: Буфер, используемый для индексов элементов. -
gl.COPY_READ_BUFFER: Буфер для копирования из одного объекта буфера в другой (предназначен специально для операций копирования). -
gl.COPY_WRITE_BUFFER: Буфер для копирования из одного объекта буфера в другой (предназначен специально для операций копирования). -
gl.TRANSFORM_FEEDBACK_BUFFER: Буфер для операций обратной связи с преобразованием. -
gl.UNIFORM_BUFFER: Буфер для хранения блоков униформ. -
gl.PIXEL_PACK_BUFFER: Буфер, используемый для операций передачи пикселей. -
gl.PIXEL_UNPACK_BUFFER: Буфер, используемый для операций передачи пикселей.
-
readOffset,writeOffset-
GLintptr, определяющий байтовый смещение, с которого следует начать чтение или запись в буфер. size-
GLsizeiв байтах, определяющий размер данных, которые нужно скопировать изreadTargetвwriteTarget.
Возвращаемое значение
Ничего (undefined).
Примеры
const srcBuffer = gl.createBuffer(); const dstBuffer = gl.createBuffer(); const data = new Float32Array(vertices); const length = vertices.length * 4; gl.bindBuffer(gl.ARRAY_BUFFER, srcBuffer); gl.bufferData(gl.ARRAY_BUFFER, data, gl.STATIC_DRAW); gl.bindBuffer(gl.COPY_READ_BUFFER, srcBuffer); gl.bindBuffer(gl.ARRAY_BUFFER, dstBuffer); gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(length), gl.STATIC_DRAW); gl.copyBufferSubData(gl.COPY_READ_BUFFER, gl.ARRAY_BUFFER, 0, 0, length);
Спецификации
| Спецификация |
|---|
| Спецификация WebGL 2.0 # 3.7.3 |
Совместимость с браузерами
| Рабочие столы | Мобильные | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
copyBufferSubData |
56 | 79 | 51 | 43 | 15 | 58 | 51 | 43 | 15 | 7.0 | 58 |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext/copyBufferSubData