# glOrtho

The **glOrtho** function multiplies the current matrix by an orthographic matrix.

void glOrtho( GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar );

#### Parameters

*left, right*- The coordinates for the left-and right-vertical clipping planes.
*bottom, top*- The coordinates for the bottom- and top-horizontal clipping planes.
*zNear, zFar*- The distances to the nearer and farther depth clipping planes. These distances are negative if the plane is to be behind the viewer.

#### Remarks

The **glOrtho** function describes a perspective matrix that produces a parallel projection. The (*left*, *bottom*, *near*) and (*right*, *top*, *near*) parameters specify the points on the near clipping plane that are mapped to the lower-left and upper-right corners of the window, respectively, assuming that the eye is located at (0, 0, 0). The *far* parameter specifies the location of the far clipping plane. Both *near* and *far* can be either positive or negative. The corresponding matrix is

where

The current matrix is multiplied by this matrix with the result replacing the current matrix. That is, if M is the current matrix and O is the ortho matrix, then M is replaced with M • O.

Use **glPushMatrix** and **glPopMatrix** to save and restore the current matrix stack. Use **glMatrixMode** to set the current matrix.

The following functions retrieve information related to **glOrtho**:

**glGet** with argument GL_MATRIX_MODE

**glGet** with argument GL_MODELVIEW_MATRIX

**glGet** with argument GL_PROJECTION_MATRIX

**glGet** with argument GL_TEXTURE_MATRIX

#### Error Codes

The following is the error code and its condition.

Error code | Condition |
---|---|

GL_INVALID_OPERATION | glOrtho was called between a call to glBegin and the corresponding call to glEnd. |

#### Requirements

** Windows NT/2000: **Requires Windows NT 3.5 or later.

** Windows 95/98: **Requires Windows 95 or later. Available as a redistributable for Windows 95.

** Header: **Declared in Gl.h.

** Library: **Use Opengl32.lib.

#### See Also

**glBegin**, **glEnd**, **glFrustum**, **glMatrixMode**, **glMultMatrix**, **glPushMatrix**, **glViewport**