OES_draw_buffers_indexed

Baseline 2022
Newly available

Since December 2022, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

Die OES_draw_buffers_indexed Erweiterung ist Teil der WebGL API und ermöglicht die Nutzung unterschiedlicher Mischoptionen beim gleichzeitigen Schreiben in mehrere Farb-Puffer.

WebGL-Erweiterungen sind über die Methode WebGLRenderingContext.getExtension() verfügbar. Weitere Informationen finden Sie auch unter Verwendung von Erweiterungen im WebGL Tutorial.

Hinweis: Diese Erweiterung ist nur für WebGL2 Kontexte verfügbar.

Instanzmethoden

OES_draw_buffers_indexed.blendEquationiOES()

Setzt sowohl die RGB- als auch die Alpha-Berechnungsgleichungen für einen bestimmten Zeichnungspuffer.

OES_draw_buffers_indexed.blendEquationSeparateiOES()

Setzt die RGB- und Alpha-Berechnungsgleichungen separat für einen bestimmten Zeichnungspuffer.

OES_draw_buffers_indexed.blendFunciOES()

Definiert, welche Funktion beim Mischen von Pixeln für einen bestimmten Zeichnungspuffer verwendet wird.

OES_draw_buffers_indexed.blendFuncSeparateiOES()

Definiert, welche Funktion beim Mischen von Pixeln für RGB- und Alpha-Komponenten separat für einen bestimmten Zeichnungspuffer verwendet wird.

OES_draw_buffers_indexed.colorMaskiOES()

Legt fest, welche Farbkomponenten beim Zeichnen oder Rendern für einen bestimmten Zeichnungspuffer aktiviert oder deaktiviert werden sollen.

OES_draw_buffers_indexed.disableiOES()

Deaktiviert das Mischen für einen bestimmten Zeichnungspuffer.

OES_draw_buffers_indexed.enableiOES()

Aktiviert das Mischen für einen bestimmten Zeichnungspuffer.

Beispiele

Verwendung der OES_draw_buffers_indexed Erweiterung

Aktivieren Sie die Erweiterung mit einem Aufruf von WebGLRenderingContext.getExtension().

js
const ext = gl.getExtension("OES_draw_buffers_indexed");

Sie können jetzt das Mischen aktivieren, die Mischgleichung, die Mischfunktion und die Farbmaske für einen bestimmten Zeichnungspuffer festlegen.

js
// For gl.DRAW_BUFFER0
ext.enableiOES(gl.BLEND, 0);
ext.blendEquationiOES(0, gl.FUNC_ADD);
ext.blendFunciOES(0, gl.ONE, gl.ONE);
ext.colorMaskiOES(0, 1, 0, 0, 0);

// For gl.DRAW_BUFFER1
ext.enableiOES(gl.BLEND, 1);
ext.blendEquationSeparateiOES(1, gl.FUNC_ADD, gl.FUNC_SUBTRACT);
ext.blendFuncSeparateiOES(
  1,
  gl.SRC_ALPHA,
  gl.ONE_MINUS_SRC_ALPHA,
  gl.ZERO,
  gl.ZERO,
);
ext.colorMaskiOES(1, 0, 1, 0, 0);

Um Einstellungen für einen bestimmten Zeichnungspuffer abzurufen, verwenden Sie WebGL2RenderingContext.getIndexedParameter().

js
// For gl.DRAW_BUFFER0
gl.getIndexedParameter(gl.BLEND_EQUATION_RGB, 0);
gl.getIndexedParameter(gl.BLEND_EQUATION_ALPHA, 0);
gl.getIndexedParameter(gl.BLEND_SRC_RGB, 0);
gl.getIndexedParameter(gl.BLEND_SRC_ALPHA, 0);
gl.getIndexedParameter(gl.BLEND_DST_RGB, 0);
gl.getIndexedParameter(gl.BLEND_DST_ALPHA, 0);
gl.getIndexedParameter(gl.COLOR_WRITEMASK, 0);

// For gl.DRAW_BUFFER1
gl.getIndexedParameter(gl.BLEND_EQUATION_RGB, 1);
gl.getIndexedParameter(gl.BLEND_EQUATION_ALPHA, 1);
gl.getIndexedParameter(gl.BLEND_SRC_RGB, 1);
gl.getIndexedParameter(gl.BLEND_SRC_ALPHA, 1);
gl.getIndexedParameter(gl.BLEND_DST_RGB, 1);
gl.getIndexedParameter(gl.BLEND_DST_ALPHA, 1);
gl.getIndexedParameter(gl.COLOR_WRITEMASK, 1);

Sie können WebGLRenderingContext.getParameter() verwenden, um zu sehen, wie viele Zeichnungspuffer verfügbar sind.

js
const maxDrawBuffers = gl.getParameter(gl.MAX_DRAW_BUFFERS);

Spezifikationen

Specification
WebGL OES_draw_buffers_indexed Extension Specification

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
OES_draw_buffers_indexed
blendEquationSeparateiOES
blendEquationiOES
blendFuncSeparateiOES
blendFunciOES
colorMaskiOES
disableiOES
enableiOES

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support