OES_draw_buffers_indexed: blendFuncSeparateiOES() method
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since December 2022.
Phương thức blendFuncSeparateiOES() của phần mở rộng WebGL OES_draw_buffers_indexed định nghĩa hàm nào được dùng khi pha trộn pixel cho các thành phần RGB và alpha riêng lẻ cho một bộ đệm vẽ cụ thể.
Xem OES_draw_buffers_indexed.blendFunciOES() để đặt RGB và alpha cùng nhau và WebGLRenderingContext.blendFuncSeparate() cho phiên bản WebGL 1 của phương thức này.
Cú pháp
blendFuncSeparateiOES(buf, srcRGB, dstRGB, srcAlpha, dstAlpha)
Tham số
buf-
Một số nguyên
ichỉ định bộ đệm vẽ liên kết với hằng sốgl.DRAW_BUFFERi, xem hằng số bộ đệm vẽ WebGL. srcRGB-
Một
GLenumchỉ định hệ số nhân cho các nhân tố pha trộn nguồn đỏ, xanh lá và xanh dương (RGB). Chấp nhận cùng các enum với tham sốsrcRGBtrongWebGLRenderingContext.blendFuncSeparate(). dstRGB-
Một
GLenumchỉ định hệ số nhân cho các nhân tố pha trộn đích đỏ, xanh lá và xanh dương (RGB). Chấp nhận cùng các enum với tham sốdstRGBtrongWebGLRenderingContext.blendFuncSeparate(). srcAlpha-
Một
GLenumchỉ định hệ số nhân cho nhân tố pha trộn alpha nguồn. Chấp nhận cùng các enum với tham sốsrcAlphatrongWebGLRenderingContext.blendFuncSeparate(). dstAlpha-
Một
GLenumchỉ định hệ số nhân cho nhân tố pha trộn alpha đích. Chấp nhận cùng các enum với tham sốsrcAlphatrongWebGLRenderingContext.blendFuncSeparate().
Giá trị trả về
Không có (undefined).
Ngoại lệ
- Nếu
bufkhông phải là giá trị hợp lệ, lỗigl.INVALID_VALUEđược ném ra. - Nếu
srcRGB,dstRGB,srcAlphahoặcdstAlphakhông phải là một trong các giá trị có thể, lỗigl.INVALID_ENUMđược ném ra. - Các giới hạn pha trộn tương tự như trong
WebGLRenderingContext.blendFuncSeparate()được áp dụng: Nếu một màu hằng số và một giá trị alpha hằng số được dùng cùng nhau làm nhân tố nguồn và đích, lỗigl.INVALID_ENUMđược ném ra.
Ví dụ
>Đặt và lấy hàm pha trộn
Ví dụ sau đặt các hàm pha trộn cho bộ đệm vẽ gl.DRAW_BUFFER0 (lời gọi với buf là 0) và gl.DRAW_BUFFER1 (lời gọi với buf là 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,
);
Để lấy các hàm pha trộn cho bộ đệm vẽ gl.DRAW_BUFFER0 và gl.DRAW_BUFFER1, truy vấn các hằng số BLEND_SRC_RGB, BLEND_SRC_ALPHA, BLEND_DST_RGB và BLEND_DST_ALPHA bằng WebGL2RenderingContext.getIndexedParameter():
// 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);
Thông số kỹ thuật
| Thông số kỹ thuật |
|---|
| WebGL OES_draw_buffers_indexed Extension Specification> |