1991-2006
Silicon Graphics, Inc.
glWindowPos
3G

# 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 &it; if &it; z <= 0 if &it; 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 http://oss.sgi.com/projects/FreeB/.