Light | Dark

# docs.GL

OpenGL 3
OpenGL 2

# glRect

## Name

glRect — draw a rectangle

## C Specification

`void glRectd(` | GLdouble | x1,
| GLdouble | y1,
| GLdouble | x2,
| GLdouble | y2`)`;

`void glRectf(` | GLfloat | x1,
| GLfloat | y1,
| GLfloat | x2,
| GLfloat | y2`)`;

`void glRecti(` | GLint | x1,
| GLint | y1,
| GLint | x2,
| GLint | y2`)`;

`void glRects(` | GLshort | x1,
| GLshort | y1,
| GLshort | x2,
| GLshort | y2`)`;

## Parameters

`x1`, `y1`

  Specify one vertex of a rectangle.

`x2`, `y2`

  Specify the opposite vertex of the rectangle.

## C Specification

`void glRectdv(` | const GLdouble * | v1,
| const GLdouble * | v2`)`;

`void glRectfv(` | const GLfloat * | v1,
| const GLfloat * | v2`)`;

`void glRectiv(` | const GLint * | v1,
| const GLint * | v2`)`;

`void glRectsv(` | const GLshort * | v1,
| const GLshort * | v2`)`;

## Parameters

`v1`

  Specifies a pointer to one vertex of a rectangle.

`v2`

  Specifies a pointer to the opposite vertex of the rectangle.

## Description

`glRect` supports efficient specification of rectangles as two corner points. Each rectangle command takes four arguments, organized either as two consecutive pairs of x y coordinates or as two pointers to arrays, each containing an x y pair. The resulting rectangle is defined in the z = 0 plane.

`glRect`(`x1`, `y1`, `x2`, `y2`) is exactly equivalent to the following sequence:

    glBegin(GL_POLYGON);
    glVertex2(x1, y1);
    glVertex2(x2, y1);
    glVertex2(x2, y2);
    glVertex2(x1, y2);
    glEnd();

Note that if the second vertex is above and to the right of the first vertex, the rectangle is constructed with a counterclockwise winding.

## Errors

`GL_INVALID_OPERATION` is generated if `glRect` is executed between the execution of glBegin and the corresponding execution of glEnd.

## See Also

glBegin, glVertex

## Copyright

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

Think you can improve this page? Edit this page on GitHub.