OES_draw_buffers_indexed: blendFuncSeparateiOES() 方法
OES_draw_buffers_indexed WebGL 擴充套件的 blendFuncSeparateiOES() 方法定義了為特定繪製緩衝區分別混合 RGB 和 Alpha 分量時使用的函式。
有關同時設定 RGB 和 Alpha 的資訊,請參閱 OES_draw_buffers_indexed.blendFunciOES();有關此方法的 WebGL 1 版本,請參閱 WebGLRenderingContext.blendFuncSeparate()。
語法
blendFuncSeparateiOES(buf, srcRGB, dstRGB, srcAlpha, dstAlpha)
引數
buf-
一個整數
i,指定與常量gl.DRAW_BUFFERi關聯的繪製緩衝區。請參閱 WebGL 繪製緩衝區常量。 srcRGB-
一個
GLenum,指定紅色、綠色和藍色 (RGB) 源混合因子的乘數。接受與WebGLRenderingContext.blendFuncSeparate()中的srcRGB引數相同的列舉值。 dstRGB-
一個
GLenum,指定紅色、綠色和藍色 (RGB) 目標混合因子的乘數。接受與WebGLRenderingContext.blendFuncSeparate()中的dstRGB引數相同的列舉值。 srcAlpha-
一個
GLenum,指定 Alpha 源混合因子的乘數。接受與WebGLRenderingContext.blendFuncSeparate()中的srcAlpha引數相同的列舉值。 dstAlpha-
一個
GLenum,指定 Alpha 目標混合因子的乘數。接受與WebGLRenderingContext.blendFuncSeparate()中的srcAlpha引數相同的列舉值。
返回值
無(undefined)。
異常
- 如果
buf不是有效值,則會丟擲gl.INVALID_VALUE錯誤。 - 如果
srcRGB、dstRGB、srcAlpha或dstAlpha不是可能的值之一,則會丟擲gl.INVALID_ENUM錯誤。 - 與
WebGLRenderingContext.blendFuncSeparate()相同的混合限制適用:如果常量顏色和常量 Alpha 值同時用作源和目標因子,則會丟擲gl.INVALID_ENUM錯誤。
示例
設定和獲取混合函式
以下程式碼設定繪製緩衝區 gl.DRAW_BUFFER0(當 buf 為 0 時呼叫)和 gl.DRAW_BUFFER1(當 buf 為 1 時呼叫)的混合函式。
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,
);
要獲取 gl.DRAW_BUFFER0 和 gl.DRAW_BUFFER1 繪製緩衝區的混合函式,請使用 WebGL2RenderingContext.getIndexedParameter() 查詢 BLEND_SRC_RGB、BLEND_SRC_ALPHA、BLEND_DST_RGB 和 BLEND_DST_ALPHA 常量。
// 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);
規範
| 規範 |
|---|
| WebGL OES_draw_buffers_indexed 擴充套件規範 |
瀏覽器相容性
載入中…