WebGL2RenderingContext: Methode bufferData()
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 Methode WebGL2RenderingContext.bufferData()
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
, der den Bindungspunkt (Ziel) angibt. Mögliche Werte sind:gl.ARRAY_BUFFER
-
Puffer, der Vertex-Attribute wie Vertex-Koordinaten, Texturkoordinatendaten oder Vertex-Farbendaten enthält.
gl.ELEMENT_ARRAY_BUFFER
-
Puffer, der für Elementindizes verwendet wird.
gl.COPY_READ_BUFFER
-
Puffer zum Kopieren von einem Pufferobjekt zu einem anderen.
gl.COPY_WRITE_BUFFER
-
Puffer zum Kopieren von einem Pufferobjekt zu einem anderen.
gl.TRANSFORM_FEEDBACK_BUFFER
-
Puffer für Transform-Feedback-Operationen.
gl.UNIFORM_BUFFER
-
Puffer, der zum Speichern von Uniformblöcken verwendet wird.
gl.PIXEL_PACK_BUFFER
-
Puffer, der für Pixelübertragungsoperationen verwendet wird.
gl.PIXEL_UNPACK_BUFFER
-
Puffer, der für Pixelübertragungsoperationen verwendet wird.
size
Optional-
Ein
GLsizeiptr
, das die Größe in Bytes des Datenspeichers des Pufferobjekts festlegt. Eines vonsize
undsrcData
muss angegeben werden. srcData
Optional-
Ein
TypedArray
oder einDataView
, das eineArrayBuffer
oderSharedArrayBuffer
ansieht, die in den Datenspeicher kopiert wird. Wennnull
, wird ein Datenspeicher trotzdem erstellt, aber der Inhalt ist nicht initialisiert und undefiniert. Eines vonsize
undsrcData
muss angegeben werden. usage
-
Ein
GLenum
, der das beabsichtige Verwendungsmuster des Datenspeichers zu Optimierungszwecken angibt. Mögliche Werte sind:gl.STATIC_DRAW
-
Der Inhalt soll einmal von der Anwendung angegeben und öfter als Quelle für WebGL-Zeichen- und Bildspezifikationsbefehle verwendet werden.
gl.DYNAMIC_DRAW
-
Der Inhalt soll wiederholt von der Anwendung neu spezifiziert und öfter als Quelle für WebGL-Zeichen- und Bildspezifikationsbefehle verwendet werden.
gl.STREAM_DRAW
-
Der Inhalt soll einmal von der Anwendung angegeben und höchstens ein paar Mal als Quelle für WebGL-Zeichen- und Bildspezifikationsbefehle verwendet werden.
gl.STATIC_READ
-
Der Inhalt soll einmal durch Lesen von WebGL-Daten angegeben und häufig von der Anwendung abgefragt werden.
gl.DYNAMIC_READ
-
Der Inhalt soll wiederholt durch Lesen von WebGL-Daten neu spezifiziert und häufig von der Anwendung abgefragt werden.
gl.STREAM_READ
-
Der Inhalt soll einmal durch Lesen von WebGL-Daten angegeben und höchstens ein paar Mal von der Anwendung abgefragt werden.
gl.STATIC_COPY
-
Der Inhalt soll einmal durch Lesen von WebGL-Daten angegeben und häufig als Quelle für WebGL-Zeichen- und Bildspezifikationsbefehle verwendet werden.
gl.DYNAMIC_COPY
-
Der Inhalt soll wiederholt durch Lesen von WebGL-Daten neu spezifiziert und häufig als Quelle für WebGL-Zeichen- und Bildspezifikationsbefehle verwendet werden.
gl.STREAM_COPY
-
Der Inhalt soll einmal durch Lesen von WebGL-Daten angegeben 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, bei dem das Lesen des Puffers beginnt. Nur erlaubt, wennsrcData
angegeben ist. length
Optional-
Ein
GLuint
, der standardmäßig auf 0 steht. Nur erlaubt, wennsrcOffset
angegeben ist.
Rückgabewert
Keiner (undefined
).
Ausnahmen
- Ein
gl.OUT_OF_MEMORY
-Fehler wird ausgelöst, wenn der Kontext den Datenspeicher mit der gegebenensize
nicht erstellen kann. - 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 |