GPUBuffer:mapState 属性
mapState
是 GPUBuffer
接口的只读属性,表示 GPUBuffer
的映射状态。
值
一个枚举值。可能的值包括:
unmapped
-
缓冲区未映射。无法使用
GPUBuffer.getMappedRange()
在 JavaScript 中访问GPUBuffer
的内容。这可能是因为:- 尚未调用
GPUBuffer.mapAsync()
。 GPUBuffer
之前已映射,然后使用GPUBuffer.unmap()
再次取消映射。
- 尚未调用
pending
-
缓冲区尚未映射。已调用
GPUBuffer.mapAsync()
,但其Promise
目前处于挂起状态。无法使用GPUBuffer.getMappedRange()
在 JavaScript 中访问GPUBuffer
的内容。 mapped
-
缓冲区已映射。
GPUBuffer.mapAsync()
的Promise
已完成,现在可以使用GPUBuffer.getMappedRange()
在 JavaScript 中访问GPUBuffer
的内容。
示例
js
const stagingBuffer = device.createBuffer({
size: BUFFER_SIZE,
usage: GPUBufferUsage.MAP_READ | GPUBufferUsage.COPY_DST,
});
console.log(stagingBuffer.mapState); // "unmapped"
// ...
await stagingBuffer.mapAsync(
GPUMapMode.READ,
0, // Offset
BUFFER_SIZE, // Length
);
console.log(stagingBuffer.mapState); // "mapped"
规范
规范 |
---|
WebGPU # dom-gpubuffer-mapstate |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。