Debugger() takes a string parameter.
[nvidia.git] / doc / glxtokens.h
1 #ifndef __glxtokens_h__
2 #define __glxtokens_h__
3
4 /*
5 ** The contents of this file are subject to the GLX Public License Version 1.0
6 ** (the "License"). You may not use this file except in compliance with the
7 ** License. You may obtain a copy of the License at Silicon Graphics, Inc.,
8 ** attn: Legal Services, 2011 N. Shoreline Blvd., Mountain View, CA 94043
9 ** or at http://www.sgi.com/software/opensource/glx/license.html.
10 **
11 ** Software distributed under the License is distributed on an "AS IS"
12 ** basis. ALL WARRANTIES ARE DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY
13 ** IMPLIED WARRANTIES OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR
14 ** PURPOSE OR OF NON- INFRINGEMENT. See the License for the specific
15 ** language governing rights and limitations under the License.
16 **
17 ** The Original Software is GLX version 1.2 source code, released February,
18 ** 1999. The developer of the Original Software is Silicon Graphics, Inc.
19 ** Those portions of the Subject Software created by Silicon Graphics, Inc.
20 ** are Copyright (c) 1991-9 Silicon Graphics, Inc. All Rights Reserved.
21 */
22
23 #define GLX_VERSION_1_1         1
24 #define GLX_VERSION_1_2         1
25 #define GLX_VERSION_1_3         1
26 #define GLX_VERSION_1_4         1
27
28 /* GLX Extensions */
29 #define GLX_EXT_fbconfig_packed_float 1
30 #define GLX_EXT_framebuffer_sRGB 1
31 #define GLX_EXT_import_context   1
32 #define GLX_EXT_visual_info      1
33 #define GLX_EXT_visual_rating    1
34 #define GLX_SGIX_fbconfig        1
35 #define GLX_SGIX_pbuffer         1
36 #define GLX_NV_float_buffer      1
37 #define GLX_ARB_fbconfig_float   1
38 #define GLX_ARB_get_proc_address 1
39 #define GLX_ARB_multisample     1
40
41 /*
42  * Names for attributes to glXGetConfig.
43  */
44 #define GLX_USE_GL              1       /* support GLX rendering */
45 #define GLX_BUFFER_SIZE         2       /* depth of the color buffer */
46 #define GLX_LEVEL               3       /* level in plane stacking */
47 #define GLX_RGBA                4       /* true if RGBA mode */
48 #define GLX_DOUBLEBUFFER        5       /* double buffering supported */
49 #define GLX_STEREO              6       /* stereo buffering supported */
50 #define GLX_AUX_BUFFERS         7       /* number of aux buffers */
51 #define GLX_RED_SIZE            8       /* number of red component bits */
52 #define GLX_GREEN_SIZE          9       /* number of green component bits */
53 #define GLX_BLUE_SIZE           10      /* number of blue component bits */
54 #define GLX_ALPHA_SIZE          11      /* number of alpha component bits */
55 #define GLX_DEPTH_SIZE          12      /* number of depth bits */
56 #define GLX_STENCIL_SIZE        13      /* number of stencil bits */
57 #define GLX_ACCUM_RED_SIZE      14      /* number of red accum bits */
58 #define GLX_ACCUM_GREEN_SIZE    15      /* number of green accum bits */
59 #define GLX_ACCUM_BLUE_SIZE     16      /* number of blue accum bits */
60 #define GLX_ACCUM_ALPHA_SIZE    17      /* number of alpha accum bits */
61
62 #define GLX_SAMPLE_BUFFERS_ARB  100000  /* number of multisample buffers */
63 #define GLX_SAMPLES_ARB         100001  /* number of multisample samples */
64
65 /*
66  * FBConfig-specific attributes
67  */
68 #define GLX_X_VISUAL_TYPE               0x22
69 #define GLX_CONFIG_CAVEAT               0x20    /* Like visual_info VISUAL_CAVEAT */
70 #define GLX_TRANSPARENT_TYPE            0x23
71 #define GLX_TRANSPARENT_INDEX_VALUE     0x24
72 #define GLX_TRANSPARENT_RED_VALUE       0x25
73 #define GLX_TRANSPARENT_GREEN_VALUE     0x26
74 #define GLX_TRANSPARENT_BLUE_VALUE      0x27
75 #define GLX_TRANSPARENT_ALPHA_VALUE     0x28
76 #define GLX_DRAWABLE_TYPE               0x8010
77 #define GLX_RENDER_TYPE                 0x8011
78 #define GLX_X_RENDERABLE                0x8012
79 #define GLX_FBCONFIG_ID                 0x8013
80 #define GLX_MAX_PBUFFER_WIDTH           0x8016
81 #define GLX_MAX_PBUFFER_HEIGHT          0x8017
82 #define GLX_MAX_PBUFFER_PIXELS          0x8018
83 #define GLX_VISUAL_ID                   0x800B
84
85 #define GLX_DRAWABLE_TYPE_SGIX          GLX_DRAWABLE_TYPE
86 #define GLX_RENDER_TYPE_SGIX            GLX_RENDER_TYPE
87 #define GLX_X_RENDERABLE_SGIX           GLX_X_RENDERABLE
88 #define GLX_FBCONFIG_ID_SGIX            GLX_FBCONFIG_ID
89 #define GLX_MAX_PBUFFER_WIDTH_SGIX      GLX_MAX_PBUFFER_WIDTH
90 #define GLX_MAX_PBUFFER_HEIGHT_SGIX     GLX_MAX_PBUFFER_HEIGHT
91 #define GLX_MAX_PBUFFER_PIXELS_SGIX     GLX_MAX_PBUFFER_PIXELS
92 #define GLX_OPTIMAL_PBUFFER_WIDTH_SGIX  0x8019
93 #define GLX_OPTIMAL_PBUFFER_HEIGHT_SGIX 0x801A
94
95 /*
96  * Error return values from glXGetConfig.  Success is indicated by
97  * a value of 0.
98  */
99 #define GLX_BAD_SCREEN                  1  /* screen # is bad */
100 #define GLX_BAD_ATTRIBUTE               2  /* attribute to get is bad */
101 #define GLX_NO_EXTENSION                3  /* no glx extension on server */
102 #define GLX_BAD_VISUAL                  4  /* visual # not known by GLX */
103 #define GLX_BAD_CONTEXT                 5
104 #define GLX_BAD_VALUE                   6
105 #define GLX_BAD_ENUM                    7
106
107
108 /* FBConfig attribute values */
109
110 /*
111  * Generic "don't care" value for glX ChooseFBConfig attributes (except
112  * GLX_LEVEL).
113  */
114 #define GLX_DONT_CARE                   0xFFFFFFFF
115
116 /* GLX_RENDER_TYPE bits */
117 #define GLX_RGBA_BIT                    0x00000001
118 #define GLX_COLOR_INDEX_BIT             0x00000002
119 #define GLX_RGBA_FLOAT_BIT              0x00000004
120 #define GLX_RGBA_BIT_SGIX               GLX_RGBA_BIT
121 #define GLX_COLOR_INDEX_BIT_SGIX        GLX_COLOR_INDEX_BIT
122 #define GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT 0x00000008
123
124 /* GLX_DRAWABLE_TYPE bits */
125 #define GLX_WINDOW_BIT                  0x00000001
126 #define GLX_PIXMAP_BIT                  0x00000002
127 #define GLX_PBUFFER_BIT                 0x00000004
128 #define GLX_WINDOW_BIT_SGIX             GLX_WINDOW_BIT
129 #define GLX_PIXMAP_BIT_SGIX             GLX_PIXMAP_BIT
130 #define GLX_PBUFFER_BIT_SGIX            GLX_PBUFFER_BIT
131
132 /* GLX_CONFIG_CAVEAT attribute values */
133 #define GLX_NONE                        0x8000
134 #define GLX_SLOW_CONFIG                 0x8001
135 #define GLX_NON_CONFORMANT_CONFIG       0x800D
136
137 /* GLX_X_VISUAL_TYPE attribute values */
138 #define GLX_TRUE_COLOR                  0x8002
139 #define GLX_DIRECT_COLOR                0x8003
140 #define GLX_PSEUDO_COLOR                0x8004
141 #define GLX_STATIC_COLOR                0x8005
142 #define GLX_GRAY_SCALE                  0x8006
143 #define GLX_STATIC_GRAY                 0x8007
144
145 /* GLX_TRANSPARENT_TYPE attribute values */
146 /* #define GLX_NONE                        0x8000 */
147 #define GLX_TRANSPARENT_RGB             0x8008
148 #define GLX_TRANSPARENT_INDEX           0x8009
149
150 /* glXCreateGLXPbuffer attributes */
151 #define GLX_PRESERVED_CONTENTS          0x801B
152 #define GLX_LARGEST_PBUFFER             0x801C
153 #define GLX_PBUFFER_HEIGHT              0x8040  /* New for GLX 1.3 */
154 #define GLX_PBUFFER_WIDTH               0x8041  /* New for GLX 1.3 */
155 #define GLX_PRESERVED_CONTENTS_SGIX     GLX_PRESERVED_CONTENTS
156 #define GLX_LARGEST_PBUFFER_SGIX        GLX_LARGEST_PBUFFER
157
158 /* glXQueryGLXPBuffer attributes */
159 #define GLX_WIDTH                       0x801D
160 #define GLX_HEIGHT                      0x801E
161 #define GLX_EVENT_MASK                  0x801F
162 #define GLX_WIDTH_SGIX                  GLX_WIDTH
163 #define GLX_HEIGHT_SGIX                 GLX_HEIGHT
164 #define GLX_EVENT_MASK_SGIX             GLX_EVENT_MASK
165
166 /* glXCreateNewContext render_type attribute values */
167 #define GLX_RGBA_TYPE                   0x8014
168 #define GLX_COLOR_INDEX_TYPE            0x8015
169 #define GLX_RGBA_FLOAT_TYPE             0x20B9
170 #define GLX_RGBA_TYPE_SGIX              GLX_RGBA_TYPE
171 #define GLX_COLOR_INDEX_TYPE_SGIX       GLX_COLOR_INDEX_TYPE
172 #define GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT 0x20B1
173
174 /* glXQueryContext attributes */
175 /* #define GLX_FBCONFIG_ID                0x8013 */
176 /* #define GLX_RENDER_TYPE                0x8011 */
177 #define GLX_SCREEN                      0x800C
178
179 /* glXSelectEvent event mask bits */
180 #define GLX_PBUFFER_CLOBBER_MASK        0x08000000
181 #define GLX_PBUFFER_CLOBBER_MASK_SGIX   GLX_PBUFFER_CLOBBER_MASK
182
183 /* GLXPbufferClobberEvent event_type values */
184 #define GLX_DAMAGED                     0x8020
185 #define GLX_SAVED                       0x8021
186 #define GLX_DAMAGED_SGIX                GLX_DAMAGED
187 #define GLX_SAVED_SGIX                  GLX_SAVED
188
189 /* GLXPbufferClobberEvent draw_type values */
190 #define GLX_WINDOW                      0x8022
191 #define GLX_PBUFFER                     0x8023
192 #define GLX_WINDOW_SGIX                 GLX_WINDOW
193 #define GLX_PBUFFER_SGIX                GLX_PBUFFER
194
195 /* GLXPbufferClobberEvent buffer_mask bits */
196 #define GLX_FRONT_LEFT_BUFFER_BIT       0x00000001
197 #define GLX_FRONT_RIGHT_BUFFER_BIT      0x00000002
198 #define GLX_BACK_LEFT_BUFFER_BIT        0x00000004
199 #define GLX_BACK_RIGHT_BUFFER_BIT       0x00000008
200 #define GLX_AUX_BUFFERS_BIT             0x00000010
201 #define GLX_DEPTH_BUFFER_BIT            0x00000020
202 #define GLX_STENCIL_BUFFER_BIT          0x00000040
203 #define GLX_ACCUM_BUFFER_BIT            0x00000080
204 #define GLX_FRONT_LEFT_BUFFER_BIT_SGIX  GLX_FRONT_LEFT_BUFFER_BIT
205 #define GLX_FRONT_RIGHT_BUFFER_BIT_SGIX GLX_FRONT_RIGHT_BUFFER_BIT
206 #define GLX_BACK_LEFT_BUFFER_BIT_SGIX   GLX_BACK_LEFT_BUFFER_BIT
207 #define GLX_BACK_RIGHT_BUFFER_BIT_SGIX  GLX_BACK_RIGHT_BUFFER_BIT
208 #define GLX_AUX_BUFFERS_BIT_SGIX        GLX_AUX_BUFFERS_BIT
209 #define GLX_DEPTH_BUFFER_BIT_SGIX       GLX_DEPTH_BUFFER_BIT
210 #define GLX_STENCIL_BUFFER_BIT_SGIX     GLX_STENCIL_BUFFER_BIT
211 #define GLX_ACCUM_BUFFER_BIT_SGIX       GLX_ACCUM_BUFFER_BIT
212
213 /*
214  * Extension return values from glXGetConfig.  These are also
215  * accepted as parameter values for glXChooseVisual.
216  */
217
218 #define GLX_X_VISUAL_TYPE_EXT           0x22    /* visual_info extension type */
219 #define GLX_TRANSPARENT_TYPE_EXT        0x23    /* visual_info extension */
220 #define GLX_TRANSPARENT_INDEX_VALUE_EXT 0x24    /* visual_info extension */
221 #define GLX_TRANSPARENT_RED_VALUE_EXT   0x25    /* visual_info extension */
222 #define GLX_TRANSPARENT_GREEN_VALUE_EXT 0x26    /* visual_info extension */
223 #define GLX_TRANSPARENT_BLUE_VALUE_EXT  0x27    /* visual_info extension */
224 #define GLX_TRANSPARENT_ALPHA_VALUE_EXT 0x28    /* visual_info extension */
225
226 /* Property values for visual_type */
227 #define GLX_TRUE_COLOR_EXT              0x8002
228 #define GLX_DIRECT_COLOR_EXT            0x8003
229 #define GLX_PSEUDO_COLOR_EXT            0x8004
230 #define GLX_STATIC_COLOR_EXT            0x8005
231 #define GLX_GRAY_SCALE_EXT              0x8006
232 #define GLX_STATIC_GRAY_EXT             0x8007
233
234 /* Property values for transparent pixel */
235 #define GLX_NONE_EXT                    0x8000
236 #define GLX_TRANSPARENT_RGB_EXT         0x8008
237 #define GLX_TRANSPARENT_INDEX_EXT       0x8009
238
239 /* Property values for visual_rating */
240 #define GLX_VISUAL_CAVEAT_EXT           0x20    /* visual_rating extension type */
241 #define GLX_SLOW_VISUAL_EXT             0x8001
242 #define GLX_NON_CONFORMANT_VISUAL_EXT   0x800D
243
244 /*
245  * Names for attributes to glXGetClientString.
246  */
247 #define GLX_VENDOR                      0x1
248 #define GLX_VERSION                     0x2
249 #define GLX_EXTENSIONS                  0x3
250
251 /*
252  * Names for attributes to glXQueryContextInfoEXT.
253  */
254 #define GLX_SHARE_CONTEXT_EXT           0x800A  /* id of share context */
255 #define GLX_VISUAL_ID_EXT               0x800B  /* id of context's visual */
256 #define GLX_SCREEN_EXT                  0x800C  /* screen number */
257
258 /* NV_float_buffer */
259 #define GLX_FLOAT_COMPONENTS_NV         0x20B0
260
261 /* glXBindVideoImageNV iVideoBuffer values (NV_video_out) */
262 #define GLX_VIDEO_OUT_COLOR_NV           0x20C3
263 #define GLX_VIDEO_OUT_ALPHA_NV           0x20C4
264 #define GLX_VIDEO_OUT_DEPTH_NV           0x20C5
265 #define GLX_VIDEO_OUT_COLOR_AND_ALPHA_NV 0x20C6
266 #define GLX_VIDEO_OUT_COLOR_AND_DEPTH_NV 0x20C7
267
268 /* glXSendPbufferToVideoNV iBufferType values (NV_video_out) */
269 #define GLX_VIDEO_OUT_FRAME_NV           0x20C8
270 #define GLX_VIDEO_OUT_FIELD_1_NV         0x20C9
271 #define GLX_VIDEO_OUT_FIELD_2_NV         0x20CA
272
273 /*
274  * GLX_EXT_texture_from_drawable
275  */
276
277 /* New glXGetFBConfigAttrib <attrib_list> tokens */
278 #define GLX_BIND_TO_TEXTURE_RGB_EXT         0x20D0
279 #define GLX_BIND_TO_TEXTURE_RGBA_EXT        0x20D1
280 #define GLX_BIND_TO_MIPMAP_TEXTURE_EXT      0x20D2
281 #define GLX_BIND_TO_TEXTURE_TARGETS_EXT     0x20D3
282 #define GLX_Y_INVERTED_EXT                  0x20D4
283
284 /* New glXCreatePixmap attributes and glXQueryDrawable attributes */
285 #define GLX_TEXTURE_FORMAT_EXT              0x20D5
286 #define GLX_TEXTURE_TARGET_EXT              0x20D6
287 #define GLX_MIPMAP_TEXTURE_EXT              0x20D7
288
289 /* Values for GLX_TEXTURE_FORMAT_EXT */
290 #define GLX_TEXTURE_FORMAT_NONE_EXT         0x20D8
291 #define GLX_TEXTURE_FORMAT_RGB_EXT          0x20D9
292 #define GLX_TEXTURE_FORMAT_RGBA_EXT         0x20DA
293
294 /* Bits for GLX_BIND_TO_TEXTURE_TARGETS_EXT mask */
295 #define GLX_TEXTURE_1D_BIT_EXT              0x00000001
296 #define GLX_TEXTURE_2D_BIT_EXT              0x00000002
297 #define GLX_TEXTURE_RECTANGLE_BIT_EXT       0x00000004
298
299 /* Values for GLX_TEXTURE_TARGET_EXT */
300 #define GLX_TEXTURE_1D_EXT                  0x20DB
301 #define GLX_TEXTURE_2D_EXT                  0x20DC
302 #define GLX_TEXTURE_RECTANGLE_EXT           0x20DD
303
304 /*
305  * Values for the buffer parameter of glXBindTexImageEXT and
306  * glXReleaseTexImageEXT
307  */ 
308 #define GLX_FRONT_LEFT_EXT                  0x20DE
309 #define GLX_FRONT_RIGHT_EXT                 0x20DF
310 #define GLX_BACK_LEFT_EXT                   0x20E0
311 #define GLX_BACK_RIGHT_EXT                  0x20E1
312 #define GLX_FRONT_EXT                       GLX_FRONT_LEFT_EXT
313 #define GLX_BACK_EXT                        GLX_BACK_LEFT_EXT
314 #define GLX_AUX0_EXT                        0x20E2
315 #define GLX_AUX1_EXT                        0x20E3
316 #define GLX_AUX2_EXT                        0x20E4
317 #define GLX_AUX3_EXT                        0x20E5
318 #define GLX_AUX4_EXT                        0x20E6
319 #define GLX_AUX5_EXT                        0x20E7
320 #define GLX_AUX6_EXT                        0x20E8
321 #define GLX_AUX7_EXT                        0x20E9
322 #define GLX_AUX8_EXT                        0x20EA
323 #define GLX_AUX9_EXT                        0x20EB
324
325 /*
326  * GLX_EXT_framebuffer_sRGB
327  */
328 #define GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT    0x20B2
329
330 #endif /* !__glxtokens_h__ */