1 #ifndef __GLX_glxtokens_h__
2 #define __GLX_glxtokens_h__
5 * SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008)
6 * Copyright (C) 1991-2000 Silicon Graphics, Inc. All Rights Reserved.
8 * Permission is hereby granted, free of charge, to any person obtaining a
9 * copy of this software and associated documentation files (the "Software"),
10 * to deal in the Software without restriction, including without limitation
11 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
12 * and/or sell copies of the Software, and to permit persons to whom the
13 * Software is furnished to do so, subject to the following conditions:
15 * The above copyright notice including the dates of first publication and
16 * either this permission notice or a reference to
17 * http://oss.sgi.com/projects/FreeB/
18 * shall be included in all copies or substantial portions of the Software.
20 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
21 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
23 * SILICON GRAPHICS, INC. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
24 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
25 * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
28 * Except as contained in this notice, the name of Silicon Graphics, Inc.
29 * shall not be used in advertising or otherwise to promote the sale, use or
30 * other dealings in this Software without prior written authorization from
31 * Silicon Graphics, Inc.
38 #define GLX_VERSION_1_1 1
39 #define GLX_VERSION_1_2 1
40 #define GLX_VERSION_1_3 1
41 #define GLX_VERSION_1_4 1
44 ** Visual Config Attributes (glXGetConfig, glXGetFBConfigAttrib)
46 #define GLX_USE_GL 1 /* support GLX rendering */
47 #define GLX_BUFFER_SIZE 2 /* depth of the color buffer */
48 #define GLX_LEVEL 3 /* level in plane stacking */
49 #define GLX_RGBA 4 /* true if RGBA mode */
50 #define GLX_DOUBLEBUFFER 5 /* double buffering supported */
51 #define GLX_STEREO 6 /* stereo buffering supported */
52 #define GLX_AUX_BUFFERS 7 /* number of aux buffers */
53 #define GLX_RED_SIZE 8 /* number of red component bits */
54 #define GLX_GREEN_SIZE 9 /* number of green component bits */
55 #define GLX_BLUE_SIZE 10 /* number of blue component bits */
56 #define GLX_ALPHA_SIZE 11 /* number of alpha component bits */
57 #define GLX_DEPTH_SIZE 12 /* number of depth bits */
58 #define GLX_STENCIL_SIZE 13 /* number of stencil bits */
59 #define GLX_ACCUM_RED_SIZE 14 /* number of red accum bits */
60 #define GLX_ACCUM_GREEN_SIZE 15 /* number of green accum bits */
61 #define GLX_ACCUM_BLUE_SIZE 16 /* number of blue accum bits */
62 #define GLX_ACCUM_ALPHA_SIZE 17 /* number of alpha accum bits */
64 ** FBConfig-specific attributes
66 #define GLX_X_VISUAL_TYPE 0x22
67 #define GLX_CONFIG_CAVEAT 0x20 /* Like visual_info VISUAL_CAVEAT_EXT */
68 #define GLX_TRANSPARENT_TYPE 0x23
69 #define GLX_TRANSPARENT_INDEX_VALUE 0x24
70 #define GLX_TRANSPARENT_RED_VALUE 0x25
71 #define GLX_TRANSPARENT_GREEN_VALUE 0x26
72 #define GLX_TRANSPARENT_BLUE_VALUE 0x27
73 #define GLX_TRANSPARENT_ALPHA_VALUE 0x28
74 #define GLX_DRAWABLE_TYPE 0x8010
75 #define GLX_RENDER_TYPE 0x8011
76 #define GLX_X_RENDERABLE 0x8012
77 #define GLX_FBCONFIG_ID 0x8013
78 #define GLX_MAX_PBUFFER_WIDTH 0x8016
79 #define GLX_MAX_PBUFFER_HEIGHT 0x8017
80 #define GLX_MAX_PBUFFER_PIXELS 0x8018
81 #define GLX_VISUAL_ID 0x800B
83 /* FBConfigSGIX Attributes */
84 #define GLX_OPTIMAL_PBUFFER_WIDTH_SGIX 0x8019
85 #define GLX_OPTIMAL_PBUFFER_HEIGHT_SGIX 0x801A
88 ** Error return values from glXGetConfig. Success is indicated by
91 #define GLX_BAD_SCREEN 1 /* screen # is bad */
92 #define GLX_BAD_ATTRIBUTE 2 /* attribute to get is bad */
93 #define GLX_NO_EXTENSION 3 /* no glx extension on server */
94 #define GLX_BAD_VISUAL 4 /* visual # not known by GLX */
95 #define GLX_BAD_CONTEXT 5 /* returned only by import_context EXT? */
96 #define GLX_BAD_VALUE 6 /* returned only by glXSwapIntervalSGI? */
97 #define GLX_BAD_ENUM 7 /* unused? */
99 /* FBConfig attribute values */
102 ** Generic "don't care" value for glX ChooseFBConfig attributes (except
105 #define GLX_DONT_CARE 0xFFFFFFFF
107 /* GLX_RENDER_TYPE bits */
108 #define GLX_RGBA_BIT 0x00000001
109 #define GLX_COLOR_INDEX_BIT 0x00000002
111 /* GLX_DRAWABLE_TYPE bits */
112 #define GLX_WINDOW_BIT 0x00000001
113 #define GLX_PIXMAP_BIT 0x00000002
114 #define GLX_PBUFFER_BIT 0x00000004
116 /* GLX_CONFIG_CAVEAT attribute values */
117 #define GLX_NONE 0x8000
118 #define GLX_SLOW_CONFIG 0x8001
119 #define GLX_NON_CONFORMANT_CONFIG 0x800D
121 /* GLX_X_VISUAL_TYPE attribute values */
122 #define GLX_TRUE_COLOR 0x8002
123 #define GLX_DIRECT_COLOR 0x8003
124 #define GLX_PSEUDO_COLOR 0x8004
125 #define GLX_STATIC_COLOR 0x8005
126 #define GLX_GRAY_SCALE 0x8006
127 #define GLX_STATIC_GRAY 0x8007
129 /* GLX_TRANSPARENT_TYPE attribute values */
130 /* #define GLX_NONE 0x8000 */
131 #define GLX_TRANSPARENT_RGB 0x8008
132 #define GLX_TRANSPARENT_INDEX 0x8009
134 /* glXCreateGLXPbuffer attributes */
135 #define GLX_PRESERVED_CONTENTS 0x801B
136 #define GLX_LARGEST_PBUFFER 0x801C
137 #define GLX_PBUFFER_HEIGHT 0x8040 /* New for GLX 1.3 */
138 #define GLX_PBUFFER_WIDTH 0x8041 /* New for GLX 1.3 */
140 /* glXQueryGLXPBuffer attributes */
141 #define GLX_WIDTH 0x801D
142 #define GLX_HEIGHT 0x801E
143 #define GLX_EVENT_MASK 0x801F
145 /* glXCreateNewContext render_type attribute values */
146 #define GLX_RGBA_TYPE 0x8014
147 #define GLX_COLOR_INDEX_TYPE 0x8015
149 /* glXQueryContext attributes */
150 /* #define GLX_FBCONFIG_ID 0x8013 */
151 /* #define GLX_RENDER_TYPE 0x8011 */
152 #define GLX_SCREEN 0x800C
154 /* glXSelectEvent event mask bits */
155 #define GLX_PBUFFER_CLOBBER_MASK 0x08000000
156 #define GLX_BUFFER_SWAP_COMPLETE_INTEL_MASK 0x04000000
158 /* GLXPbufferClobberEvent event_type values */
159 #define GLX_DAMAGED 0x8020
160 #define GLX_SAVED 0x8021
161 #define GLX_EXCHANGE_COMPLETE_INTEL 0x8180
162 #define GLX_BLIT_COMPLETE_INTEL 0x8181
163 #define GLX_FLIP_COMPLETE_INTEL 0x8182
165 /* GLXPbufferClobberEvent draw_type values */
166 #define GLX_WINDOW 0x8022
167 #define GLX_PBUFFER 0x8023
169 /* GLXPbufferClobberEvent buffer_mask bits */
170 #define GLX_FRONT_LEFT_BUFFER_BIT 0x00000001
171 #define GLX_FRONT_RIGHT_BUFFER_BIT 0x00000002
172 #define GLX_BACK_LEFT_BUFFER_BIT 0x00000004
173 #define GLX_BACK_RIGHT_BUFFER_BIT 0x00000008
174 #define GLX_AUX_BUFFERS_BIT 0x00000010
175 #define GLX_DEPTH_BUFFER_BIT 0x00000020
176 #define GLX_STENCIL_BUFFER_BIT 0x00000040
177 #define GLX_ACCUM_BUFFER_BIT 0x00000080
180 ** Extension return values from glXGetConfig. These are also
181 ** accepted as parameter values for glXChooseVisual.
184 #define GLX_X_VISUAL_TYPE_EXT 0x22 /* visual_info extension type */
185 #define GLX_TRANSPARENT_TYPE_EXT 0x23 /* visual_info extension */
186 #define GLX_TRANSPARENT_INDEX_VALUE_EXT 0x24 /* visual_info extension */
187 #define GLX_TRANSPARENT_RED_VALUE_EXT 0x25 /* visual_info extension */
188 #define GLX_TRANSPARENT_GREEN_VALUE_EXT 0x26 /* visual_info extension */
189 #define GLX_TRANSPARENT_BLUE_VALUE_EXT 0x27 /* visual_info extension */
190 #define GLX_TRANSPARENT_ALPHA_VALUE_EXT 0x28 /* visual_info extension */
192 /* Property values for visual_type */
193 #define GLX_TRUE_COLOR_EXT 0x8002
194 #define GLX_DIRECT_COLOR_EXT 0x8003
195 #define GLX_PSEUDO_COLOR_EXT 0x8004
196 #define GLX_STATIC_COLOR_EXT 0x8005
197 #define GLX_GRAY_SCALE_EXT 0x8006
198 #define GLX_STATIC_GRAY_EXT 0x8007
200 /* Property values for transparent pixel */
201 #define GLX_NONE_EXT 0x8000
202 #define GLX_TRANSPARENT_RGB_EXT 0x8008
203 #define GLX_TRANSPARENT_INDEX_EXT 0x8009
205 /* Property values for visual_rating */
206 #define GLX_VISUAL_CAVEAT_EXT 0x20 /* visual_rating extension type */
207 #define GLX_SLOW_VISUAL_EXT 0x8001
208 #define GLX_NON_CONFORMANT_VISUAL_EXT 0x800D
210 /* Property values for swap method (GLX_OML_swap_method) */
211 #define GLX_SWAP_METHOD_OML 0x8060
212 #define GLX_SWAP_EXCHANGE_OML 0x8061
213 #define GLX_SWAP_COPY_OML 0x8062
214 #define GLX_SWAP_UNDEFINED_OML 0x8063
216 /* Property values for multi-sampling */
217 #define GLX_VISUAL_SELECT_GROUP_SGIX 0x8028 /* visuals grouped by select priority */
220 ** Names for attributes to glXGetClientString.
222 #define GLX_VENDOR 0x1
223 #define GLX_VERSION 0x2
224 #define GLX_EXTENSIONS 0x3
227 ** Names for attributes to glXQueryContextInfoEXT.
229 #define GLX_SHARE_CONTEXT_EXT 0x800A /* id of share context */
230 #define GLX_VISUAL_ID_EXT 0x800B /* id of context's visual */
231 #define GLX_SCREEN_EXT 0x800C /* screen number */
234 ** GLX_EXT_texture_from_pixmap
236 #define GLX_BIND_TO_TEXTURE_RGB_EXT 0x20D0
237 #define GLX_BIND_TO_TEXTURE_RGBA_EXT 0x20D1
238 #define GLX_BIND_TO_MIPMAP_TEXTURE_EXT 0x20D2
239 #define GLX_BIND_TO_TEXTURE_TARGETS_EXT 0x20D3
240 #define GLX_Y_INVERTED_EXT 0x20D4
242 #define GLX_TEXTURE_FORMAT_EXT 0x20D5
243 #define GLX_TEXTURE_TARGET_EXT 0x20D6
244 #define GLX_MIPMAP_TEXTURE_EXT 0x20D7
246 #define GLX_TEXTURE_FORMAT_NONE_EXT 0x20D8
247 #define GLX_TEXTURE_FORMAT_RGB_EXT 0x20D9
248 #define GLX_TEXTURE_FORMAT_RGBA_EXT 0x20DA
250 #define GLX_TEXTURE_1D_BIT_EXT 0x00000001
251 #define GLX_TEXTURE_2D_BIT_EXT 0x00000002
252 #define GLX_TEXTURE_RECTANGLE_BIT_EXT 0x00000004
254 #define GLX_TEXTURE_1D_EXT 0x20DB
255 #define GLX_TEXTURE_2D_EXT 0x20DC
256 #define GLX_TEXTURE_RECTANGLE_EXT 0x20DD
258 #define GLX_FRONT_LEFT_EXT 0x20DE
259 #define GLX_FRONT_RIGHT_EXT 0x20DF
260 #define GLX_BACK_LEFT_EXT 0x20E0
261 #define GLX_BACK_RIGHT_EXT 0x20E1
262 #define GLX_FRONT_EXT GLX_FRONT_LEFT_EXT
263 #define GLX_BACK_EXT GLX_BACK_LEFT_EXT
264 #define GLX_AUX0_EXT 0x20E2
265 #define GLX_AUX1_EXT 0x20E3
266 #define GLX_AUX2_EXT 0x20E4
267 #define GLX_AUX3_EXT 0x20E5
268 #define GLX_AUX4_EXT 0x20E6
269 #define GLX_AUX5_EXT 0x20E7
270 #define GLX_AUX6_EXT 0x20E8
271 #define GLX_AUX7_EXT 0x20E9
272 #define GLX_AUX8_EXT 0x20EA
273 #define GLX_AUX9_EXT 0x20EB
278 #define GLX_SAMPLE_BUFFERS_SGIS 100000
279 #define GLX_SAMPLES_SGIS 100001
282 * GLX_EXT_framebuffer_SRGB
284 #define GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20B2
287 * GLX_ARB_create_context
288 * GLX_ARB_create_context_profile
290 #define GLX_CONTEXT_MAJOR_VERSION_ARB 0x2091
291 #define GLX_CONTEXT_MINOR_VERSION_ARB 0x2092
292 #define GLX_CONTEXT_FLAGS_ARB 0x2094
293 #define GLX_CONTEXT_PROFILE_MASK_ARB 0x9126
295 #define GLX_CONTEXT_DEBUG_BIT_ARB 0x0001
296 #define GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x0002
298 #define GLX_CONTEXT_CORE_PROFILE_BIT_ARB 0x0001
299 #define GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x0002
302 * GLX_ARB_create_context_robustness
304 #define GLX_CONTEXT_ROBUST_ACCESS_BIT_ARB 0x0004
305 #define GLX_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256
306 #define GLX_NO_RESET_NOTIFICATION_ARB 0x8261
307 #define GLX_LOST_CONTEXT_ON_RESET_ARB 0x8252
312 #endif /* !__GLX_glxtokens_h__ */