WebGLRenderingContext: bindFramebuffer() 方法

Baseline 已廣泛支援

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2015 年 7 月⁩以來,各瀏覽器均已提供此特性。

注意:此功能在 Web Workers 中可用。

WebGLRenderingContext.bindFramebuffer() 方法是 WebGL API 的一部分,它將提供的 WebGLFramebuffer 繫結到指定的 目標。如果 framebuffer 引數為 null,則繫結與渲染上下文關聯的預設 WebGLFramebuffer

語法

js
bindFramebuffer(target, framebuffer)

引數

目標

一個 GLenum,指定繫結點(目標)。可能的值

gl.FRAMEBUFFER

用於收集顏色、Alpha、深度和模板緩衝區的緩衝區資料儲存,這些緩衝區既可作為繪圖目標,也可作為讀取源(見下文)。

使用 WebGL 2 上下文時,還可以使用以下值:

gl.DRAW_FRAMEBUFFER

用作繪圖操作的目標,例如 gl.draw*gl.clear*gl.blitFramebuffer

gl.READ_FRAMEBUFFER

用作讀取操作的源,例如 gl.readPixelsgl.blitFramebuffer

framebuffer

要繫結的 WebGLFramebuffer 物件,或者當繫結與渲染上下文關聯的 HTMLCanvasElementOffscreenCanvas 物件時,為 null

返回值

無(undefined)。

異常

如果 target 不是 gl.FRAMEBUFFERgl.DRAW_FRAMEBUFFERgl.READ_FRAMEBUFFER,則會丟擲 gl.INVALID_ENUM 錯誤。

示例

繫結幀緩衝區

js
const canvas = document.getElementById("canvas");
const gl = canvas.getContext("webgl");
const framebuffer = gl.createFramebuffer();

gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer);

獲取當前繫結

要檢查當前的幀緩衝區繫結,請查詢 FRAMEBUFFER_BINDING 常量。

js
gl.getParameter(gl.FRAMEBUFFER_BINDING);

規範

規範
WebGL 規範
# 5.14.6
WebGL 2.0 規範
# 3.7.1

瀏覽器相容性

另見