WebGLRenderingContext:bindFramebuffer() 方法
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.readPixels
和gl.blitFramebuffer
)的源。
framebuffer
-
要绑定的
WebGLFramebuffer
对象,或null
以绑定与渲染上下文关联的HTMLCanvasElement
或OffscreenCanvas
对象。
返回值
无 (undefined
)。
异常
如果 target
不是 gl.FRAMEBUFFER
、gl.DRAW_FRAMEBUFFER
或 gl.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 的浏览器中加载。