1991-2006
Silicon Graphics, Inc.
glLoadMatrix
3G

# glLoadMatrix

replace the current matrix with the specified matrix

## C Specification

                    void glLoadMatrixd
                    const GLdouble * m

                    void glLoadMatrixf
                    const GLfloat * m

## Parameters

`m`

  Specifies a pointer to 16 consecutive values, which are used as the elements of a 4 × 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 &af; 0 v &af; 1 v &af; 2 v &af; 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 = m &af; 0 m &af; 1 ... m &af; 15 , then the modelview transformation M &af; v does the following:

M &af; v = m &af; 0 m &af; 4 m &af; 8 m &af; 12 m &af; 1 m &af; 5 m &af; 9 m &af; 13 m &af; 2 m &af; 6 m &af; 10 m &af; 14 m &af; 3 m &af; 7 m &af; 11 m &af; 15 × v &af; 0 v &af; 1 v &af; 2 v &af; 3

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, glMatrixMode, glMultMatrix, glMultTransposeMatrix, glPushMatrix

## Copyright

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