glViewportIndexed.3G - Man Page

set a specified viewport

C Specification

void glViewportIndexedf(GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h);

void glViewportIndexedfv(GLuint index, const GLfloat *v);



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).

w,  h

For glViewportIndexedf, specifies the width and height of the viewport. When a GL context is first attached to a window, w and h are set to the dimensions of that window.


For glViewportIndexedfv, specifies the address of an array containing the viewport parameters.


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 (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.

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);


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 w or h 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 Name2.

See Also

glDepthRange(), glViewport(), glViewportArray()

Referenced By

glScissorArray.3G(3), glViewportArray.3G(3).