The WebGL2RenderingContext.getBufferSubData()
method of the WebGL 2 API reads data from a buffer binding point and writes them to an ArrayBuffer
or SharedArrayBuffer
.
The WebGL2RenderingContext.getBufferSubData()
method of the WebGL 2 API reads data from a buffer binding point and writes them to an ArrayBuffer
or SharedArrayBuffer
.
js
getBufferSubData(target, srcByteOffset, dstData) getBufferSubData(target, srcByteOffset, dstData, dstOffset) getBufferSubData(target, srcByteOffset, dstData, dstOffset, length)
target
A GLenum
specifying the binding point (target). Possible values:
gl.ARRAY_BUFFER
Buffer containing vertex attributes, such as vertex coordinates, texture coordinate data, or vertex color data.
gl.ELEMENT_ARRAY_BUFFER
Buffer used for element indices.
gl.COPY_READ_BUFFER
Buffer for copying from one buffer object to another.
gl.COPY_WRITE_BUFFER
Buffer for copying from one buffer object to another.
gl.TRANSFORM_FEEDBACK_BUFFER
Buffer for transform feedback operations.
gl.UNIFORM_BUFFER
Buffer used for storing uniform blocks.
gl.PIXEL_PACK_BUFFER
Buffer used for pixel transfer operations.
gl.PIXEL_UNPACK_BUFFER
Buffer used for pixel transfer operations.
srcByteOffset
A GLintptr
specifying the byte offset from which to start reading from the buffer.
dstData
A TypedArray
or a DataView
object to copy the data to. If dstData
is a DataView
then dstOffset
and length
are interpreted in bytes, otherwise dstData
's element type is used.
dstOffset
Optional
A GLuint
specifying the element index offset to start writing in dstData
.
length
Optional
A GLuint
specifying the number of elements to copy. If this is 0 or not specified, getBufferSubData
will copy until the end of dstData
.
None (undefined
).
An INVALID_VALUE
error is generated if:
offset
+ returnedData.byteLength
would extend beyond the end of the buffer returnedData
is null
offset
is less than zero.An INVALID_OPERATION
error is generated if:
target
target
is TRANSFORM_FEEDBACK_BUFFER
, and any transform feedback object is currently active. js
const buffer = gl.createBuffer(); gl.bindBuffer(gl.ARRAY_BUFFER, buffer); gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(vertices), gl.STATIC_DRAW); const arrBuffer = new ArrayBuffer( vertices.length * Float32Array.BYTES_PER_ELEMENT, ); gl.getBufferSubData(gl.ARRAY_BUFFER, 0, new Float32Array(arrBuffer));
Specification |
---|
WebGL 2.0 Specification # 3.7.3 |
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | |
SharedArrayBuffer_as_param |
60 | 79 | 79 | No | 47 | No | 60 | 60 | 79 | 44 | No | 8.0 |
getBufferSubData |
56 | 79 | 51 | No | 43 | 15 | 58 | 58 | 51 | 43 | 15 | 7.0 |
© 2005–2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext/getBufferSubData