# GLAPI/glViewportArray

Core in version | 4.4 | |
---|---|---|

Core since version | 4.1 | |

Core ARB extension | ARB_viewport_array |

**glViewportArray:** set multiple viewports

## Function Definition

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

- 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:

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

glDepthRangeArray, glViewport, glViewportIndexed

## Copyright

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