GPUBuffer:getMappedRange() 方法
注意:此功能在 Web Workers 中可用。
GPUBuffer 介面的 getMappedRange() 方法返回一個 ArrayBuffer,其中包含指定範圍內 GPUBuffer 的已對映內容。
這隻有在 GPUBuffer 已透過 GPUBuffer.mapAsync() 成功對映後才能發生(可以透過 GPUBuffer.mapState 進行檢查)。在 GPUBuffer 被對映期間,它不能用於任何 GPU 命令。
當您完成使用 GPUBuffer 值的工作後,請呼叫 GPUBuffer.unmap() 來取消對映,使其可以再次被 GPU 訪問。如果嘗試透過 GPUBuffer.unmap() 以外的任何方式(例如呼叫 transfer())分離 ArrayBuffer,則會丟擲 TypeError。
語法
js
getMappedRange()
getMappedRange(offset)
getMappedRange(offset, size)
引數
offset可選-
一個數字,表示從
GPUBuffer已對映範圍的開始到要返回的ArrayBuffer中範圍開始的偏移量(以位元組為單位)。如果省略offset,則預設為 0。 size可選-
一個數字,表示要返回的
ArrayBuffer的大小(以位元組為單位)。如果省略size,則範圍將延伸到GPUBuffer已對映範圍的末尾。
返回值
一個 ArrayBuffer。
驗證
在呼叫 getMappedRange() 時,必須滿足以下標準,否則將丟擲 OperationError DOMException:
offset必須是 8 的倍數。- 要對映的總範圍(如果指定了
size,則為size;如果未指定,則為已對映範圍長度 -offset)必須是 4 的倍數。 - 總範圍必須在已對映範圍的邊界內,並且不能與其他任何活動的
getMappedRange()呼叫指定的ArrayBuffer範圍重疊。
示例
請參閱 主 GPUBuffer 頁面中的示例。
規範
| 規範 |
|---|
| WebGPU # dom-gpubuffer-getmappedrange |
瀏覽器相容性
載入中…