OES_draw_buffers_indexed: blendFuncSeparateiOES()-Methode
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since Dezember 2022.
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
blendFuncSeparateiOES(buf, srcRGB, dstRGB, srcAlpha, dstAlpha)
Parameter
buf-
Ein ganzzahliger
i, der den Zeichenpuffer angibt, der mit der Konstantegl.DRAW_BUFFERiverbunden 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 dersrcRGB-Parameter inWebGLRenderingContext.blendFuncSeparate(). dstRGB-
Ein
GLenum, der einen Multiplikator für die Rot-, Grün- und Blau- (RGB) Ziel-Mischfaktoren angibt. Akzeptiert die gleichen Enums wie derdstRGB-Parameter inWebGLRenderingContext.blendFuncSeparate(). srcAlpha-
Ein
GLenum, der einen Multiplikator für den Alpha-Quell-Mischfaktor angibt. Akzeptiert die gleichen Enums wie dersrcAlpha-Parameter inWebGLRenderingContext.blendFuncSeparate(). dstAlpha-
Ein
GLenum, der einen Multiplikator für den Alpha-Ziel-Mischfaktor angibt. Akzeptiert die gleichen Enums wie dersrcAlpha-Parameter inWebGLRenderingContext.blendFuncSeparate().
Rückgabewert
Keiner (undefined).
Ausnahmen
- Wenn
bufkein gültiger Wert ist, wird eingl.INVALID_VALUE-Fehler ausgelöst. - Wenn
srcRGB,dstRGB,srcAlphaoderdstAlphanicht einer der möglichen Werte sind, wird eingl.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 eingl.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).
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():
// 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
Loading…