GPUBuffer: getMappedRange()-Methode
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.
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 einen ArrayBuffer
zurück, der den gemappten Inhalt des GPUBuffer
im angegebenen Bereich enthält.
Dies kann nur erfolgen, nachdem das GPUBuffer
erfolgreich mit GPUBuffer.mapAsync()
gemappt wurde (dies kann über GPUBuffer.mapState
überprüft werden). Während das GPUBuffer
gemappt ist, kann es in keinen GPU-Befehlen verwendet werden.
Wenn Sie die Arbeit mit den GPUBuffer
-Werten abgeschlossen haben, rufen Sie GPUBuffer.unmap()
auf, um es zu entmappen und damit wieder für die GPU zugänglich zu machen.
Syntax
getMappedRange()
getMappedRange(offset)
getMappedRange(offset, size)
Parameter
offset
Optional-
Eine Zahl, die den Offset in Bytes vom Anfang des gemappten Bereichs des
GPUBuffer
bis zum Anfang des imArrayBuffer
zurückzugebenden Bereichs darstellt. Wennoffset
weggelassen wird, ist der Standardwert 0. size
Optional-
Eine Zahl, die die Größe in Bytes des zurückzugebenden
ArrayBuffer
darstellt. Wennsize
weggelassen wird, erstreckt sich der Bereich bis zum Ende des gemappten 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 zu mappende Gesamtbereich (
size
falls angegeben oder gemappte Bereichslänge -offset
falls nicht) ist ein Vielfaches von 4. - Der Gesamtbereich liegt innerhalb der Grenzen des gemappten Bereichs und überschneidet sich nicht mit den
ArrayBuffer
-Bereichen, die von anderen aktivengetMappedRange()
-Aufrufen spezifiziert sind.
Ausnahmen
TypeError
DOMException
-
Wird ausgelöst, wenn versucht wird, den
ArrayBuffer
auf eine andere Weise als überGPUBuffer.unmap()
zu trennen.
Beispiele
Siehe die Hauptseite zu GPUBuffer
für ein Beispiel.
Spezifikationen
Specification |
---|
WebGPU # dom-gpubuffer-getmappedrange |
Browser-Kompatibilität
BCD tables only load in the browser
Siehe auch
- Die WebGPU API