## Name

glReadBuffer — select a color buffer source for pixels

## C Specification

`void glReadBuffer(` | GLenum mode`)`;

## Parameters

`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`.

## Description

`glReadBuffer` specifies a color buffer as the source for subsequent glReadPixels, glCopyTexImage1D, glCopyTexImage2D, glCopyTexSubImage1D, glCopyTexSubImage2D, and glCopyTexSubImage3D commands. `mode` accepts one of twelve or more predefined values. In a fully configured system, `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. Further more, 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.

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. It is an error to specify a nonexistent buffer to `glReadBuffer`.

`mode` is initially `GL_FRONT` in single-buffered configurations and `GL_BACK` in double-buffered configurations.

## Errors

`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

Copyright © 1991-2006 Silicon Graphics, Inc. Copyright © 2011 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see http://oss.sgi.com/projects/FreeB/.