• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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