WebGLRenderingContext: framebufferRenderbuffer() 方法

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

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

WebGLRenderingContext.framebufferRenderbuffer() 方法是 WebGL API 的一部分,它将一个 WebGLRenderbuffer 对象附加到一个 WebGLFramebuffer 对象上。

语法

js
framebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer)

参数

目标

一个 GLenum,指定帧缓冲区的绑定点(目标)。可能的值

gl.FRAMEBUFFER

用于渲染图像的颜色、Alpha、深度和模板缓冲区的集合缓冲区数据存储。

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

gl.DRAW_FRAMEBUFFER

相当于 gl.FRAMEBUFFER。用作绘图、渲染、清除和写入操作的目标。

gl.READ_FRAMEBUFFER

用作读取操作的源。

attachment

一个 GLenum,指定渲染缓冲区的附件点。可能的值

  • gl.COLOR_ATTACHMENT0:颜色缓冲区。
  • gl.DEPTH_ATTACHMENT:深度缓冲区。
  • gl.DEPTH_STENCIL_ATTACHMENT: 深度和模板缓冲区。
  • gl.STENCIL_ATTACHMENT:模板缓冲区。

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

  • gl.COLOR_ATTACHMENT1 gl.COLOR_ATTACHMENT2 gl.COLOR_ATTACHMENT3 gl.COLOR_ATTACHMENT4 gl.COLOR_ATTACHMENT5 gl.COLOR_ATTACHMENT6 gl.COLOR_ATTACHMENT7 gl.COLOR_ATTACHMENT8 gl.COLOR_ATTACHMENT9 gl.COLOR_ATTACHMENT10 gl.COLOR_ATTACHMENT11 gl.COLOR_ATTACHMENT12 gl.COLOR_ATTACHMENT13 gl.COLOR_ATTACHMENT14 gl.COLOR_ATTACHMENT15

使用 WEBGL_draw_buffers 扩展时

  • ext.COLOR_ATTACHMENT0_WEBGL(与 gl.COLOR_ATTACHMENT0 相同)
  • ext.COLOR_ATTACHMENT1_WEBGL ext.COLOR_ATTACHMENT2_WEBGL ext.COLOR_ATTACHMENT3_WEBGL ext.COLOR_ATTACHMENT4_WEBGL ext.COLOR_ATTACHMENT5_WEBGL ext.COLOR_ATTACHMENT6_WEBGL ext.COLOR_ATTACHMENT7_WEBGL ext.COLOR_ATTACHMENT8_WEBGL ext.COLOR_ATTACHMENT9_WEBGL ext.COLOR_ATTACHMENT10_WEBGL ext.COLOR_ATTACHMENT11_WEBGL ext.COLOR_ATTACHMENT12_WEBGL ext.COLOR_ATTACHMENT13_WEBGL ext.COLOR_ATTACHMENT14_WEBGL ext.COLOR_ATTACHMENT15_WEBGL
renderbuffertarget

一个 GLenum,指定渲染缓冲区的绑定点(目标)。可能的值

gl.RENDERBUFFER

为具有可渲染内部格式的单个图像提供缓冲区数据存储。

renderbuffer

要附加的 WebGLRenderbuffer 对象。

返回值

无(undefined)。

异常

  • 如果 target 不是 gl.FRAMEBUFFERgl.DRAW_FRAMEBUFFERgl.READ_FRAMEBUFFER,则会抛出 gl.INVALID_ENUM 错误。
  • 如果 renderbuffertarget 不是 gl.RENDERBUFFER,则会抛出 gl.INVALID_ENUM 错误。
  • 如果 attachment 不是允许的枚举之一,则会抛出 gl.INVALID_ENUM 错误。

示例

js
gl.framebufferRenderbuffer(
  gl.FRAMEBUFFER,
  gl.COLOR_ATTACHMENT0,
  gl.RENDERBUFFER,
  renderbuffer,
);

规范

规范
WebGL 规范
# 5.14.6

浏览器兼容性

另见