WebGL2RenderingContext: bufferData() Methode
Baseline Widely available *
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021.
* Some parts of this feature may have varying levels of support.
Hinweis: Diese Funktion ist in Web Workers verfügbar.
Die WebGL2RenderingContext.bufferData()
Methode der WebGL API erstellt und initialisiert den Datenspeicher des Pufferobjekts.
Syntax
bufferData(target, size, usage)
bufferData(target, srcData, usage)
bufferData(target, srcData, usage, srcOffset)
bufferData(target, srcData, usage, srcOffset, length)
Parameter
target
-
Ein
GLenum
, das den Bindungspunkt (Ziel) angibt. Mögliche Werte:gl.ARRAY_BUFFER
-
Puffer, der Vertex-Attribute enthält, wie z. B. Vertexkoordinaten, Texturkoordinatendaten oder Vertexfarbdaten.
gl.ELEMENT_ARRAY_BUFFER
-
Puffer, der für Elementindizes verwendet wird.
gl.COPY_READ_BUFFER
-
Puffer zum Kopieren von einem Pufferobjekt auf ein anderes.
gl.COPY_WRITE_BUFFER
-
Puffer zum Kopieren von einem Pufferobjekt auf ein anderes.
gl.TRANSFORM_FEEDBACK_BUFFER
-
Puffer für Transform-Feedback-Operationen.
gl.UNIFORM_BUFFER
-
Puffer zum Speichern von Uniform-Blöcken.
gl.PIXEL_PACK_BUFFER
-
Puffer für Pixelübertragungsoperationen.
gl.PIXEL_UNPACK_BUFFER
-
Puffer für Pixelübertragungsoperationen.
size
Optional-
Ein
GLsizeiptr
, der die Größe des Datenspeichers des Pufferobjekts in Bytes festlegt. Eines vonsize
undsrcData
muss angegeben werden. srcData
Optional-
Ein
TypedArray
oder einDataView
, das einArrayBuffer
oderSharedArrayBuffer
ansieht, das in den Datenspeicher kopiert wird. Wennnull
, wird trotzdem ein Datenspeicher erstellt, dessen Inhalt jedoch nicht initialisiert und undefiniert ist. Eines vonsize
undsrcData
muss angegeben werden. usage
-
Ein
GLenum
, das für die beabsichtigte Nutzungsmuster des Datenspeichers zur Optimierung angegeben wird. Mögliche Werte:gl.STATIC_DRAW
-
Der Inhalt soll einmal von der Anwendung spezifiziert werden und wird mehrmals als Quelle für WebGL-Zeichen- und Bildspezifikationsbefehle verwendet.
gl.DYNAMIC_DRAW
-
Der Inhalt soll von der Anwendung wiederholt neu spezifiziert und oft als Quelle für WebGL-Zeichen- und Bildspezifikationsbefehle verwendet werden.
gl.STREAM_DRAW
-
Der Inhalt soll einmal von der Anwendung spezifiziert und höchstens ein paar Mal als Quelle für WebGL-Zeichen- und Bildspezifikationsbefehle verwendet werden.
gl.STATIC_READ
-
Der Inhalt soll einmal durch das Lesen von Daten aus WebGL spezifiziert und von der Anwendung öfter abgefragt werden.
gl.DYNAMIC_READ
-
Der Inhalt soll durch wiederholtes Lesen von Daten aus WebGL neu spezifiziert und oft von der Anwendung abgefragt werden.
gl.STREAM_READ
-
Der Inhalt soll einmal durch das Lesen von Daten aus WebGL spezifiziert und höchstens ein paar Mal von der Anwendung abgefragt werden.
gl.STATIC_COPY
-
Der Inhalt soll einmal durch das Lesen von Daten aus WebGL spezifiziert und oft als Quelle für WebGL-Zeichen- und Bildspezifikationsbefehle verwendet werden.
gl.DYNAMIC_COPY
-
Der Inhalt soll durch wiederholtes Lesen von Daten aus WebGL neu spezifiziert und oft als Quelle für WebGL-Zeichen- und Bildspezifikationsbefehle verwendet werden.
gl.STREAM_COPY
-
Der Inhalt soll einmal durch das Lesen von Daten aus WebGL spezifiziert und höchstens ein paar Mal als Quelle für WebGL-Zeichen- und Bildspezifikationsbefehle verwendet werden.
srcOffset
Optional-
Ein
GLuint
, der den Elementindex-Offset angibt, ab dem der Puffer gelesen werden soll. Nur erlaubt, wennsrcData
bereitgestellt wird. length
Optional-
Ein
GLuint
, standardmäßig 0. Nur erlaubt, wennsrcOffset
angegeben ist.
Rückgabewert
Keiner (undefined
).
Ausnahmen
- Ein
gl.OUT_OF_MEMORY
-Fehler wird ausgelöst, wenn der Kontext nicht in der Lage ist, einen Datenspeicher mit der angegebenensize
zu erstellen. - Ein
gl.INVALID_VALUE
-Fehler wird ausgelöst, wennsize
negativ ist. - Ein
gl.INVALID_ENUM
-Fehler wird ausgelöst, wenntarget
oderusage
nicht einer der erlaubten Enums sind.
Spezifikationen
Specification |
---|
WebGL Specification # 5.14.5 |