GPUBuffer: getMappedRange() method
Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
The getMappedRange()
method of the
GPUBuffer
interface returns an ArrayBuffer
containing the mapped contents of the GPUBuffer
in the specified range.
This can only happen once the GPUBuffer
has been successfully mapped with GPUBuffer.mapAsync()
(this can be checked via GPUBuffer.mapState
). While the GPUBuffer
is mapped it cannot be used in any GPU commands.
When you have finished working with the GPUBuffer
values, call GPUBuffer.unmap()
to unmap it, making it accessible to the GPU again.
Syntax
js
getMappedRange()
getMappedRange(offset)
getMappedRange(offset, size)
Parameters
offset
Optional-
A number representing the offset, in bytes, from the start of the
GPUBuffer
's mapped range to the start of the range to be returned in theArrayBuffer
. Ifoffset
is omitted, it defaults to 0. size
Optional-
A number representing the size, in bytes, of the
ArrayBuffer
to return. Ifsize
is omitted, the range extends to the end of theGPUBuffer
's mapped range.
Return value
An ArrayBuffer
.
Validation
The following criteria must be met when calling getMappedRange()
, otherwise an OperationError
DOMException
is thrown:
offset
is a multiple of 8.- The total range to be mapped (
size
if specified, or mapped range length -offset
if not) is a multiple of 4. - The total range is inside the bounds of the mapped range and does not overlap with the
ArrayBuffer
ranges specified by any other activegetMappedRange()
calls.
Exceptions
TypeError
DOMException
-
Thrown if an attempt is made to detach the
ArrayBuffer
in any way other than viaGPUBuffer.unmap()
.
Examples
See the main GPUBuffer
page for an example.
Specifications
Specification |
---|
WebGPU # dom-gpubuffer-getmappedrange |
Browser compatibility
BCD tables only load in the browser
See also
- The WebGPU API