WebGLRenderingContext:bufferSubData() 方法
基线 广泛可用
此功能已成熟稳定,可在许多设备和浏览器版本上运行。它从 2015 年 7 月.
报告反馈
语法
WebGLRenderingContext.bufferSubData()
是 WebGL API 的一个方法,用于更新缓冲区对象数据存储的一部分。bufferSubData(target, offset)
bufferSubData(target, offset, srcData)
js
参数
-
target
一个
GLenum
,指定绑定点(目标)。可能的值-
gl.ARRAY_BUFFER
包含顶点属性的缓冲区,例如顶点坐标、纹理坐标数据或顶点颜色数据。
-
gl.ELEMENT_ARRAY_BUFFER
用于元素索引的缓冲区。
当使用 WebGL 2 上下文 时,以下值也可用
-
gl.COPY_READ_BUFFER
用于从一个缓冲区对象复制到另一个缓冲区对象的缓冲区。
-
gl.COPY_READ_BUFFER
gl.COPY_WRITE_BUFFER
-
gl.TRANSFORM_FEEDBACK_BUFFER
用于变换反馈操作的缓冲区。
-
gl.UNIFORM_BUFFER
用于存储一致块的缓冲区。
-
gl.PIXEL_PACK_BUFFER
用于像素传输操作的缓冲区。
-
gl.PIXEL_PACK_BUFFER
gl.PIXEL_UNPACK_BUFFER
-
dstByteOffset
- 一个
GLintptr
,指定数据替换开始的字节偏移量。 -
srcData
可选 一个
ArrayBuffer
、SharedArrayBuffer
、DataView
或TypedArray
,将被复制到数据存储中。-
srcOffset
- 一个
GLuint
,指定开始读取缓冲区的元素索引偏移量。 -
length
可选
一个 GLuint
,默认为 0。
返回值
无 (undefined
)。
- 异常
- 如果数据将被写入缓冲区的末尾之外,或者如果
data
为null
,则会抛出gl.INVALID_VALUE
错误。
示例
如果 target
不是允许的枚举之一,则会抛出 gl.INVALID_ENUM
错误。
WebGLRenderingContext.bufferSubData()
是 WebGL API 的一个方法,用于更新缓冲区对象数据存储的一部分。const canvas = document.getElementById("canvas");
const gl = canvas.getContext("webgl");
const buffer = gl.createBuffer();
gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
gl.bufferData(gl.ARRAY_BUFFER, 1024, gl.STATIC_DRAW);
gl.bufferSubData(gl.ARRAY_BUFFER, 512, data);
规范
使用 bufferSubData |
---|
规范 # 5.14.5 |
浏览器兼容性
WebGL 规范