WebGL2RenderingContext: bufferData() 方法
Baseline 广泛可用 *
注意:此功能在 Web Workers 中可用。
WebGL API 的 WebGL2RenderingContext.bufferData() 方法创建并初始化缓冲区对象的数据存储。
语法
bufferData(target, size, usage)
bufferData(target, srcData, usage)
bufferData(target, srcData, usage, srcOffset)
bufferData(target, srcData, usage, srcOffset, length)
参数
目标-
一个
GLenum,指定绑定点(目标)。可能的值gl.ARRAY_BUFFER-
包含顶点属性的缓冲区,例如顶点坐标、纹理坐标数据或顶点颜色数据。
gl.ELEMENT_ARRAY_BUFFER-
用于元素索引的缓冲区。
gl.COPY_READ_BUFFER-
用于将一个缓冲区对象复制到另一个缓冲区的缓冲区。
gl.COPY_WRITE_BUFFER-
用于将一个缓冲区对象复制到另一个缓冲区的缓冲区。
gl.TRANSFORM_FEEDBACK_BUFFER-
用于变换反馈操作的缓冲区。
gl.UNIFORM_BUFFER-
用于存储 uniform 块的缓冲区。
gl.PIXEL_PACK_BUFFER-
用于像素传输操作的缓冲区。
gl.PIXEL_UNPACK_BUFFER-
用于像素传输操作的缓冲区。
size可选-
一个
GLsizeiptr,用于设置缓冲区对象数据存储的大小(以字节为单位)。必须提供size和srcData中的一个。 srcData可选-
一个
TypedArray或一个DataView,它视图一个ArrayBuffer或SharedArrayBuffer,该缓冲区将被复制到数据存储中。如果为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)。
异常
- 如果上下文无法使用给定的
size创建数据存储,则会抛出gl.OUT_OF_MEMORY错误。 - 如果
size为负数,则会抛出gl.INVALID_VALUE错误。 - 如果
target或usage不是允许的枚举值之一,则会抛出gl.INVALID_ENUM错误。
规范
| 规范 |
|---|
| WebGL 规范 # 5.14.5 |
浏览器兼容性
加载中…