1991-2006
Silicon Graphics, Inc.
glColorSubTable
3G

# glColorSubTable

respecify a portion of a color table

## C Specification

                    void glColorSubTable
                    GLenum target
                    GLsizei start
                    GLsizei count
                    GLenum format
                    GLenum type
                    const GLvoid * data

## Parameters

`target`

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

`start`

  The starting index of the portion of the color table to be replaced.

`count`

  The number of table entries to replace.

`format`

  The format of the pixel data in `data`. The allowable 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 `data`. The allowable values are `GL_UNSIGNED_BYTE`, `GL_BYTE`, `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`.

`data`

  Pointer to a one-dimensional array of pixel data that is processed to replace the specified region of the color table.

## Description

`glColorSubTable` is used to respecify a contiguous portion of a color table previously defined using glColorTable. The pixels referenced by `data` replace the portion of the existing table from indices `start` to start + count - 1 , inclusive. This region may not include any entries outside the range of the color table as it was originally specified. It is not an error to specify a subtexture with width of 0, but such a specification has no effect.

If a non-zero named buffer object is bound to the `GL_PIXEL_UNPACK_BUFFER` target (see glBindBuffer) while a portion of a color table is respecified, `data` is treated as a byte offset into the buffer object's data store.

## Notes

`glColorSubTable` 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_VALUE` is generated if start + count > width .

`GL_INVALID_OPERATION` is generated if a non-zero buffer object name is bound to the `GL_PIXEL_UNPACK_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_UNPACK_BUFFER` target and the data would be unpacked from the buffer object such that the memory reads 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_UNPACK_BUFFER` target and `data` 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 `glColorSubTable` is executed between the execution of glBegin and the corresponding execution of glEnd.

## Associated Gets

glGetColorTable, glGetColorTableParameter

glGet with argument `GL_PIXEL_UNPACK_BUFFER_BINDING`

## See Also

glColorTable, glColorTableParameter, glCopyColorTable, glCopyColorSubTable, glGetColorTable

## 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/.