1991-2006
Silicon Graphics, Inc.
glGetColorTable
3G

# glGetColorTable

retrieve contents of a color lookup table

## C Specification

                    void glGetColorTable
                    GLenum target
                    GLenum format
                    GLenum type
                    GLvoid * table

## Parameters

`target`

  Must be `GL_COLOR_TABLE`, `GL_POST_CONVOLUTION_COLOR_TABLE`, or `GL_POST_COLOR_MATRIX_COLOR_TABLE`.

`format`

  The format of the pixel data in `table`. The possible values are `GL_RED`, `GL_GREEN`, `GL_BLUE`, `GL_ALPHA`, `GL_LUMINANCE`, `GL_LUMINANCE_ALPHA`, `GL_RGB`, `GL_BGR`, `GL_RGBA`, and `GL_BGRA`.

`type`

  The type of the pixel data in `table`. Symbolic constants `GL_UNSIGNED_BYTE`, `GL_BYTE`, `GL_BITMAP`, `GL_UNSIGNED_SHORT`, `GL_SHORT`, `GL_UNSIGNED_INT`, `GL_INT`, `GL_FLOAT`, `GL_UNSIGNED_BYTE_3_3_2`, `GL_UNSIGNED_BYTE_2_3_3_REV`, `GL_UNSIGNED_SHORT_5_6_5`, `GL_UNSIGNED_SHORT_5_6_5_REV`, `GL_UNSIGNED_SHORT_4_4_4_4`, `GL_UNSIGNED_SHORT_4_4_4_4_REV`, `GL_UNSIGNED_SHORT_5_5_5_1`, `GL_UNSIGNED_SHORT_1_5_5_5_REV`, `GL_UNSIGNED_INT_8_8_8_8`, `GL_UNSIGNED_INT_8_8_8_8_REV`, `GL_UNSIGNED_INT_10_10_10_2`, and `GL_UNSIGNED_INT_2_10_10_10_REV` are accepted.

`table`

  Pointer to a one-dimensional array of pixel data containing the contents of the color table.

## Description

`glGetColorTable` returns in `table` the contents of the color table specified by `target`. No pixel transfer operations are performed, but pixel storage modes that are applicable to glReadPixels are performed.

If a non-zero named buffer object is bound to the `GL_PIXEL_PACK_BUFFER` target (see glBindBuffer) while a histogram table is requested, `table` is treated as a byte offset into the buffer object's data store.

Color components that are requested in the specified `format`, but which are not included in the internal format of the color lookup table, are returned as zero. The assignments of internal color components to the components requested by `format` are

Internal Component | Resulting Component
--- | ---
Red | Red
Green | Green
Blue | Blue
Alpha | Alpha
Luminance | Red
Intensity | Red

## Notes

`glGetColorTable` is present only if `ARB_imaging` is returned when glGetString is called with an argument of `GL_EXTENSIONS`.

## Errors

`GL_INVALID_ENUM` is generated if `target` is not one of the allowable values.

`GL_INVALID_ENUM` is generated if `format` is not one of the allowable values.

`GL_INVALID_ENUM` is generated if `type` is not one of the allowable values.

`GL_INVALID_OPERATION` is generated if `type` is one of `GL_UNSIGNED_BYTE_3_3_2`, `GL_UNSIGNED_BYTE_2_3_3_REV`, `GL_UNSIGNED_SHORT_5_6_5`, or `GL_UNSIGNED_SHORT_5_6_5_REV` and `format` is not `GL_RGB`.

`GL_INVALID_OPERATION` is generated if `type` is one of `GL_UNSIGNED_SHORT_4_4_4_4`, `GL_UNSIGNED_SHORT_4_4_4_4_REV`, `GL_UNSIGNED_SHORT_5_5_5_1`, `GL_UNSIGNED_SHORT_1_5_5_5_REV`, `GL_UNSIGNED_INT_8_8_8_8`, `GL_UNSIGNED_INT_8_8_8_8_REV`, `GL_UNSIGNED_INT_10_10_10_2`, or `GL_UNSIGNED_INT_2_10_10_10_REV` and `format` is neither `GL_RGBA` nor `GL_BGRA`.

`GL_INVALID_OPERATION` is generated if a non-zero buffer object name is bound to the `GL_PIXEL_PACK_BUFFER` target and the buffer object's data store is currently mapped.

`GL_INVALID_OPERATION` is generated if a non-zero buffer object name is bound to the `GL_PIXEL_PACK_BUFFER` target and the data would be packed to the buffer object such that the memory writes required would exceed the data store size.

`GL_INVALID_OPERATION` is generated if a non-zero buffer object name is bound to the `GL_PIXEL_PACK_BUFFER` target and `table` is not evenly divisible into the number of bytes needed to store in memory a datum indicated by `type`.

`GL_INVALID_OPERATION` is generated if `glGetColorTable` is executed between the execution of glBegin and the corresponding execution of glEnd.

## Associated Gets

glGetColorTableParameter

glGet with argument `GL_PIXEL_PACK_BUFFER_BINDING`

## See Also

glColorTable, glColorTableParameter

## Copyright

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