blob: a08967bb413a32cdcf2d9410d092393be5c74eb8 [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
255typedef void (*__GLXextFuncPtr)();
256#endif
257
258#ifndef GLX_SGIX_video_source
259typedef XID GLXVideoSourceSGIX;
260#endif
261
262#ifndef GLX_SGIX_fbconfig
263typedef XID GLXFBConfigIDSGIX;
264typedef struct __GLXFBConfigRec *GLXFBConfigSGIX;
265#endif
266
267#ifndef GLX_SGIX_pbuffer
268typedef XID GLXPbufferSGIX;
269typedef struct {
270 int type;
271 unsigned long serial; /* # of last request processed by server */
272 Bool send_event; /* true if this came for SendEvent request */
273 Display *display; /* display the event was read from */
274 GLXDrawable drawable; /* i.d. of Drawable */
275 int event_type; /* GLX_DAMAGED_SGIX or GLX_SAVED_SGIX */
276 int draw_type; /* GLX_WINDOW_SGIX or GLX_PBUFFER_SGIX */
277 unsigned int mask; /* mask indicating which buffers are affected*/
278 int x, y;
279 int width, height;
280 int count; /* if nonzero, at least this many more */
281} GLXBufferClobberEventSGIX;
282#endif
283
284#ifndef GLX_VERSION_1_3
285#define GLX_VERSION_1_3 1
286#ifdef GLX_GLXEXT_PROTOTYPES
287extern GLXFBConfig * glXGetFBConfigs (Display *, int, int *);
288extern GLXFBConfig * glXChooseFBConfig (Display *, int, const int *, int *);
289extern int glXGetFBConfigAttrib (Display *, GLXFBConfig, int, int *);
290extern XVisualInfo * glXGetVisualFromFBConfig (Display *, GLXFBConfig);
291extern GLXWindow glXCreateWindow (Display *, GLXFBConfig, Window, const int *);
292extern void glXDestroyWindow (Display *, GLXWindow);
293extern GLXPixmap glXCreatePixmap (Display *, GLXFBConfig, Pixmap, const int *);
294extern void glXDestroyPixmap (Display *, GLXPixmap);
295extern GLXPbuffer glXCreatePbuffer (Display *, GLXFBConfig, const int *);
296extern void glXDestroyPbuffer (Display *, GLXPbuffer);
297extern void glXQueryDrawable (Display *, GLXDrawable, int, unsigned int *);
298extern GLXContext glXCreateNewContext (Display *, GLXFBConfig, int, GLXContext, Bool);
299extern Bool glXMakeContextCurrent (Display *, GLXDrawable, GLXDrawable, GLXContext);
300extern GLXDrawable glXGetCurrentReadDrawable (void);
301extern Display * glXGetCurrentDisplay (void);
302extern int glXQueryContext (Display *, GLXContext, int, int *);
303extern void glXSelectEvent (Display *, GLXDrawable, unsigned long);
304extern void glXGetSelectedEvent (Display *, GLXDrawable, unsigned long *);
305#endif /* GLX_GLXEXT_PROTOTYPES */
306typedef GLXFBConfig * ( * PFNGLXGETFBCONFIGSPROC) (Display *dpy, int screen, int *nelements);
307typedef GLXFBConfig * ( * PFNGLXCHOOSEFBCONFIGPROC) (Display *dpy, int screen, const int *attrib_list, int *nelements);
308typedef int ( * PFNGLXGETFBCONFIGATTRIBPROC) (Display *dpy, GLXFBConfig config, int attribute, int *value);
309typedef XVisualInfo * ( * PFNGLXGETVISUALFROMFBCONFIGPROC) (Display *dpy, GLXFBConfig config);
310typedef GLXWindow ( * PFNGLXCREATEWINDOWPROC) (Display *dpy, GLXFBConfig config, Window win, const int *attrib_list);
311typedef void ( * PFNGLXDESTROYWINDOWPROC) (Display *dpy, GLXWindow win);
312typedef GLXPixmap ( * PFNGLXCREATEPIXMAPPROC) (Display *dpy, GLXFBConfig config, Pixmap pixmap, const int *attrib_list);
313typedef void ( * PFNGLXDESTROYPIXMAPPROC) (Display *dpy, GLXPixmap pixmap);
314typedef GLXPbuffer ( * PFNGLXCREATEPBUFFERPROC) (Display *dpy, GLXFBConfig config, const int *attrib_list);
315typedef void ( * PFNGLXDESTROYPBUFFERPROC) (Display *dpy, GLXPbuffer pbuf);
316typedef void ( * PFNGLXQUERYDRAWABLEPROC) (Display *dpy, GLXDrawable draw, int attribute, unsigned int *value);
317typedef GLXContext ( * PFNGLXCREATENEWCONTEXTPROC) (Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct);
318typedef Bool ( * PFNGLXMAKECONTEXTCURRENTPROC) (Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx);
319typedef GLXDrawable ( * PFNGLXGETCURRENTREADDRAWABLEPROC) (void);
320typedef Display * ( * PFNGLXGETCURRENTDISPLAYPROC) (void);
321typedef int ( * PFNGLXQUERYCONTEXTPROC) (Display *dpy, GLXContext ctx, int attribute, int *value);
322typedef void ( * PFNGLXSELECTEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long event_mask);
323typedef void ( * PFNGLXGETSELECTEDEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long *event_mask);
324#endif
325
326#ifndef GLX_ARB_get_proc_address
327#define GLX_ARB_get_proc_address 1
328#ifdef GLX_GLXEXT_PROTOTYPES
329extern __GLXextFuncPtr glXGetProcAddressARB (const GLubyte *);
330#endif /* GLX_GLXEXT_PROTOTYPES */
331typedef __GLXextFuncPtr ( * PFNGLXGETPROCADDRESSARBPROC) (const GLubyte *procName);
332#endif
333
334#ifndef GLX_SGIS_multisample
335#define GLX_SGIS_multisample 1
336#endif
Brian Paulfed386c2000-12-08 18:06:35 +0000337
338#ifndef GLX_EXT_visual_info
339#define GLX_EXT_visual_info 1
340#endif
341
342#ifndef GLX_SGI_swap_control
343#define GLX_SGI_swap_control 1
344#ifdef GLX_GLXEXT_PROTOTYPES
345extern int glXSwapIntervalSGI (int);
346#endif /* GLX_GLXEXT_PROTOTYPES */
347typedef int ( * PFNGLXSWAPINTERVALSGIPROC) (int interval);
348#endif
349
350#ifndef GLX_SGI_video_sync
351#define GLX_SGI_video_sync 1
352#ifdef GLX_GLXEXT_PROTOTYPES
353extern int glXGetVideoSyncSGI (unsigned int *);
354extern int glXWaitVideoSyncSGI (int, int, unsigned int *);
355#endif /* GLX_GLXEXT_PROTOTYPES */
356typedef int ( * PFNGLXGETVIDEOSYNCSGIPROC) (unsigned int *count);
357typedef int ( * PFNGLXWAITVIDEOSYNCSGIPROC) (int divisor, int remainder, unsigned int *count);
358#endif
359
360#ifndef GLX_SGI_make_current_read
361#define GLX_SGI_make_current_read 1
362#ifdef GLX_GLXEXT_PROTOTYPES
363extern Bool glXMakeCurrentReadSGI (Display *, GLXDrawable, GLXDrawable, GLXContext);
364extern GLXDrawable glXGetCurrentReadDrawableSGI (void);
365#endif /* GLX_GLXEXT_PROTOTYPES */
366typedef Bool ( * PFNGLXMAKECURRENTREADSGIPROC) (Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx);
367typedef GLXDrawable ( * PFNGLXGETCURRENTREADDRAWABLESGIPROC) (void);
368#endif
369
370#ifdef _VL_H
371#ifndef GLX_SGIX_video_source
372#define GLX_SGIX_video_source 1
373#ifdef GLX_GLXEXT_PROTOTYPES
374extern GLXVideoSourceSGIX glXCreateGLXVideoSourceSGIX (Display *, int, VLServer, VLPath, int, VLNode);
375extern void glXDestroyGLXVideoSourceSGIX (Display *, GLXVideoSourceSGIX);
376#endif /* GLX_GLXEXT_PROTOTYPES */
377typedef GLXVideoSourceSGIX ( * PFNGLXCREATEGLXVIDEOSOURCESGIXPROC) (Display *display, int screen, VLServer server, VLPath path, int nodeClass, VLNode drainNode);
378typedef void ( * PFNGLXDESTROYGLXVIDEOSOURCESGIXPROC) (Display *dpy, GLXVideoSourceSGIX glxvideosource);
379#endif
380
381#endif /* _VL_H */
382#ifndef GLX_EXT_visual_rating
383#define GLX_EXT_visual_rating 1
384#endif
385
386#ifndef GLX_EXT_import_context
387#define GLX_EXT_import_context 1
388#ifdef GLX_GLXEXT_PROTOTYPES
389extern Display * glXGetCurrentDisplayEXT (void);
390extern int glXQueryContextInfoEXT (Display *, GLXContext, int, int *);
391extern GLXContextID glXGetContextIDEXT (GLXContext);
392extern GLXContext glXImportContextEXT (Display *, GLXContextID);
393extern void glXFreeContextEXT (Display *, GLXContext);
394#endif /* GLX_GLXEXT_PROTOTYPES */
395typedef Display * ( * PFNGLXGETCURRENTDISPLAYEXTPROC) (void);
396typedef int ( * PFNGLXQUERYCONTEXTINFOEXTPROC) (Display *dpy, GLXContext context, int attribute, int *value);
397typedef GLXContextID ( * PFNGLXGETCONTEXTIDEXTPROC) (GLXContext context);
398typedef GLXContext ( * PFNGLXIMPORTCONTEXTEXTPROC) (Display *dpy, GLXContextID contextID);
399typedef void ( * PFNGLXFREECONTEXTEXTPROC) (Display *dpy, GLXContext context);
400#endif
401
402#ifndef GLX_SGIX_fbconfig
403#define GLX_SGIX_fbconfig 1
404#ifdef GLX_GLXEXT_PROTOTYPES
405extern int glXGetFBConfigAttribSGIX (Display *, GLXFBConfigSGIX, int, int *);
406extern GLXFBConfigSGIX * glXChooseFBConfigSGIX (Display *, int, int *, int *);
407extern GLXPixmap glXCreateGLXPixmapWithConfigSGIX (Display *, GLXFBConfigSGIX, Pixmap);
408extern GLXContext glXCreateContextWithConfigSGIX (Display *, GLXFBConfigSGIX, int, GLXContext, Bool);
409extern XVisualInfo * glXGetVisualFromFBConfigSGIX (Display *, GLXFBConfigSGIX);
410extern GLXFBConfigSGIX glXGetFBConfigFromVisualSGIX (Display *, XVisualInfo *);
411#endif /* GLX_GLXEXT_PROTOTYPES */
412typedef int ( * PFNGLXGETFBCONFIGATTRIBSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, int attribute, int *value);
413typedef GLXFBConfigSGIX * ( * PFNGLXCHOOSEFBCONFIGSGIXPROC) (Display *dpy, int screen, int *attrib_list, int *nelements);
414typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, Pixmap pixmap);
415typedef GLXContext ( * PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, int render_type, GLXContext share_list, Bool direct);
416typedef XVisualInfo * ( * PFNGLXGETVISUALFROMFBCONFIGSGIXPROC) (Display *dpy, GLXFBConfigSGIX config);
417typedef GLXFBConfigSGIX ( * PFNGLXGETFBCONFIGFROMVISUALSGIXPROC) (Display *dpy, XVisualInfo *vis);
418#endif
419
420#ifndef GLX_SGIX_pbuffer
421#define GLX_SGIX_pbuffer 1
422#ifdef GLX_GLXEXT_PROTOTYPES
423extern GLXPbufferSGIX glXCreateGLXPbufferSGIX (Display *, GLXFBConfigSGIX, unsigned int, unsigned int, int *);
424extern void glXDestroyGLXPbufferSGIX (Display *, GLXPbufferSGIX);
425extern int glXQueryGLXPbufferSGIX (Display *, GLXPbufferSGIX, int, unsigned int *);
426extern void glXSelectEventSGIX (Display *, GLXDrawable, unsigned long);
427extern void glXGetSelectedEventSGIX (Display *, GLXDrawable, unsigned long *);
428#endif /* GLX_GLXEXT_PROTOTYPES */
429typedef GLXPbufferSGIX ( * PFNGLXCREATEGLXPBUFFERSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, unsigned int width, unsigned int height, int *attrib_list);
430typedef void ( * PFNGLXDESTROYGLXPBUFFERSGIXPROC) (Display *dpy, GLXPbufferSGIX pbuf);
431typedef int ( * PFNGLXQUERYGLXPBUFFERSGIXPROC) (Display *dpy, GLXPbufferSGIX pbuf, int attribute, unsigned int *value);
432typedef void ( * PFNGLXSELECTEVENTSGIXPROC) (Display *dpy, GLXDrawable drawable, unsigned long mask);
433typedef void ( * PFNGLXGETSELECTEDEVENTSGIXPROC) (Display *dpy, GLXDrawable drawable, unsigned long *mask);
434#endif
435
436#ifndef GLX_SGI_cushion
437#define GLX_SGI_cushion 1
438#ifdef GLX_GLXEXT_PROTOTYPES
439extern void glXCushionSGI (Display *, Window, float);
440#endif /* GLX_GLXEXT_PROTOTYPES */
441typedef void ( * PFNGLXCUSHIONSGIPROC) (Display *dpy, Window window, float cushion);
442#endif
443
444#ifndef GLX_SGIX_video_resize
445#define GLX_SGIX_video_resize 1
446#ifdef GLX_GLXEXT_PROTOTYPES
447extern int glXBindChannelToWindowSGIX (Display *, int, int, Window);
448extern int glXChannelRectSGIX (Display *, int, int, int, int, int, int);
449extern int glXQueryChannelRectSGIX (Display *, int, int, int *, int *, int *, int *);
450extern int glXQueryChannelDeltasSGIX (Display *, int, int, int *, int *, int *, int *);
451extern int glXChannelRectSyncSGIX (Display *, int, int, GLenum);
452#endif /* GLX_GLXEXT_PROTOTYPES */
453typedef int ( * PFNGLXBINDCHANNELTOWINDOWSGIXPROC) (Display *display, int screen, int channel, Window window);
454typedef int ( * PFNGLXCHANNELRECTSGIXPROC) (Display *display, int screen, int channel, int x, int y, int w, int h);
455typedef int ( * PFNGLXQUERYCHANNELRECTSGIXPROC) (Display *display, int screen, int channel, int *dx, int *dy, int *dw, int *dh);
456typedef int ( * PFNGLXQUERYCHANNELDELTASSGIXPROC) (Display *display, int screen, int channel, int *x, int *y, int *w, int *h);
457typedef int ( * PFNGLXCHANNELRECTSYNCSGIXPROC) (Display *display, int screen, int channel, GLenum synctype);
458#endif
459
460#ifdef _DM_BUFFER_H_
461#ifndef GLX_SGIX_dmbuffer
462#define GLX_SGIX_dmbuffer 1
463#ifdef GLX_GLXEXT_PROTOTYPES
464extern Bool glXAssociateDMPbufferSGIX (Display *, GLXPbufferSGIX, DMparams *, DMbuffer);
465#endif /* GLX_GLXEXT_PROTOTYPES */
466typedef Bool ( * PFNGLXASSOCIATEDMPBUFFERSGIXPROC) (Display *dpy, GLXPbufferSGIX pbuffer, DMparams *params, DMbuffer dmbuffer);
467#endif
468
469#endif /* _DM_BUFFER_H_ */
470#ifndef GLX_SGIX_swap_group
471#define GLX_SGIX_swap_group 1
472#ifdef GLX_GLXEXT_PROTOTYPES
473extern void glXJoinSwapGroupSGIX (Display *, GLXDrawable, GLXDrawable);
474#endif /* GLX_GLXEXT_PROTOTYPES */
475typedef void ( * PFNGLXJOINSWAPGROUPSGIXPROC) (Display *dpy, GLXDrawable drawable, GLXDrawable member);
476#endif
477
478#ifndef GLX_SGIX_swap_barrier
479#define GLX_SGIX_swap_barrier 1
480#ifdef GLX_GLXEXT_PROTOTYPES
481extern void glXBindSwapBarrierSGIX (Display *, GLXDrawable, int);
482extern Bool glXQueryMaxSwapBarriersSGIX (Display *, int, int *);
483#endif /* GLX_GLXEXT_PROTOTYPES */
484typedef void ( * PFNGLXBINDSWAPBARRIERSGIXPROC) (Display *dpy, GLXDrawable drawable, int barrier);
485typedef Bool ( * PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC) (Display *dpy, int screen, int *max);
486#endif
487
488#ifndef GLX_SUN_get_transparent_index
489#define GLX_SUN_get_transparent_index 1
490#ifdef GLX_GLXEXT_PROTOTYPES
491extern Status glXGetTransparentIndexSUN (Display *, Window, Window, long *);
492#endif /* GLX_GLXEXT_PROTOTYPES */
493typedef Status ( * PFNGLXGETTRANSPARENTINDEXSUNPROC) (Display *dpy, Window overlay, Window underlay, long *pTransparentIndex);
494#endif
495
496#ifndef GLX_MESA_copy_sub_buffer
497#define GLX_MESA_copy_sub_buffer 1
498#ifdef GLX_GLXEXT_PROTOTYPES
499extern void glXCopySubBufferMESA (Display *, GLXDrawable, int, int, int, int);
500#endif /* GLX_GLXEXT_PROTOTYPES */
501typedef void ( * PFNGLXCOPYSUBBUFFERMESAPROC) (Display *dpy, GLXDrawable drawable, int x, int y, int width, int height);
502#endif
503
504#ifndef GLX_MESA_pixmap_colormap
505#define GLX_MESA_pixmap_colormap 1
506#ifdef GLX_GLXEXT_PROTOTYPES
507extern GLXPixmap glXCreateGLXPixmapMESA (Display *, XVisualInfo *, Pixmap, Colormap);
508#endif /* GLX_GLXEXT_PROTOTYPES */
509typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPMESAPROC) (Display *dpy, XVisualInfo *visual, Pixmap pixmap, Colormap cmap);
510#endif
511
512#ifndef GLX_MESA_release_buffers
513#define GLX_MESA_release_buffers 1
514#ifdef GLX_GLXEXT_PROTOTYPES
515extern Bool glXReleaseBuffersMESA (Display *, GLXDrawable);
516#endif /* GLX_GLXEXT_PROTOTYPES */
517typedef Bool ( * PFNGLXRELEASEBUFFERSMESAPROC) (Display *dpy, GLXDrawable drawable);
518#endif
519
520#ifndef GLX_MESA_set_3dfx_mode
521#define GLX_MESA_set_3dfx_mode 1
522#ifdef GLX_GLXEXT_PROTOTYPES
523extern Bool glXSet3DfxModeMESA (int);
524#endif /* GLX_GLXEXT_PROTOTYPES */
525typedef Bool ( * PFNGLXSET3DFXMODEMESAPROC) (int mode);
526#endif
527
528
529#ifdef __cplusplus
530}
531#endif
532
533#endif