WebGLRenderingContext:bindFramebuffer() 方法

基线 广泛可用

此功能已稳定,可在许多设备和浏览器版本上运行。它自以下时间起在各浏览器中可用 2015 年 7 月.

WebGLRenderingContext.bindFramebuffer() 方法是 WebGL API 的一部分,它将提供的 WebGLFramebuffer 绑定到指定的 target,或者如果 framebuffer 参数为 null,则绑定与 canvas 渲染上下文关联的默认 WebGLFramebuffer

语法

js
bindFramebuffer(target, framebuffer)

参数

target

指定绑定点 (target) 的 GLenum。可能的值

gl.FRAMEBUFFER

收集用作绘制目标和读取源的颜色、alpha、深度和模板缓冲区的缓冲区数据存储(见下文)。

使用 WebGL 2 上下文 时,以下值也可使用

gl.DRAW_FRAMEBUFFER

用作绘制操作(如 gl.draw*gl.clear*gl.blitFramebuffer)的目标。

gl.READ_FRAMEBUFFER

用作读取操作(如 gl.readPixelsgl.blitFramebuffer)的源。

framebuffer

要绑定的 WebGLFramebuffer 对象,或 null 以绑定与渲染上下文关联的 HTMLCanvasElementOffscreenCanvas 对象。

返回值

无 (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

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

参见