Light | Dark

# docs.GL

OpenGL 3
OpenGL 2

# glColorMaterial

## Name

glColorMaterial — cause a material color to track the current color

## C Specification

`void glColorMaterial(` | GLenum | face,
| GLenum | mode`)`;

## Parameters

`face`

  Specifies whether front, back, or both front and back material parameters should track the current color. Accepted values are `GL_FRONT`, `GL_BACK`, and `GL_FRONT_AND_BACK`. The initial value is `GL_FRONT_AND_BACK`.

`mode`

  Specifies which of several material parameters track the current color. Accepted values are `GL_EMISSION`, `GL_AMBIENT`, `GL_DIFFUSE`, `GL_SPECULAR`, and `GL_AMBIENT_AND_DIFFUSE`. The initial value is `GL_AMBIENT_AND_DIFFUSE`.

## Description

`glColorMaterial` specifies which material parameters track the current color. When `GL_COLOR_MATERIAL` is enabled, the material parameter or parameters specified by `mode`, of the material or materials specified by `face`, track the current color at all times.

To enable and disable `GL_COLOR_MATERIAL`, call glEnable and glDisable with argument `GL_COLOR_MATERIAL`. `GL_COLOR_MATERIAL` is initially disabled.

## Notes

`glColorMaterial` makes it possible to change a subset of material parameters for each vertex using only the glColor command, without calling glMaterial. If only such a subset of parameters is to be specified for each vertex, calling `glColorMaterial` is preferable to calling glMaterial.

Call `glColorMaterial` before enabling `GL_COLOR_MATERIAL`.

Calling glDrawElements, glDrawArrays, or glDrawRangeElements may leave the current color indeterminate, if the color array is enabled. If `glColorMaterial` is enabled while the current color is indeterminate, the lighting material state specified by `face` and `mode` is also indeterminate.

If the GL version is 1.1 or greater, and `GL_COLOR_MATERIAL` is enabled, evaluated color values affect the results of the lighting equation as if the current color were being modified, but no change is made to the tracking lighting parameter of the current color.

## Errors

`GL_INVALID_ENUM` is generated if `face` or `mode` is not an accepted value.

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

## Associated Gets

glIsEnabled with argument `GL_COLOR_MATERIAL`

glGet with argument `GL_COLOR_MATERIAL_PARAMETER`

glGet with argument `GL_COLOR_MATERIAL_FACE`

## See Also

glColor, glColorPointer, glDrawArrays, glDrawElements, glDrawRangeElements, glEnable, glLight, glLightModel, glMaterial

## Copyright

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

Think you can improve this page? Edit this page on GitHub.