blob: 63971921c38569609b8822231f6b4c7f673e4472 [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
110#ifndef GLX_EXT_visual_info
111#define GLX_X_VISUAL_TYPE_EXT 0x22
112#define GLX_TRANSPARENT_TYPE_EXT 0x23
113#define GLX_TRANSPARENT_INDEX_VALUE_EXT 0x24
114#define GLX_TRANSPARENT_RED_VALUE_EXT 0x25
115#define GLX_TRANSPARENT_GREEN_VALUE_EXT 0x26
116#define GLX_TRANSPARENT_BLUE_VALUE_EXT 0x27
117#define GLX_TRANSPARENT_ALPHA_VALUE_EXT 0x28
118#define GLX_NONE_EXT 0x8000
119#define GLX_TRUE_COLOR_EXT 0x8002
120#define GLX_DIRECT_COLOR_EXT 0x8003
121#define GLX_PSEUDO_COLOR_EXT 0x8004
122#define GLX_STATIC_COLOR_EXT 0x8005
123#define GLX_GRAY_SCALE_EXT 0x8006
124#define GLX_STATIC_GRAY_EXT 0x8007
125#define GLX_TRANSPARENT_RGB_EXT 0x8008
126#define GLX_TRANSPARENT_INDEX_EXT 0x8009
127#endif
128
129#ifndef GLX_SGI_swap_control
130#endif
131
132#ifndef GLX_SGI_video_sync
133#endif
134
135#ifndef GLX_SGI_make_current_read
136#endif
137
138#ifndef GLX_SGIX_video_source
139#endif
140
141#ifndef GLX_EXT_visual_rating
142#define GLX_VISUAL_CAVEAT_EXT 0x20
143#define GLX_SLOW_VISUAL_EXT 0x8001
144#define GLX_NON_CONFORMANT_VISUAL_EXT 0x800D
145/* reuse GLX_NONE_EXT */
146#endif
147
148#ifndef GLX_EXT_import_context
149#define GLX_SHARE_CONTEXT_EXT 0x800A
150#define GLX_VISUAL_ID_EXT 0x800B
151#define GLX_SCREEN_EXT 0x800C
152#endif
153
154#ifndef GLX_SGIX_fbconfig
155#define GLX_WINDOW_BIT_SGIX 0x00000001
156#define GLX_PIXMAP_BIT_SGIX 0x00000002
157#define GLX_RGBA_BIT_SGIX 0x00000001
158#define GLX_COLOR_INDEX_BIT_SGIX 0x00000002
159#define GLX_DRAWABLE_TYPE_SGIX 0x8010
160#define GLX_RENDER_TYPE_SGIX 0x8011
161#define GLX_X_RENDERABLE_SGIX 0x8012
162#define GLX_FBCONFIG_ID_SGIX 0x8013
163#define GLX_RGBA_TYPE_SGIX 0x8014
164#define GLX_COLOR_INDEX_TYPE_SGIX 0x8015
165/* reuse GLX_SCREEN_EXT */
166#endif
167
168#ifndef GLX_SGIX_pbuffer
169#define GLX_PBUFFER_BIT_SGIX 0x00000004
170#define GLX_BUFFER_CLOBBER_MASK_SGIX 0x08000000
171#define GLX_FRONT_LEFT_BUFFER_BIT_SGIX 0x00000001
172#define GLX_FRONT_RIGHT_BUFFER_BIT_SGIX 0x00000002
173#define GLX_BACK_LEFT_BUFFER_BIT_SGIX 0x00000004
174#define GLX_BACK_RIGHT_BUFFER_BIT_SGIX 0x00000008
175#define GLX_AUX_BUFFERS_BIT_SGIX 0x00000010
176#define GLX_DEPTH_BUFFER_BIT_SGIX 0x00000020
177#define GLX_STENCIL_BUFFER_BIT_SGIX 0x00000040
178#define GLX_ACCUM_BUFFER_BIT_SGIX 0x00000080
179#define GLX_SAMPLE_BUFFERS_BIT_SGIX 0x00000100
180#define GLX_MAX_PBUFFER_WIDTH_SGIX 0x8016
181#define GLX_MAX_PBUFFER_HEIGHT_SGIX 0x8017
182#define GLX_MAX_PBUFFER_PIXELS_SGIX 0x8018
183#define GLX_OPTIMAL_PBUFFER_WIDTH_SGIX 0x8019
184#define GLX_OPTIMAL_PBUFFER_HEIGHT_SGIX 0x801A
185#define GLX_PRESERVED_CONTENTS_SGIX 0x801B
186#define GLX_LARGEST_PBUFFER_SGIX 0x801C
187#define GLX_WIDTH_SGIX 0x801D
188#define GLX_HEIGHT_SGIX 0x801E
189#define GLX_EVENT_MASK_SGIX 0x801F
190#define GLX_DAMAGED_SGIX 0x8020
191#define GLX_SAVED_SGIX 0x8021
192#define GLX_WINDOW_SGIX 0x8022
193#define GLX_PBUFFER_SGIX 0x8023
194#endif
195
196#ifndef GLX_SGI_cushion
197#endif
198
199#ifndef 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 GLX_DIGITAL_MEDIA_PBUFFER_SGIX 0x8024
206#endif
207
208#ifndef GLX_SGIX_swap_group
209#endif
210
211#ifndef GLX_SGIX_swap_barrier
212#endif
213
214#ifndef GLX_SGIS_blended_overlay
215#define GLX_BLENDED_RGBA_SGIS 0x8025
216#endif
217
218#ifndef 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_SUN_get_transparent_index
224#endif
225
226#ifndef GLX_3DFX_multisample
227#define GLX_SAMPLE_BUFFERS_3DFX 0x8050
228#define GLX_SAMPLES_3DFX 0x8051
229#endif
230
231#ifndef GLX_MESA_copy_sub_buffer
232#endif
233
234#ifndef GLX_MESA_pixmap_colormap
235#endif
236
237#ifndef GLX_MESA_release_buffers
238#endif
239
240#ifndef GLX_MESA_set_3dfx_mode
241#define GLX_3DFX_WINDOW_MODE_MESA 0x1
242#define GLX_3DFX_FULLSCREEN_MODE_MESA 0x2
243#endif
244
245
246/*************************************************************/
247
248#ifndef GLX_ARB_get_proc_address
249typedef void (*__GLXextFuncPtr)();
250#endif
251
252#ifndef GLX_SGIX_video_source
253typedef XID GLXVideoSourceSGIX;
254#endif
255
256#ifndef GLX_SGIX_fbconfig
257typedef XID GLXFBConfigIDSGIX;
258typedef struct __GLXFBConfigRec *GLXFBConfigSGIX;
259#endif
260
261#ifndef GLX_SGIX_pbuffer
262typedef XID GLXPbufferSGIX;
263typedef struct {
264 int type;
265 unsigned long serial; /* # of last request processed by server */
266 Bool send_event; /* true if this came for SendEvent request */
267 Display *display; /* display the event was read from */
268 GLXDrawable drawable; /* i.d. of Drawable */
269 int event_type; /* GLX_DAMAGED_SGIX or GLX_SAVED_SGIX */
270 int draw_type; /* GLX_WINDOW_SGIX or GLX_PBUFFER_SGIX */
271 unsigned int mask; /* mask indicating which buffers are affected*/
272 int x, y;
273 int width, height;
274 int count; /* if nonzero, at least this many more */
275} GLXBufferClobberEventSGIX;
276#endif
277
278#ifndef GLX_VERSION_1_3
279#define GLX_VERSION_1_3 1
280#ifdef GLX_GLXEXT_PROTOTYPES
281extern GLXFBConfig * glXGetFBConfigs (Display *, int, int *);
282extern GLXFBConfig * glXChooseFBConfig (Display *, int, const int *, int *);
283extern int glXGetFBConfigAttrib (Display *, GLXFBConfig, int, int *);
284extern XVisualInfo * glXGetVisualFromFBConfig (Display *, GLXFBConfig);
285extern GLXWindow glXCreateWindow (Display *, GLXFBConfig, Window, const int *);
286extern void glXDestroyWindow (Display *, GLXWindow);
287extern GLXPixmap glXCreatePixmap (Display *, GLXFBConfig, Pixmap, const int *);
288extern void glXDestroyPixmap (Display *, GLXPixmap);
289extern GLXPbuffer glXCreatePbuffer (Display *, GLXFBConfig, const int *);
290extern void glXDestroyPbuffer (Display *, GLXPbuffer);
291extern void glXQueryDrawable (Display *, GLXDrawable, int, unsigned int *);
292extern GLXContext glXCreateNewContext (Display *, GLXFBConfig, int, GLXContext, Bool);
293extern Bool glXMakeContextCurrent (Display *, GLXDrawable, GLXDrawable, GLXContext);
294extern GLXDrawable glXGetCurrentReadDrawable (void);
295extern Display * glXGetCurrentDisplay (void);
296extern int glXQueryContext (Display *, GLXContext, int, int *);
297extern void glXSelectEvent (Display *, GLXDrawable, unsigned long);
298extern void glXGetSelectedEvent (Display *, GLXDrawable, unsigned long *);
299#endif /* GLX_GLXEXT_PROTOTYPES */
300typedef GLXFBConfig * ( * PFNGLXGETFBCONFIGSPROC) (Display *dpy, int screen, int *nelements);
301typedef GLXFBConfig * ( * PFNGLXCHOOSEFBCONFIGPROC) (Display *dpy, int screen, const int *attrib_list, int *nelements);
302typedef int ( * PFNGLXGETFBCONFIGATTRIBPROC) (Display *dpy, GLXFBConfig config, int attribute, int *value);
303typedef XVisualInfo * ( * PFNGLXGETVISUALFROMFBCONFIGPROC) (Display *dpy, GLXFBConfig config);
304typedef GLXWindow ( * PFNGLXCREATEWINDOWPROC) (Display *dpy, GLXFBConfig config, Window win, const int *attrib_list);
305typedef void ( * PFNGLXDESTROYWINDOWPROC) (Display *dpy, GLXWindow win);
306typedef GLXPixmap ( * PFNGLXCREATEPIXMAPPROC) (Display *dpy, GLXFBConfig config, Pixmap pixmap, const int *attrib_list);
307typedef void ( * PFNGLXDESTROYPIXMAPPROC) (Display *dpy, GLXPixmap pixmap);
308typedef GLXPbuffer ( * PFNGLXCREATEPBUFFERPROC) (Display *dpy, GLXFBConfig config, const int *attrib_list);
309typedef void ( * PFNGLXDESTROYPBUFFERPROC) (Display *dpy, GLXPbuffer pbuf);
310typedef void ( * PFNGLXQUERYDRAWABLEPROC) (Display *dpy, GLXDrawable draw, int attribute, unsigned int *value);
311typedef GLXContext ( * PFNGLXCREATENEWCONTEXTPROC) (Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct);
312typedef Bool ( * PFNGLXMAKECONTEXTCURRENTPROC) (Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx);
313typedef GLXDrawable ( * PFNGLXGETCURRENTREADDRAWABLEPROC) (void);
314typedef Display * ( * PFNGLXGETCURRENTDISPLAYPROC) (void);
315typedef int ( * PFNGLXQUERYCONTEXTPROC) (Display *dpy, GLXContext ctx, int attribute, int *value);
316typedef void ( * PFNGLXSELECTEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long event_mask);
317typedef void ( * PFNGLXGETSELECTEDEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long *event_mask);
318#endif
319
320#ifndef GLX_ARB_get_proc_address
321#define GLX_ARB_get_proc_address 1
322#ifdef GLX_GLXEXT_PROTOTYPES
323extern __GLXextFuncPtr glXGetProcAddressARB (const GLubyte *);
324#endif /* GLX_GLXEXT_PROTOTYPES */
325typedef __GLXextFuncPtr ( * PFNGLXGETPROCADDRESSARBPROC) (const GLubyte *procName);
326#endif
327
328#ifndef GLX_SGIS_multisample
329#define GLX_SGIS_multisample 1
330#endif
331
332#ifndef GLX_EXT_visual_info
333#define GLX_EXT_visual_info 1
334#endif
335
336#ifndef GLX_SGI_swap_control
337#define GLX_SGI_swap_control 1
338#ifdef GLX_GLXEXT_PROTOTYPES
339extern int glXSwapIntervalSGI (int);
340#endif /* GLX_GLXEXT_PROTOTYPES */
341typedef int ( * PFNGLXSWAPINTERVALSGIPROC) (int interval);
342#endif
343
344#ifndef GLX_SGI_video_sync
345#define GLX_SGI_video_sync 1
346#ifdef GLX_GLXEXT_PROTOTYPES
347extern int glXGetVideoSyncSGI (unsigned int *);
348extern int glXWaitVideoSyncSGI (int, int, unsigned int *);
349#endif /* GLX_GLXEXT_PROTOTYPES */
350typedef int ( * PFNGLXGETVIDEOSYNCSGIPROC) (unsigned int *count);
351typedef int ( * PFNGLXWAITVIDEOSYNCSGIPROC) (int divisor, int remainder, unsigned int *count);
352#endif
353
354#ifndef GLX_SGI_make_current_read
355#define GLX_SGI_make_current_read 1
356#ifdef GLX_GLXEXT_PROTOTYPES
357extern Bool glXMakeCurrentReadSGI (Display *, GLXDrawable, GLXDrawable, GLXContext);
358extern GLXDrawable glXGetCurrentReadDrawableSGI (void);
359#endif /* GLX_GLXEXT_PROTOTYPES */
360typedef Bool ( * PFNGLXMAKECURRENTREADSGIPROC) (Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx);
361typedef GLXDrawable ( * PFNGLXGETCURRENTREADDRAWABLESGIPROC) (void);
362#endif
363
364#ifdef _VL_H
365#ifndef GLX_SGIX_video_source
366#define GLX_SGIX_video_source 1
367#ifdef GLX_GLXEXT_PROTOTYPES
368extern GLXVideoSourceSGIX glXCreateGLXVideoSourceSGIX (Display *, int, VLServer, VLPath, int, VLNode);
369extern void glXDestroyGLXVideoSourceSGIX (Display *, GLXVideoSourceSGIX);
370#endif /* GLX_GLXEXT_PROTOTYPES */
371typedef GLXVideoSourceSGIX ( * PFNGLXCREATEGLXVIDEOSOURCESGIXPROC) (Display *display, int screen, VLServer server, VLPath path, int nodeClass, VLNode drainNode);
372typedef void ( * PFNGLXDESTROYGLXVIDEOSOURCESGIXPROC) (Display *dpy, GLXVideoSourceSGIX glxvideosource);
373#endif
374
375#endif /* _VL_H */
376#ifndef GLX_EXT_visual_rating
377#define GLX_EXT_visual_rating 1
378#endif
379
380#ifndef GLX_EXT_import_context
381#define GLX_EXT_import_context 1
382#ifdef GLX_GLXEXT_PROTOTYPES
383extern Display * glXGetCurrentDisplayEXT (void);
384extern int glXQueryContextInfoEXT (Display *, GLXContext, int, int *);
385extern GLXContextID glXGetContextIDEXT (GLXContext);
386extern GLXContext glXImportContextEXT (Display *, GLXContextID);
387extern void glXFreeContextEXT (Display *, GLXContext);
388#endif /* GLX_GLXEXT_PROTOTYPES */
389typedef Display * ( * PFNGLXGETCURRENTDISPLAYEXTPROC) (void);
390typedef int ( * PFNGLXQUERYCONTEXTINFOEXTPROC) (Display *dpy, GLXContext context, int attribute, int *value);
391typedef GLXContextID ( * PFNGLXGETCONTEXTIDEXTPROC) (GLXContext context);
392typedef GLXContext ( * PFNGLXIMPORTCONTEXTEXTPROC) (Display *dpy, GLXContextID contextID);
393typedef void ( * PFNGLXFREECONTEXTEXTPROC) (Display *dpy, GLXContext context);
394#endif
395
396#ifndef GLX_SGIX_fbconfig
397#define GLX_SGIX_fbconfig 1
398#ifdef GLX_GLXEXT_PROTOTYPES
399extern int glXGetFBConfigAttribSGIX (Display *, GLXFBConfigSGIX, int, int *);
400extern GLXFBConfigSGIX * glXChooseFBConfigSGIX (Display *, int, int *, int *);
401extern GLXPixmap glXCreateGLXPixmapWithConfigSGIX (Display *, GLXFBConfigSGIX, Pixmap);
402extern GLXContext glXCreateContextWithConfigSGIX (Display *, GLXFBConfigSGIX, int, GLXContext, Bool);
403extern XVisualInfo * glXGetVisualFromFBConfigSGIX (Display *, GLXFBConfigSGIX);
404extern GLXFBConfigSGIX glXGetFBConfigFromVisualSGIX (Display *, XVisualInfo *);
405#endif /* GLX_GLXEXT_PROTOTYPES */
406typedef int ( * PFNGLXGETFBCONFIGATTRIBSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, int attribute, int *value);
407typedef GLXFBConfigSGIX * ( * PFNGLXCHOOSEFBCONFIGSGIXPROC) (Display *dpy, int screen, int *attrib_list, int *nelements);
408typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, Pixmap pixmap);
409typedef GLXContext ( * PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, int render_type, GLXContext share_list, Bool direct);
410typedef XVisualInfo * ( * PFNGLXGETVISUALFROMFBCONFIGSGIXPROC) (Display *dpy, GLXFBConfigSGIX config);
411typedef GLXFBConfigSGIX ( * PFNGLXGETFBCONFIGFROMVISUALSGIXPROC) (Display *dpy, XVisualInfo *vis);
412#endif
413
414#ifndef GLX_SGIX_pbuffer
415#define GLX_SGIX_pbuffer 1
416#ifdef GLX_GLXEXT_PROTOTYPES
417extern GLXPbufferSGIX glXCreateGLXPbufferSGIX (Display *, GLXFBConfigSGIX, unsigned int, unsigned int, int *);
418extern void glXDestroyGLXPbufferSGIX (Display *, GLXPbufferSGIX);
419extern int glXQueryGLXPbufferSGIX (Display *, GLXPbufferSGIX, int, unsigned int *);
420extern void glXSelectEventSGIX (Display *, GLXDrawable, unsigned long);
421extern void glXGetSelectedEventSGIX (Display *, GLXDrawable, unsigned long *);
422#endif /* GLX_GLXEXT_PROTOTYPES */
423typedef GLXPbufferSGIX ( * PFNGLXCREATEGLXPBUFFERSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, unsigned int width, unsigned int height, int *attrib_list);
424typedef void ( * PFNGLXDESTROYGLXPBUFFERSGIXPROC) (Display *dpy, GLXPbufferSGIX pbuf);
425typedef int ( * PFNGLXQUERYGLXPBUFFERSGIXPROC) (Display *dpy, GLXPbufferSGIX pbuf, int attribute, unsigned int *value);
426typedef void ( * PFNGLXSELECTEVENTSGIXPROC) (Display *dpy, GLXDrawable drawable, unsigned long mask);
427typedef void ( * PFNGLXGETSELECTEDEVENTSGIXPROC) (Display *dpy, GLXDrawable drawable, unsigned long *mask);
428#endif
429
430#ifndef GLX_SGI_cushion
431#define GLX_SGI_cushion 1
432#ifdef GLX_GLXEXT_PROTOTYPES
433extern void glXCushionSGI (Display *, Window, float);
434#endif /* GLX_GLXEXT_PROTOTYPES */
435typedef void ( * PFNGLXCUSHIONSGIPROC) (Display *dpy, Window window, float cushion);
436#endif
437
438#ifndef GLX_SGIX_video_resize
439#define GLX_SGIX_video_resize 1
440#ifdef GLX_GLXEXT_PROTOTYPES
441extern int glXBindChannelToWindowSGIX (Display *, int, int, Window);
442extern int glXChannelRectSGIX (Display *, int, int, int, int, int, int);
443extern int glXQueryChannelRectSGIX (Display *, int, int, int *, int *, int *, int *);
444extern int glXQueryChannelDeltasSGIX (Display *, int, int, int *, int *, int *, int *);
445extern int glXChannelRectSyncSGIX (Display *, int, int, GLenum);
446#endif /* GLX_GLXEXT_PROTOTYPES */
447typedef int ( * PFNGLXBINDCHANNELTOWINDOWSGIXPROC) (Display *display, int screen, int channel, Window window);
448typedef int ( * PFNGLXCHANNELRECTSGIXPROC) (Display *display, int screen, int channel, int x, int y, int w, int h);
449typedef int ( * PFNGLXQUERYCHANNELRECTSGIXPROC) (Display *display, int screen, int channel, int *dx, int *dy, int *dw, int *dh);
450typedef int ( * PFNGLXQUERYCHANNELDELTASSGIXPROC) (Display *display, int screen, int channel, int *x, int *y, int *w, int *h);
451typedef int ( * PFNGLXCHANNELRECTSYNCSGIXPROC) (Display *display, int screen, int channel, GLenum synctype);
452#endif
453
454#ifdef _DM_BUFFER_H_
455#ifndef GLX_SGIX_dmbuffer
456#define GLX_SGIX_dmbuffer 1
457#ifdef GLX_GLXEXT_PROTOTYPES
458extern Bool glXAssociateDMPbufferSGIX (Display *, GLXPbufferSGIX, DMparams *, DMbuffer);
459#endif /* GLX_GLXEXT_PROTOTYPES */
460typedef Bool ( * PFNGLXASSOCIATEDMPBUFFERSGIXPROC) (Display *dpy, GLXPbufferSGIX pbuffer, DMparams *params, DMbuffer dmbuffer);
461#endif
462
463#endif /* _DM_BUFFER_H_ */
464#ifndef GLX_SGIX_swap_group
465#define GLX_SGIX_swap_group 1
466#ifdef GLX_GLXEXT_PROTOTYPES
467extern void glXJoinSwapGroupSGIX (Display *, GLXDrawable, GLXDrawable);
468#endif /* GLX_GLXEXT_PROTOTYPES */
469typedef void ( * PFNGLXJOINSWAPGROUPSGIXPROC) (Display *dpy, GLXDrawable drawable, GLXDrawable member);
470#endif
471
472#ifndef GLX_SGIX_swap_barrier
473#define GLX_SGIX_swap_barrier 1
474#ifdef GLX_GLXEXT_PROTOTYPES
475extern void glXBindSwapBarrierSGIX (Display *, GLXDrawable, int);
476extern Bool glXQueryMaxSwapBarriersSGIX (Display *, int, int *);
477#endif /* GLX_GLXEXT_PROTOTYPES */
478typedef void ( * PFNGLXBINDSWAPBARRIERSGIXPROC) (Display *dpy, GLXDrawable drawable, int barrier);
479typedef Bool ( * PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC) (Display *dpy, int screen, int *max);
480#endif
481
482#ifndef GLX_SUN_get_transparent_index
483#define GLX_SUN_get_transparent_index 1
484#ifdef GLX_GLXEXT_PROTOTYPES
485extern Status glXGetTransparentIndexSUN (Display *, Window, Window, long *);
486#endif /* GLX_GLXEXT_PROTOTYPES */
487typedef Status ( * PFNGLXGETTRANSPARENTINDEXSUNPROC) (Display *dpy, Window overlay, Window underlay, long *pTransparentIndex);
488#endif
489
490#ifndef GLX_MESA_copy_sub_buffer
491#define GLX_MESA_copy_sub_buffer 1
492#ifdef GLX_GLXEXT_PROTOTYPES
493extern void glXCopySubBufferMESA (Display *, GLXDrawable, int, int, int, int);
494#endif /* GLX_GLXEXT_PROTOTYPES */
495typedef void ( * PFNGLXCOPYSUBBUFFERMESAPROC) (Display *dpy, GLXDrawable drawable, int x, int y, int width, int height);
496#endif
497
498#ifndef GLX_MESA_pixmap_colormap
499#define GLX_MESA_pixmap_colormap 1
500#ifdef GLX_GLXEXT_PROTOTYPES
501extern GLXPixmap glXCreateGLXPixmapMESA (Display *, XVisualInfo *, Pixmap, Colormap);
502#endif /* GLX_GLXEXT_PROTOTYPES */
503typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPMESAPROC) (Display *dpy, XVisualInfo *visual, Pixmap pixmap, Colormap cmap);
504#endif
505
506#ifndef GLX_MESA_release_buffers
507#define GLX_MESA_release_buffers 1
508#ifdef GLX_GLXEXT_PROTOTYPES
509extern Bool glXReleaseBuffersMESA (Display *, GLXDrawable);
510#endif /* GLX_GLXEXT_PROTOTYPES */
511typedef Bool ( * PFNGLXRELEASEBUFFERSMESAPROC) (Display *dpy, GLXDrawable drawable);
512#endif
513
514#ifndef GLX_MESA_set_3dfx_mode
515#define GLX_MESA_set_3dfx_mode 1
516#ifdef GLX_GLXEXT_PROTOTYPES
517extern Bool glXSet3DfxModeMESA (int);
518#endif /* GLX_GLXEXT_PROTOTYPES */
519typedef Bool ( * PFNGLXSET3DFXMODEMESAPROC) (int mode);
520#endif
521
522
523#ifdef __cplusplus
524}
525#endif
526
527#endif