OES_draw_buffers_indexed: blendEquationSeparateiOES() 方法
OES_draw_buffers_indexed
WebGL 扩展的 blendEquationSeparateiOES()
方法分别为特定绘制缓冲区设置 RGB 和 Alpha 混合方程。
有关同时设置 RGB 和 Alpha 的信息,请参阅 OES_draw_buffers_indexed.blendEquationiOES()
;有关此方法的 WebGL 1 版本,请参阅 WebGLRenderingContext.blendEquationSeparate()
。
语法
blendEquationSeparateiOES(buf, modeRGB, modeAlpha)
参数
buf
-
一个整数
i
,指定与常量gl.DRAW_BUFFERi
关联的绘制缓冲区,请参阅 WebGL 绘制缓冲区常量。 modeRGB
-
一个
GLenum
,指定如何组合源和目标 RGB 颜色分量。接受与WebGLRenderingContext.blendEquationSeparate()
中的modeRGB
参数相同的枚举值。 modeAlpha
-
一个
GLenum
,指定如何组合源和目标 Alpha 颜色分量。接受与WebGLRenderingContext.blendEquationSeparate()
中的modeAlpha
参数相同的枚举值。
返回值
无 (undefined
)。
异常
- 如果
buf
不是有效值,则会抛出gl.INVALID_VALUE
错误。 - 如果
modeRGB
或modeAlpha
未设置为可能的值之一,则会抛出gl.INVALID_ENUM
错误。
示例
设置和获取混合方程
以下代码设置了绘制缓冲区 gl.DRAW_BUFFER0
(其中 buf
为 0 的调用)和 gl.DRAW_BUFFER1
(其中 buf
为 1 的调用)的混合方程。
const ext = gl.getExtension("OES_draw_buffers_indexed");
ext.blendEquationSeparateiOES(0, gl.FUNC_ADD, gl.FUNC_SUBTRACT);
ext.blendEquationSeparateiOES(1, gl.FUNC_ADD, gl.FUNC_SUBTRACT);
要获取 gl.DRAW_BUFFER0
和 gl.DRAW_BUFFER1
的混合方程,请使用 WebGL2RenderingContext.getIndexedParameter()
查询 BLEND_EQUATION_RGB
和 BLEND_EQUATION_ALPHA
常量。
// For gl.DRAW_BUFFER0
gl.getIndexedParameter(gl.BLEND_EQUATION_RGB, 0);
gl.getIndexedParameter(gl.BLEND_EQUATION_ALPHA, 0);
// for gl.DRAW_BUFFER1
gl.getIndexedParameter(gl.BLEND_EQUATION_RGB, 1);
gl.getIndexedParameter(gl.BLEND_EQUATION_ALPHA, 1);
规范
规范 |
---|
WebGL OES_draw_buffers_indexed 扩展规范 |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。