WebGLRenderingContext: checkFramebufferStatus() method
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
The WebGLRenderingContext.checkFramebufferStatus()
method
of the WebGL API returns the completeness
status of the WebGLFramebuffer
object.
Syntax
checkFramebufferStatus(target)
Parameters
target
-
A
GLenum
specifying the binding point (target). Possible values:gl.FRAMEBUFFER
-
Collection buffer data storage of color, alpha, depth and stencil buffers used to render an image.
When using a WebGL 2 context, the following values are available additionally:
gl.DRAW_FRAMEBUFFER
-
Equivalent to
gl.FRAMEBUFFER
. Used as a destination for drawing, rendering, clearing, and writing operations. gl.READ_FRAMEBUFFER
-
Used as a source for reading operations.
Return value
A GLenum
indicating the completeness status of the framebuffer or
0
if an error occurs. Possible enum return values:
gl.FRAMEBUFFER_COMPLETE
: The framebuffer is ready to display.-
gl.FRAMEBUFFER_INCOMPLETE_ATTACHMENT
: The attachment types are mismatched or not all framebuffer attachment points are framebuffer attachment complete. gl.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT
: There is no attachment.-
gl.FRAMEBUFFER_INCOMPLETE_DIMENSIONS
: Height and width of the attachment are not the same. -
gl.FRAMEBUFFER_UNSUPPORTED
: The format of the attachment is not supported or if depth and stencil attachments are not the same renderbuffer. -
When using a WebGL 2 context, the
following values can be returned additionally:
-
gl.FRAMEBUFFER_INCOMPLETE_MULTISAMPLE
: The values ofgl.RENDERBUFFER_SAMPLES
are different among attached renderbuffers, or are non-zero if the attached images are a mix of renderbuffers and textures.
-
-
When using the
OVR_multiview2
extension, the following value can be returned additionally:-
ext.FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR
: IfbaseViewIndex
is not the same for all framebuffer attachment points where the value ofFRAMEBUFFER_ATTACHMENT_OBJECT_TYPE
is notNONE
, the framebuffer is considered incomplete.
-
Examples
const canvas = document.getElementById("canvas");
const gl = canvas.getContext("webgl");
const framebuffer = gl.createFramebuffer();
// …
gl.checkFramebufferStatus(gl.FRAMEBUFFER);
Specifications
Specification |
---|
WebGL Specification # 5.14.6 |
WebGL 2.0 Specification # 3.7.4 |
Browser compatibility
BCD tables only load in the browser