replace the current matrix with the specified matrix

## Signature

glLoadMatrixd( const GLdouble * ( m ) )-> void
glLoadMatrixf( const GLfloat * ( m ) )-> void

## Parameters

VariablesDescription
m
Specifies a pointer to 16 consecutive values, which are used as the elements of a $44$ 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 $\mathit{v}=\left(\mathit{v}\left[0\right],\mathit{v}\left[1\right],\mathit{v}\left[2\right],\mathit{v}\left[3\right]\right)$ is the set of object coordinates of a vertex, and m points to an array of $16$ single- or double-precision floating-point values $\mathit{m}=\left\{\mathit{m}\left[0\right],\mathit{m}\left[1\right],\mathit{...},\mathit{m}\left[15\right]\right\}$ , then the modelview transformation $\mathit{M}\left(\mathit{v}\right)$ does the following:
$\mathit{M}\left(\mathit{v}\right)=\left(\begin{array}{cccc}\mathit{m}\left[0\right]& \mathit{m}\left[4\right]& \mathit{m}\left[8\right]& \mathit{m}\left[12\right]\\ \mathit{m}\left[1\right]& \mathit{m}\left[5\right]& \mathit{m}\left[9\right]& \mathit{m}\left[13\right]\\ \mathit{m}\left[2\right]& \mathit{m}\left[6\right]& \mathit{m}\left[10\right]& \mathit{m}\left[14\right]\\ \mathit{m}\left[3\right]& \mathit{m}\left[7\right]& \mathit{m}\left[11\right]& \mathit{m}\left[15\right]\end{array}\right)\left(\begin{array}{c}\mathit{v}\left[0\right]\\ \mathit{v}\left[1\right]\\ \mathit{v}\left[2\right]\\ \mathit{v}\left[3\right]\end{array}\right)$
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

## Sample Code References

The following code samples have been found which appear to reference the functions described here. Take care that the code may be old, broken or not even use PyOpenGL.

OpenGLContext tests/gldrawpixelssynth.py Lines: 69
OpenGLContext tests/glhistogram.py Lines: 85
OpenGLContext tests/gldrawpixels.py Lines: 89
OpenGLContext tests/glutbitmapcharacter.py Lines: 37
OpenGLContext OpenGLContext/atlas.py Lines: 254
OpenGLContext OpenGLContext/doinchildmatrix.py Lines: 28
OpenGLContext OpenGLContext/passes/renderpass.py Lines: 297
OpenGLContext OpenGLContext/passes/rendervisitor.py Lines: 419
OpenGLContext tests/shadow_1.py Lines: 289, 393, 395
OpenGLContext OpenGLContext/passes/flatcore.py Lines: 169, 251
OpenGLContext OpenGLContext/passes/_flat.py Lines: 445, 529
OpenGLContext OpenGLContext/passes/flatcompat.py Lines: 61, 71, 131, 141, 154, 183, 267
{LGPL} VisionEgg VisionEgg/Core.py Lines: 800, 805, 810, 816, 821, 834, 847, 886
{LGPL} VisionEgg VisionEgg/GL.py Lines: 50, 51
{LGPL or GPL or MPL} Kamaelia Code/Python/Kamaelia/Kamaelia/UI/OpenGL/OpenGLDisplay.py Lines: 782, 864
{LGPL or GPL or MPL} Kamaelia Sketches/CL/Topology3D/Utils/Particles3D.py Lines: 250, 291, 339
{LGPL or GPL or MPL} Kamaelia Sketches/CL/Topology3D/THF/Kamaelia/UI/OpenGL/OpenGLDisplay.py Lines: 783, 865
{LGPL or GPL or MPL} Kamaelia Sketches/CL/Topology3D/THF/Sketches/PygameWrapperPlane.py Lines: 149
{LGPL or GPL or MPL} Kamaelia Sketches/CL/Topology3D/THF/Sketches/Button3D.py Lines: 181
{LGPL or GPL or MPL} Kamaelia Sketches/CL/Topology3D/THF/Sketches/TexPlane.py Lines: 141
{LGPL or GPL or MPL} Kamaelia Sketches/CL/Topology3D/THF/Sketches/Scrollbar3D.py Lines: 165
{LGPL or GPL or MPL} Kamaelia Sketches/CL/Topology3D/THF/Sketches/Progress3D.py Lines: 140
{LGPL or GPL or MPL} Kamaelia Sketches/CL/Topology3D/THF/Sketches/Object3D.py Lines: 123
{LGPL or GPL or MPL} Kamaelia Sketches/CL/Topology3D/THF/Sketches/SimpleCube.py Lines: 139
{LGPL or GPL or MPL} Kamaelia Sketches/CL/Topology3D/THF/Sketches/playground/Display3D.py Lines: 415, 467
{LGPL or GPL or MPL} Kamaelia Sketches/THF/3D/PygameWrapperPlane.py Lines: 149
{LGPL or GPL or MPL} Kamaelia Sketches/THF/3D/Button3D.py Lines: 181
{LGPL or GPL or MPL} Kamaelia Sketches/THF/3D/TexPlane.py Lines: 141
{LGPL or GPL or MPL} Kamaelia Sketches/THF/3D/Scrollbar3D.py Lines: 165
{LGPL or GPL or MPL} Kamaelia Sketches/THF/3D/Progress3D.py Lines: 140
{LGPL or GPL or MPL} Kamaelia Sketches/THF/3D/Object3D.py Lines: 123
{LGPL or GPL or MPL} Kamaelia Sketches/THF/3D/SimpleCube.py Lines: 139
{LGPL or GPL or MPL} Kamaelia Sketches/THF/3D/playground/Display3D.py Lines: 415, 467