WebGLRenderingContext: checkFramebufferStatus() 方法

Baseline 已廣泛支援

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2015 年 7 月⁩以來,各瀏覽器均已提供此特性。

注意:此功能在 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

瀏覽器相容性

另見