1Name 2 3 MESA_window_pos 4 5Name Strings 6 7 GL_MESA_window_pos 8 9Contact 10 11 Brian Paul, brianp 'at' mesa3d.org 12 13Status 14 15 Shipping (since Mesa version 1.2.8) 16 17Version 18 19 $Date$ $Revision$ 20 Mesa Id: MESA_window_pos.spec,v 1.2 2000/01/07 08:47:15 brianp Exp 21 22Number 23 24 197 25 26Dependencies 27 28 OpenGL 1.0 is required. 29 The extension is written against the OpenGL 1.2 Specification 30 31Overview 32 33 In order to set the current raster position to a specific window 34 coordinate with the RasterPos command, the modelview matrix, projection 35 matrix and viewport must be set very carefully. Furthermore, if the 36 desired window coordinate is outside of the window's bounds one must 37 rely on a subtle side-effect of the Bitmap command in order to circumvent 38 frustum clipping. 39 40 This extension provides a set of functions to directly set the 41 current raster position, bypassing the modelview matrix, the 42 projection matrix and the viewport to window mapping. Furthermore, 43 clip testing is not performed. 44 45 This greatly simplifies the process of setting the current raster 46 position to a specific window coordinate prior to calling DrawPixels, 47 CopyPixels or Bitmap. 48 49New Procedures and Functions 50 51 void WindowPos2dMESA(double x, double y) 52 void WindowPos2fMESA(float x, float y) 53 void WindowPos2iMESA(int x, int y) 54 void WindowPos2sMESA(short x, short y) 55 void WindowPos2ivMESA(const int *p) 56 void WindowPos2svMESA(const short *p) 57 void WindowPos2fvMESA(const float *p) 58 void WindowPos2dvMESA(const double *p) 59 void WindowPos3iMESA(int x, int y, int z) 60 void WindowPos3sMESA(short x, short y, short z) 61 void WindowPos3fMESA(float x, float y, float z) 62 void WindowPos3dMESA(double x, double y, double z) 63 void WindowPos3ivMESA(const int *p) 64 void WindowPos3svMESA(const short *p) 65 void WindowPos3fvMESA(const float *p) 66 void WindowPos3dvMESA(const double *p) 67 void WindowPos4iMESA(int x, int y, int z, int w) 68 void WindowPos4sMESA(short x, short y, short z, short w) 69 void WindowPos4fMESA(float x, float y, float z, float w) 70 void WindowPos4dMESA(double x, double y, double z, double ) 71 void WindowPos4ivMESA(const int *p) 72 void WindowPos4svMESA(const short *p) 73 void WindowPos4fvMESA(const float *p) 74 void WindowPos4dvMESA(const double *p) 75 76New Tokens 77 78 none 79 80Additions to Chapter 2 of the OpenGL 1.2 Specification (OpenGL Operation) 81 82 - (2.12, p. 41) Insert after third paragraph: 83 84 Alternately, the current raster position may be set by one of the 85 WindowPosMESA commands: 86 87 void WindowPos{234}{sidf}MESA( T coords ); 88 void WindowPos{234}{sidf}vMESA( T coords ); 89 90 WindosPos4MESA takes four values indicating x, y, z, and w. 91 WindowPos3MESA (or WindowPos2MESA) is analaguos, but sets only 92 x, y, and z with w implicitly set to 1 (or only x and y with z 93 implicitly set to 0 and w implicitly set to 1). 94 95 WindowPosMESA operates like RasterPos except that the current modelview 96 matrix, projection matrix and viewport parameters are ignored and the 97 clip test operation always passes. The current raster position values 98 are directly set to the parameters passed to WindowPosMESA. The current 99 color, color index and texture coordinate update the current raster 100 position's associated data. 101 102Additions to the AGL/GLX/WGL Specifications 103 104 None 105 106GLX Protocol 107 108 Not specified at this time. However, a protocol message very similar 109 to that of RasterPos is expected. 110 111Errors 112 113 INVALID_OPERATION is generated if WindowPosMESA is called between 114 Begin and End. 115 116New State 117 118 None. 119 120New Implementation Dependent State 121 122 None. 123 124Revision History 125 126 * Revision 1.0 - Initial specification 127 * Revision 1.1 - Minor clean-up (7 Jan 2000, Brian Paul) 128 129