OES_draw_buffers_indexed: blendFuncSeparateiOES()-Methode

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 blendFuncSeparateiOES()-Methode der OES_draw_buffers_indexed WebGL-Erweiterung definiert, welche Funktion verwendet wird, wenn RGB- und Alphakomponenten eines bestimmten Zeichenpuffers getrennt gemischt werden.

Siehe OES_draw_buffers_indexed.blendFunciOES() für das gleichzeitige Setzen von RGB und Alpha und WebGLRenderingContext.blendFuncSeparate() für die WebGL 1-Version dieser Methode.

Syntax

js
blendFuncSeparateiOES(buf, srcRGB, dstRGB, srcAlpha, dstAlpha)

Parameter

buf

Ein ganzzahliger i, der den Zeichenpuffer angibt, der mit der Konstante gl.DRAW_BUFFERi verbunden ist. Siehe WebGL-Zeichenpuffer-Konstanten.

srcRGB

Ein GLenum, der einen Multiplikator für die Rot-, Grün- und Blau- (RGB) Quell-Mischfaktoren angibt. Akzeptiert die gleichen Enums wie der srcRGB-Parameter in WebGLRenderingContext.blendFuncSeparate().

dstRGB

Ein GLenum, der einen Multiplikator für die Rot-, Grün- und Blau- (RGB) Ziel-Mischfaktoren angibt. Akzeptiert die gleichen Enums wie der dstRGB-Parameter in WebGLRenderingContext.blendFuncSeparate().

srcAlpha

Ein GLenum, der einen Multiplikator für den Alpha-Quell-Mischfaktor angibt. Akzeptiert die gleichen Enums wie der srcAlpha-Parameter in WebGLRenderingContext.blendFuncSeparate().

dstAlpha

Ein GLenum, der einen Multiplikator für den Alpha-Ziel-Mischfaktor angibt. Akzeptiert die gleichen Enums wie der srcAlpha-Parameter in WebGLRenderingContext.blendFuncSeparate().

Rückgabewert

Keiner (undefined).

Ausnahmen

  • Wenn buf kein gültiger Wert ist, wird ein gl.INVALID_VALUE-Fehler ausgelöst.
  • Wenn srcRGB, dstRGB, srcAlpha oder dstAlpha nicht einer der möglichen Werte sind, wird ein gl.INVALID_ENUM-Fehler ausgelöst.
  • Die gleichen Einschränkungen des Blendings wie für WebGLRenderingContext.blendFuncSeparate() gelten: Wenn eine konstante Farbe und ein konstanter Alphawert gemeinsam als Quell- und Zielfaktoren verwendet werden, wird ein gl.INVALID_ENUM-Fehler ausgelöst.

Beispiele

Setzen und Abfragen der Mischfunktionen

Das folgende Beispiel setzt die Mischfunktionen für die Zeichenpuffer gl.DRAW_BUFFER0 (Aufruf, bei dem buf 0 ist) und gl.DRAW_BUFFER1 (Aufruf, bei dem buf 1 ist).

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

ext.blendFuncSeparateiOES(0, gl.ONE, gl.ONE, gl.ZERO, gl.ZERO);
ext.blendFuncSeparateiOES(
  1,
  gl.SRC_ALPHA,
  gl.ONE_MINUS_SRC_ALPHA,
  gl.ZERO,
  gl.ZERO,
);

Um die Mischfunktionen für die Zeichenpuffer gl.DRAW_BUFFER0 und gl.DRAW_BUFFER1 zu erhalten, verwenden Sie die Abfrage der Konstanten BLEND_SRC_RGB, BLEND_SRC_ALPHA, BLEND_DST_RGB und BLEND_DST_ALPHA mit WebGL2RenderingContext.getIndexedParameter():

js
// For gl.DRAW_BUFFER0
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);

// For gl.DRAW_BUFFER0
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);

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
blendFuncSeparateiOES

Legend

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

Full support
Full support

Siehe auch