Graphics Reference
In-Depth Information
The
glCheckFramebufferStatus
command can be used to verify that a
framebuffer object is complete.
GLenum
glCheckFramebufferStatus
(GLenum
target
)
target
must be set to
GL_READ_FRAMEBUFFER
,
GL_DRAW_FRAMEBUFFER
, or
GL_FRAMEBUFFER
glCheckFramebufferStatus
returns zero if
target
is not equal to
GL_FRAMEBUFFER
. If
target
is equal to
GL_FRAMEBUFFER
, one of the
following enums is returned:
•
GL_FRAMEBUFFER_COMPLETE
—Framebuffer is complete.
•
GL_FRAMEBUFFER_UNDEFINED
—If
target
is the default framebuffer
but it does not exist.
•
GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT
—The framebuffer
attachment points are not complete. This might be due to the fact
that the required attachment is zero or is not a valid texture or
renderbuffer object.
•
GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT
—No valid
attachments in the framebuffer.
•
GL_FRAMEBUFFER_UNSUPPORTED
—The combination of internal formats
used by attachments in the framebuffer results in a nonrenderable target.
•
GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE
—
GL_RENDERBUFFER_SAMPLES
is not the same for all renderbuffer
attachments or
GL_RENDERBUFFER_SAMPLES
is non-zero when the
attachments are a combination of renderbuffers and textures.
If the currently bound framebuffer object is not complete, attempts to use
that object for reading and writing pixels will fail. In turn, calls to draw
primitives, such as
glDrawArrays
and
glDrawElements
, and commands
that read the framebuffer, such as
glReadPixels
,
glCopyTeximage2D
,
glCopyTexSubImage2D
, and
glCopyTexSubImage3D
, will generate a
GL_INVALID_FRAMEBUFFER_OPERATION
error.
Framebuffer blits allow for efficient copying of a rectangle of pixel values
from one framebuffer (i.e., read framebuffer) to another framebuffer (i.e.,
draw framebuffer). One key application of framebuffer blits is to resolve a