WebGLRenderingContext: checkFramebufferStatus() 方法
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 表仅在浏览器中加载