OES_draw_buffers_indexed: blendFunciOES() 方法
OES_draw_buffers_indexed WebGL 扩展中的 blendFunciOES() 方法定义了在混合特定绘制缓冲区像素时使用的函数。
另请参阅 OES_draw_buffers_indexed.blendFuncSeparateiOES(),用于单独设置 RGB 和 alpha 分量;以及 WebGLRenderingContext.blendFunc(),了解此方法的 WebGL 1 版本。
语法
js
blendFunciOES(buf, src, dst)
参数
buf-
一个整数
i,指定与常量gl.DRAW_BUFFERi关联的绘制缓冲区。请参阅 WebGL 绘制缓冲区常量。 src-
一个
GLenum,指定源混合因子的乘数。接受与WebGLRenderingContext.blendFunc()中sfactor参数相同的枚举值。 dst-
一个
GLenum,指定目标混合因子的乘数。接受与WebGLRenderingContext.blendFunc()中dfactor参数相同的枚举值。
返回值
无(undefined)。
异常
- 如果
buf不是有效值,则会抛出gl.INVALID_VALUE错误。 - 如果
src或dst不是可能值之一,则会抛出gl.INVALID_ENUM错误。 - 与
WebGLRenderingContext.blendFunc()相同的混合限制适用:如果将常量颜色和常量 alpha 值一起用作源和目标因子,则会抛出gl.INVALID_ENUM错误。
示例
设置和获取混合函数
您可以通过以下方式为 gl.DRAW_BUFFER0 和 gl.DRAW_BUFFER1 绘制缓冲区设置混合函数:
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);
要获取 gl.DRAW_BUFFER0 和 gl.DRAW_BUFFER1 绘制缓冲区的混合函数,请使用 WebGL2RenderingContext.getIndexedParameter() 查询 BLEND_SRC_RGB、BLEND_SRC_ALPHA、BLEND_DST_RGB 和 BLEND_DST_ALPHA 常量。
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);
规范
| 规范 |
|---|
| WebGL OES_draw_buffers_indexed 扩展规范 |
浏览器兼容性
加载中…