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

js
blendFuncSeparateiOES(buf, srcRGB, dstRGB, srcAlpha, dstAlpha)

Tham số

buf

Một số nguyên i chỉ đị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 GLenum chỉ đị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ố srcRGB trong WebGLRenderingContext.blendFuncSeparate().

dstRGB

Một GLenum chỉ đị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ố dstRGB trong WebGLRenderingContext.blendFuncSeparate().

srcAlpha

Một GLenum chỉ đị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ố srcAlpha trong WebGLRenderingContext.blendFuncSeparate().

dstAlpha

Một GLenum chỉ đị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ố srcAlpha trong WebGLRenderingContext.blendFuncSeparate().

Giá trị trả về

Không có (undefined).

Ngoại lệ

  • Nếu buf không phải là giá trị hợp lệ, lỗi gl.INVALID_VALUE được ném ra.
  • Nếu srcRGB, dstRGB, srcAlpha hoặc dstAlpha không phải là một trong các giá trị có thể, lỗi gl.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ỗi gl.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).

js
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_BUFFER0gl.DRAW_BUFFER1, truy vấn các hằng số BLEND_SRC_RGB, BLEND_SRC_ALPHA, BLEND_DST_RGBBLEND_DST_ALPHA bằng WebGL2RenderingContext.getIndexedParameter():

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);

Thông số kỹ thuật

Thông số kỹ thuật
WebGL OES_draw_buffers_indexed Extension Specification

Tương thích trình duyệt

Xem thêm