1 /* HACK: Prevent both Mesa and SGI's broken headers from screwing us */
2 #define __glxext_h_
3 #define __glx_glxext_h_
4 #include <GL/glx.h>
5 #undef __glx_glxext_h_
6 #undef __glxext_h_
7 
8 #ifndef GLX_VERSION_1_3
9 #define AGLX_VERSION_1_3
10 #define GLX_VERSION_1_3
11 #define GLX_WINDOW_BIT                     0x00000001
12 #define GLX_PIXMAP_BIT                     0x00000002
13 #define GLX_PBUFFER_BIT                    0x00000004
14 #define GLX_RGBA_BIT                       0x00000001
15 #define GLX_COLOR_INDEX_BIT                0x00000002
16 #define GLX_PBUFFER_CLOBBER_MASK           0x08000000
17 #define GLX_FRONT_LEFT_BUFFER_BIT          0x00000001
18 #define GLX_FRONT_RIGHT_BUFFER_BIT         0x00000002
19 #define GLX_BACK_LEFT_BUFFER_BIT           0x00000004
20 #define GLX_BACK_RIGHT_BUFFER_BIT          0x00000008
21 #define GLX_AUX_BUFFERS_BIT                0x00000010
22 #define GLX_DEPTH_BUFFER_BIT               0x00000020
23 #define GLX_STENCIL_BUFFER_BIT             0x00000040
24 #define GLX_ACCUM_BUFFER_BIT               0x00000080
25 #define GLX_CONFIG_CAVEAT                  0x20
26 #define GLX_X_VISUAL_TYPE                  0x22
27 #define GLX_TRANSPARENT_TYPE               0x23
28 #define GLX_TRANSPARENT_INDEX_VALUE        0x24
29 #define GLX_TRANSPARENT_RED_VALUE          0x25
30 #define GLX_TRANSPARENT_GREEN_VALUE        0x26
31 #define GLX_TRANSPARENT_BLUE_VALUE         0x27
32 #define GLX_TRANSPARENT_ALPHA_VALUE        0x28
33 #define GLX_DONT_CARE                      0xFFFFFFFF
34 #define GLX_NONE                           0x8000
35 #define GLX_SLOW_CONFIG                    0x8001
36 #define GLX_TRUE_COLOR                     0x8002
37 #define GLX_DIRECT_COLOR                   0x8003
38 #define GLX_PSEUDO_COLOR                   0x8004
39 #define GLX_STATIC_COLOR                   0x8005
40 #define GLX_GRAY_SCALE                     0x8006
41 #define GLX_STATIC_GRAY                    0x8007
42 #define GLX_TRANSPARENT_RGB                0x8008
43 #define GLX_TRANSPARENT_INDEX              0x8009
44 #define GLX_VISUAL_ID                      0x800B
45 #define GLX_SCREEN                         0x800C
46 #define GLX_NON_CONFORMANT_CONFIG          0x800D
47 #define GLX_DRAWABLE_TYPE                  0x8010
48 #define GLX_RENDER_TYPE                    0x8011
49 #define GLX_X_RENDERABLE                   0x8012
50 #define GLX_FBCONFIG_ID                    0x8013
51 #define GLX_RGBA_TYPE                      0x8014
52 #define GLX_COLOR_INDEX_TYPE               0x8015
53 #define GLX_MAX_PBUFFER_WIDTH              0x8016
54 #define GLX_MAX_PBUFFER_HEIGHT             0x8017
55 #define GLX_MAX_PBUFFER_PIXELS             0x8018
56 #define GLX_PRESERVED_CONTENTS             0x801B
57 #define GLX_LARGEST_PBUFFER                0x801C
58 #define GLX_WIDTH                          0x801D
59 #define GLX_HEIGHT                         0x801E
60 #define GLX_EVENT_MASK                     0x801F
61 #define GLX_DAMAGED                        0x8020
62 #define GLX_SAVED                          0x8021
63 #define GLX_WINDOW                         0x8022
64 #define GLX_PBUFFER                        0x8023
65 #define GLX_PBUFFER_HEIGHT                 0x8040
66 #define GLX_PBUFFER_WIDTH                  0x8041
67 #endif
68 
69 #ifndef GLX_VERSION_1_4
70 #define AGLX_VERSION_1_4
71 #define GLX_VERSION_1_4
72 #define GLX_SAMPLE_BUFFERS                 100000
73 #define GLX_SAMPLES                        100001
74 #endif
75 
76 #ifndef GLX_ARB_multisample
77 #define AGLX_ARB_multisample
78 #define GLX_ARB_multisample
79 #define GLX_SAMPLE_BUFFERS_ARB             100000
80 #define GLX_SAMPLES_ARB                    100001
81 #endif
82 
83 #ifndef GLX_SGIS_multisample
84 #define AGLX_SGIS_multisample
85 #define GLX_SGIS_multisample
86 #define GLX_SAMPLE_BUFFERS_SGIS            100000
87 #define GLX_SAMPLES_SGIS                   100001
88 #endif
89 
90 /* Fix for system headers that define GLX_VERSION_1_4 but do not define
91  * GLX_SAMPLES and GLX_SAMPLE_BUFFERS. */
92 #ifndef GLX_SAMPLES
93 #define GLX_SAMPLE_BUFFERS                 100000
94 #define GLX_SAMPLES                        100001
95 #endif
96 
97 #ifndef GLX_EXT_visual_info
98 #define AGLX_EXT_visual_info
99 #define GLX_EXT_visual_info
100 #define GLX_X_VISUAL_TYPE_EXT              0x22
101 #define GLX_TRANSPARENT_TYPE_EXT           0x23
102 #define GLX_TRANSPARENT_INDEX_VALUE_EXT    0x24
103 #define GLX_TRANSPARENT_RED_VALUE_EXT      0x25
104 #define GLX_TRANSPARENT_GREEN_VALUE_EXT    0x26
105 #define GLX_TRANSPARENT_BLUE_VALUE_EXT     0x27
106 #define GLX_TRANSPARENT_ALPHA_VALUE_EXT    0x28
107 #define GLX_NONE_EXT                       0x8000
108 #define GLX_TRUE_COLOR_EXT                 0x8002
109 #define GLX_DIRECT_COLOR_EXT               0x8003
110 #define GLX_PSEUDO_COLOR_EXT               0x8004
111 #define GLX_STATIC_COLOR_EXT               0x8005
112 #define GLX_GRAY_SCALE_EXT                 0x8006
113 #define GLX_STATIC_GRAY_EXT                0x8007
114 #define GLX_TRANSPARENT_RGB_EXT            0x8008
115 #define GLX_TRANSPARENT_INDEX_EXT          0x8009
116 #endif
117 
118 #ifndef GLX_EXT_visual_rating
119 #define AGLX_EXT_visual_rating
120 #define GLX_EXT_visual_rating
121 #define GLX_VISUAL_CAVEAT_EXT              0x20
122 #define GLX_SLOW_VISUAL_EXT                0x8001
123 #define GLX_NON_CONFORMANT_VISUAL_EXT      0x800D
124 /* GLX_NONE_EXT */
125 #endif
126 
127 #ifndef GLX_EXT_import_context
128 #define AGLX_EXT_import_context
129 #define GLX_EXT_import_context
130 #define GLX_SHARE_CONTEXT_EXT              0x800A
131 #define GLX_VISUAL_ID_EXT                  0x800B
132 #define GLX_SCREEN_EXT                     0x800C
133 #endif
134 
135 #ifndef GLX_SGIX_fbconfig
136 #define AGLX_SGIX_fbconfig
137 #define GLX_SGIX_fbconfig
138 typedef XID GLXFBConfigIDSGIX;
139 typedef struct __GLXFBConfigRec *GLXFBConfigSGIX;
140 #define GLX_WINDOW_BIT_SGIX                0x00000001
141 #define GLX_PIXMAP_BIT_SGIX                0x00000002
142 #define GLX_RGBA_BIT_SGIX                  0x00000001
143 #define GLX_COLOR_INDEX_BIT_SGIX           0x00000002
144 #define GLX_DRAWABLE_TYPE_SGIX             0x8010
145 #define GLX_RENDER_TYPE_SGIX               0x8011
146 #define GLX_X_RENDERABLE_SGIX              0x8012
147 #define GLX_FBCONFIG_ID_SGIX               0x8013
148 #define GLX_RGBA_TYPE_SGIX                 0x8014
149 #define GLX_COLOR_INDEX_TYPE_SGIX          0x8015
150 /* GLX_SCREEN_EXT */
151 #endif
152 
153 #ifndef GLX_SGIX_pbuffer
154 #define AGLX_SGIX_pbuffer
155 #define GLX_SGIX_pbuffer
156 typedef XID GLXPbufferSGIX;
157 typedef struct {
158     int type;
159     unsigned long serial;  /* # of last request processed by server */
160     Bool send_event;       /* true if this came for SendEvent request */
161     Display *display;      /* display the event was read from */
162     GLXDrawable drawable;  /* i.d. of Drawable */
163     int event_type;        /* GLX_DAMAGED_SGIX or GLX_SAVED_SGIX */
164     int draw_type;         /* GLX_WINDOW_SGIX or GLX_PBUFFER_SGIX */
165     unsigned int mask;     /* mask indicating which buffers are affected*/
166     int x, y;
167     int width, height;
168     int count;             /* if nonzero, at least this many more */
169 } GLXBufferClobberEventSGIX;
170 #define GLX_PBUFFER_BIT_SGIX               0x00000004
171 #define GLX_BUFFER_CLOBBER_MASK_SGIX       0x08000000
172 #define GLX_FRONT_LEFT_BUFFER_BIT_SGIX     0x00000001
173 #define GLX_FRONT_RIGHT_BUFFER_BIT_SGIX    0x00000002
174 #define GLX_BACK_LEFT_BUFFER_BIT_SGIX      0x00000004
175 #define GLX_BACK_RIGHT_BUFFER_BIT_SGIX     0x00000008
176 #define GLX_AUX_BUFFERS_BIT_SGIX           0x00000010
177 #define GLX_DEPTH_BUFFER_BIT_SGIX          0x00000020
178 #define GLX_STENCIL_BUFFER_BIT_SGIX        0x00000040
179 #define GLX_ACCUM_BUFFER_BIT_SGIX          0x00000080
180 #define GLX_SAMPLE_BUFFERS_BIT_SGIX        0x00000100
181 #define GLX_MAX_PBUFFER_WIDTH_SGIX         0x8016
182 #define GLX_MAX_PBUFFER_HEIGHT_SGIX        0x8017
183 #define GLX_MAX_PBUFFER_PIXELS_SGIX        0x8018
184 #define GLX_OPTIMAL_PBUFFER_WIDTH_SGIX     0x8019
185 #define GLX_OPTIMAL_PBUFFER_HEIGHT_SGIX    0x801A
186 #define GLX_PRESERVED_CONTENTS_SGIX        0x801B
187 #define GLX_LARGEST_PBUFFER_SGIX           0x801C
188 #define GLX_WIDTH_SGIX                     0x801D
189 #define GLX_HEIGHT_SGIX                    0x801E
190 #define GLX_EVENT_MASK_SGIX                0x801F
191 #define GLX_DAMAGED_SGIX                   0x8020
192 #define GLX_SAVED_SGIX                     0x8021
193 #define GLX_WINDOW_SGIX                    0x8022
194 #define GLX_PBUFFER_SGIX                   0x8023
195 #endif
196 
197 #ifndef GLX_SGIX_video_resize
198 #define AGLX_SGIX_video_resize
199 #define GLX_SGIX_video_resize
200 #define GLX_SYNC_FRAME_SGIX                0x00000000
201 #define GLX_SYNC_SWAP_SGIX                 0x00000001
202 #endif
203 
204 #ifndef GLX_SGIX_dmbuffer
205 #define AGLX_SGIX_dmbuffer
206 #define GLX_SGIX_dmbuffer
207 #define GLX_DIGITAL_MEDIA_PBUFFER_SGIX     0x8024
208 #endif
209 
210 #ifndef GLX_SGIS_blended_overlay
211 #define AGLX_SGIS_blended_overlay
212 #define GLX_SGIS_blended_overlay
213 #define GLX_BLENDED_RGBA_SGIS              0x8025
214 #endif
215 
216 #ifndef GLX_SGIS_shared_multisample
217 #define AGLX_SGIS_shared_multisample
218 #define GLX_SGIS_shared_multisample
219 #define GLX_MULTISAMPLE_SUB_RECT_WIDTH_SGIS 0x8026
220 #define GLX_MULTISAMPLE_SUB_RECT_HEIGHT_SGIS 0x8027
221 #endif
222 
223 #ifndef GLX_3DFX_multisample
224 #define AGLX_3DFX_multisample
225 #define GLX_3DFX_multisample
226 #define GLX_SAMPLE_BUFFERS_3DFX            0x8050
227 #define GLX_SAMPLES_3DFX                   0x8051
228 #endif
229 
230 #ifndef GLX_MESA_set_3dfx_mode
231 #define AGLX_MESA_set_3dfx_mode
232 #define GLX_MESA_set_3dfx_mode
233 #define GLX_3DFX_WINDOW_MODE_MESA          0x1
234 #define GLX_3DFX_FULLSCREEN_MODE_MESA      0x2
235 #endif
236 
237 #ifndef GLX_SGIX_visual_select_group
238 #define AGLX_SGIX_visual_select_group
239 #define GLX_SGIX_visual_select_group
240 #define GLX_VISUAL_SELECT_GROUP_SGIX       0x8028
241 #endif
242 
243 #ifndef GLX_OML_swap_method
244 #define AGLX_OML_swap_method
245 #define GLX_OML_swap_method
246 #define GLX_SWAP_METHOD_OML                0x8060
247 #define GLX_SWAP_EXCHANGE_OML              0x8061
248 #define GLX_SWAP_COPY_OML                  0x8062
249 #define GLX_SWAP_UNDEFINED_OML             0x8063
250 #endif
251 
252 
253 #ifndef GLX_ARB_get_proc_address
254 #define AGLX_ARB_get_proc_address
255 #define GLX_ARB_get_proc_address
256 typedef void (*__GLXextFuncPtr)(void);
257 #endif
258 
259 #ifndef GLX_SGIX_video_source
260 #define AGLX_SGIX_video_source
261 #define GLX_SGIX_video_source
262 typedef XID GLXVideoSourceSGIX;
263 #endif
264 
265 #ifndef GLX_SGI_video_sync
266 #define GLX_SGI_video_sync
267 #define AGLX_SGI_video_sync
268 #endif
269 
270 #ifndef GLX_SGI_swap_control
271 #define GLX_SGI_swap_control
272 #define AGLX_SGI_swap_control
273 #endif
274 
275 #ifndef GLX_SGI_make_current_read
276 #define GLX_SGI_make_current_read
277 #define AGLX_SGI_make_current_read
278 #endif
279 
280 #ifndef GLX_SGI_cushion
281 #define GLX_SGI_cushion
282 #define AGLX_SGI_cushion
283 #endif
284 
285 #ifndef GLX_SGIX_swap_group
286 #define GLX_SGIX_swap_group
287 #define AGLX_SGIX_swap_group
288 #endif
289 
290 #ifndef GLX_SGIX_swap_barrier
291 #define GLX_SGIX_swap_barrier
292 #define AGLX_SGIX_swap_barrier
293 #endif
294 
295 #ifndef GLX_SUN_get_transparent_index
296 #define GLX_SUN_get_transparent_index
297 #define AGLX_SUN_get_transparent_index
298 #endif
299 
300 #ifndef GLX_MESA_copy_sub_buffer
301 #define GLX_MESA_copy_sub_buffer
302 #define AGLX_MESA_copy_sub_buffer
303 #endif
304 
305 #ifndef GLX_MESA_pixmap_colormap
306 #define GLX_MESA_pixmap_colormap
307 #define AGLX_MESA_pixmap_colormap
308 #endif
309 
310 #ifndef GLX_MESA_release_buffers
311 #define GLX_MESA_release_buffers
312 #define AGLX_MESA_release_buffers
313 #endif
314 
315 #ifndef GLX_OML_sync_control
316 #define GLX_OML_sync_control
317 #define AGLX_OML_sync_control
318 #endif
319 
320 #ifndef GLX_SGIX_hyperpipe
321 #define GLX_SGIX_hyperpipe
322 #define AGLX_SGIX_hyperpipe
323 #define GLX_HYPERPIPE_ID_SGIX              0x8030
324 #define GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX 80
325 #define GLX_HYPERPIPE_DISPLAY_PIPE_SGIX    0x00000001
326 #define GLX_HYPERPIPE_RENDER_PIPE_SGIX     0x00000002
327 #define GLX_PIPE_RECT_SGIX                 0x00000001
328 #define GLX_PIPE_RECT_LIMITS_SGIX          0x00000002
329 #define GLX_HYPERPIPE_STEREO_SGIX          0x00000003
330 #define GLX_HYPERPIPE_PIXEL_AVERAGE_SGIX   0x00000004
331 #define GLX_BAD_HYPERPIPE_CONFIG_SGIX      91
332 #define GLX_BAD_HYPERPIPE_SGIX             92
333 
334 typedef struct {
335 	char  pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX];
336 	int  networkId;
337 } GLXHyperpipeNetworkSGIX;
338 
339 typedef struct {
340 	char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX];
341 	int channel;
342 	unsigned int participationType;
343 	int timeSlice;
344 } GLXHyperpipeConfigSGIX;
345 
346 typedef struct {
347 	char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX];
348 	int srcXOrigin;
349 	int srcYOrigin;
350 	int srcWidth;
351 	int srcHeight;
352 	int destXOrigin;
353 	int destYOrigin;
354 	int destWidth;
355 	int destHeight;
356 } GLXPipeRect;
357 
358 typedef struct {
359 	char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX];
360 	int XOrigin;
361 	int YOrigin;
362 	int maxHeight;
363 	int maxWidth;
364 } GLXPipeRectLimits;
365 #endif
366 
367 
368 #ifndef GLX_MESA_agp_offset
369 #define GLX_MESA_agp_offset
370 #define AGLX_MESA_agp_offset
371 #endif
372 
373 
374 #ifndef GLX_ARB_fbconfig_float
375 #define GLX_ARB_fbconfig_float
376 #define AGLX_ARB_fbconfig_float
377 #define GLX_RGBA_FLOAT_TYPE                0x20B9
378 #define GLX_RGBA_FLOAT_BIT                 0x00000004
379 #endif
380 
381 #ifndef GLX_EXT_framebuffer_sRGB
382 #define GLX_EXT_framebuffer_sRGB
383 #define AGLX_EXT_framebuffer_sRGB
384 #define GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT   0x20B2
385 #endif
386 
387 #ifndef GLX_EXT_fbconfig_packed_float
388 #define GLX_EXT_fbconfig_packed_float
389 #define AGLX_EXT_fbconfig_packed_float
390 #define GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT 0x20B1
391 #define GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT  0x00000008
392 #endif
393 
394 #ifndef GLX_EXT_texture_from_pixmap
395 #define GLX_EXT_texture_from_pixmap
396 #define AGLX_EXT_texture_from_pixmap
397 #define GLX_BIND_TO_TEXTURE_RGB_EXT      0x20D0
398 #define GLX_BIND_TO_TEXTURE_RGBA_EXT     0x20D1
399 #define GLX_BIND_TO_MIPMAP_TEXTURE_EXT   0x20D2
400 #define GLX_BIND_TO_TEXTURE_TARGETS_EXT  0x20D3
401 #define GLX_Y_INVERTED_EXT               0x20D4
402 #define GLX_TEXTURE_FORMAT_EXT           0x20D5
403 #define GLX_TEXTURE_TARGET_EXT           0x20D6
404 #define GLX_MIPMAP_TEXTURE_EXT           0x20D7
405 #define GLX_TEXTURE_FORMAT_NONE_EXT      0x20D8
406 #define GLX_TEXTURE_FORMAT_RGB_EXT       0x20D9
407 #define GLX_TEXTURE_FORMAT_RGBA_EXT      0x20DA
408 #define GLX_TEXTURE_1D_BIT_EXT           0x00000001
409 #define GLX_TEXTURE_2D_BIT_EXT           0x00000002
410 #define GLX_TEXTURE_RECTANGLE_BIT_EXT    0x00000004
411 #define GLX_TEXTURE_1D_EXT               0x20DB
412 #define GLX_TEXTURE_2D_EXT               0x20DC
413 #define GLX_TEXTURE_RECTANGLE_EXT        0x20DD
414 #define GLX_FRONT_LEFT_EXT               0x20DE
415 #define GLX_FRONT_RIGHT_EXT              0x20DF
416 #define GLX_BACK_LEFT_EXT                0x20E0
417 #define GLX_BACK_RIGHT_EXT               0x20E1
418 #define GLX_FRONT_EXT                    GLX_FRONT_LEFT_EXT
419 #define GLX_BACK_EXT                     GLX_BACK_LEFT_EXT
420 #define GLX_AUX0_EXT                     0x20E2
421 #define GLX_AUX1_EXT                     0x20E3
422 #define GLX_AUX2_EXT                     0x20E4
423 #define GLX_AUX3_EXT                     0x20E5
424 #define GLX_AUX4_EXT                     0x20E6
425 #define GLX_AUX5_EXT                     0x20E7
426 #define GLX_AUX6_EXT                     0x20E8
427 #define GLX_AUX7_EXT                     0x20E9
428 #define GLX_AUX8_EXT                     0x20EA
429 #define GLX_AUX9_EXT                     0x20EB
430 #endif
431 
432 #ifndef GLX_NV_present_video
433 #define GLX_NV_present_video
434 #define AGLX_NV_present_video
435 #define GLX_GLX_NUM_VIDEO_SLOTS_NV         0x20F0
436 #endif
437 
438 #ifndef GLX_NV_video_out
439 #define GLX_NV_video_out
440 #define AGLX_NV_video_out
441 #define GLX_VIDEO_OUT_COLOR_NV           0x20C3
442 #define GLX_VIDEO_OUT_ALPHA_NV           0x20C4
443 #define GLX_VIDEO_OUT_DEPTH_NV           0x20C5
444 #define GLX_VIDEO_OUT_COLOR_AND_ALPHA_NV 0x20C6
445 #define GLX_VIDEO_OUT_COLOR_AND_DEPTH_NV 0x20C7
446 #define GLX_VIDEO_OUT_FRAME_NV           0x20C8
447 #define GLX_VIDEO_OUT_FIELD_1_NV         0x20C9
448 #define GLX_VIDEO_OUT_FIELD_2_NV         0x20CA
449 typedef unsigned int GLXVideoDeviceNV;
450 #endif
451 
452 #ifndef GLX_NV_swap_group
453 #define GLX_NV_swap_group
454 #define AGLX_NV_swap_group
455 #endif
456