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 |
См. также
© 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