---
name: "glColor"
section: "3x"
platform: "linux"
package: "xlibmesa-gl-dev"
version: "4.3.0.dfsg.1-14sarge7"
release: "Debian 3.1 (Sarge)"
platforms: ["linux"]
url: "https://new.carta.tech/glColor"
---

# glColor(3x)

set the current color

## NAME

**glColor3b, glColor3d, glColor3f, glColor3i, glColor3s, glColor3ub, glColor3ui, glColor3us, glColor4b, glColor4d, glColor4f, glColor4i, glColor4s, glColor4ub, glColor4ui, glColor4us, glColor3bv, glColor3dv, glColor3fv, glColor3iv, glColor3sv, glColor3ubv, glColor3uiv, glColor3usv, glColor4bv, glColor4dv, glColor4fv, glColor4iv, glColor4sv, glColor4ubv, glColor4uiv, glColor4usv** - set the current color

## C SPECIFICATION

void **glColor3b**( GLbyte *red*,

```
	GLbyte green,
	GLbyte blue )
```

void **glColor3d**( GLdouble *red*,

```
	GLdouble green,
	GLdouble blue )
```

void **glColor3f**( GLfloat *red*,

```
	GLfloat green,
	GLfloat blue )
```

void **glColor3i**( GLint *red*,

```
	GLint green,
	GLint blue )
```

void **glColor3s**( GLshort *red*,

```
	GLshort green,
	GLshort blue )
```

void **glColor3ub**( GLubyte *red*,

```
	GLubyte green,
	GLubyte blue )
```

void **glColor3ui**( GLuint *red*,

```
	GLuint green,
	GLuint blue )
```

void **glColor3us**( GLushort *red*,

```
	GLushort green,
	GLushort blue )
```

void **glColor4b**( GLbyte *red*,

```
	GLbyte green,
	GLbyte blue,
	GLbyte alpha )
```

void **glColor4d**( GLdouble *red*,

```
	GLdouble green,
	GLdouble blue,
	GLdouble alpha )
```

void **glColor4f**( GLfloat *red*,

```
	GLfloat green,
	GLfloat blue,
	GLfloat alpha )
```

void **glColor4i**( GLint *red*,

```
	GLint green,
	GLint blue,
	GLint alpha )
```

void **glColor4s**( GLshort *red*,

```
	GLshort green,
	GLshort blue,
	GLshort alpha )
```

void **glColor4ub**( GLubyte *red*,

```
	GLubyte green,
	GLubyte blue,
	GLubyte alpha )
```

void **glColor4ui**( GLuint *red*,

```
	GLuint green,
	GLuint blue,
	GLuint alpha )
```

void **glColor4us**( GLushort *red*,

```
	GLushort green,
	GLushort blue,
	GLushort alpha )
```

delim $$

## PARAMETERS

- *red*, *green*, *blue*

  Specify new red, green, and blue values for the current color.

- *alpha*

  Specifies a new alpha value for the current color. Included only in the four-argument **glColor4** commands.

## C SPECIFICATION

void **glColor3bv**( const GLbyte *\*v* )

```

```

void **glColor3dv**( const GLdouble *\*v* )

```

```

void **glColor3fv**( const GLfloat *\*v* )

```

```

void **glColor3iv**( const GLint *\*v* )

```

```

void **glColor3sv**( const GLshort *\*v* )

```

```

void **glColor3ubv**( const GLubyte *\*v* )

```

```

void **glColor3uiv**( const GLuint *\*v* )

```

```

void **glColor3usv**( const GLushort *\*v* )

```

```

void **glColor4bv**( const GLbyte *\*v* )

```

```

void **glColor4dv**( const GLdouble *\*v* )

```

```

void **glColor4fv**( const GLfloat *\*v* )

```

```

void **glColor4iv**( const GLint *\*v* )

```

```

void **glColor4sv**( const GLshort *\*v* )

```

```

void **glColor4ubv**( const GLubyte *\*v* )

```

```

void **glColor4uiv**( const GLuint *\*v* )

```

```

void **glColor4usv**( const GLushort *\*v* )

```

```

## PARAMETERS

- *v*

  Specifies a pointer to an array that contains red, green, blue, and (sometimes) alpha values.

## DESCRIPTION

The GL stores both a current single-valued color index and a current four-valued RGBA color. **glColor** sets a new four-valued RGBA color. **glColor** has two major variants: **glColor3** and **glColor4**. **glColor3** variants specify new red, green, and blue values explicitly and set the current alpha value to 1.0 (full intensity) implicitly. **glColor4** variants specify all four color components explicitly.

**glColor3b**, **glColor4b**, **glColor3s**, **glColor4s**, **glColor3i**, and **glColor4i** take  three or four signed byte, short, or long integers as arguments. When **v** is appended to the name, the color commands can take a pointer to an array of such values.

Current color values are stored in floating-point , with unspecified mantissa and exponent sizes. Unsigned integer color components, when specified, are linearly mapped to floating-point values such that the largest representable value maps to 1.0 (full intensity), and 0 maps to 0.0 (zero intensity). Signed integer color components, when specified, are linearly mapped to floating-point values such that the most positive representable value maps to 1.0, and the most negative representable value maps to -1.0. (Note that this mapping does not convert 0 precisely to 0.0.) Floating-point values are mapped directly.

Neither floating-point nor signed integer values are clamped to the range \[0,1\] before the current color is updated. However, color components are clamped to this range before they are interpolated or written into a color buffer.

## NOTES

The initial value for the current color is (1, 1, 1, 1).

The current color can be updated at any time. In particular, **glColor** can be called between a call to **glBegin** and the corresponding call to **glEnd**.

## ASSOCIATED GETS

**glGet** with argument **GL\_CURRENT\_COLOR**\
 **glGet** with argument **GL\_RGBA\_MODE**

## SEE ALSO

**glIndex(3G)**
