xenocara/dist/Mesa/progs/util/winpos.c
2006-11-25 18:49:17 +00:00

43 lines
903 B
C

/* winpos.c */
/*
* Set the current raster position to a specific window
* coordinate. Also see the GL_MESA_window_pos extension.
*
* Written by Brian Paul and in the public domain.
*/
void WindowPos( GLfloat x, GLfloat y, GLfloat z )
{
GLfloat fx, fy;
/* Push current matrix mode and viewport attributes */
glPushAttrib( GL_TRANSFORM_BIT | GL_VIEWPORT_BIT );
/* Setup projection parameters */
glMatrixMode( GL_PROJECTION );
glPushMatrix();
glLoadIdentity();
glMatrixMode( GL_MODELVIEW );
glPushMatrix();
glLoadIdentity();
glDepthRange( z, z );
glViewport( (int) x - 1, (int) y - 1, 2, 2 );
/* set the raster (window) position */
fx = x - (int) x;
fy = y - (int) y;
glRasterPos3f( fx, fy, 0.0 );
/* restore matrices, viewport and matrix mode */
glPopMatrix();
glMatrixMode( GL_PROJECTION );
glPopMatrix();
glPopAttrib();
}