OES_draw_buffers_indexed: Methode blendFuncSeparateiOES()
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Dezember 2022 browserübergreifend verfügbar.
Hinweis: Diese Funktion ist in Web Workers verfügbar.
Die Methode blendFuncSeparateiOES() der WebGL-Erweiterung OES_draw_buffers_indexed legt fest, welche Funktion beim Überblenden von Pixeln für die RGB- und Alpha-Komponenten eines bestimmten Zeichenpuffers jeweils verwendet wird.
Informationen zum gemeinsamen Festlegen von RGB und Alpha finden Sie unter OES_draw_buffers_indexed.blendFunciOES(). Die WebGL-1-Version dieser Methode ist WebGLRenderingContext.blendFuncSeparate().
Syntax
blendFuncSeparateiOES(buf, srcRGB, dstRGB, srcAlpha, dstAlpha)
Parameter
buf-
Eine Ganzzahl
i, die den mit der Konstantegl.DRAW_BUFFERiverknüpften Zeichenpuffer angibt. Siehe WebGL-Konstanten für Zeichenpuffer. srcRGB-
Ein
GLenum, das einen Multiplikator für die Quell-Überblendfaktoren der roten, grünen und blauen (RGB-)Komponenten angibt. Akzeptiert dieselben Enum-Werte wie der ParametersrcRGBinWebGLRenderingContext.blendFuncSeparate(). dstRGB-
Ein
GLenum, das einen Multiplikator für die Ziel-Überblendfaktoren der roten, grünen und blauen (RGB-)Komponenten angibt. Akzeptiert dieselben Enum-Werte wie der ParameterdstRGBinWebGLRenderingContext.blendFuncSeparate(). srcAlpha-
Ein
GLenum, das einen Multiplikator für den Alpha-Quell-Überblendfaktor angibt. Akzeptiert dieselben Enum-Werte wie der ParametersrcAlphainWebGLRenderingContext.blendFuncSeparate(). dstAlpha-
Ein
GLenum, das einen Multiplikator für den Alpha-Ziel-Überblendfaktor angibt. Akzeptiert dieselben Enum-Werte wie der ParametersrcAlphainWebGLRenderingContext.blendFuncSeparate().
Rückgabewert
Keiner (undefined).
Ausnahmen
- Wenn
bufkein gültiger Wert ist, wird eingl.INVALID_VALUE-Fehler ausgelöst. - Wenn
srcRGB,dstRGB,srcAlphaoderdstAlphakeiner der möglichen Werte ist, wird eingl.INVALID_ENUM-Fehler ausgelöst. - Es gelten dieselben Einschränkungen für das Überblenden wie bei
WebGLRenderingContext.blendFuncSeparate(): Wenn eine konstante Farbe und ein konstanter Alpha-Wert gemeinsam als Quell- und Zielfaktoren verwendet werden, wird eingl.INVALID_ENUM-Fehler ausgelöst.
Beispiele
>Überblendfunktionen festlegen und abrufen
Im folgenden Beispiel werden die Überblendfunktionen für die Zeichenpuffer gl.DRAW_BUFFER0 (Aufruf mit buf gleich 0) und gl.DRAW_BUFFER1 (Aufruf mit buf gleich 1) festgelegt.
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 Überblendfunktionen für die Zeichenpuffer gl.DRAW_BUFFER0 und gl.DRAW_BUFFER1 abzurufen, fragen Sie die Konstanten BLEND_SRC_RGB, BLEND_SRC_ALPHA, BLEND_DST_RGB und BLEND_DST_ALPHA mit WebGL2RenderingContext.getIndexedParameter() ab:
// 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
| Spezifikation |
|---|
| WebGL OES_draw_buffers_indexed Extension Specification> |