Spec-Zone.ru › Web APIs

WebGL2RenderingContext: метод bufferData()

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

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

* Некоторые части этой функции могут иметь различный уровень поддержки.

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

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

Метод WebGL2RenderingContext.bufferData() API WebGL создаёт и инициализирует хранилище данных объекта буфера.

Синтаксис

bufferData(target, size, usage)
bufferData(target, srcData, usage)
bufferData(target, srcData, usage, srcOffset)
bufferData(target, srcData, usage, srcOffset, length)

Параметры

target

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

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

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

GLsizeiptr тип, устанавливающий размер хранилища данных объекта буфера в байтах. Необходимо указать один из size и srcData.

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

ArrayBuffer, SharedArrayBuffer, TypedArray или DataView, которые будут скопированы в хранилище данных. Если null, хранилище данных всё ещё создаётся, но содержимое неинициализировано и неопределено. Необходимо указать один из size и srcData.

usage

GLenum тип, определяющий предполагаемый шаблон использования хранилища данных для оптимизации. Возможные значения:

gl.STATIC_DRAW

Содержимое предназначено для однократного указания приложением и многократного использования в качестве источника команд WebGL для рисования и задания изображений.

gl.DYNAMIC_DRAW

Содержимое предназначено для многократного переопределения приложением и многократного использования в качестве источника команд WebGL для рисования и задания изображений.

gl.STREAM_DRAW

Содержимое предназначено для однократного указания приложением и использования не более нескольких раз в качестве источника команд WebGL для рисования и задания изображений.

gl.STATIC_READ

Содержимое предназначено для однократного указания считыванием данных из WebGL и многократного запроса приложением.

gl.DYNAMIC_READ

Содержимое предназначено для многократного переопределения считыванием данных из WebGL и многократного запроса приложением.

gl.STREAM_READ

Содержимое предназначено для однократного указания считыванием данных из WebGL и запроса не более нескольких раз приложением.

gl.STATIC_COPY

Содержимое предназначено для однократного указания считыванием данных из WebGL и многократного использования в качестве источника команд WebGL для рисования и задания изображений.

gl.DYNAMIC_COPY

Содержимое предназначено для многократного переопределения считыванием данных из WebGL и многократного использования в качестве источника команд WebGL для рисования и задания изображений.

gl.STREAM_COPY

Содержимое предназначено для однократного указания считыванием данных из WebGL и использования не более нескольких раз в качестве источника команд WebGL для рисования и задания изображений.

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

GLuint тип, определяющий смещение индекса элемента, с которого начать чтение буфера. Допускается только при указании srcData.

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

GLuint тип, по умолчанию 0. Допускается только при указании srcOffset.

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

Ничего (undefined).

Исключения

  • Ошибка gl.OUT_OF_MEMORY возникает, если контекст не может создать хранилище данных с заданным size.
  • Ошибка gl.INVALID_VALUE возникает, если size отрицательно.
  • Ошибка gl.INVALID_ENUM возникает, если target или usage не являются одним из разрешенных перечислений.

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

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

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

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari в iOS Samsung Internet WebView Android
bufferData 56 79 51 43 15 58 51 43 15 7.0 58
srcData_param_accepts_SharedArrayBuffer 60 79 79 47 Нет 60 79 44 Нет 8.0 60

См. также

  • WebGLRenderingContext.bufferData()
  • WebGLRenderingContext.createBuffer()
  • WebGLRenderingContext.bufferSubData()
  • Другие буферы: 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/WebGL2RenderingContext/bufferData

Spec-Zone.ru

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