GPUBuffer:mapState 属性

实验性: 这是一个 实验性技术
在生产环境中使用此功能之前,请仔细检查 浏览器兼容性表格

安全上下文:此功能仅在 安全上下文(HTTPS)中可用,在某些或所有 支持的浏览器 中。

mapStateGPUBuffer 接口的只读属性,表示 GPUBuffer 的映射状态。

一个枚举值。可能的值包括:

unmapped

缓冲区未映射。无法使用 GPUBuffer.getMappedRange() 在 JavaScript 中访问 GPUBuffer 的内容。这可能是因为:

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 的浏览器中加载。

另请参阅