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

浏览器兼容性

另见