glWindowPos — specify the raster position in window coordinates for pixel operations
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) ; |
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) ; |
v
Specifies a pointer to an array of two or three elements, specifying , , coordinates, respectively.
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 and coordinates, while is implicitly set to 0. glWindowPos3
specifies all three coordinates. The coordinate of the current raster position is always set to 1.0.
glWindowPos
directly updates the and 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 coordinate of the current raster position is updated in the following manner:
where is GL_DEPTH_RANGE
's near value, and 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
.
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
.
GL_INVALID_OPERATION
is generated if glWindowPos
is executed between the execution of glBegin and the corresponding execution of glEnd.
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
glBitmap, glCopyPixels, glDrawArrays, glDrawElements, glDrawRangeElements, glDrawPixels, glMultiTexCoord, glRasterPos, glTexCoord, glTexGen, glVertex
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/.