1 #ifndef __glxtokens_h__
2 #define __glxtokens_h__
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.
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.
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.
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
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 #define GLX_NV_multisample_coverage 1
43 * Names for attributes to glXGetConfig.
45 #define GLX_USE_GL 1 /* support GLX rendering */
46 #define GLX_BUFFER_SIZE 2 /* depth of the color buffer */
47 #define GLX_LEVEL 3 /* level in plane stacking */
48 #define GLX_RGBA 4 /* true if RGBA mode */
49 #define GLX_DOUBLEBUFFER 5 /* double buffering supported */
50 #define GLX_STEREO 6 /* stereo buffering supported */
51 #define GLX_AUX_BUFFERS 7 /* number of aux buffers */
52 #define GLX_RED_SIZE 8 /* number of red component bits */
53 #define GLX_GREEN_SIZE 9 /* number of green component bits */
54 #define GLX_BLUE_SIZE 10 /* number of blue component bits */
55 #define GLX_ALPHA_SIZE 11 /* number of alpha component bits */
56 #define GLX_DEPTH_SIZE 12 /* number of depth bits */
57 #define GLX_STENCIL_SIZE 13 /* number of stencil bits */
58 #define GLX_ACCUM_RED_SIZE 14 /* number of red accum bits */
59 #define GLX_ACCUM_GREEN_SIZE 15 /* number of green accum bits */
60 #define GLX_ACCUM_BLUE_SIZE 16 /* number of blue accum bits */
61 #define GLX_ACCUM_ALPHA_SIZE 17 /* number of alpha accum bits */
63 #define GLX_SAMPLE_BUFFERS_ARB 100000 /* number of multisample buffers */
64 #define GLX_SAMPLES_ARB 100001 /* number of multisample samples */
66 /* NV_multisample_coverage */
67 #define GLX_COVERAGE_SAMPLES_NV GLX_SAMPLES_ARB /* number of coverage samples */
68 #define GLX_COLOR_SAMPLES_NV 0x20B3 /* # of multisample color samples */
71 * FBConfig-specific attributes
73 #define GLX_X_VISUAL_TYPE 0x22
74 #define GLX_CONFIG_CAVEAT 0x20 /* Like visual_info VISUAL_CAVEAT */
75 #define GLX_TRANSPARENT_TYPE 0x23
76 #define GLX_TRANSPARENT_INDEX_VALUE 0x24
77 #define GLX_TRANSPARENT_RED_VALUE 0x25
78 #define GLX_TRANSPARENT_GREEN_VALUE 0x26
79 #define GLX_TRANSPARENT_BLUE_VALUE 0x27
80 #define GLX_TRANSPARENT_ALPHA_VALUE 0x28
81 #define GLX_DRAWABLE_TYPE 0x8010
82 #define GLX_RENDER_TYPE 0x8011
83 #define GLX_X_RENDERABLE 0x8012
84 #define GLX_FBCONFIG_ID 0x8013
85 #define GLX_MAX_PBUFFER_WIDTH 0x8016
86 #define GLX_MAX_PBUFFER_HEIGHT 0x8017
87 #define GLX_MAX_PBUFFER_PIXELS 0x8018
88 #define GLX_VISUAL_ID 0x800B
90 #define GLX_DRAWABLE_TYPE_SGIX GLX_DRAWABLE_TYPE
91 #define GLX_RENDER_TYPE_SGIX GLX_RENDER_TYPE
92 #define GLX_X_RENDERABLE_SGIX GLX_X_RENDERABLE
93 #define GLX_FBCONFIG_ID_SGIX GLX_FBCONFIG_ID
94 #define GLX_MAX_PBUFFER_WIDTH_SGIX GLX_MAX_PBUFFER_WIDTH
95 #define GLX_MAX_PBUFFER_HEIGHT_SGIX GLX_MAX_PBUFFER_HEIGHT
96 #define GLX_MAX_PBUFFER_PIXELS_SGIX GLX_MAX_PBUFFER_PIXELS
97 #define GLX_OPTIMAL_PBUFFER_WIDTH_SGIX 0x8019
98 #define GLX_OPTIMAL_PBUFFER_HEIGHT_SGIX 0x801A
101 * Error return values from glXGetConfig. Success is indicated by
104 #define GLX_BAD_SCREEN 1 /* screen # is bad */
105 #define GLX_BAD_ATTRIBUTE 2 /* attribute to get is bad */
106 #define GLX_NO_EXTENSION 3 /* no glx extension on server */
107 #define GLX_BAD_VISUAL 4 /* visual # not known by GLX */
108 #define GLX_BAD_CONTEXT 5
109 #define GLX_BAD_VALUE 6
110 #define GLX_BAD_ENUM 7
113 /* FBConfig attribute values */
116 * Generic "don't care" value for glX ChooseFBConfig attributes (except
119 #define GLX_DONT_CARE 0xFFFFFFFF
121 /* GLX_RENDER_TYPE bits */
122 #define GLX_RGBA_BIT 0x00000001
123 #define GLX_COLOR_INDEX_BIT 0x00000002
124 #define GLX_RGBA_FLOAT_BIT 0x00000004
125 #define GLX_RGBA_BIT_SGIX GLX_RGBA_BIT
126 #define GLX_COLOR_INDEX_BIT_SGIX GLX_COLOR_INDEX_BIT
127 #define GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT 0x00000008
129 /* GLX_DRAWABLE_TYPE bits */
130 #define GLX_WINDOW_BIT 0x00000001
131 #define GLX_PIXMAP_BIT 0x00000002
132 #define GLX_PBUFFER_BIT 0x00000004
133 #define GLX_WINDOW_BIT_SGIX GLX_WINDOW_BIT
134 #define GLX_PIXMAP_BIT_SGIX GLX_PIXMAP_BIT
135 #define GLX_PBUFFER_BIT_SGIX GLX_PBUFFER_BIT
137 /* GLX_CONFIG_CAVEAT attribute values */
138 #define GLX_NONE 0x8000
139 #define GLX_SLOW_CONFIG 0x8001
140 #define GLX_NON_CONFORMANT_CONFIG 0x800D
142 /* GLX_X_VISUAL_TYPE attribute values */
143 #define GLX_TRUE_COLOR 0x8002
144 #define GLX_DIRECT_COLOR 0x8003
145 #define GLX_PSEUDO_COLOR 0x8004
146 #define GLX_STATIC_COLOR 0x8005
147 #define GLX_GRAY_SCALE 0x8006
148 #define GLX_STATIC_GRAY 0x8007
150 /* GLX_TRANSPARENT_TYPE attribute values */
151 /* #define GLX_NONE 0x8000 */
152 #define GLX_TRANSPARENT_RGB 0x8008
153 #define GLX_TRANSPARENT_INDEX 0x8009
155 /* glXCreateGLXPbuffer attributes */
156 #define GLX_PRESERVED_CONTENTS 0x801B
157 #define GLX_LARGEST_PBUFFER 0x801C
158 #define GLX_PBUFFER_HEIGHT 0x8040 /* New for GLX 1.3 */
159 #define GLX_PBUFFER_WIDTH 0x8041 /* New for GLX 1.3 */
160 #define GLX_PRESERVED_CONTENTS_SGIX GLX_PRESERVED_CONTENTS
161 #define GLX_LARGEST_PBUFFER_SGIX GLX_LARGEST_PBUFFER
163 /* glXQueryGLXPBuffer attributes */
164 #define GLX_WIDTH 0x801D
165 #define GLX_HEIGHT 0x801E
166 #define GLX_EVENT_MASK 0x801F
167 #define GLX_WIDTH_SGIX GLX_WIDTH
168 #define GLX_HEIGHT_SGIX GLX_HEIGHT
169 #define GLX_EVENT_MASK_SGIX GLX_EVENT_MASK
171 /* glXCreateNewContext render_type attribute values */
172 #define GLX_RGBA_TYPE 0x8014
173 #define GLX_COLOR_INDEX_TYPE 0x8015
174 #define GLX_RGBA_FLOAT_TYPE 0x20B9
175 #define GLX_RGBA_TYPE_SGIX GLX_RGBA_TYPE
176 #define GLX_COLOR_INDEX_TYPE_SGIX GLX_COLOR_INDEX_TYPE
177 #define GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT 0x20B1
179 /* glXQueryContext attributes */
180 /* #define GLX_FBCONFIG_ID 0x8013 */
181 /* #define GLX_RENDER_TYPE 0x8011 */
182 #define GLX_SCREEN 0x800C
184 /* glXSelectEvent event mask bits */
185 #define GLX_PBUFFER_CLOBBER_MASK 0x08000000
186 #define GLX_PBUFFER_CLOBBER_MASK_SGIX GLX_PBUFFER_CLOBBER_MASK
188 /* GLXPbufferClobberEvent event_type values */
189 #define GLX_DAMAGED 0x8020
190 #define GLX_SAVED 0x8021
191 #define GLX_DAMAGED_SGIX GLX_DAMAGED
192 #define GLX_SAVED_SGIX GLX_SAVED
194 /* GLXPbufferClobberEvent draw_type values */
195 #define GLX_WINDOW 0x8022
196 #define GLX_PBUFFER 0x8023
197 #define GLX_WINDOW_SGIX GLX_WINDOW
198 #define GLX_PBUFFER_SGIX GLX_PBUFFER
200 /* GLXPbufferClobberEvent buffer_mask bits */
201 #define GLX_FRONT_LEFT_BUFFER_BIT 0x00000001
202 #define GLX_FRONT_RIGHT_BUFFER_BIT 0x00000002
203 #define GLX_BACK_LEFT_BUFFER_BIT 0x00000004
204 #define GLX_BACK_RIGHT_BUFFER_BIT 0x00000008
205 #define GLX_AUX_BUFFERS_BIT 0x00000010
206 #define GLX_DEPTH_BUFFER_BIT 0x00000020
207 #define GLX_STENCIL_BUFFER_BIT 0x00000040
208 #define GLX_ACCUM_BUFFER_BIT 0x00000080
209 #define GLX_FRONT_LEFT_BUFFER_BIT_SGIX GLX_FRONT_LEFT_BUFFER_BIT
210 #define GLX_FRONT_RIGHT_BUFFER_BIT_SGIX GLX_FRONT_RIGHT_BUFFER_BIT
211 #define GLX_BACK_LEFT_BUFFER_BIT_SGIX GLX_BACK_LEFT_BUFFER_BIT
212 #define GLX_BACK_RIGHT_BUFFER_BIT_SGIX GLX_BACK_RIGHT_BUFFER_BIT
213 #define GLX_AUX_BUFFERS_BIT_SGIX GLX_AUX_BUFFERS_BIT
214 #define GLX_DEPTH_BUFFER_BIT_SGIX GLX_DEPTH_BUFFER_BIT
215 #define GLX_STENCIL_BUFFER_BIT_SGIX GLX_STENCIL_BUFFER_BIT
216 #define GLX_ACCUM_BUFFER_BIT_SGIX GLX_ACCUM_BUFFER_BIT
219 * Extension return values from glXGetConfig. These are also
220 * accepted as parameter values for glXChooseVisual.
223 #define GLX_X_VISUAL_TYPE_EXT 0x22 /* visual_info extension type */
224 #define GLX_TRANSPARENT_TYPE_EXT 0x23 /* visual_info extension */
225 #define GLX_TRANSPARENT_INDEX_VALUE_EXT 0x24 /* visual_info extension */
226 #define GLX_TRANSPARENT_RED_VALUE_EXT 0x25 /* visual_info extension */
227 #define GLX_TRANSPARENT_GREEN_VALUE_EXT 0x26 /* visual_info extension */
228 #define GLX_TRANSPARENT_BLUE_VALUE_EXT 0x27 /* visual_info extension */
229 #define GLX_TRANSPARENT_ALPHA_VALUE_EXT 0x28 /* visual_info extension */
231 /* Property values for visual_type */
232 #define GLX_TRUE_COLOR_EXT 0x8002
233 #define GLX_DIRECT_COLOR_EXT 0x8003
234 #define GLX_PSEUDO_COLOR_EXT 0x8004
235 #define GLX_STATIC_COLOR_EXT 0x8005
236 #define GLX_GRAY_SCALE_EXT 0x8006
237 #define GLX_STATIC_GRAY_EXT 0x8007
239 /* Property values for transparent pixel */
240 #define GLX_NONE_EXT 0x8000
241 #define GLX_TRANSPARENT_RGB_EXT 0x8008
242 #define GLX_TRANSPARENT_INDEX_EXT 0x8009
244 /* Property values for visual_rating */
245 #define GLX_VISUAL_CAVEAT_EXT 0x20 /* visual_rating extension type */
246 #define GLX_SLOW_VISUAL_EXT 0x8001
247 #define GLX_NON_CONFORMANT_VISUAL_EXT 0x800D
250 * Names for attributes to glXGetClientString.
252 #define GLX_VENDOR 0x1
253 #define GLX_VERSION 0x2
254 #define GLX_EXTENSIONS 0x3
257 * Names for attributes to glXQueryContextInfoEXT.
259 #define GLX_SHARE_CONTEXT_EXT 0x800A /* id of share context */
260 #define GLX_VISUAL_ID_EXT 0x800B /* id of context's visual */
261 #define GLX_SCREEN_EXT 0x800C /* screen number */
263 /* NV_float_buffer */
264 #define GLX_FLOAT_COMPONENTS_NV 0x20B0
266 /* glXBindVideoImageNV iVideoBuffer values (NV_video_out) */
267 #define GLX_VIDEO_OUT_COLOR_NV 0x20C3
268 #define GLX_VIDEO_OUT_ALPHA_NV 0x20C4
269 #define GLX_VIDEO_OUT_DEPTH_NV 0x20C5
270 #define GLX_VIDEO_OUT_COLOR_AND_ALPHA_NV 0x20C6
271 #define GLX_VIDEO_OUT_COLOR_AND_DEPTH_NV 0x20C7
273 /* glXSendPbufferToVideoNV iBufferType values (NV_video_out) */
274 #define GLX_VIDEO_OUT_FRAME_NV 0x20C8
275 #define GLX_VIDEO_OUT_FIELD_1_NV 0x20C9
276 #define GLX_VIDEO_OUT_FIELD_2_NV 0x20CA
277 #define GLX_VIDEO_OUT_STACKED_FIELDS_1_2_NV 0x20CB
278 #define GLX_VIDEO_OUT_STACKED_FIELDS_2_1_NV 0x20CC
282 * GLX_EXT_texture_from_drawable
285 /* New glXGetFBConfigAttrib <attrib_list> tokens */
286 #define GLX_BIND_TO_TEXTURE_RGB_EXT 0x20D0
287 #define GLX_BIND_TO_TEXTURE_RGBA_EXT 0x20D1
288 #define GLX_BIND_TO_MIPMAP_TEXTURE_EXT 0x20D2
289 #define GLX_BIND_TO_TEXTURE_TARGETS_EXT 0x20D3
290 #define GLX_Y_INVERTED_EXT 0x20D4
292 /* New glXCreatePixmap attributes and glXQueryDrawable attributes */
293 #define GLX_TEXTURE_FORMAT_EXT 0x20D5
294 #define GLX_TEXTURE_TARGET_EXT 0x20D6
295 #define GLX_MIPMAP_TEXTURE_EXT 0x20D7
297 /* Values for GLX_TEXTURE_FORMAT_EXT */
298 #define GLX_TEXTURE_FORMAT_NONE_EXT 0x20D8
299 #define GLX_TEXTURE_FORMAT_RGB_EXT 0x20D9
300 #define GLX_TEXTURE_FORMAT_RGBA_EXT 0x20DA
302 /* Bits for GLX_BIND_TO_TEXTURE_TARGETS_EXT mask */
303 #define GLX_TEXTURE_1D_BIT_EXT 0x00000001
304 #define GLX_TEXTURE_2D_BIT_EXT 0x00000002
305 #define GLX_TEXTURE_RECTANGLE_BIT_EXT 0x00000004
307 /* Values for GLX_TEXTURE_TARGET_EXT */
308 #define GLX_TEXTURE_1D_EXT 0x20DB
309 #define GLX_TEXTURE_2D_EXT 0x20DC
310 #define GLX_TEXTURE_RECTANGLE_EXT 0x20DD
313 * Values for the buffer parameter of glXBindTexImageEXT and
314 * glXReleaseTexImageEXT
316 #define GLX_FRONT_LEFT_EXT 0x20DE
317 #define GLX_FRONT_RIGHT_EXT 0x20DF
318 #define GLX_BACK_LEFT_EXT 0x20E0
319 #define GLX_BACK_RIGHT_EXT 0x20E1
320 #define GLX_FRONT_EXT GLX_FRONT_LEFT_EXT
321 #define GLX_BACK_EXT GLX_BACK_LEFT_EXT
322 #define GLX_AUX0_EXT 0x20E2
323 #define GLX_AUX1_EXT 0x20E3
324 #define GLX_AUX2_EXT 0x20E4
325 #define GLX_AUX3_EXT 0x20E5
326 #define GLX_AUX4_EXT 0x20E6
327 #define GLX_AUX5_EXT 0x20E7
328 #define GLX_AUX6_EXT 0x20E8
329 #define GLX_AUX7_EXT 0x20E9
330 #define GLX_AUX8_EXT 0x20EA
331 #define GLX_AUX9_EXT 0x20EB
334 * GLX_EXT_framebuffer_sRGB
336 #define GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20B2
339 * GL_NV_present_video
341 #define GLX_NUM_VIDEO_SLOTS_NV 0x20F0
344 * GLX_ARB_create_context
347 /* Values for attrib_list */
348 #define GLX_CONTEXT_MAJOR_VERSION_ARB 0x2091
349 #define GLX_CONTEXT_MINOR_VERSION_ARB 0x2092
350 #define GLX_CONTEXT_FLAGS_ARB 0x2094
352 /* Bits for GLX_CONTEXT_FLAGS_ARB mask */
353 #define GLX_CONTEXT_DEBUG_BIT_ARB 0x00000001
354 #define GLX_CONTEXT_PREVIEW_BIT_ARB 0x00000002
356 #endif /* !__glxtokens_h__ */