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

# glLoadMatrix(3x)

replace the current matrix with the specified matrix

## NAME

**glLoadMatrixd, glLoadMatrixf** - replace the current matrix with the specified matrix

## C SPECIFICATION

void **glLoadMatrixd**( const GLdouble *\*m* )

```

```

void **glLoadMatrixf**( const GLfloat *\*m* )

```

```

delim $$

## PARAMETERS

- *m*

  Specifies a pointer to 16 consecutive values, which are used as the elements of a $4 ~times~ 4$ column-major matrix.

## DESCRIPTION

**glLoadMatrix** replaces the current matrix with the one whose elements are specified by *m*. The current matrix is the projection matrix, modelview matrix, or texture matrix, depending on the current matrix mode (see **glMatrixMode**).

The current matrix, M, defines a transformation of coordinates. For instance, assume M refers to the modelview matrix. If  $v ~=~ (v\[0\], v\[1\], v\[2\], v\[3\])$ is the set of object coordinates of a vertex, and *m* points to an array of $16$  single- or double-precision floating-point values $m\[0\], m\[1\],. . .,m\[15\]$, then the modelview transformation $M(v)$ does the following:

down 130 {M(v)  ~ = ~  {{ left (  matrix {\
    ccol { ~m\[0\] above m\[1\] above m\[2\] above m\[3\] ~}\
    ccol { ~m\[4\] above m\[5\] above m\[6\] above m\[7\] ~}\
    ccol { ~m\[8\] above m\[9\] above m\[10\] above m\[11\] ~}\
    ccol { ~m\[12\]~ above m\[13\]~ above m\[14\]~ above m\[15\]~} } right ) } ~~ times ~~ {left ( matrix { ccol { ~v\[0\]~ above ~v\[1\]~ above ~v\[2\]~ above ~v\[3\]~ } } right )} }}

Where \`\`$times$'' denotes matrix multiplication.

Projection and texture transformations are similarly defined.

## NOTES

While the elements of the matrix may be specified with single or double precision, the GL implementation may store or operate on these values in less than single precision.

## ERRORS

**GL\_INVALID\_OPERATION** is generated if **glLoadMatrix** 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

**glLoadIdentity(3G)**, **glMatrixMode(3G)**, **glMultMatrix(3G)**, **glPushMatrix(3G)**
