OES_draw_buffers_indexed: colorMaskiOES() 方法

Baseline 已廣泛支援

此功能已成熟,可跨多個裝置和瀏覽器版本使用。自 2022 年 12 月起,所有瀏覽器均已提供此功能。

OES_draw_buffers_indexed WebGL 擴充套件的 colorMaskiOES() 方法用於為特定的繪圖緩衝區設定啟用或停用哪些顏色分量,以便進行繪製或渲染。它是 WebGL 1 的 WebGLRenderingContext.colorMask() 方法的索引版本。

語法

js
colorMaskiOES(buf, r, g, b, a)

引數

buf

一個整數 i,指定與常量 gl.DRAW_BUFFERi 關聯的繪製緩衝區。請參閱 WebGL 繪製緩衝區常量

r

一個 GLboolean,指定是否應將紅色顏色分量寫入繪圖緩衝區。

g

一個 GLboolean,指定是否應將綠色顏色分量寫入繪圖緩衝區。

b

一個 GLboolean,指定是否應將藍色顏色分量寫入繪圖緩衝區。

a

一個 GLboolean,指定是否應將紅色 Alpha(透明度)分量寫入繪圖緩衝區。

返回值

無(undefined)。

異常

  • 如果 bufrbga 的值無效,則會丟擲 gl.INVALID_VALUE 錯誤。

示例

設定和獲取顏色蒙版

您可以像這樣為 gl.DRAW_BUFFER0gl.DRAW_BUFFER1 繪圖緩衝區設定顏色蒙版:

js
const ext = gl.getExtension("OES_draw_buffers_indexed");

ext.colorMaskiOES(0, 1, 0, 0, 0);
ext.colorMaskiOES(1, 0, 1, 0, 0);

要獲取 gl.DRAW_BUFFER0gl.DRAW_BUFFER1 繪圖緩衝區的顏色蒙版,請使用 WebGL2RenderingContext.getIndexedParameter() 查詢 COLOR_WRITEMASK 常量。

js
gl.getIndexedParameter(gl.COLOR_WRITEMASK, 0);
gl.getIndexedParameter(gl.COLOR_WRITEMASK, 1);

規範

規範
WebGL OES_draw_buffers_indexed 擴充套件規範

瀏覽器相容性

另見