GPUBuffer: mapState 屬性

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

安全上下文: 此功能僅在安全上下文(HTTPS)中可用,且支援此功能的瀏覽器數量有限。

注意:此功能在 Web Workers 中可用。

mapStateGPUBuffer 介面的一個只讀屬性,表示 GPUBuffer 的對映狀態。

這是一個列舉值。可能的值有:

未對映 (unmapped)

緩衝區未被對映。無法使用 GPUBuffer.getMappedRange() 在 JavaScript 中訪問 GPUBuffer 的內容。這可能是因為:

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

瀏覽器相容性

另見