# glViewportArray.3G - Man Page

set multiple viewports

## C Specification

**void glViewportArrayv(GLuint** *first***, GLsizei** *count***, const GLfloat ****v***);**

## Parameters

*first*Specify the first viewport to set.

*count*Specify the number of viewports to set.

*v*Specify the address of an array containing the viewport parameters.

## Description

**glViewportArrayv** specifies the parameters for multiple viewports simulataneously. *first* specifies the index of the first viewport to modify and *count* specifies the number of viewports to modify. *first* must be less than the value of **GL_MAX_VIEWPORTS**, and *first* + *count* must be less than or equal to the value of **GL_MAX_VIEWPORTS**. Viewports whose indices lie outside the range [*first*, *first* + *count*) are not modified. *v* contains the address of an array of floating point values specifying the left (x), bottom (y), width (w), and height (h) of each viewport, in that order. x and y give the location of the viewport's lower left corner, and w and h give the width and height of the viewport, respectively. The viewport specifies the affine transformation of x and y from normalized device coordinates to window coordinates. Let x nd y nd be normalized device coordinates. Then the window coordinates x w y w are computed as follows:

x w = x nd + 1 width 2 + x

y w = y nd + 1 height 2 + y

The location of the viewport's bottom left corner, given by (x, y) is clamped to be within the implementaiton-dependent viewport bounds range. The viewport bounds range [min, max] can be determined by calling **glGet**() with argument **GL_VIEWPORT_BOUNDS_RANGE**. 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**.

The precision with which the GL interprets the floating point viewport bounds is implementation-dependent and may be determined by querying the impementation-defined constant **GL_VIEWPORT_SUBPIXEL_BITS**.

## Errors

**GL_INVALID_VALUE** is generated if *first* is greater than or equal to the value of **GL_MAX_VIEWPORTS**.

**GL_INVALID_VALUE** is generated if *first* + *count* is greater than or equal to the value of **GL_MAX_VIEWPORTS**.

**GL_INVALID_VALUE** is generated if either *width* or *height* is negative.

## Associated Gets

**glGet**() with argument **GL_VIEWPORT**

**glGet**() with argument **GL_MAX_VIEWPORT_DIMS**

**glGet**() with argument **GL_VIEWPORT_BOUNDS_RANGE**

**glGet**() with argument **GL_VIEWPORT_SUBPIXEL_BITS**

## Version Support

OpenGL Version | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|

Function / Feature Name | 2.0 | 2.1 | 3.0 | 3.1 | 3.2 | 3.3 | 4.0 | 4.1 | 4.2 | 4.3 | 4.4 | 4.5 |

glViewportArrayv | - | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ |

## See Also

glDepthRange(), glViewport(), glViewportIndexed()

## Copyright

Copyright © 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999. http://opencontent.org/openpub/.

## Copyright

Copyright © 2010-2014 Khronos Group

## Referenced By

glDepthRangeArray.3G(3), glDepthRangeIndexed.3G(3), glScissorArray.3G(3), glViewportIndexed.3G(3).