GPUBuffer: getMappedRange() method

Khả dụng hạn chế

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

Note: This feature is available in Web Workers.

Phương thức getMappedRange() của giao diện GPUBuffer trả về ArrayBuffer chứa nội dung được ánh xạ của GPUBuffer trong phạm vi được chỉ định.

Điều này chỉ có thể xảy ra sau khi GPUBuffer được ánh xạ thành công bằng GPUBuffer.mapAsync() (có thể kiểm tra qua GPUBuffer.mapState). Khi GPUBuffer đang được ánh xạ, nó không thể được sử dụng trong bất kỳ lệnh GPU nào.

Khi bạn hoàn thành việc làm với các giá trị GPUBuffer, hãy gọi GPUBuffer.unmap() để hủy ánh xạ nó, làm cho nó có thể truy cập bởi GPU lại. TypeError được ném ra nếu có cố gắng tách ArrayBuffer theo bất kỳ cách nào khác ngoài qua GPUBuffer.unmap(), chẳng hạn như bằng cách gọi transfer().

Cú pháp

js
getMappedRange()
getMappedRange(offset)
getMappedRange(offset, size)

Tham số

offset Optional

Số đại diện cho độ lệch, tính bằng byte, từ đầu phạm vi được ánh xạ của GPUBuffer đến đầu phạm vi sẽ được trả về trong ArrayBuffer. Nếu offset bị bỏ qua, mặc định là 0.

size Optional

Số đại diện cho kích thước, tính bằng byte, của ArrayBuffer cần trả về. Nếu size bị bỏ qua, phạm vi mở rộng đến cuối phạm vi được ánh xạ của GPUBuffer.

Giá trị trả về

ArrayBuffer.

Xác thực

Các tiêu chí sau phải được đáp ứng khi gọi getMappedRange(), nếu không OperationError DOMException sẽ được ném ra:

  • offset là bội số của 8.
  • Tổng phạm vi cần ánh xạ (size nếu được chỉ định, hoặc độ dài phạm vi được ánh xạ - offset nếu không) là bội số của 4.
  • Tổng phạm vi nằm trong phạm vi được ánh xạ và không chồng chéo với các phạm vi ArrayBuffer được chỉ định bởi bất kỳ lệnh gọi getMappedRange() đang hoạt động nào khác.

Ví dụ

Xem trang GPUBuffer chính để biết ví dụ.

Thông số kỹ thuật

Thông số kỹ thuật
WebGPU
# dom-gpubuffer-getmappedrange

Tương thích trình duyệt

Xem thêm