值
这是一个枚举值。可能的值有:
未映射 (unmapped)-
缓冲区未被映射。无法使用
GPUBuffer.getMappedRange()在 JavaScript 中访问GPUBuffer的内容。这可能是因为:GPUBuffer.mapAsync()尚未被调用。GPUBuffer曾被映射,但随后又通过GPUBuffer.unmap()被取消映射。
pending-
缓冲区尚未映射。已经调用了
GPUBuffer.mapAsync(),但其Promise当前处于待定状态。目前无法使用GPUBuffer.getMappedRange()在 JavaScript 中访问GPUBuffer的内容。 已映射 (mapped)-
缓冲区已被映射。
GPUBuffer.mapAsync()的Promise已经 fulfilled,现在可以使用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 |
浏览器兼容性
加载中…