Spec-Zone.ru › Web APIs

WebGLRenderingContext: метод bufferSubData()

Базовая поддержка Широко доступна

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с июля 2015 года.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

Примечание: Эта функция доступна в Веб-воркерах.

Метод WebGLRenderingContext.bufferSubData() API WebGL обновляет подмножество данных объекта буфера.

Синтаксис

bufferSubData(target, offset)
bufferSubData(target, offset, srcData)

Параметры

target

Значение GLenum, указывающее точку привязки (цель). Возможные значения:

gl.ARRAY_BUFFER

Буфер, содержащий атрибуты вершин, такие как координаты вершин, данные координат текстуры или цвет вершины.

gl.ELEMENT_ARRAY_BUFFER

Буфер, используемый для индексов элементов.

При использовании контекста WebGL 2, дополнительно доступны следующие значения:

gl.COPY_READ_BUFFER

Буфер для копирования из одного буфера в другой.

gl.COPY_WRITE_BUFFER

Буфер для копирования из одного буфера в другой.

gl.TRANSFORM_FEEDBACK_BUFFER

Буфер для операций обратной связи по преобразованию.

gl.UNIFORM_BUFFER

Буфер для хранения блоков однородных переменных.

gl.PIXEL_PACK_BUFFER

Буфер, используемый для операций передачи пикселей.

gl.PIXEL_UNPACK_BUFFER

Буфер, используемый для операций передачи пикселей.

dstByteOffset

Значение GLintptr, указывающее смещение в байтах, с которого начнется замена данных.

srcData Необязательно

Значение ArrayBuffer, SharedArrayBuffer, DataView или TypedArray, которые будут скопированы в хранилище данных.

srcOffset

Значение GLuint, указывающее смещение индекса элемента, с которого начать чтение буфера.

length Необязательно

Значение GLuint, по умолчанию равное 0.

Возвращаемое значение

None (undefined).

Исключения

  • Возникает ошибка gl.INVALID_VALUE, если данные будут записаны за пределы буфера или если data имеет значение null.
  • Возникает ошибка gl.INVALID_ENUM, если target не соответствует одному из разрешенных значений перечисления.

Примеры

Использование bufferSubData

const canvas = document.getElementById("canvas");
const gl = canvas.getContext("webgl");
const buffer = gl.createBuffer();
const data = new Float32Array([1, 2, 3, 4]);
gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
gl.bufferData(gl.ARRAY_BUFFER, 1024, gl.STATIC_DRAW);
gl.bufferSubData(gl.ARRAY_BUFFER, 512, data);

Спецификации

Спецификация
Спецификация WebGL
# 5.14.5

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
bufferSubData 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3

См. также

  • WebGL2RenderingContext.bufferSubData()
  • WebGLRenderingContext.createBuffer()
  • WebGLRenderingContext.bufferData()
  • Другие буферы: WebGLFramebuffer, WebGLRenderbuffer

© 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/WebGLRenderingContext/bufferSubData

Spec-Zone.ru

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