# glViewportIndexed

set a specified viewport

## Signature

glViewportIndexed( )->
glViewportIndexedf( GLuint ( index ) , GLfloat ( x ) , GLfloat ( y ) , GLfloat ( w ) , GLfloat ( h ) )-> void
glViewportIndexedf( x , y , w , )
glViewportIndexedfv( GLuint ( index ) , const GLfloat *( v ) )-> void
glViewportIndexedfv( )

## Parameters

VariablesDescription
index
Specify the first viewport to set.
x, y
For glViewportIndexedf , specifies the lower left corner of the viewport rectangle, in pixels. The initial value is (0,0).
width, height
For glViewportIndexedf , specifies 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.
v
For glViewportIndexedfv , specifies the address of an array containing the viewport parameters.

## Description

glViewportIndexedf and glViewportIndexedfv specify the parameters for a single viewport. index specifies the index of the viewport to modify. index must be less than the value of GL_MAX_VIEWPORTS . For glViewportIndexedf , x , y , w , and h specify the left, bottom, width and height of the viewport in pixels, respectively. For glViewportIndexedfv , v contains the address of an array of floating point values specifying the left ( $\mathit{x}$ ), bottom ( $\mathit{y}$ ), width ( $\mathit{w}$ ), and height ( $\mathit{h}$ ) of each viewport, in that order. $\mathit{x}$ and $\mathit{y}$ give the location of the viewport's lower left corner, and $\mathit{w}$ and $\mathit{h}$ give the width and height of the viewport, respectively. The viewport specifies the affine transformation of $\mathit{x}$ and $\mathit{y}$ from normalized device coordinates to window coordinates. Let $\left({\mathit{x}}_{\mathit{nd}},{\mathit{y}}_{\mathit{nd}}\right)$ be normalized device coordinates. Then the window coordinates $\left({\mathit{x}}_{\mathit{w}},{\mathit{y}}_{\mathit{w}}\right)$ are computed as follows:
${\mathit{x}}_{\mathit{w}}=\left({\mathit{x}}_{\mathit{nd}}+1\right)\left(\frac{\mathit{width}}{2}\right)+\mathit{x}$
${\mathit{y}}_{\mathit{w}}=\left({\mathit{y}}_{\mathit{nd}}+1\right)\left(\frac{\mathit{height}}{2}\right)+\mathit{y}$
The location of the viewport's bottom left corner, given by ( $\mathit{x}$ , $\mathit{y}$ ) is clamped to be within the implementaiton-dependent viewport bounds range. The viewport bounds range [ $\mathit{min}$ , $\mathit{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 .
Calling glViewportIndexedfv is equivalent to calling glViewportArray with first set to index , count set to 1 and v passsed directly. glViewportIndexedf is equivalent to:
void glViewportIndexedf(GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h) { const float v[4] = { x, y, w, h }; glViewportArrayv(index, 1, v); }

## Errors

GL_INVALID_VALUE is generated if index 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