blob: 93c2c9d4bdbc5a8d93f47316d498f0651a431ba1 [file] [log] [blame]
Brian Paulfed386c2000-12-08 18:06:35 +00001#ifndef __glxext_h_
2#define __glxext_h_
3
4#ifdef __cplusplus
5extern "C" {
6#endif
7
8/*
9** License Applicability. Except to the extent portions of this file are
10** made subject to an alternative license as permitted in the SGI Free
11** Software License B, Version 1.1 (the "License"), the contents of this
12** file are subject only to the provisions of the License. You may not use
13** this file except in compliance with the License. You may obtain a copy
14** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600
15** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at:
16**
17** http://oss.sgi.com/projects/FreeB
18**
19** Note that, as provided in the License, the Software is distributed on an
20** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS
21** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND
22** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A
23** PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
24**
25** Original Code. The Original Code is: OpenGL Sample Implementation,
26** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics,
27** Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc.
28** Copyright in any portions created by third parties is as indicated
29** elsewhere herein. All Rights Reserved.
30**
31** Additional Notice Provisions: This software was created using the
32** OpenGL(R) version 1.2.1 Sample Implementation published by SGI, but has
33** not been independently verified as being compliant with the OpenGL(R)
34** version 1.2.1 Specification.
35*/
36
37#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__)
38#define WIN32_LEAN_AND_MEAN 1
39#include <windows.h>
40#endif
41
42#ifndef APIENTRY
43#define APIENTRY
44#endif
45
46/*************************************************************/
47
48/* Header file version number, required by OpenGL ABI for Linux */
49#define GLX_GLXEXT_VERSION 2
50
51#ifndef GLX_VERSION_1_3
52#define GLX_WINDOW_BIT 0x00000001
53#define GLX_PIXMAP_BIT 0x00000002
54#define GLX_PBUFFER_BIT 0x00000004
55#define GLX_RGBA_BIT 0x00000001
56#define GLX_COLOR_INDEX_BIT 0x00000002
57#define GLX_PBUFFER_CLOBBER_MASK 0x08000000
58#define GLX_FRONT_LEFT_BUFFER_BIT 0x00000001
59#define GLX_FRONT_RIGHT_BUFFER_BIT 0x00000002
60#define GLX_BACK_LEFT_BUFFER_BIT 0x00000004
61#define GLX_BACK_RIGHT_BUFFER_BIT 0x00000008
62#define GLX_AUX_BUFFERS_BIT 0x00000010
63#define GLX_DEPTH_BUFFER_BIT 0x00000020
64#define GLX_STENCIL_BUFFER_BIT 0x00000040
65#define GLX_ACCUM_BUFFER_BIT 0x00000080
66#define GLX_CONFIG_CAVEAT 0x20
67#define GLX_X_VISUAL_TYPE 0x22
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_DONT_CARE 0xFFFFFFFF
75#define GLX_NONE 0x8000
76#define GLX_SLOW_CONFIG 0x8001
77#define GLX_TRUE_COLOR 0x8002
78#define GLX_DIRECT_COLOR 0x8003
79#define GLX_PSEUDO_COLOR 0x8004
80#define GLX_STATIC_COLOR 0x8005
81#define GLX_GRAY_SCALE 0x8006
82#define GLX_STATIC_GRAY 0x8007
83#define GLX_TRANSPARENT_RGB 0x8008
84#define GLX_TRANSPARENT_INDEX 0x8009
85#define GLX_VISUAL_ID 0x800B
86#define GLX_SCREEN 0x800C
87#define GLX_NON_CONFORMANT_CONFIG 0x800D
88#define GLX_DRAWABLE_TYPE 0x8010
89#define GLX_RENDER_TYPE 0x8011
90#define GLX_X_RENDERABLE 0x8012
91#define GLX_FBCONFIG_ID 0x8013
92#define GLX_RGBA_TYPE 0x8014
93#define GLX_COLOR_INDEX_TYPE 0x8015
94#define GLX_MAX_PBUFFER_WIDTH 0x8016
95#define GLX_MAX_PBUFFER_HEIGHT 0x8017
96#define GLX_MAX_PBUFFER_PIXELS 0x8018
97#define GLX_PRESERVED_CONTENTS 0x801B
98#define GLX_LARGEST_PBUFFER 0x801C
99#define GLX_WIDTH 0x801D
100#define GLX_HEIGHT 0x801E
101#define GLX_EVENT_MASK 0x801F
102#define GLX_DAMAGED 0x8020
103#define GLX_SAVED 0x8021
104#define GLX_WINDOW 0x8022
105#define GLX_PBUFFER 0x8023
106#define GLX_PBUFFER_HEIGHT 0x8040
107#define GLX_PBUFFER_WIDTH 0x8041
108#endif
109
Brian Paul2a3cc7d2001-05-25 15:41:29 +0000110/* XXX Added by BrianP */
111#ifndef GLX_SGIS_multisample
112#define GLX_SAMPLE_BUFFERS_SGIS 100000
113#define GLX_SAMPLES_SGIS 100001
114#endif
115
Brian Paulfed386c2000-12-08 18:06:35 +0000116#ifndef GLX_EXT_visual_info
117#define GLX_X_VISUAL_TYPE_EXT 0x22
118#define GLX_TRANSPARENT_TYPE_EXT 0x23
119#define GLX_TRANSPARENT_INDEX_VALUE_EXT 0x24
120#define GLX_TRANSPARENT_RED_VALUE_EXT 0x25
121#define GLX_TRANSPARENT_GREEN_VALUE_EXT 0x26
122#define GLX_TRANSPARENT_BLUE_VALUE_EXT 0x27
123#define GLX_TRANSPARENT_ALPHA_VALUE_EXT 0x28
124#define GLX_NONE_EXT 0x8000
125#define GLX_TRUE_COLOR_EXT 0x8002
126#define GLX_DIRECT_COLOR_EXT 0x8003
127#define GLX_PSEUDO_COLOR_EXT 0x8004
128#define GLX_STATIC_COLOR_EXT 0x8005
129#define GLX_GRAY_SCALE_EXT 0x8006
130#define GLX_STATIC_GRAY_EXT 0x8007
131#define GLX_TRANSPARENT_RGB_EXT 0x8008
132#define GLX_TRANSPARENT_INDEX_EXT 0x8009
133#endif
134
135#ifndef GLX_SGI_swap_control
136#endif
137
138#ifndef GLX_SGI_video_sync
139#endif
140
141#ifndef GLX_SGI_make_current_read
142#endif
143
144#ifndef GLX_SGIX_video_source
145#endif
146
147#ifndef GLX_EXT_visual_rating
148#define GLX_VISUAL_CAVEAT_EXT 0x20
149#define GLX_SLOW_VISUAL_EXT 0x8001
150#define GLX_NON_CONFORMANT_VISUAL_EXT 0x800D
151/* reuse GLX_NONE_EXT */
152#endif
153
154#ifndef GLX_EXT_import_context
155#define GLX_SHARE_CONTEXT_EXT 0x800A
156#define GLX_VISUAL_ID_EXT 0x800B
157#define GLX_SCREEN_EXT 0x800C
158#endif
159
160#ifndef GLX_SGIX_fbconfig
161#define GLX_WINDOW_BIT_SGIX 0x00000001
162#define GLX_PIXMAP_BIT_SGIX 0x00000002
163#define GLX_RGBA_BIT_SGIX 0x00000001
164#define GLX_COLOR_INDEX_BIT_SGIX 0x00000002
165#define GLX_DRAWABLE_TYPE_SGIX 0x8010
166#define GLX_RENDER_TYPE_SGIX 0x8011
167#define GLX_X_RENDERABLE_SGIX 0x8012
168#define GLX_FBCONFIG_ID_SGIX 0x8013
169#define GLX_RGBA_TYPE_SGIX 0x8014
170#define GLX_COLOR_INDEX_TYPE_SGIX 0x8015
171/* reuse GLX_SCREEN_EXT */
172#endif
173
174#ifndef GLX_SGIX_pbuffer
175#define GLX_PBUFFER_BIT_SGIX 0x00000004
176#define GLX_BUFFER_CLOBBER_MASK_SGIX 0x08000000
177#define GLX_FRONT_LEFT_BUFFER_BIT_SGIX 0x00000001
178#define GLX_FRONT_RIGHT_BUFFER_BIT_SGIX 0x00000002
179#define GLX_BACK_LEFT_BUFFER_BIT_SGIX 0x00000004
180#define GLX_BACK_RIGHT_BUFFER_BIT_SGIX 0x00000008
181#define GLX_AUX_BUFFERS_BIT_SGIX 0x00000010
182#define GLX_DEPTH_BUFFER_BIT_SGIX 0x00000020
183#define GLX_STENCIL_BUFFER_BIT_SGIX 0x00000040
184#define GLX_ACCUM_BUFFER_BIT_SGIX 0x00000080
185#define GLX_SAMPLE_BUFFERS_BIT_SGIX 0x00000100
186#define GLX_MAX_PBUFFER_WIDTH_SGIX 0x8016
187#define GLX_MAX_PBUFFER_HEIGHT_SGIX 0x8017
188#define GLX_MAX_PBUFFER_PIXELS_SGIX 0x8018
189#define GLX_OPTIMAL_PBUFFER_WIDTH_SGIX 0x8019
190#define GLX_OPTIMAL_PBUFFER_HEIGHT_SGIX 0x801A
191#define GLX_PRESERVED_CONTENTS_SGIX 0x801B
192#define GLX_LARGEST_PBUFFER_SGIX 0x801C
193#define GLX_WIDTH_SGIX 0x801D
194#define GLX_HEIGHT_SGIX 0x801E
195#define GLX_EVENT_MASK_SGIX 0x801F
196#define GLX_DAMAGED_SGIX 0x8020
197#define GLX_SAVED_SGIX 0x8021
198#define GLX_WINDOW_SGIX 0x8022
199#define GLX_PBUFFER_SGIX 0x8023
200#endif
201
202#ifndef GLX_SGI_cushion
203#endif
204
205#ifndef GLX_SGIX_video_resize
206#define GLX_SYNC_FRAME_SGIX 0x00000000
207#define GLX_SYNC_SWAP_SGIX 0x00000001
208#endif
209
210#ifndef GLX_SGIX_dmbuffer
211#define GLX_DIGITAL_MEDIA_PBUFFER_SGIX 0x8024
212#endif
213
214#ifndef GLX_SGIX_swap_group
215#endif
216
217#ifndef GLX_SGIX_swap_barrier
218#endif
219
220#ifndef GLX_SGIS_blended_overlay
221#define GLX_BLENDED_RGBA_SGIS 0x8025
222#endif
223
224#ifndef GLX_SGIS_shared_multisample
225#define GLX_MULTISAMPLE_SUB_RECT_WIDTH_SGIS 0x8026
226#define GLX_MULTISAMPLE_SUB_RECT_HEIGHT_SGIS 0x8027
227#endif
228
229#ifndef GLX_SUN_get_transparent_index
230#endif
231
232#ifndef GLX_3DFX_multisample
233#define GLX_SAMPLE_BUFFERS_3DFX 0x8050
234#define GLX_SAMPLES_3DFX 0x8051
235#endif
236
237#ifndef GLX_MESA_copy_sub_buffer
238#endif
239
240#ifndef GLX_MESA_pixmap_colormap
241#endif
242
243#ifndef GLX_MESA_release_buffers
244#endif
245
246#ifndef GLX_MESA_set_3dfx_mode
247#define GLX_3DFX_WINDOW_MODE_MESA 0x1
248#define GLX_3DFX_FULLSCREEN_MODE_MESA 0x2
249#endif
250
251
252/*************************************************************/
253
254#ifndef GLX_ARB_get_proc_address
Brian Paulb95884c2001-05-25 15:44:06 +0000255/* XXX Added void parameter to silence many, many warnings (BrianP) */
256typedef void (*__GLXextFuncPtr)(void);
Brian Paulfed386c2000-12-08 18:06:35 +0000257#endif
258
259#ifndef GLX_SGIX_video_source
260typedef XID GLXVideoSourceSGIX;
261#endif
262
263#ifndef GLX_SGIX_fbconfig
264typedef XID GLXFBConfigIDSGIX;
265typedef struct __GLXFBConfigRec *GLXFBConfigSGIX;
266#endif
267
268#ifndef GLX_SGIX_pbuffer
269typedef XID GLXPbufferSGIX;
270typedef struct {
271 int type;
272 unsigned long serial; /* # of last request processed by server */
273 Bool send_event; /* true if this came for SendEvent request */
274 Display *display; /* display the event was read from */
275 GLXDrawable drawable; /* i.d. of Drawable */
276 int event_type; /* GLX_DAMAGED_SGIX or GLX_SAVED_SGIX */
277 int draw_type; /* GLX_WINDOW_SGIX or GLX_PBUFFER_SGIX */
278 unsigned int mask; /* mask indicating which buffers are affected*/
279 int x, y;
280 int width, height;
281 int count; /* if nonzero, at least this many more */
282} GLXBufferClobberEventSGIX;
283#endif
284
285#ifndef GLX_VERSION_1_3
286#define GLX_VERSION_1_3 1
287#ifdef GLX_GLXEXT_PROTOTYPES
288extern GLXFBConfig * glXGetFBConfigs (Display *, int, int *);
289extern GLXFBConfig * glXChooseFBConfig (Display *, int, const int *, int *);
290extern int glXGetFBConfigAttrib (Display *, GLXFBConfig, int, int *);
291extern XVisualInfo * glXGetVisualFromFBConfig (Display *, GLXFBConfig);
292extern GLXWindow glXCreateWindow (Display *, GLXFBConfig, Window, const int *);
293extern void glXDestroyWindow (Display *, GLXWindow);
294extern GLXPixmap glXCreatePixmap (Display *, GLXFBConfig, Pixmap, const int *);
295extern void glXDestroyPixmap (Display *, GLXPixmap);
296extern GLXPbuffer glXCreatePbuffer (Display *, GLXFBConfig, const int *);
297extern void glXDestroyPbuffer (Display *, GLXPbuffer);
298extern void glXQueryDrawable (Display *, GLXDrawable, int, unsigned int *);
299extern GLXContext glXCreateNewContext (Display *, GLXFBConfig, int, GLXContext, Bool);
300extern Bool glXMakeContextCurrent (Display *, GLXDrawable, GLXDrawable, GLXContext);
301extern GLXDrawable glXGetCurrentReadDrawable (void);
302extern Display * glXGetCurrentDisplay (void);
303extern int glXQueryContext (Display *, GLXContext, int, int *);
304extern void glXSelectEvent (Display *, GLXDrawable, unsigned long);
305extern void glXGetSelectedEvent (Display *, GLXDrawable, unsigned long *);
306#endif /* GLX_GLXEXT_PROTOTYPES */
307typedef GLXFBConfig * ( * PFNGLXGETFBCONFIGSPROC) (Display *dpy, int screen, int *nelements);
308typedef GLXFBConfig * ( * PFNGLXCHOOSEFBCONFIGPROC) (Display *dpy, int screen, const int *attrib_list, int *nelements);
309typedef int ( * PFNGLXGETFBCONFIGATTRIBPROC) (Display *dpy, GLXFBConfig config, int attribute, int *value);
310typedef XVisualInfo * ( * PFNGLXGETVISUALFROMFBCONFIGPROC) (Display *dpy, GLXFBConfig config);
311typedef GLXWindow ( * PFNGLXCREATEWINDOWPROC) (Display *dpy, GLXFBConfig config, Window win, const int *attrib_list);
312typedef void ( * PFNGLXDESTROYWINDOWPROC) (Display *dpy, GLXWindow win);
313typedef GLXPixmap ( * PFNGLXCREATEPIXMAPPROC) (Display *dpy, GLXFBConfig config, Pixmap pixmap, const int *attrib_list);
314typedef void ( * PFNGLXDESTROYPIXMAPPROC) (Display *dpy, GLXPixmap pixmap);
315typedef GLXPbuffer ( * PFNGLXCREATEPBUFFERPROC) (Display *dpy, GLXFBConfig config, const int *attrib_list);
316typedef void ( * PFNGLXDESTROYPBUFFERPROC) (Display *dpy, GLXPbuffer pbuf);
317typedef void ( * PFNGLXQUERYDRAWABLEPROC) (Display *dpy, GLXDrawable draw, int attribute, unsigned int *value);
318typedef GLXContext ( * PFNGLXCREATENEWCONTEXTPROC) (Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct);
319typedef Bool ( * PFNGLXMAKECONTEXTCURRENTPROC) (Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx);
320typedef GLXDrawable ( * PFNGLXGETCURRENTREADDRAWABLEPROC) (void);
321typedef Display * ( * PFNGLXGETCURRENTDISPLAYPROC) (void);
322typedef int ( * PFNGLXQUERYCONTEXTPROC) (Display *dpy, GLXContext ctx, int attribute, int *value);
323typedef void ( * PFNGLXSELECTEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long event_mask);
324typedef void ( * PFNGLXGETSELECTEDEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long *event_mask);
325#endif
326
327#ifndef GLX_ARB_get_proc_address
328#define GLX_ARB_get_proc_address 1
329#ifdef GLX_GLXEXT_PROTOTYPES
330extern __GLXextFuncPtr glXGetProcAddressARB (const GLubyte *);
331#endif /* GLX_GLXEXT_PROTOTYPES */
332typedef __GLXextFuncPtr ( * PFNGLXGETPROCADDRESSARBPROC) (const GLubyte *procName);
333#endif
334
335#ifndef GLX_SGIS_multisample
336#define GLX_SGIS_multisample 1
337#endif
Brian Paulfed386c2000-12-08 18:06:35 +0000338
339#ifndef GLX_EXT_visual_info
340#define GLX_EXT_visual_info 1
341#endif
342
343#ifndef GLX_SGI_swap_control
344#define GLX_SGI_swap_control 1
345#ifdef GLX_GLXEXT_PROTOTYPES
346extern int glXSwapIntervalSGI (int);
347#endif /* GLX_GLXEXT_PROTOTYPES */
348typedef int ( * PFNGLXSWAPINTERVALSGIPROC) (int interval);
349#endif
350
351#ifndef GLX_SGI_video_sync
352#define GLX_SGI_video_sync 1
353#ifdef GLX_GLXEXT_PROTOTYPES
354extern int glXGetVideoSyncSGI (unsigned int *);
355extern int glXWaitVideoSyncSGI (int, int, unsigned int *);
356#endif /* GLX_GLXEXT_PROTOTYPES */
357typedef int ( * PFNGLXGETVIDEOSYNCSGIPROC) (unsigned int *count);
358typedef int ( * PFNGLXWAITVIDEOSYNCSGIPROC) (int divisor, int remainder, unsigned int *count);
359#endif
360
361#ifndef GLX_SGI_make_current_read
362#define GLX_SGI_make_current_read 1
363#ifdef GLX_GLXEXT_PROTOTYPES
364extern Bool glXMakeCurrentReadSGI (Display *, GLXDrawable, GLXDrawable, GLXContext);
365extern GLXDrawable glXGetCurrentReadDrawableSGI (void);
366#endif /* GLX_GLXEXT_PROTOTYPES */
367typedef Bool ( * PFNGLXMAKECURRENTREADSGIPROC) (Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx);
368typedef GLXDrawable ( * PFNGLXGETCURRENTREADDRAWABLESGIPROC) (void);
369#endif
370
371#ifdef _VL_H
372#ifndef GLX_SGIX_video_source
373#define GLX_SGIX_video_source 1
374#ifdef GLX_GLXEXT_PROTOTYPES
375extern GLXVideoSourceSGIX glXCreateGLXVideoSourceSGIX (Display *, int, VLServer, VLPath, int, VLNode);
376extern void glXDestroyGLXVideoSourceSGIX (Display *, GLXVideoSourceSGIX);
377#endif /* GLX_GLXEXT_PROTOTYPES */
378typedef GLXVideoSourceSGIX ( * PFNGLXCREATEGLXVIDEOSOURCESGIXPROC) (Display *display, int screen, VLServer server, VLPath path, int nodeClass, VLNode drainNode);
379typedef void ( * PFNGLXDESTROYGLXVIDEOSOURCESGIXPROC) (Display *dpy, GLXVideoSourceSGIX glxvideosource);
380#endif
381
382#endif /* _VL_H */
383#ifndef GLX_EXT_visual_rating
384#define GLX_EXT_visual_rating 1
385#endif
386
387#ifndef GLX_EXT_import_context
388#define GLX_EXT_import_context 1
389#ifdef GLX_GLXEXT_PROTOTYPES
390extern Display * glXGetCurrentDisplayEXT (void);
391extern int glXQueryContextInfoEXT (Display *, GLXContext, int, int *);
392extern GLXContextID glXGetContextIDEXT (GLXContext);
393extern GLXContext glXImportContextEXT (Display *, GLXContextID);
394extern void glXFreeContextEXT (Display *, GLXContext);
395#endif /* GLX_GLXEXT_PROTOTYPES */
396typedef Display * ( * PFNGLXGETCURRENTDISPLAYEXTPROC) (void);
397typedef int ( * PFNGLXQUERYCONTEXTINFOEXTPROC) (Display *dpy, GLXContext context, int attribute, int *value);
398typedef GLXContextID ( * PFNGLXGETCONTEXTIDEXTPROC) (GLXContext context);
399typedef GLXContext ( * PFNGLXIMPORTCONTEXTEXTPROC) (Display *dpy, GLXContextID contextID);
400typedef void ( * PFNGLXFREECONTEXTEXTPROC) (Display *dpy, GLXContext context);
401#endif
402
403#ifndef GLX_SGIX_fbconfig
404#define GLX_SGIX_fbconfig 1
405#ifdef GLX_GLXEXT_PROTOTYPES
406extern int glXGetFBConfigAttribSGIX (Display *, GLXFBConfigSGIX, int, int *);
407extern GLXFBConfigSGIX * glXChooseFBConfigSGIX (Display *, int, int *, int *);
408extern GLXPixmap glXCreateGLXPixmapWithConfigSGIX (Display *, GLXFBConfigSGIX, Pixmap);
409extern GLXContext glXCreateContextWithConfigSGIX (Display *, GLXFBConfigSGIX, int, GLXContext, Bool);
410extern XVisualInfo * glXGetVisualFromFBConfigSGIX (Display *, GLXFBConfigSGIX);
411extern GLXFBConfigSGIX glXGetFBConfigFromVisualSGIX (Display *, XVisualInfo *);
412#endif /* GLX_GLXEXT_PROTOTYPES */
413typedef int ( * PFNGLXGETFBCONFIGATTRIBSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, int attribute, int *value);
414typedef GLXFBConfigSGIX * ( * PFNGLXCHOOSEFBCONFIGSGIXPROC) (Display *dpy, int screen, int *attrib_list, int *nelements);
415typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, Pixmap pixmap);
416typedef GLXContext ( * PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, int render_type, GLXContext share_list, Bool direct);
417typedef XVisualInfo * ( * PFNGLXGETVISUALFROMFBCONFIGSGIXPROC) (Display *dpy, GLXFBConfigSGIX config);
418typedef GLXFBConfigSGIX ( * PFNGLXGETFBCONFIGFROMVISUALSGIXPROC) (Display *dpy, XVisualInfo *vis);
419#endif
420
421#ifndef GLX_SGIX_pbuffer
422#define GLX_SGIX_pbuffer 1
423#ifdef GLX_GLXEXT_PROTOTYPES
424extern GLXPbufferSGIX glXCreateGLXPbufferSGIX (Display *, GLXFBConfigSGIX, unsigned int, unsigned int, int *);
425extern void glXDestroyGLXPbufferSGIX (Display *, GLXPbufferSGIX);
426extern int glXQueryGLXPbufferSGIX (Display *, GLXPbufferSGIX, int, unsigned int *);
427extern void glXSelectEventSGIX (Display *, GLXDrawable, unsigned long);
428extern void glXGetSelectedEventSGIX (Display *, GLXDrawable, unsigned long *);
429#endif /* GLX_GLXEXT_PROTOTYPES */
430typedef GLXPbufferSGIX ( * PFNGLXCREATEGLXPBUFFERSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, unsigned int width, unsigned int height, int *attrib_list);
431typedef void ( * PFNGLXDESTROYGLXPBUFFERSGIXPROC) (Display *dpy, GLXPbufferSGIX pbuf);
432typedef int ( * PFNGLXQUERYGLXPBUFFERSGIXPROC) (Display *dpy, GLXPbufferSGIX pbuf, int attribute, unsigned int *value);
433typedef void ( * PFNGLXSELECTEVENTSGIXPROC) (Display *dpy, GLXDrawable drawable, unsigned long mask);
434typedef void ( * PFNGLXGETSELECTEDEVENTSGIXPROC) (Display *dpy, GLXDrawable drawable, unsigned long *mask);
435#endif
436
437#ifndef GLX_SGI_cushion
438#define GLX_SGI_cushion 1
439#ifdef GLX_GLXEXT_PROTOTYPES
440extern void glXCushionSGI (Display *, Window, float);
441#endif /* GLX_GLXEXT_PROTOTYPES */
442typedef void ( * PFNGLXCUSHIONSGIPROC) (Display *dpy, Window window, float cushion);
443#endif
444
445#ifndef GLX_SGIX_video_resize
446#define GLX_SGIX_video_resize 1
447#ifdef GLX_GLXEXT_PROTOTYPES
448extern int glXBindChannelToWindowSGIX (Display *, int, int, Window);
449extern int glXChannelRectSGIX (Display *, int, int, int, int, int, int);
450extern int glXQueryChannelRectSGIX (Display *, int, int, int *, int *, int *, int *);
451extern int glXQueryChannelDeltasSGIX (Display *, int, int, int *, int *, int *, int *);
452extern int glXChannelRectSyncSGIX (Display *, int, int, GLenum);
453#endif /* GLX_GLXEXT_PROTOTYPES */
454typedef int ( * PFNGLXBINDCHANNELTOWINDOWSGIXPROC) (Display *display, int screen, int channel, Window window);
455typedef int ( * PFNGLXCHANNELRECTSGIXPROC) (Display *display, int screen, int channel, int x, int y, int w, int h);
456typedef int ( * PFNGLXQUERYCHANNELRECTSGIXPROC) (Display *display, int screen, int channel, int *dx, int *dy, int *dw, int *dh);
457typedef int ( * PFNGLXQUERYCHANNELDELTASSGIXPROC) (Display *display, int screen, int channel, int *x, int *y, int *w, int *h);
458typedef int ( * PFNGLXCHANNELRECTSYNCSGIXPROC) (Display *display, int screen, int channel, GLenum synctype);
459#endif
460
461#ifdef _DM_BUFFER_H_
462#ifndef GLX_SGIX_dmbuffer
463#define GLX_SGIX_dmbuffer 1
464#ifdef GLX_GLXEXT_PROTOTYPES
465extern Bool glXAssociateDMPbufferSGIX (Display *, GLXPbufferSGIX, DMparams *, DMbuffer);
466#endif /* GLX_GLXEXT_PROTOTYPES */
467typedef Bool ( * PFNGLXASSOCIATEDMPBUFFERSGIXPROC) (Display *dpy, GLXPbufferSGIX pbuffer, DMparams *params, DMbuffer dmbuffer);
468#endif
469
470#endif /* _DM_BUFFER_H_ */
471#ifndef GLX_SGIX_swap_group
472#define GLX_SGIX_swap_group 1
473#ifdef GLX_GLXEXT_PROTOTYPES
474extern void glXJoinSwapGroupSGIX (Display *, GLXDrawable, GLXDrawable);
475#endif /* GLX_GLXEXT_PROTOTYPES */
476typedef void ( * PFNGLXJOINSWAPGROUPSGIXPROC) (Display *dpy, GLXDrawable drawable, GLXDrawable member);
477#endif
478
479#ifndef GLX_SGIX_swap_barrier
480#define GLX_SGIX_swap_barrier 1
481#ifdef GLX_GLXEXT_PROTOTYPES
482extern void glXBindSwapBarrierSGIX (Display *, GLXDrawable, int);
483extern Bool glXQueryMaxSwapBarriersSGIX (Display *, int, int *);
484#endif /* GLX_GLXEXT_PROTOTYPES */
485typedef void ( * PFNGLXBINDSWAPBARRIERSGIXPROC) (Display *dpy, GLXDrawable drawable, int barrier);
486typedef Bool ( * PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC) (Display *dpy, int screen, int *max);
487#endif
488
489#ifndef GLX_SUN_get_transparent_index
490#define GLX_SUN_get_transparent_index 1
491#ifdef GLX_GLXEXT_PROTOTYPES
492extern Status glXGetTransparentIndexSUN (Display *, Window, Window, long *);
493#endif /* GLX_GLXEXT_PROTOTYPES */
494typedef Status ( * PFNGLXGETTRANSPARENTINDEXSUNPROC) (Display *dpy, Window overlay, Window underlay, long *pTransparentIndex);
495#endif
496
497#ifndef GLX_MESA_copy_sub_buffer
498#define GLX_MESA_copy_sub_buffer 1
499#ifdef GLX_GLXEXT_PROTOTYPES
500extern void glXCopySubBufferMESA (Display *, GLXDrawable, int, int, int, int);
501#endif /* GLX_GLXEXT_PROTOTYPES */
502typedef void ( * PFNGLXCOPYSUBBUFFERMESAPROC) (Display *dpy, GLXDrawable drawable, int x, int y, int width, int height);
503#endif
504
505#ifndef GLX_MESA_pixmap_colormap
506#define GLX_MESA_pixmap_colormap 1
507#ifdef GLX_GLXEXT_PROTOTYPES
508extern GLXPixmap glXCreateGLXPixmapMESA (Display *, XVisualInfo *, Pixmap, Colormap);
509#endif /* GLX_GLXEXT_PROTOTYPES */
510typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPMESAPROC) (Display *dpy, XVisualInfo *visual, Pixmap pixmap, Colormap cmap);
511#endif
512
513#ifndef GLX_MESA_release_buffers
514#define GLX_MESA_release_buffers 1
515#ifdef GLX_GLXEXT_PROTOTYPES
516extern Bool glXReleaseBuffersMESA (Display *, GLXDrawable);
517#endif /* GLX_GLXEXT_PROTOTYPES */
518typedef Bool ( * PFNGLXRELEASEBUFFERSMESAPROC) (Display *dpy, GLXDrawable drawable);
519#endif
520
521#ifndef GLX_MESA_set_3dfx_mode
522#define GLX_MESA_set_3dfx_mode 1
523#ifdef GLX_GLXEXT_PROTOTYPES
524extern Bool glXSet3DfxModeMESA (int);
525#endif /* GLX_GLXEXT_PROTOTYPES */
526typedef Bool ( * PFNGLXSET3DFXMODEMESAPROC) (int mode);
527#endif
528
529
530#ifdef __cplusplus
531}
532#endif
533
534#endif