next up previous contents index
Next: Conversion of RGBA Up: 4.3.2 Reading Pixels Previous: 4.3.2 Reading Pixels

Obtaining Pixels from the Framebuffer

If the format is DEPTH_COMPONENT, then values are obtained from the depth buffer. If there is no depth buffer, the error INVALID_OPERATION occurs. If the format is STENCIL_INDEX, then values are taken from the stencil buffer; again, if there is no stencil buffer, the error INVALID_OPERATION occurs. For all other formats, the buffer from which values are obtained is one of the color buffers; the selection of color buffer is controlled with ReadBuffer .

The command

void ReadBuffer ( enum src ) ;

takes a symbolic constant as argument. The possible values are FRONT_LEFT, FRONT_RIGHT, BACK_LEFT, BACK_RIGHT, FRONT, BACK, LEFT, RIGHT, and AUX0 through AUXn. FRONT and LEFT refer to the front left buffer, BACK refers to the back left buffer, and RIGHT refers to the front right buffer. The other constants correspond directly to the buffers that they name. If the requested buffer is missing, then the error INVALID_OPERATION is generated. The initial setting for ReadBuffer  is FRONT if there is no back buffer and BACK otherwise.

ReadPixels  obtains values from the selected buffer from each pixel with lower left hand corner at for and ; this pixel is said to be the ith pixel in the jth row. If any of these pixels lies outside of the window allocated to the current GL context, the values obtained for those pixels are undefined. Results are also undefined for individual pixels that are not owned by the current context. Otherwise, ReadPixels  obtains values from the selected buffer, regardless of how those values were placed there.

If the GL is in RGBA mode, and format is one of RED, GREEN, BLUE, ALPHA, RGB, RGBA, LUMINANCE, or LUMINANCE_ALPHA, then red, green, blue, and alpha values are obtained from the selected buffer at each pixel location. If the framebuffer does not support alpha values then the A that is obtained is 1.0. If format is COLOR_INDEX and the GL is in RGBA mode then the error INVALID_OPERATION occurs. If the GL is in color index mode, and format is not DEPTH_COMPONENT or STENCIL_INDEX, then the color index is obtained at each pixel location.



next up previous contents index
Next: Conversion of RGBA Up: 4.3.2 Reading Pixels Previous: 4.3.2 Reading Pixels



David Blythe
Sat Mar 29 02:23:21 PST 1997