OES_draw_buffers_indexed: Methode blendFunciOES()
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 blendFunciOES() der WebGL-Erweiterung OES_draw_buffers_indexed legt fest, welche Funktion beim Mischen von Pixeln für einen bestimmten Zeichenpuffer verwendet wird.
Informationen zum getrennten Festlegen der RGB- und Alpha-Komponenten finden Sie unter OES_draw_buffers_indexed.blendFuncSeparateiOES(). Die WebGL-1-Version dieser Methode ist WebGLRenderingContext.blendFunc().
Syntax
blendFunciOES(buf, src, dst)
Parameter
buf-
Eine Ganzzahl
i, die den mit der Konstantegl.DRAW_BUFFERiverknüpften Zeichenpuffer angibt. Siehe WebGL-Zeichenpufferkonstanten. src-
Ein
GLenum, das einen Multiplikator für die Mischfaktoren der Quelle angibt. Akzeptiert dieselben Enum-Werte wie der ParametersfactorinWebGLRenderingContext.blendFunc(). dst-
Ein
GLenum, das einen Multiplikator für die Mischfaktoren des Ziels angibt. Akzeptiert dieselben Enum-Werte wie der ParameterdfactorinWebGLRenderingContext.blendFunc().
Rückgabewert
Keiner (undefined).
Ausnahmen
- Wenn
bufkein gültiger Wert ist, wird eingl.INVALID_VALUE-Fehler ausgelöst. - Wenn
srcoderdstkeiner der zulässigen Werte ist, wird eingl.INVALID_ENUM-Fehler ausgelöst. - Es gelten dieselben Einschränkungen für das Mischen wie bei
WebGLRenderingContext.blendFunc(): Wenn eine konstante Farbe und ein konstanter Alpha-Wert gemeinsam als Quell- und Zielfaktoren verwendet werden, wird eingl.INVALID_ENUM-Fehler ausgelöst.
Beispiele
>Mischfunktionen festlegen und abfragen
Sie können die Mischfunktionen für die Zeichenpuffer gl.DRAW_BUFFER0 und gl.DRAW_BUFFER1 wie folgt festlegen:
const ext = gl.getExtension("OES_draw_buffers_indexed");
ext.blendFunciOES(0, gl.ONE, gl.ONE);
ext.blendFunciOES(1, gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA);
Um die Mischfunktionen für die Zeichenpuffer gl.DRAW_BUFFER0 und gl.DRAW_BUFFER1 abzufragen, 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> |