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.
Hinweis: Dieses Feature ist verfügbar in Web Workers.
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 (target) angibt. Mögliche Werte:gl.ARRAY_BUFFER
-
Puffer, der Scheitelpunkteigenschaften enthält, wie z.B. Scheitelpunktkoordinaten, Texturkoordinatendaten oder Scheitelpunktfarbdaten.
gl.ELEMENT_ARRAY_BUFFER
-
Puffer, der für Elementindizes verwendet wird.
gl.COPY_READ_BUFFER
-
Puffer zum Kopieren von einem Pufferobjekt in ein anderes.
gl.COPY_WRITE_BUFFER
-
Puffer zum Kopieren von einem Pufferobjekt in ein anderes.
gl.TRANSFORM_FEEDBACK_BUFFER
-
Puffer für Transformations-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
, der die Größe in Bytes des Datenspeichers des Pufferobjekts festlegt. Einer vonsize
undsrcData
muss bereitgestellt werden. srcData
Optional-
Ein
ArrayBuffer
,SharedArrayBuffer
, einTypedArray
oder einDataView
, der in den Datenspeicher kopiert wird. Wennnull
, wird dennoch ein Datenspeicher erstellt, aber der Inhalt ist uninitialisiert und undefiniert. Einer vonsize
undsrcData
muss bereitgestellt werden. usage
-
Ein
GLenum
, der das beabsichtigte Nutzungsmuster des Datenspeichers für Optimierungszwecke angibt. Mögliche Werte:gl.STATIC_DRAW
-
Der Inhalt soll einmal von der Anwendung festgelegt werden und viele Male als Quelle für WebGL-Zeichen- und Bildspezifikationsbefehle verwendet werden.
gl.DYNAMIC_DRAW
-
Der Inhalt soll wiederholt von der Anwendung neu festgelegt werden und viele Male als Quelle für WebGL-Zeichen- und Bildspezifikationsbefehle verwendet werden.
gl.STREAM_DRAW
-
Der Inhalt soll einmal von der Anwendung festgelegt werden 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 Daten aus WebGL festgelegt werden und viele Male von der Anwendung abgefragt werden.
gl.DYNAMIC_READ
-
Der Inhalt soll wiederholt durch Lesen von Daten aus WebGL neu festgelegt und viele Male von der Anwendung abgefragt werden.
gl.STREAM_READ
-
Der Inhalt soll einmal durch Lesen von Daten aus WebGL festgelegt und höchstens ein paar Mal von der Anwendung abgefragt werden.
gl.STATIC_COPY
-
Der Inhalt soll einmal durch Lesen von Daten aus WebGL festgelegt und viele Male als Quelle für WebGL-Zeichen- und Bildspezifikationsbefehle verwendet werden.
gl.DYNAMIC_COPY
-
Der Inhalt soll wiederholt durch Lesen von Daten aus WebGL neu festgelegt und viele Male als Quelle für WebGL-Zeichen- und Bildspezifikationsbefehle verwendet werden.
gl.STREAM_COPY
-
Der Inhalt soll einmal durch Lesen von Daten aus WebGL festgelegt 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, wo das Lesen des Puffers begonnen werden soll. Nur erlaubt, wennsrcData
bereitgestellt wird. length
Optional-
Ein
GLuint
, der standardmäßig 0 ist. 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 Aufzählungstypen sind.
Spezifikationen
Specification |
---|
WebGL Specification # 5.14.5 |
Browser-Kompatibilität
BCD tables only load in the browser