Light | Dark

# docs.GL

OpenGL 3
OpenGL 2

# glWindowPos

## Name

glWindowPos — specify the raster position in window coordinates for pixel operations

## C Specification

`void glWindowPos2s(` | GLshort | x,
| GLshort | y`)`;

`void glWindowPos2i(` | GLint | x,
| GLint | y`)`;

`void glWindowPos2f(` | GLfloat | x,
| GLfloat | y`)`;

`void glWindowPos2d(` | GLdouble | x,
| GLdouble | y`)`;

`void glWindowPos3s(` | GLshort | x,
| GLshort | y,
| GLshort | z`)`;

`void glWindowPos3i(` | GLint | x,
| GLint | y,
| GLint | z`)`;

`void glWindowPos3f(` | GLfloat | x,
| GLfloat | y,
| GLfloat | z`)`;

`void glWindowPos3d(` | GLdouble | x,
| GLdouble | y,
| GLdouble | z`)`;

## Parameters

`x`, `y`, `z`

  Specify the x, y, z coordinates for the raster position.

## C Specification

`void glWindowPos2sv(` | const GLshort * | v`)`;

`void glWindowPos2iv(` | const GLint * | v`)`;

`void glWindowPos2fv(` | const GLfloat * | v`)`;

`void glWindowPos2dv(` | const GLdouble * | v`)`;

`void glWindowPos3sv(` | const GLshort * | v`)`;

`void glWindowPos3iv(` | const GLint * | v`)`;

`void glWindowPos3fv(` | const GLfloat * | v`)`;

`void glWindowPos3dv(` | const GLdouble * | v`)`;

## Parameters

`v`

  Specifies a pointer to an array of two or three elements, specifying x, y, z coordinates, respectively.

## Description

The GL maintains a 3D position in window coordinates. This position, called the raster position, is used to position pixel and bitmap write operations. It is maintained with subpixel accuracy. See glBitmap, glDrawPixels, and glCopyPixels.

`glWindowPos2` specifies the x and y coordinates, while z is implicitly set to 0. `glWindowPos3` specifies all three coordinates. The w coordinate of the current raster position is always set to 1.0.

`glWindowPos` directly updates the x and y coordinates of the current raster position with the values specified. That is, the values are neither transformed by the current modelview and projection matrices, nor by the viewport-to-window transform. The z coordinate of the current raster position is updated in the following manner:

z = n f n + z × f - n ⁢ if ⁢ z <= 0 if ⁢ z >= 1 otherwise

where n is `GL_DEPTH_RANGE`'s near value, and f is `GL_DEPTH_RANGE`'s far value. See glDepthRange.

The specified coordinates are not clip-tested, causing the raster position to always be valid.

The current raster position also includes some associated color data and texture coordinates. If lighting is enabled, then `GL_CURRENT_RASTER_COLOR` (in RGBA mode) or `GL_CURRENT_RASTER_INDEX` (in color index mode) is set to the color produced by the lighting calculation (see glLight, glLightModel, and glShadeModel). If lighting is disabled, current color (in RGBA mode, state variable `GL_CURRENT_COLOR`) or color index (in color index mode, state variable `GL_CURRENT_INDEX`) is used to update the current raster color. `GL_CURRENT_RASTER_SECONDARY_COLOR` (in RGBA mode) is likewise updated.

Likewise, `GL_CURRENT_RASTER_TEXTURE_COORDS` is updated as a function of `GL_CURRENT_TEXTURE_COORDS`, based on the texture matrix and the texture generation functions (see glTexGen). The `GL_CURRENT_RASTER_DISTANCE` is set to the `GL_CURRENT_FOG_COORD`.

## Notes

`glWindowPos` is available only if the GL version is 1.4 or greater.

The raster position is modified by glRasterPos, glBitmap, and `glWindowPos`.

Calling glDrawElements, or glDrawRangeElements may leave the current color or index indeterminate. If `glWindowPos` is executed while the current color or index is indeterminate, the current raster color or current raster index remains indeterminate.

There are distinct raster texture coordinates for each texture unit. Each texture unit's current raster texture coordinates are updated by `glWindowPos`.

## Errors

`GL_INVALID_OPERATION` is generated if `glWindowPos` is executed between the execution of glBegin and the corresponding execution of glEnd.

## Associated Gets

glGet with argument `GL_CURRENT_RASTER_POSITION`

glGet with argument `GL_CURRENT_RASTER_POSITION_VALID`

glGet with argument `GL_CURRENT_RASTER_DISTANCE`

glGet with argument `GL_CURRENT_RASTER_COLOR`

glGet with argument `GL_CURRENT_RASTER_SECONDARY_COLOR`

glGet with argument `GL_CURRENT_RASTER_INDEX`

glGet with argument `GL_CURRENT_RASTER_TEXTURE_COORDS`

## See Also

glBitmap, glCopyPixels, glDrawArrays, glDrawElements, glDrawRangeElements, glDrawPixels, glMultiTexCoord, glRasterPos, glTexCoord, glTexGen, glVertex

## Copyright

Copyright © 1991-2006 Silicon Graphics, Inc. This document is licensed under the SGI Free Software B License. For details, see https://web.archive.org/web/20171022161616/http://oss.sgi.com/projects/FreeB/.

Think you can improve this page? Edit this page on GitHub.