WebGLRenderingContext: checkFramebufferStatus() 方法

基线 广泛可用

此功能非常成熟,并且可以在许多设备和浏览器版本上运行。 它已在所有浏览器中提供,自 2015 年 7 月.

WebGLRenderingContext.checkFramebufferStatus() 方法是 WebGL API 的一个方法,它返回 WebGLFramebuffer 对象的完整性状态。

语法

js
checkFramebufferStatus(target)

参数

target

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

gl.FRAMEBUFFER

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

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

gl.DRAW_FRAMEBUFFER

等效于 gl.FRAMEBUFFER。 用作绘制、渲染、清除和写入操作的目标。

gl.READ_FRAMEBUFFER

用作读取操作的源。

返回值

一个 GLenum,指示帧缓冲区的完整性状态,或者如果发生错误则为 0。 可能的枚举返回值

  • gl.FRAMEBUFFER_COMPLETE: 帧缓冲区已准备好显示。
  • gl.FRAMEBUFFER_INCOMPLETE_ATTACHMENT: 附加类型不匹配,或者并非所有帧缓冲区附加点都已完成帧缓冲区附加。
  • gl.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: 没有附加。
  • gl.FRAMEBUFFER_INCOMPLETE_DIMENSIONS: 附加的高度和宽度不同。
  • gl.FRAMEBUFFER_UNSUPPORTED: 附加的格式不受支持,或者深度和模板附加不是同一个渲染缓冲区。
  • 当使用 WebGL 2 上下文 时,以下值也可以返回
    • gl.FRAMEBUFFER_INCOMPLETE_MULTISAMPLE: 附加的渲染缓冲区之间 gl.RENDERBUFFER_SAMPLES 的值不同,或者如果附加的图像混合了渲染缓冲区和纹理,则这些值不为零。
  • 当使用 OVR_multiview2 扩展时,以下值也可以返回
    • ext.FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR: 如果 baseViewIndex 对于所有帧缓冲区附加点(其中 FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 的值为 NONE 除外)的值都不相同,则帧缓冲区被认为是不完整的。

示例

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

// …

gl.checkFramebufferStatus(gl.FRAMEBUFFER);

规范

规范
WebGL 规范
# 5.14.6
WebGL 2.0 规范
# 3.7.4

浏览器兼容性

BCD 表仅在浏览器中加载

另请参阅