The pixel transfer pipeline is the part of OpenGL most typically thought of in image processing applications. The pipeline is a configurable series of operations which are applied to each pixel during any command that moves pixels between the frame buffer, host memory, and texture memory, including:
For image processing, operations on color data are generally the most interesting. Before any operations are applied, source data in any color format (for example, GL_LUMINANCE) and type (for example, GL_UNSIGNED_BYTE) is converted into the canonical RGBA format, with each component represented as a floating-point value. All color pixel transfer operations are defined as operating on images of this type and format. After the pixel transfer operations have been applied, the image is converted to its destination type and format.
Base OpenGL defines only a few pixel transfer operations, which are controlled using the glPixelTransfer() command. The operations are:
The pixel transfer pipeline is the part of OpenGL that has undergone the most growth through OpenGL extensions. Some of the more interesting extensions will be discussed in this section. We will list the vendors who have committed to support each extension as of April 1997. Where possible, we will mention techniques to achieve equivalent results on systems that do not support the extension.