---
name: "glScale"
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/glScale"
---

# glScale(3x)

multiply the current matrix by a general scaling matrix

## NAME

**glScaled, glScalef** - multiply the current matrix by a general scaling matrix

## C SPECIFICATION

void **glScaled**( GLdouble *x*,

```
	GLdouble y,
	GLdouble z )
```

void **glScalef**( GLfloat *x*,

```
	GLfloat y,
	GLfloat z )
```

delim $$

## PARAMETERS

- *x*, *y*, *z*

  Specify scale factors along the *x*, *y*, and *z* axes, respectively.

## DESCRIPTION

**glScale** produces a nonuniform scaling along the *x*, *y*, and *z* axes.  The three parameters indicate the desired scale factor along each of the three axes.

The current matrix (see **glMatrixMode**) is multiplied by this scale matrix, and the product replaces the current matrix as if **glScale** were called with the following matrix as its argument:

left ( ~ down 20 matrix {\
    ccol { ~"x" above ~0 above ~0 above ~0 }\
    ccol { ~0 above ~"y" above ~0 above ~0 }\
    ccol { ~0 above ~0 above ~"z" above ~0 }\
    ccol { ~0 above ~0 above ~0 above ~1} } ~~ right )

If the matrix mode is either **GL\_MODELVIEW** or **GL\_PROJECTION**, all objects drawn after **glScale** is called are scaled.

Use **glPushMatrix** and **glPopMatrix** to save and restore the unscaled coordinate system.

## NOTES

If scale factors other than 1 are applied to the modelview matrix and lighting is enabled, lighting often appears wrong. In that case, enable automatic normalization of normals by calling **glEnable** with the argument **GL\_NORMALIZE**.

## ERRORS

**GL\_INVALID\_OPERATION** is generated if **glScale** is executed between the execution of  **glBegin** and the corresponding execution of **glEnd**.

## ASSOCIATED GETS

**glGet** with argument **GL\_MATRIX\_MODE**\
 **glGet** with argument **GL\_COLOR\_MATRIX**\
 **glGet** with argument **GL\_MODELVIEW\_MATRIX**\
 **glGet** with argument **GL\_PROJECTION\_MATRIX**\
 **glGet** with argument **GL\_TEXTURE\_MATRIX**

## SEE ALSO

**glMatrixMode(3G)**, **glMultMatrix(3G)**,  **glPushMatrix(3G)**, **glRotate(3G)**, **glTranslate(3G)**
