1991-2006 Silicon Graphics, Inc.
glRect 3G
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 http://oss.sgi.com/projects/FreeB/.