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
offset
Optional-
Eine Zahl, die den Versatz, in Bytes, von Beginn des abgebildeten Bereichs des
GPUBuffer
bis zum Beginn des imArrayBuffer
zurückzugebenden Bereichs darstellt. Wirdoffset
weggelassen, ist der Standardwert 0. size
Optional-
Eine Zahl, die die Größe, in Bytes, des zurückzugebenden
ArrayBuffer
darstellt. Wirdsize
weggelassen, 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:
offset
ist 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
ArrayBuffer
Bereichen, 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
Siehe auch
- Die WebGPU API