Spec-Zone.ru › Web APIs

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

См. также

  • WebGLRenderingContext.bufferData()
  • WebGLRenderingContext.bufferSubData()
  • WebGLRenderingContext.getBufferParameter()
  • WebGL2RenderingContext.getBufferSubData()

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API