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