---
name: "glViewport"
section: "3x"
platform: "linux"
package: "xlibmesa-gl-dev"
version: "4.3.0.dfsg.1-14sarge7"
release: "Debian 3.1 (Sarge)"
platforms: ["linux"]
url: "https://new.carta.tech/glViewport"
---

# glViewport(3x)

set the viewport

## NAME

**glViewport** - set the viewport

## C SPECIFICATION

void **glViewport**( GLint *x*,

```
	GLint y,
	GLsizei width,
	GLsizei height )
```

delim $$

## PARAMETERS

- *x*, *y*

  Specify the lower left corner of the viewport rectangle, in pixels. The initial value is (0,0).

- *width*, *height*

  Specify the width and height of the viewport. When a GL context is first attached to a window, *width* and *height* are set to the dimensions of that window.

## DESCRIPTION

**glViewport** specifies the affine transformation of $x$ and $y$ from normalized device coordinates to window coordinates. Let ($x sub nd$, $y sub nd$) be normalized device coordinates. Then the window coordinates ($x sub w$, $y sub w$) are computed as follows:

x sub w ~=~ ( x sub nd ~+~ 1 ) left ( "width" over 2 right ) ~+~ "x"

y sub w ~=~ ( y sub nd ~+~ 1 ) left ( "height" over 2 right ) ~+~ "y"

Viewport width and height are silently clamped to a range that depends on the implementation. To query this range, call **glGet** with argument **GL\_MAX\_VIEWPORT\_DIMS**.

## ERRORS

**GL\_INVALID\_VALUE** is generated if either *width* or *height* is negative.

**GL\_INVALID\_OPERATION** is generated if **glViewport** is executed between the execution of **glBegin** and the corresponding execution of **glEnd**.

## ASSOCIATED GETS

**glGet** with argument **GL\_VIEWPORT**\
 **glGet** with argument **GL\_MAX\_VIEWPORT\_DIMS**

## SEE ALSO

**glDepthRange(3G)**
