Revision as of 12:06, 15 July 2012 by Alfonse (Talk | contribs) (Improved description.)

Jump to: navigation, search
Core in version 4.5
Core since version 1.0

glReadBuffer: select a color buffer source for pixel read operations from the current read framebuffer.

Function Definition

 void glReadBuffer(GLenum mode​);
Specifies a color buffer. Accepted values are GL_FRONT_LEFT, GL_FRONT_RIGHT, GL_BACK_LEFT, GL_BACK_RIGHT, GL_FRONT, GL_BACK, GL_LEFT, GL_RIGHT, and the constants GL_COLOR_ATTACHMENTi.


glReadBuffer specifies which color buffer within the current bound GL_READ_FRAMEBUFFER will be used as the source for pixel reading commands. These commands include: glBlitFramebuffer, glReadPixels, glCopyTexImage1D, glCopyTexImage2D, glCopyTexSubImage1D, glCopyTexSubImage2D, and glCopyTexSubImage3D.

mode​ accepts one of twelve or more predefined values. If the default framebuffer (the zero framebuffer object)is bound to GL_READ_FRAMEBUFFER, then the following enumerators can be used: GL_FRONT, GL_LEFT, and GL_FRONT_LEFT all name the front left buffer, GL_FRONT_RIGHT and GL_RIGHT name the front right buffer, and GL_BACK_LEFT and GL_BACK name the back left buffer. Nonstereo double-buffered configurations have only a front left and a back left buffer. Single-buffered configurations have a front left and a front right buffer if stereo, and only a front left buffer if nonstereo.

If a non-zero framebuffer object is bound, then the constants GL_COLOR_ATTACHMENTi may be used to indicate the ith color attachment, where i ranges from zero to the value of GL_MAX_COLOR_ATTACHMENTS minus one.

It is an error to specify a nonexistent buffer to glReadBuffer.

For the default framebuffer, mode​ is initially GL_FRONT in single-buffered configurations and GL_BACK in double-buffered configurations. For framebuffer objects, the default read buffer is GL_COLOR_ATTACHMENT0.


GL_INVALID_ENUM is generated if mode​ is not one of the twelve (or more) accepted values.

GL_INVALID_OPERATION is generated if mode​ specifies a buffer that does not exist.

Associated Gets

glGet with argument GL_READ_BUFFER

See Also

glCopyTexImage1D, glCopyTexImage2D, glCopyTexSubImage1D, glCopyTexSubImage2D, glCopyTexSubImage3D, glDrawBuffer, glReadPixels


Copyright © 1991-2006 Silicon Graphics, Inc. Copyright © 2011 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see