GPUBuffer: getMappedRange() Methode
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Hinweis: Diese Funktion ist in Web Workers verfügbar.
Die getMappedRange() Methode der GPUBuffer Schnittstelle gibt ein ArrayBuffer zurück, das die abgebildeten Inhalte des GPUBuffer im angegebenen Bereich enthält.
Dies kann nur geschehen, nachdem der GPUBuffer erfolgreich mit GPUBuffer.mapAsync() abgebildet wurde (dies kann über GPUBuffer.mapState überprüft werden). Solange der GPUBuffer abgebildet ist, kann er nicht in GPU-Befehlen verwendet werden.
Wenn Sie die Arbeit mit den GPUBuffer-Werten abgeschlossen haben, rufen Sie GPUBuffer.unmap() auf, um ihn zu entkoppeln und wieder für die GPU zugänglich zu machen. Ein TypeError wird ausgelöst, wenn versucht wird, das ArrayBuffer auf eine andere Weise als über GPUBuffer.unmap() abzutrennen, beispielsweise durch Aufruf von transfer().
Syntax
getMappedRange()
getMappedRange(offset)
getMappedRange(offset, size)
Parameter
offsetOptional-
Eine Zahl, die den Versatz, in Bytes, von Beginn des abgebildeten Bereichs des
GPUBufferbis zum Beginn des imArrayBufferzurückzugebenden Bereichs darstellt. Wirdoffsetweggelassen, ist der Standardwert 0. sizeOptional-
Eine Zahl, die die Größe, in Bytes, des zurückzugebenden
ArrayBufferdarstellt. Wirdsizeweggelassen, erstreckt sich der Bereich bis zum Ende des abgebildeten Bereichs desGPUBuffer.
Rückgabewert
Ein ArrayBuffer.
Validierung
Die folgenden Kriterien müssen erfüllt sein, wenn getMappedRange() aufgerufen wird, andernfalls wird ein OperationError DOMException ausgelöst:
offsetist ein Vielfaches von 8.- Der gesamte Bereich, der abgebildet werden soll (
size, falls angegeben, oder die Länge des abgebildeten Bereichs -offset, falls nicht), ist ein Vielfaches von 4. - Der gesamte Bereich liegt innerhalb der Grenzen des abgebildeten Bereichs und überschneidet sich nicht mit den
ArrayBufferBereichen, die von anderen aktivengetMappedRange()Aufrufen angegeben wurden.
Beispiele
Siehe die Hauptseite GPUBuffer für ein Beispiel.
Spezifikationen
| Specification |
|---|
| WebGPU> # dom-gpubuffer-getmappedrange> |
Browser-Kompatibilität
Loading…
Siehe auch
- Die WebGPU API