Gambas Documentation - /comp/gb.opengl/gl/colormaterial

/comp/gb.opengl/gl/colormaterial

# Gl.ColorMaterial (gb.opengl)

Static Sub ColorMaterial ( Face As Integer, Mode As Integer )

Cause a material color to track the current color.

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

Gl.ColorMaterial 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 Gl.Enable and Gl.Disable with argument Gl.COLOR_MATERIAL. Gl.COLOR_MATERIAL is initially disabled.

### Notes

Gl.ColorMaterial makes it possible to change a subset of material parameters for each vertex using only the Gl.Color command, without calling Gl.Material. If only such a subset of parameters is to be specified for each vertex, calling Gl.ColorMaterial is preferable to calling Gl.Material.

Call Gl.ColorMaterial before enabling Gl.COLOR_MATERIAL.

Calling Gl.DrawElements, Gl.DrawArrays, or Gl.DrawRangeElements may leave the current color indeterminate, if the color array is enabled. If Gl.ColorMaterial 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 Gl.ColorMaterial is executed between the execution of Gl.Begin and the corresponding execution of Gl.End.

### Associated Gets

Gl.IsEnabled with argument Gl.COLOR_MATERIAL

Gl.Get with argument Gl.COLOR_MATERIAL_PARAMETER

Gl.Get with argument Gl.COLOR_MATERIAL_FACE

### See also

- Gl.Color,

Gl.ColorPointer, Gl.DrawArrays, Gl.DrawElements, Gl.DrawRangeElements,

- Gl.Enable,

Gl.Light, Gl.LightModel, Gl.Material

See original documentation on OpenGL website