GLAPI/glViewportIndexed: Difference between revisions
m Bot: Adjusting API page category. |
m Renaming category: 'GL 4 API Viewport and Clipping' to 'Core API Ref Viewport and Clipping'. |
||
Line 65: | Line 65: | ||
[[Category:API Reference 4|ViewportIndexed]] | [[Category:API Reference 4|ViewportIndexed]] | ||
[[Category: | [[Category:Core API Ref Viewport and Clipping|ViewportIndexed]] |
Revision as of 07:20, 26 February 2012
Core in version | 4.6 | |
---|---|---|
Core since version | 4.1 | |
Core ARB extension | ARB_viewport_array |
glViewportIndexed: set a specified viewport
Function Definition
void glViewportIndexedf(GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); void glViewportIndexedfv(GLuint index, const GLfloat *v);
- 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 (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 (xnd, ynd) be normalized device coordinates. Then the window coordinates (xw, yw) are computed as follows:
$ x_{w}=(x_{nd}+1)\left({\tfrac {width}{2}}\right)+x $
$ y_{w}=(y_{nd}+1)\left({\tfrac {height}{2}}\right)+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);
}
== 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
See Also
glDepthRange, glViewport, glViewportArray
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/.