WebGLRenderingContext: framebufferTexture2D() Methode

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Hinweis: Diese Funktion ist in Web Workers verfügbar.

Die WebGLRenderingContext.framebufferTexture2D()-Methode des WebGL API bindet eine Textur an ein WebGLFramebuffer.

Syntax

js
framebufferTexture2D(target, attachment, textarget, texture, level)

Parameter

target

Ein GLenum, der den Bindungspunkt (target) spezifiziert. Mögliche Werte:

gl.FRAMEBUFFER

Sammlung von Pufferdatenspeichern für Farb-, Alpha-, Tiefen- und Schablonenpuffer, die zum Rendern eines Bildes verwendet werden.

Bei Verwendung eines WebGL 2-Kontexts sind zusätzlich die folgenden Werte verfügbar:

gl.DRAW_FRAMEBUFFER

Wird als Ziel für Zeichen-, Render-, Lösch- und Schreiboperationen verwendet.

gl.READ_FRAMEBUFFER

Wird als Quelle für Leseoperationen verwendet.

Beim Binden setzt gl.FRAMEBUFFER sowohl die Bindungspunkte gl.DRAW_FRAMEBUFFER als auch gl.READ_FRAMEBUFFER. Beim Referenzieren bezieht sich gl.FRAMEBUFFER auf die Bindung gl.DRAW_FRAMEBUFFER.

attachment

Ein GLenum, der den Anhangspunkt für die texture festlegt. Mögliche Werte:

  • gl.COLOR_ATTACHMENT0: Befestigt die Textur am Farb-Puffer des Framebuffers.
  • gl.DEPTH_ATTACHMENT: Befestigt die Textur am Tiefen-Puffer des Framebuffers.
  • gl.STENCIL_ATTACHMENT: Befestigt die Textur am Schablonen-Puffer des Framebuffers.

Bei Verwendung eines WebGL 2-Kontexts sind zusätzlich die folgenden Werte verfügbar:

  • gl.DEPTH_STENCIL_ATTACHMENT: Datenhaltung für Tiefen- und Schablonenpuffer.
  • gl.COLOR_ATTACHMENT1 gl.COLOR_ATTACHMENT2 ... gl.COLOR_ATTACHMENT15

Bei Verwendung der WEBGL_draw_buffers Erweiterung:

  • ext.COLOR_ATTACHMENT0_WEBGL (gleich wie gl.COLOR_ATTACHMENT0)
  • ext.COLOR_ATTACHMENT1_WEBGL ext.COLOR_ATTACHMENT2_WEBGL ... ext.COLOR_ATTACHMENT15_WEBGL

Bei Verwendung der WEBGL_depth_texture Erweiterung:

  • gl.DEPTH_STENCIL_ATTACHMENT: Datenhaltung für Tiefen- und Schablonenpuffer.
textarget

Ein GLenum, das das Texturziel spezifiziert. Mögliche Werte:

  • gl.TEXTURE_2D: Ein 2D-Bild.
  • gl.TEXTURE_CUBE_MAP_POSITIVE_X: Bild für die positive X-Seite des Würfels.
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_X: Bild für die negative X-Seite des Würfels.
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Y: Bild für die positive Y-Seite des Würfels.
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Y: Bild für die negative Y-Seite des Würfels.
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Z: Bild für die positive Z-Seite des Würfels.
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Z: Bild für die negative Z-Seite des Würfels.
texture

Ein WebGLTexture-Objekt, dessen Bild angehängt werden soll.

level

Ein GLint, der das Mipmap-Level des anzuhängenden Texturbildes angibt. Muss 0 sein.

Rückgabewert

Keine (undefined).

Ausnahmen

  • Ein gl.INVALID_ENUM Fehler wird geworfen, wenn

    • target nicht gl.FRAMEBUFFER ist.
    • attachment nicht einer der akzeptierten Anhangspunkte ist.
    • textarget nicht eines der akzeptierten Texturziele ist.
  • Ein gl.INVALID_VALUE Fehler wird geworfen, wenn level nicht 0 ist.

  • Ein gl.INVALID_OPERATION Fehler wird geworfen, wenn texture nicht 0 oder der Name eines existierenden Texturobjekts ist.

Beispiele

js
gl.framebufferTexture2D(
  gl.FRAMEBUFFER,
  gl.COLOR_ATTACHMENT0,
  gl.TEXTURE_2D,
  texture,
  0,
);

Spezifikationen

Specification
WebGL Specification
# 5.14.6

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch