Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

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

js
blendFunciOES(buf, src, dst)

Parameter

buf

Eine Ganzzahl i, die den mit der Konstante gl.DRAW_BUFFERi verknü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 Parameter sfactor in WebGLRenderingContext.blendFunc().

dst

Ein GLenum, das einen Multiplikator für die Mischfaktoren des Ziels angibt. Akzeptiert dieselben Enum-Werte wie der Parameter dfactor in WebGLRenderingContext.blendFunc().

Rückgabewert

Keiner (undefined).

Ausnahmen

  • Wenn buf kein gültiger Wert ist, wird ein gl.INVALID_VALUE-Fehler ausgelöst.
  • Wenn src oder dst keiner der zulässigen Werte ist, wird ein gl.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 ein gl.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:

js
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:

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

Spezifikation
WebGL OES_draw_buffers_indexed Extension Specification

Browser-Kompatibilität

Siehe auch