2010-2013
Khronos Group
glViewportArray
3G

# glViewportArray

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 &it; width 2 + x

y w = y nd + 1 &it; 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`

## See Also

glDepthRange, glViewport, glViewportIndexed

## Copyright

Copyright 2010-2013 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/.