WebGLRenderingContext: checkFramebufferStatus() 方法
注意:此功能在 Web Workers 中可用。
WebGLRenderingContext.checkFramebufferStatus() 方法是 WebGL API 的一部分,用于返回 WebGLFramebuffer 对象的完整性状态。
语法
js
checkFramebufferStatus(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 context 时,还可以返回以下值:
gl.FRAMEBUFFER_INCOMPLETE_MULTISAMPLE: 附件渲染缓冲区的gl.RENDERBUFFER_SAMPLES值不同,或者当附件图像是渲染缓冲区和纹理的混合时,这些值非零。
-
在使用
OVR_multiview2扩展时,还可以返回以下值:ext.FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR: 如果所有值FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE不为NONE的帧缓冲区附件点的baseViewIndex不相同,则认为帧缓冲区不完整。
示例
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 |
浏览器兼容性
加载中…