GLdouble _y )void ggllRRaasstteerrPPooss22ff( GLfloat _x,
GLfloat _y )void ggllRRaasstteerrPPooss22ii( GLint _x,
GLint _y )void ggllRRaasstteerrPPooss22ss( GLshort _x,
GLshort _y )void ggllRRaasstteerrPPooss33dd( GLdouble _x,
GLdouble _y, GLdouble _z )void ggllRRaasstteerrPPooss33ff( GLfloat _x,
GLfloat _y, GLfloat _z )void ggllRRaasstteerrPPooss33ii( GLint _x,
GLint _y, GLint _z )void ggllRRaasstteerrPPooss33ss( GLshort _x,
GLshort _y, GLshort _z )void ggllRRaasstteerrPPooss44dd( GLdouble _x,
GLdouble _y, GLdouble _z, GLdouble _w )void ggllRRaasstteerrPPooss44ff( GLfloat _x,
GLfloat _y, GLfloat _z, GLfloat _w )void ggllRRaasstteerrPPooss44ii( GLint _x,
GLint _y, GLint _z, GLint _w )void ggllRRaasstteerrPPooss44ss( GLshort _x,
GLshort _y, GLshort _z, GLshort _w )
delim $$
void ggllRRaasstteerrPPooss22ffvv( const GLfloat _*_v )
void ggllRRaasstteerrPPooss22iivv( const GLint _*_v )
void ggllRRaasstteerrPPooss22ssvv( const GLshort _*_v )
void ggllRRaasstteerrPPooss33ddvv( const GLdouble _*_v )
void ggllRRaasstteerrPPooss33ffvv( const GLfloat _*_v )
void ggllRRaasstteerrPPooss33iivv( const GLint _*_v )
void ggllRRaasstteerrPPooss33ssvv( const GLshort _*_v )
void ggllRRaasstteerrPPooss44ddvv( const GLdouble _*_v )
void ggllRRaasstteerrPPooss44ffvv( const GLfloat _*_v )
void ggllRRaasstteerrPPooss44iivv( const GLint _*_v )
void ggllRRaasstteerrPPooss44ssvv( const GLshort _*_v )
The current raster position consists of three window coordinates ($x$, $y$, $z$), a clip coordinate value ($w$), an eye coordinate distance, a valid bit, and associated color data and texture coordinates. The $w$ coordinate is a clip coordinate, because $w$ is not projected to window coordinates. ggllRRaasstteerrPPooss44 specifies object coordinates $x$, $y$, $z$, and $w$ explicitly. ggllRRaasstteerrPPooss33 specifies object coordinate $x$, $y$, and $z$ explicitly, while $w$ is implicitly set to 1. ggllRRaasstteerrPPooss22 uses the argument values for $x$ and $y$ while implicitly setting $z$ and $w$ to 0 and 1.
The object coordinates presented by ggllRRaasstteerrPPooss are treated just like those of a ggllVVeerrtteexx command: They are transformed by the current modelview and projection matrices and passed to the clipping stage. If the vertex is not culled, then it is projected and scaled to window coordinates, which become the new current raster position, and the GGLL__CCUURRRREENNTT__RRAASSTTEERR__PPOOSSIITTIIOONN__VVAALLIIDD flag is set. If the vertex is culled, then the valid bit is cleared and the current raster position and associated color and texture coordinates are undefined.
The current raster position also includes some associated color data
and texture coordinates.
If lighting is enabled,
then GGLL__CCUURRRREENNTT__RRAASSTTEERR__CCOOLLOORR
(in RGBA mode)
or GGLL__CCUURRRREENNTT__RRAASSTTEERR__IINNDDEEXX
(in color index mode)
is set to the color produced by the lighting calculation
(see ggllLLiigghhtt, ggllLLiigghhttMMooddeell, and
ggllSShhaaddeeMMooddeell).
If lighting is disabled,
current color
(in RGBA mode, state variable GGLL__CCUURRRREENNTT__CCOOLLOORR)
or color index
(in color index mode, state variable GGLL__CCUURRRREENNTT__IINNDDEEXX)
is used to update the current raster color.
Likewise, GGLL__CCUURRRREENNTT__RRAASSTTEERR__TTEEXXTTUURREE__CCOOOORRDDSS is updated as a function of GGLL__CCUURRRREENNTT__TTEEXXTTUURREE__CCOOOORRDDSS, based on the texture matrix and the texture generation functions (see ggllTTeexxGGeenn). Finally, the distance from the origin of the eye coordinate system to the vertex as transformed by only the modelview matrix replaces GGLL__CCUURRRREENNTT__RRAASSTTEERR__DDIISSTTAANNCCEE.
Initially, the current raster position is (0, 0, 0, 1), the current raster distance is 0, the valid bit is set, the associated RGBA color is (1, 1, 1, 1), the associated color index is 1, and the associated texture coordinates are (0, 0, 0, 1). In RGBA mode, GGLL__CCUURRRREENNTT__RRAASSTTEERR__IINNDDEEXX is always 1; in color index mode, the current raster RGBA color always maintains its initial value.
When the raster position coordinates are invalid, drawing commands that are based on the raster position are ignored (that is, they do not result in changes to GL state).
Calling ggllDDrraawwEElleemmeennttss, or ggllDDrraawwRRaannggeeEElleemmeennttss may leave the current color or index indeterminate. If ggllRRaasstteerrPPooss is executed while the current color or index is indeterminate, the current raster color or current raster index remains indeterminate.
To set a valid raster position outside the viewport, first set a valid raster position, then call ggllBBiittmmaapp with NULL as the _b_i_t_m_a_p parameter.
When the GGLL__AARRBB__iimmaaggiinngg extension is supported, there are distinct raster texture coordinates for each texture unit. Each texture unit's current raster texture coordinates are updated by ggllRRaasstteerrPPooss.