| Name |
| |
| MESA_window_pos |
| |
| Name Strings |
| |
| GL_MESA_window_pos |
| |
| Contact |
| |
| Brian Paul, brianp 'at' mesa3d.org |
| |
| Status |
| |
| Shipping (since Mesa version 1.2.8) |
| |
| Version |
| |
| $Id: MESA_window_pos.spec,v 1.3 2000/04/04 23:29:32 brianp Exp $ |
| |
| Number |
| |
| 197 |
| |
| Dependencies |
| |
| OpenGL 1.0 is required. |
| The extension is written against the OpenGL 1.2 Specification |
| |
| Overview |
| |
| In order to set the current raster position to a specific window |
| coordinate with the RasterPos command, the modelview matrix, projection |
| matrix and viewport must be set very carefully. Furthermore, if the |
| desired window coordinate is outside of the window's bounds one must |
| rely on a subtle side-effect of the Bitmap command in order to circumvent |
| frustum clipping. |
| |
| This extension provides a set of functions to directly set the |
| current raster position, bypassing the modelview matrix, the |
| projection matrix and the viewport to window mapping. Furthermore, |
| clip testing is not performed. |
| |
| This greatly simplifies the process of setting the current raster |
| position to a specific window coordinate prior to calling DrawPixels, |
| CopyPixels or Bitmap. |
| |
| New Procedures and Functions |
| |
| void WindowPos2dMESA(double x, double y) |
| void WindowPos2fMESA(float x, float y) |
| void WindowPos2iMESA(int x, int y) |
| void WindowPos2sMESA(short x, short y) |
| void WindowPos2ivMESA(const int *p) |
| void WindowPos2svMESA(const short *p) |
| void WindowPos2fvMESA(const float *p) |
| void WindowPos2dvMESA(const double *p) |
| void WindowPos3iMESA(int x, int y, int z) |
| void WindowPos3sMESA(short x, short y, short z) |
| void WindowPos3fMESA(float x, float y, float z) |
| void WindowPos3dMESA(double x, double y, double z) |
| void WindowPos3ivMESA(const int *p) |
| void WindowPos3svMESA(const short *p) |
| void WindowPos3fvMESA(const float *p) |
| void WindowPos3dvMESA(const double *p) |
| void WindowPos4iMESA(int x, int y, int z, int w) |
| void WindowPos4sMESA(short x, short y, short z, short w) |
| void WindowPos4fMESA(float x, float y, float z, float w) |
| void WindowPos4dMESA(double x, double y, double z, double ) |
| void WindowPos4ivMESA(const int *p) |
| void WindowPos4svMESA(const short *p) |
| void WindowPos4fvMESA(const float *p) |
| void WindowPos4dvMESA(const double *p) |
| |
| New Tokens |
| |
| none |
| |
| Additions to Chapter 2 of the OpenGL 1.2 Specification (OpenGL Operation) |
| |
| - (2.12, p. 41) Insert after third paragraph: |
| |
| Alternately, the current raster position may be set by one of the |
| WindowPosMESA commands: |
| |
| void WindowPos{234}{sidf}MESA( T coords ); |
| void WindowPos{234}{sidf}vMESA( T coords ); |
| |
| WindosPos4MESA takes four values indicating x, y, z, and w. |
| WindowPos3MESA (or WindowPos2MESA) is analaguos, but sets only |
| x, y, and z with w implicitly set to 1 (or only x and y with z |
| implicititly set to 0 and w implicitly set to 1). |
| |
| WindowPosMESA operates like RasterPos except that the current modelview |
| matrix, projection matrix and viewport parameters are ignored and the |
| clip test operation always passes. The current raster position values |
| are directly set to the parameters passed to WindowPosMESA. The current |
| color, color index and texture coordinate update the current raster |
| position's associated data. |
| |
| Additions to the AGL/GLX/WGL Specifications |
| |
| None |
| |
| GLX Protocol |
| |
| Not specified at this time. However, a protocol message very similar |
| to that of RasterPos is expected. |
| |
| Errors |
| |
| INVALID_OPERATION is generated if WindowPosMESA is called betweeen |
| Begin and End. |
| |
| New State |
| |
| None. |
| |
| New Implementation Dependent State |
| |
| None. |
| |
| Revision History |
| |
| * Revision 1.0 - Initial specification |
| * Revision 1.1 - Minor clean-up (7 Jan 2000, Brian Paul) |
| |