Merged 15170:15635 from trunk (no conflicts or even merges)
[blender.git] / extern / glew / include / GL / glxew.h
1 /*
2 ** The OpenGL Extension Wrangler Library
3 ** Copyright (C) 2002-2006, Milan Ikits <milan ikits[]ieee org>
4 ** Copyright (C) 2002-2006, Marcelo E. Magallon <mmagallo[]debian org>
5 ** Copyright (C) 2002, Lev Povalahev
6 ** All rights reserved.
7 ** 
8 ** Redistribution and use in source and binary forms, with or without 
9 ** modification, are permitted provided that the following conditions are met:
10 ** 
11 ** * Redistributions of source code must retain the above copyright notice, 
12 **   this list of conditions and the following disclaimer.
13 ** * Redistributions in binary form must reproduce the above copyright notice, 
14 **   this list of conditions and the following disclaimer in the documentation 
15 **   and/or other materials provided with the distribution.
16 ** * The name of the author may be used to endorse or promote products 
17 **   derived from this software without specific prior written permission.
18 **
19 ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
20 ** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
21 ** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22 ** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 
23 ** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 
24 ** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 
25 ** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26 ** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27 ** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28 ** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
29 ** THE POSSIBILITY OF SUCH DAMAGE.
30 */
31
32 /*
33 ** The contents of this file are subject to the GLX Public License Version 1.0
34 ** (the "License"). You may not use this file except in compliance with the
35 ** License. You may obtain a copy of the License at Silicon Graphics, Inc.,
36 ** attn: Legal Services, 2011 N. Shoreline Blvd., Mountain View, CA 94043
37 ** or at http://www.sgi.com/software/opensource/glx/license.html.
38 **
39 ** Software distributed under the License is distributed on an "AS IS"
40 ** basis. ALL WARRANTIES ARE DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY
41 ** IMPLIED WARRANTIES OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR
42 ** PURPOSE OR OF NON- INFRINGEMENT. See the License for the specific
43 ** language governing rights and limitations under the License.
44 **
45 ** The Original Software is GLX version 1.2 source code, released February,
46 ** 1999. The developer of the Original Software is Silicon Graphics, Inc.
47 ** Those portions of the Subject Software created by Silicon Graphics, Inc.
48 ** are Copyright (c) 1991-9 Silicon Graphics, Inc. All Rights Reserved.
49 */
50
51 #ifndef __glxew_h__
52 #define __glxew_h__
53 #define __GLXEW_H__
54
55 #ifdef __glxext_h_
56 #error glxext.h included before glxew.h
57 #endif
58
59 #define __glxext_h_
60 #define __GLX_glx_h__
61
62 #include <X11/Xlib.h>
63 #include <X11/Xutil.h>
64 #include <X11/Xmd.h>
65 #include <GL/glew.h>
66
67 #ifdef __cplusplus
68 extern "C" {
69 #endif
70
71 /* ---------------------------- GLX_VERSION_1_0 --------------------------- */
72
73 #ifndef GLX_VERSION_1_0
74 #define GLX_VERSION_1_0 1
75
76 #define GLX_USE_GL 1
77 #define GLX_BUFFER_SIZE 2
78 #define GLX_LEVEL 3
79 #define GLX_RGBA 4
80 #define GLX_DOUBLEBUFFER 5
81 #define GLX_STEREO 6
82 #define GLX_AUX_BUFFERS 7
83 #define GLX_RED_SIZE 8
84 #define GLX_GREEN_SIZE 9
85 #define GLX_BLUE_SIZE 10
86 #define GLX_ALPHA_SIZE 11
87 #define GLX_DEPTH_SIZE 12
88 #define GLX_STENCIL_SIZE 13
89 #define GLX_ACCUM_RED_SIZE 14
90 #define GLX_ACCUM_GREEN_SIZE 15
91 #define GLX_ACCUM_BLUE_SIZE 16
92 #define GLX_ACCUM_ALPHA_SIZE 17
93 #define GLX_BAD_SCREEN 1
94 #define GLX_BAD_ATTRIBUTE 2
95 #define GLX_NO_EXTENSION 3
96 #define GLX_BAD_VISUAL 4
97 #define GLX_BAD_CONTEXT 5
98 #define GLX_BAD_VALUE 6
99 #define GLX_BAD_ENUM 7
100
101 typedef XID GLXDrawable;
102 typedef XID GLXPixmap;
103 typedef struct __GLXcontextRec *GLXContext;
104
105 extern Bool glXQueryExtension (Display *dpy, int *errorBase, int *eventBase);
106 extern Bool glXQueryVersion (Display *dpy, int *major, int *minor);
107 extern int glXGetConfig (Display *dpy, XVisualInfo *vis, int attrib, int *value);
108 extern XVisualInfo* glXChooseVisual (Display *dpy, int screen, int *attribList);
109 extern GLXPixmap glXCreateGLXPixmap (Display *dpy, XVisualInfo *vis, Pixmap pixmap);
110 extern void glXDestroyGLXPixmap (Display *dpy, GLXPixmap pix);
111 extern GLXContext glXCreateContext (Display *dpy, XVisualInfo *vis, GLXContext shareList, Bool direct);
112 extern void glXDestroyContext (Display *dpy, GLXContext ctx);
113 extern Bool glXIsDirect (Display *dpy, GLXContext ctx);
114 extern void glXCopyContext (Display *dpy, GLXContext src, GLXContext dst, GLuint mask);
115 extern Bool glXMakeCurrent (Display *dpy, GLXDrawable drawable, GLXContext ctx);
116 extern GLXContext glXGetCurrentContext (void);
117 extern GLXDrawable glXGetCurrentDrawable (void);
118 extern void glXWaitGL (void);
119 extern void glXWaitX (void);
120 extern void glXSwapBuffers (Display *dpy, GLXDrawable drawable);
121 extern void glXUseXFont (Font font, int first, int count, int listBase);
122
123 #define GLXEW_VERSION_1_0 GLXEW_GET_VAR(__GLXEW_VERSION_1_0)
124
125 #endif /* GLX_VERSION_1_0 */
126
127 /* ---------------------------- GLX_VERSION_1_1 --------------------------- */
128
129 #ifndef GLX_VERSION_1_1
130 #define GLX_VERSION_1_1
131
132 #define GLX_VENDOR 0x1
133 #define GLX_VERSION 0x2
134 #define GLX_EXTENSIONS 0x3
135
136 extern const char* glXQueryExtensionsString (Display *dpy, int screen);
137 extern const char* glXGetClientString (Display *dpy, int name);
138 extern const char* glXQueryServerString (Display *dpy, int screen, int name);
139
140 #define GLXEW_VERSION_1_1 GLXEW_GET_VAR(__GLXEW_VERSION_1_1)
141
142 #endif /* GLX_VERSION_1_1 */
143
144 /* ---------------------------- GLX_VERSION_1_2 ---------------------------- */
145
146 #ifndef GLX_VERSION_1_2
147 #define GLX_VERSION_1_2 1
148
149 typedef Display* ( * PFNGLXGETCURRENTDISPLAYPROC) (void);
150
151 #define glXGetCurrentDisplay GLXEW_GET_FUN(__glewXGetCurrentDisplay)
152
153 #define GLXEW_VERSION_1_2 GLXEW_GET_VAR(__GLXEW_VERSION_1_2)
154
155 #endif /* GLX_VERSION_1_2 */
156
157 /* ---------------------------- GLX_VERSION_1_3 ---------------------------- */
158
159 #ifndef GLX_VERSION_1_3
160 #define GLX_VERSION_1_3 1
161
162 #define GLX_RGBA_BIT 0x00000001
163 #define GLX_FRONT_LEFT_BUFFER_BIT 0x00000001
164 #define GLX_WINDOW_BIT 0x00000001
165 #define GLX_COLOR_INDEX_BIT 0x00000002
166 #define GLX_PIXMAP_BIT 0x00000002
167 #define GLX_FRONT_RIGHT_BUFFER_BIT 0x00000002
168 #define GLX_BACK_LEFT_BUFFER_BIT 0x00000004
169 #define GLX_PBUFFER_BIT 0x00000004
170 #define GLX_BACK_RIGHT_BUFFER_BIT 0x00000008
171 #define GLX_AUX_BUFFERS_BIT 0x00000010
172 #define GLX_CONFIG_CAVEAT 0x20
173 #define GLX_DEPTH_BUFFER_BIT 0x00000020
174 #define GLX_X_VISUAL_TYPE 0x22
175 #define GLX_TRANSPARENT_TYPE 0x23
176 #define GLX_TRANSPARENT_INDEX_VALUE 0x24
177 #define GLX_TRANSPARENT_RED_VALUE 0x25
178 #define GLX_TRANSPARENT_GREEN_VALUE 0x26
179 #define GLX_TRANSPARENT_BLUE_VALUE 0x27
180 #define GLX_TRANSPARENT_ALPHA_VALUE 0x28
181 #define GLX_STENCIL_BUFFER_BIT 0x00000040
182 #define GLX_ACCUM_BUFFER_BIT 0x00000080
183 #define GLX_NONE 0x8000
184 #define GLX_SLOW_CONFIG 0x8001
185 #define GLX_TRUE_COLOR 0x8002
186 #define GLX_DIRECT_COLOR 0x8003
187 #define GLX_PSEUDO_COLOR 0x8004
188 #define GLX_STATIC_COLOR 0x8005
189 #define GLX_GRAY_SCALE 0x8006
190 #define GLX_STATIC_GRAY 0x8007
191 #define GLX_TRANSPARENT_RGB 0x8008
192 #define GLX_TRANSPARENT_INDEX 0x8009
193 #define GLX_VISUAL_ID 0x800B
194 #define GLX_SCREEN 0x800C
195 #define GLX_NON_CONFORMANT_CONFIG 0x800D
196 #define GLX_DRAWABLE_TYPE 0x8010
197 #define GLX_RENDER_TYPE 0x8011
198 #define GLX_X_RENDERABLE 0x8012
199 #define GLX_FBCONFIG_ID 0x8013
200 #define GLX_RGBA_TYPE 0x8014
201 #define GLX_COLOR_INDEX_TYPE 0x8015
202 #define GLX_MAX_PBUFFER_WIDTH 0x8016
203 #define GLX_MAX_PBUFFER_HEIGHT 0x8017
204 #define GLX_MAX_PBUFFER_PIXELS 0x8018
205 #define GLX_PRESERVED_CONTENTS 0x801B
206 #define GLX_LARGEST_PBUFFER 0x801C
207 #define GLX_WIDTH 0x801D
208 #define GLX_HEIGHT 0x801E
209 #define GLX_EVENT_MASK 0x801F
210 #define GLX_DAMAGED 0x8020
211 #define GLX_SAVED 0x8021
212 #define GLX_WINDOW 0x8022
213 #define GLX_PBUFFER 0x8023
214 #define GLX_PBUFFER_HEIGHT 0x8040
215 #define GLX_PBUFFER_WIDTH 0x8041
216 #define GLX_PBUFFER_CLOBBER_MASK 0x08000000
217 #define GLX_DONT_CARE 0xFFFFFFFF
218
219 typedef XID GLXFBConfigID;
220 typedef XID GLXWindow;
221 typedef XID GLXPbuffer;
222 typedef struct __GLXFBConfigRec *GLXFBConfig;
223 typedef struct { int event_type; int draw_type; unsigned long serial; Bool send_event; Display *display; GLXDrawable drawable; unsigned int buffer_mask; unsigned int aux_buffer; int x, y; int width, height; int count; } GLXPbufferClobberEvent;
224 typedef union __GLXEvent { GLXPbufferClobberEvent glxpbufferclobber; long pad[24]; } GLXEvent;
225
226 typedef GLXFBConfig* ( * PFNGLXCHOOSEFBCONFIGPROC) (Display *dpy, int screen, const int *attrib_list, int *nelements);
227 typedef GLXContext ( * PFNGLXCREATENEWCONTEXTPROC) (Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct);
228 typedef GLXPbuffer ( * PFNGLXCREATEPBUFFERPROC) (Display *dpy, GLXFBConfig config, const int *attrib_list);
229 typedef GLXPixmap ( * PFNGLXCREATEPIXMAPPROC) (Display *dpy, GLXFBConfig config, Pixmap pixmap, const int *attrib_list);
230 typedef GLXWindow ( * PFNGLXCREATEWINDOWPROC) (Display *dpy, GLXFBConfig config, Window win, const int *attrib_list);
231 typedef void ( * PFNGLXDESTROYPBUFFERPROC) (Display *dpy, GLXPbuffer pbuf);
232 typedef void ( * PFNGLXDESTROYPIXMAPPROC) (Display *dpy, GLXPixmap pixmap);
233 typedef void ( * PFNGLXDESTROYWINDOWPROC) (Display *dpy, GLXWindow win);
234 typedef GLXDrawable ( * PFNGLXGETCURRENTREADDRAWABLEPROC) (void);
235 typedef int ( * PFNGLXGETFBCONFIGATTRIBPROC) (Display *dpy, GLXFBConfig config, int attribute, int *value);
236 typedef GLXFBConfig* ( * PFNGLXGETFBCONFIGSPROC) (Display *dpy, int screen, int *nelements);
237 typedef void ( * PFNGLXGETSELECTEDEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long *event_mask);
238 typedef XVisualInfo* ( * PFNGLXGETVISUALFROMFBCONFIGPROC) (Display *dpy, GLXFBConfig config);
239 typedef Bool ( * PFNGLXMAKECONTEXTCURRENTPROC) (Display *display, GLXDrawable draw, GLXDrawable read, GLXContext ctx);
240 typedef int ( * PFNGLXQUERYCONTEXTPROC) (Display *dpy, GLXContext ctx, int attribute, int *value);
241 typedef void ( * PFNGLXQUERYDRAWABLEPROC) (Display *dpy, GLXDrawable draw, int attribute, unsigned int *value);
242 typedef void ( * PFNGLXSELECTEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long event_mask);
243
244 #define glXChooseFBConfig GLXEW_GET_FUN(__glewXChooseFBConfig)
245 #define glXCreateNewContext GLXEW_GET_FUN(__glewXCreateNewContext)
246 #define glXCreatePbuffer GLXEW_GET_FUN(__glewXCreatePbuffer)
247 #define glXCreatePixmap GLXEW_GET_FUN(__glewXCreatePixmap)
248 #define glXCreateWindow GLXEW_GET_FUN(__glewXCreateWindow)
249 #define glXDestroyPbuffer GLXEW_GET_FUN(__glewXDestroyPbuffer)
250 #define glXDestroyPixmap GLXEW_GET_FUN(__glewXDestroyPixmap)
251 #define glXDestroyWindow GLXEW_GET_FUN(__glewXDestroyWindow)
252 #define glXGetCurrentReadDrawable GLXEW_GET_FUN(__glewXGetCurrentReadDrawable)
253 #define glXGetFBConfigAttrib GLXEW_GET_FUN(__glewXGetFBConfigAttrib)
254 #define glXGetFBConfigs GLXEW_GET_FUN(__glewXGetFBConfigs)
255 #define glXGetSelectedEvent GLXEW_GET_FUN(__glewXGetSelectedEvent)
256 #define glXGetVisualFromFBConfig GLXEW_GET_FUN(__glewXGetVisualFromFBConfig)
257 #define glXMakeContextCurrent GLXEW_GET_FUN(__glewXMakeContextCurrent)
258 #define glXQueryContext GLXEW_GET_FUN(__glewXQueryContext)
259 #define glXQueryDrawable GLXEW_GET_FUN(__glewXQueryDrawable)
260 #define glXSelectEvent GLXEW_GET_FUN(__glewXSelectEvent)
261
262 #define GLXEW_VERSION_1_3 GLXEW_GET_VAR(__GLXEW_VERSION_1_3)
263
264 #endif /* GLX_VERSION_1_3 */
265
266 /* ---------------------------- GLX_VERSION_1_4 ---------------------------- */
267
268 #ifndef GLX_VERSION_1_4
269 #define GLX_VERSION_1_4 1
270
271 #define GLX_SAMPLE_BUFFERS 100000
272 #define GLX_SAMPLES 100001
273
274 extern void ( * glXGetProcAddress (const GLubyte *procName)) (void);
275
276 #define GLXEW_VERSION_1_4 GLXEW_GET_VAR(__GLXEW_VERSION_1_4)
277
278 #endif /* GLX_VERSION_1_4 */
279
280 /* -------------------------- GLX_3DFX_multisample ------------------------- */
281
282 #ifndef GLX_3DFX_multisample
283 #define GLX_3DFX_multisample 1
284
285 #define GLX_SAMPLE_BUFFERS_3DFX 0x8050
286 #define GLX_SAMPLES_3DFX 0x8051
287
288 #define GLXEW_3DFX_multisample GLXEW_GET_VAR(__GLXEW_3DFX_multisample)
289
290 #endif /* GLX_3DFX_multisample */
291
292 /* ------------------------- GLX_ARB_fbconfig_float ------------------------ */
293
294 #ifndef GLX_ARB_fbconfig_float
295 #define GLX_ARB_fbconfig_float 1
296
297 #define GLX_RGBA_FLOAT_BIT 0x00000004
298 #define GLX_RGBA_FLOAT_TYPE 0x20B9
299
300 #define GLXEW_ARB_fbconfig_float GLXEW_GET_VAR(__GLXEW_ARB_fbconfig_float)
301
302 #endif /* GLX_ARB_fbconfig_float */
303
304 /* ------------------------ GLX_ARB_get_proc_address ----------------------- */
305
306 #ifndef GLX_ARB_get_proc_address
307 #define GLX_ARB_get_proc_address 1
308
309 extern void ( * glXGetProcAddressARB (const GLubyte *procName)) (void);
310
311 #define GLXEW_ARB_get_proc_address GLXEW_GET_VAR(__GLXEW_ARB_get_proc_address)
312
313 #endif /* GLX_ARB_get_proc_address */
314
315 /* -------------------------- GLX_ARB_multisample -------------------------- */
316
317 #ifndef GLX_ARB_multisample
318 #define GLX_ARB_multisample 1
319
320 #define GLX_SAMPLE_BUFFERS_ARB 100000
321 #define GLX_SAMPLES_ARB 100001
322
323 #define GLXEW_ARB_multisample GLXEW_GET_VAR(__GLXEW_ARB_multisample)
324
325 #endif /* GLX_ARB_multisample */
326
327 /* ----------------------- GLX_ATI_pixel_format_float ---------------------- */
328
329 #ifndef GLX_ATI_pixel_format_float
330 #define GLX_ATI_pixel_format_float 1
331
332 #define GLX_RGBA_FLOAT_ATI_BIT 0x00000100
333
334 #define GLXEW_ATI_pixel_format_float GLXEW_GET_VAR(__GLXEW_ATI_pixel_format_float)
335
336 #endif /* GLX_ATI_pixel_format_float */
337
338 /* ------------------------- GLX_ATI_render_texture ------------------------ */
339
340 #ifndef GLX_ATI_render_texture
341 #define GLX_ATI_render_texture 1
342
343 #define GLX_BIND_TO_TEXTURE_RGB_ATI 0x9800
344 #define GLX_BIND_TO_TEXTURE_RGBA_ATI 0x9801
345 #define GLX_TEXTURE_FORMAT_ATI 0x9802
346 #define GLX_TEXTURE_TARGET_ATI 0x9803
347 #define GLX_MIPMAP_TEXTURE_ATI 0x9804
348 #define GLX_TEXTURE_RGB_ATI 0x9805
349 #define GLX_TEXTURE_RGBA_ATI 0x9806
350 #define GLX_NO_TEXTURE_ATI 0x9807
351 #define GLX_TEXTURE_CUBE_MAP_ATI 0x9808
352 #define GLX_TEXTURE_1D_ATI 0x9809
353 #define GLX_TEXTURE_2D_ATI 0x980A
354 #define GLX_MIPMAP_LEVEL_ATI 0x980B
355 #define GLX_CUBE_MAP_FACE_ATI 0x980C
356 #define GLX_TEXTURE_CUBE_MAP_POSITIVE_X_ATI 0x980D
357 #define GLX_TEXTURE_CUBE_MAP_NEGATIVE_X_ATI 0x980E
358 #define GLX_TEXTURE_CUBE_MAP_POSITIVE_Y_ATI 0x980F
359 #define GLX_TEXTURE_CUBE_MAP_NEGATIVE_Y_ATI 0x9810
360 #define GLX_TEXTURE_CUBE_MAP_POSITIVE_Z_ATI 0x9811
361 #define GLX_TEXTURE_CUBE_MAP_NEGATIVE_Z_ATI 0x9812
362 #define GLX_FRONT_LEFT_ATI 0x9813
363 #define GLX_FRONT_RIGHT_ATI 0x9814
364 #define GLX_BACK_LEFT_ATI 0x9815
365 #define GLX_BACK_RIGHT_ATI 0x9816
366 #define GLX_AUX0_ATI 0x9817
367 #define GLX_AUX1_ATI 0x9818
368 #define GLX_AUX2_ATI 0x9819
369 #define GLX_AUX3_ATI 0x981A
370 #define GLX_AUX4_ATI 0x981B
371 #define GLX_AUX5_ATI 0x981C
372 #define GLX_AUX6_ATI 0x981D
373 #define GLX_AUX7_ATI 0x981E
374 #define GLX_AUX8_ATI 0x981F
375 #define GLX_AUX9_ATI 0x9820
376 #define GLX_BIND_TO_TEXTURE_LUMINANCE_ATI 0x9821
377 #define GLX_BIND_TO_TEXTURE_INTENSITY_ATI 0x9822
378
379 typedef void ( * PFNGLXBINDTEXIMAGEATIPROC) (Display *dpy, GLXPbuffer pbuf, int buffer);
380 typedef void ( * PFNGLXDRAWABLEATTRIBATIPROC) (Display *dpy, GLXDrawable draw, const int *attrib_list);
381 typedef void ( * PFNGLXRELEASETEXIMAGEATIPROC) (Display *dpy, GLXPbuffer pbuf, int buffer);
382
383 #define glXBindTexImageATI GLXEW_GET_FUN(__glewXBindTexImageATI)
384 #define glXDrawableAttribATI GLXEW_GET_FUN(__glewXDrawableAttribATI)
385 #define glXReleaseTexImageATI GLXEW_GET_FUN(__glewXReleaseTexImageATI)
386
387 #define GLXEW_ATI_render_texture GLXEW_GET_VAR(__GLXEW_ATI_render_texture)
388
389 #endif /* GLX_ATI_render_texture */
390
391 /* ------------------------- GLX_EXT_import_context ------------------------ */
392
393 #ifndef GLX_EXT_import_context
394 #define GLX_EXT_import_context 1
395
396 #define GLX_SHARE_CONTEXT_EXT 0x800A
397 #define GLX_VISUAL_ID_EXT 0x800B
398 #define GLX_SCREEN_EXT 0x800C
399
400 typedef XID GLXContextID;
401
402 typedef void ( * PFNGLXFREECONTEXTEXTPROC) (Display* dpy, GLXContext context);
403 typedef GLXContextID ( * PFNGLXGETCONTEXTIDEXTPROC) (const GLXContext context);
404 typedef GLXContext ( * PFNGLXIMPORTCONTEXTEXTPROC) (Display* dpy, GLXContextID contextID);
405 typedef int ( * PFNGLXQUERYCONTEXTINFOEXTPROC) (Display* dpy, GLXContext context, int attribute,int *value);
406
407 #define glXFreeContextEXT GLXEW_GET_FUN(__glewXFreeContextEXT)
408 #define glXGetContextIDEXT GLXEW_GET_FUN(__glewXGetContextIDEXT)
409 #define glXImportContextEXT GLXEW_GET_FUN(__glewXImportContextEXT)
410 #define glXQueryContextInfoEXT GLXEW_GET_FUN(__glewXQueryContextInfoEXT)
411
412 #define GLXEW_EXT_import_context GLXEW_GET_VAR(__GLXEW_EXT_import_context)
413
414 #endif /* GLX_EXT_import_context */
415
416 /* -------------------------- GLX_EXT_scene_marker ------------------------- */
417
418 #ifndef GLX_EXT_scene_marker
419 #define GLX_EXT_scene_marker 1
420
421 #define GLXEW_EXT_scene_marker GLXEW_GET_VAR(__GLXEW_EXT_scene_marker)
422
423 #endif /* GLX_EXT_scene_marker */
424
425 /* -------------------------- GLX_EXT_visual_info -------------------------- */
426
427 #ifndef GLX_EXT_visual_info
428 #define GLX_EXT_visual_info 1
429
430 #define GLX_X_VISUAL_TYPE_EXT 0x22
431 #define GLX_TRANSPARENT_TYPE_EXT 0x23
432 #define GLX_TRANSPARENT_INDEX_VALUE_EXT 0x24
433 #define GLX_TRANSPARENT_RED_VALUE_EXT 0x25
434 #define GLX_TRANSPARENT_GREEN_VALUE_EXT 0x26
435 #define GLX_TRANSPARENT_BLUE_VALUE_EXT 0x27
436 #define GLX_TRANSPARENT_ALPHA_VALUE_EXT 0x28
437 #define GLX_NONE_EXT 0x8000
438 #define GLX_TRUE_COLOR_EXT 0x8002
439 #define GLX_DIRECT_COLOR_EXT 0x8003
440 #define GLX_PSEUDO_COLOR_EXT 0x8004
441 #define GLX_STATIC_COLOR_EXT 0x8005
442 #define GLX_GRAY_SCALE_EXT 0x8006
443 #define GLX_STATIC_GRAY_EXT 0x8007
444 #define GLX_TRANSPARENT_RGB_EXT 0x8008
445 #define GLX_TRANSPARENT_INDEX_EXT 0x8009
446
447 #define GLXEW_EXT_visual_info GLXEW_GET_VAR(__GLXEW_EXT_visual_info)
448
449 #endif /* GLX_EXT_visual_info */
450
451 /* ------------------------- GLX_EXT_visual_rating ------------------------- */
452
453 #ifndef GLX_EXT_visual_rating
454 #define GLX_EXT_visual_rating 1
455
456 #define GLX_VISUAL_CAVEAT_EXT 0x20
457 #define GLX_SLOW_VISUAL_EXT 0x8001
458 #define GLX_NON_CONFORMANT_VISUAL_EXT 0x800D
459
460 #define GLXEW_EXT_visual_rating GLXEW_GET_VAR(__GLXEW_EXT_visual_rating)
461
462 #endif /* GLX_EXT_visual_rating */
463
464 /* -------------------------- GLX_MESA_agp_offset -------------------------- */
465
466 #ifndef GLX_MESA_agp_offset
467 #define GLX_MESA_agp_offset 1
468
469 typedef unsigned int ( * PFNGLXGETAGPOFFSETMESAPROC) (const void* pointer);
470
471 #define glXGetAGPOffsetMESA GLXEW_GET_FUN(__glewXGetAGPOffsetMESA)
472
473 #define GLXEW_MESA_agp_offset GLXEW_GET_VAR(__GLXEW_MESA_agp_offset)
474
475 #endif /* GLX_MESA_agp_offset */
476
477 /* ------------------------ GLX_MESA_copy_sub_buffer ----------------------- */
478
479 #ifndef GLX_MESA_copy_sub_buffer
480 #define GLX_MESA_copy_sub_buffer 1
481
482 typedef void ( * PFNGLXCOPYSUBBUFFERMESAPROC) (Display* dpy, GLXDrawable drawable, int x, int y, int width, int height);
483
484 #define glXCopySubBufferMESA GLXEW_GET_FUN(__glewXCopySubBufferMESA)
485
486 #define GLXEW_MESA_copy_sub_buffer GLXEW_GET_VAR(__GLXEW_MESA_copy_sub_buffer)
487
488 #endif /* GLX_MESA_copy_sub_buffer */
489
490 /* ------------------------ GLX_MESA_pixmap_colormap ----------------------- */
491
492 #ifndef GLX_MESA_pixmap_colormap
493 #define GLX_MESA_pixmap_colormap 1
494
495 typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPMESAPROC) (Display* dpy, XVisualInfo *visual, Pixmap pixmap, Colormap cmap);
496
497 #define glXCreateGLXPixmapMESA GLXEW_GET_FUN(__glewXCreateGLXPixmapMESA)
498
499 #define GLXEW_MESA_pixmap_colormap GLXEW_GET_VAR(__GLXEW_MESA_pixmap_colormap)
500
501 #endif /* GLX_MESA_pixmap_colormap */
502
503 /* ------------------------ GLX_MESA_release_buffers ----------------------- */
504
505 #ifndef GLX_MESA_release_buffers
506 #define GLX_MESA_release_buffers 1
507
508 typedef Bool ( * PFNGLXRELEASEBUFFERSMESAPROC) (Display* dpy, GLXDrawable d);
509
510 #define glXReleaseBuffersMESA GLXEW_GET_FUN(__glewXReleaseBuffersMESA)
511
512 #define GLXEW_MESA_release_buffers GLXEW_GET_VAR(__GLXEW_MESA_release_buffers)
513
514 #endif /* GLX_MESA_release_buffers */
515
516 /* ------------------------- GLX_MESA_set_3dfx_mode ------------------------ */
517
518 #ifndef GLX_MESA_set_3dfx_mode
519 #define GLX_MESA_set_3dfx_mode 1
520
521 #define GLX_3DFX_WINDOW_MODE_MESA 0x1
522 #define GLX_3DFX_FULLSCREEN_MODE_MESA 0x2
523
524 typedef GLboolean ( * PFNGLXSET3DFXMODEMESAPROC) (GLint mode);
525
526 #define glXSet3DfxModeMESA GLXEW_GET_FUN(__glewXSet3DfxModeMESA)
527
528 #define GLXEW_MESA_set_3dfx_mode GLXEW_GET_VAR(__GLXEW_MESA_set_3dfx_mode)
529
530 #endif /* GLX_MESA_set_3dfx_mode */
531
532 /* -------------------------- GLX_NV_float_buffer -------------------------- */
533
534 #ifndef GLX_NV_float_buffer
535 #define GLX_NV_float_buffer 1
536
537 #define GLX_FLOAT_COMPONENTS_NV 0x20B0
538
539 #define GLXEW_NV_float_buffer GLXEW_GET_VAR(__GLXEW_NV_float_buffer)
540
541 #endif /* GLX_NV_float_buffer */
542
543 /* ----------------------- GLX_NV_vertex_array_range ----------------------- */
544
545 #ifndef GLX_NV_vertex_array_range
546 #define GLX_NV_vertex_array_range 1
547
548 typedef void * ( * PFNGLXALLOCATEMEMORYNVPROC) (GLsizei size, GLfloat readFrequency, GLfloat writeFrequency, GLfloat priority);
549 typedef void ( * PFNGLXFREEMEMORYNVPROC) (void *pointer);
550
551 #define glXAllocateMemoryNV GLXEW_GET_FUN(__glewXAllocateMemoryNV)
552 #define glXFreeMemoryNV GLXEW_GET_FUN(__glewXFreeMemoryNV)
553
554 #define GLXEW_NV_vertex_array_range GLXEW_GET_VAR(__GLXEW_NV_vertex_array_range)
555
556 #endif /* GLX_NV_vertex_array_range */
557
558 /* -------------------------- GLX_OML_swap_method -------------------------- */
559
560 #ifndef GLX_OML_swap_method
561 #define GLX_OML_swap_method 1
562
563 #define GLX_SWAP_METHOD_OML 0x8060
564 #define GLX_SWAP_EXCHANGE_OML 0x8061
565 #define GLX_SWAP_COPY_OML 0x8062
566 #define GLX_SWAP_UNDEFINED_OML 0x8063
567
568 #define GLXEW_OML_swap_method GLXEW_GET_VAR(__GLXEW_OML_swap_method)
569
570 #endif /* GLX_OML_swap_method */
571
572 /* -------------------------- GLX_OML_sync_control ------------------------- */
573
574 #if !defined(GLX_OML_sync_control) && defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)
575 #include <inttypes.h>
576 #define GLX_OML_sync_control 1
577
578 typedef Bool ( * PFNGLXGETMSCRATEOMLPROC) (Display* dpy, GLXDrawable drawable, int32_t* numerator, int32_t* denominator);
579 typedef Bool ( * PFNGLXGETSYNCVALUESOMLPROC) (Display* dpy, GLXDrawable drawable, int64_t* ust, int64_t* msc, int64_t* sbc);
580 typedef int64_t ( * PFNGLXSWAPBUFFERSMSCOMLPROC) (Display* dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder);
581 typedef Bool ( * PFNGLXWAITFORMSCOMLPROC) (Display* dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder, int64_t* ust, int64_t* msc, int64_t* sbc);
582 typedef Bool ( * PFNGLXWAITFORSBCOMLPROC) (Display* dpy, GLXDrawable drawable, int64_t target_sbc, int64_t* ust, int64_t* msc, int64_t* sbc);
583
584 #define glXGetMscRateOML GLXEW_GET_FUN(__glewXGetMscRateOML)
585 #define glXGetSyncValuesOML GLXEW_GET_FUN(__glewXGetSyncValuesOML)
586 #define glXSwapBuffersMscOML GLXEW_GET_FUN(__glewXSwapBuffersMscOML)
587 #define glXWaitForMscOML GLXEW_GET_FUN(__glewXWaitForMscOML)
588 #define glXWaitForSbcOML GLXEW_GET_FUN(__glewXWaitForSbcOML)
589
590 #define GLXEW_OML_sync_control GLXEW_GET_VAR(__GLXEW_OML_sync_control)
591
592 #endif /* GLX_OML_sync_control */
593
594 /* ------------------------ GLX_SGIS_blended_overlay ----------------------- */
595
596 #ifndef GLX_SGIS_blended_overlay
597 #define GLX_SGIS_blended_overlay 1
598
599 #define GLX_BLENDED_RGBA_SGIS 0x8025
600
601 #define GLXEW_SGIS_blended_overlay GLXEW_GET_VAR(__GLXEW_SGIS_blended_overlay)
602
603 #endif /* GLX_SGIS_blended_overlay */
604
605 /* -------------------------- GLX_SGIS_color_range ------------------------- */
606
607 #ifndef GLX_SGIS_color_range
608 #define GLX_SGIS_color_range 1
609
610 #define GLX_MIN_RED_SGIS 0
611 #define GLX_MAX_GREEN_SGIS 0
612 #define GLX_MIN_BLUE_SGIS 0
613 #define GLX_MAX_ALPHA_SGIS 0
614 #define GLX_MIN_GREEN_SGIS 0
615 #define GLX_MIN_ALPHA_SGIS 0
616 #define GLX_MAX_RED_SGIS 0
617 #define GLX_EXTENDED_RANGE_SGIS 0
618 #define GLX_MAX_BLUE_SGIS 0
619
620 #define GLXEW_SGIS_color_range GLXEW_GET_VAR(__GLXEW_SGIS_color_range)
621
622 #endif /* GLX_SGIS_color_range */
623
624 /* -------------------------- GLX_SGIS_multisample ------------------------- */
625
626 #ifndef GLX_SGIS_multisample
627 #define GLX_SGIS_multisample 1
628
629 #define GLX_SAMPLE_BUFFERS_SGIS 100000
630 #define GLX_SAMPLES_SGIS 100001
631
632 #define GLXEW_SGIS_multisample GLXEW_GET_VAR(__GLXEW_SGIS_multisample)
633
634 #endif /* GLX_SGIS_multisample */
635
636 /* ---------------------- GLX_SGIS_shared_multisample ---------------------- */
637
638 #ifndef GLX_SGIS_shared_multisample
639 #define GLX_SGIS_shared_multisample 1
640
641 #define GLX_MULTISAMPLE_SUB_RECT_WIDTH_SGIS 0x8026
642 #define GLX_MULTISAMPLE_SUB_RECT_HEIGHT_SGIS 0x8027
643
644 #define GLXEW_SGIS_shared_multisample GLXEW_GET_VAR(__GLXEW_SGIS_shared_multisample)
645
646 #endif /* GLX_SGIS_shared_multisample */
647
648 /* --------------------------- GLX_SGIX_fbconfig --------------------------- */
649
650 #ifndef GLX_SGIX_fbconfig
651 #define GLX_SGIX_fbconfig 1
652
653 #define GLX_WINDOW_BIT_SGIX 0x00000001
654 #define GLX_RGBA_BIT_SGIX 0x00000001
655 #define GLX_PIXMAP_BIT_SGIX 0x00000002
656 #define GLX_COLOR_INDEX_BIT_SGIX 0x00000002
657 #define GLX_SCREEN_EXT 0x800C
658 #define GLX_DRAWABLE_TYPE_SGIX 0x8010
659 #define GLX_RENDER_TYPE_SGIX 0x8011
660 #define GLX_X_RENDERABLE_SGIX 0x8012
661 #define GLX_FBCONFIG_ID_SGIX 0x8013
662 #define GLX_RGBA_TYPE_SGIX 0x8014
663 #define GLX_COLOR_INDEX_TYPE_SGIX 0x8015
664
665 typedef XID GLXFBConfigIDSGIX;
666 typedef struct __GLXFBConfigRec *GLXFBConfigSGIX;
667
668 typedef GLXFBConfigSGIX* ( * PFNGLXCHOOSEFBCONFIGSGIXPROC) (Display *dpy, int screen, const int *attrib_list, int *nelements);
669 typedef GLXContext ( * PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC) (Display* dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct);
670 typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC) (Display* dpy, GLXFBConfig config, Pixmap pixmap);
671 typedef int ( * PFNGLXGETFBCONFIGATTRIBSGIXPROC) (Display* dpy, GLXFBConfigSGIX config, int attribute, int *value);
672 typedef GLXFBConfigSGIX ( * PFNGLXGETFBCONFIGFROMVISUALSGIXPROC) (Display* dpy, XVisualInfo *vis);
673 typedef XVisualInfo* ( * PFNGLXGETVISUALFROMFBCONFIGSGIXPROC) (Display *dpy, GLXFBConfig config);
674
675 #define glXChooseFBConfigSGIX GLXEW_GET_FUN(__glewXChooseFBConfigSGIX)
676 #define glXCreateContextWithConfigSGIX GLXEW_GET_FUN(__glewXCreateContextWithConfigSGIX)
677 #define glXCreateGLXPixmapWithConfigSGIX GLXEW_GET_FUN(__glewXCreateGLXPixmapWithConfigSGIX)
678 #define glXGetFBConfigAttribSGIX GLXEW_GET_FUN(__glewXGetFBConfigAttribSGIX)
679 #define glXGetFBConfigFromVisualSGIX GLXEW_GET_FUN(__glewXGetFBConfigFromVisualSGIX)
680 #define glXGetVisualFromFBConfigSGIX GLXEW_GET_FUN(__glewXGetVisualFromFBConfigSGIX)
681
682 #define GLXEW_SGIX_fbconfig GLXEW_GET_VAR(__GLXEW_SGIX_fbconfig)
683
684 #endif /* GLX_SGIX_fbconfig */
685
686 /* ---------------------------- GLX_SGIX_pbuffer --------------------------- */
687
688 #ifndef GLX_SGIX_pbuffer
689 #define GLX_SGIX_pbuffer 1
690
691 #define GLX_FRONT_LEFT_BUFFER_BIT_SGIX 0x00000001
692 #define GLX_FRONT_RIGHT_BUFFER_BIT_SGIX 0x00000002
693 #define GLX_PBUFFER_BIT_SGIX 0x00000004
694 #define GLX_BACK_LEFT_BUFFER_BIT_SGIX 0x00000004
695 #define GLX_BACK_RIGHT_BUFFER_BIT_SGIX 0x00000008
696 #define GLX_AUX_BUFFERS_BIT_SGIX 0x00000010
697 #define GLX_DEPTH_BUFFER_BIT_SGIX 0x00000020
698 #define GLX_STENCIL_BUFFER_BIT_SGIX 0x00000040
699 #define GLX_ACCUM_BUFFER_BIT_SGIX 0x00000080
700 #define GLX_SAMPLE_BUFFERS_BIT_SGIX 0x00000100
701 #define GLX_MAX_PBUFFER_WIDTH_SGIX 0x8016
702 #define GLX_MAX_PBUFFER_HEIGHT_SGIX 0x8017
703 #define GLX_MAX_PBUFFER_PIXELS_SGIX 0x8018
704 #define GLX_OPTIMAL_PBUFFER_WIDTH_SGIX 0x8019
705 #define GLX_OPTIMAL_PBUFFER_HEIGHT_SGIX 0x801A
706 #define GLX_PRESERVED_CONTENTS_SGIX 0x801B
707 #define GLX_LARGEST_PBUFFER_SGIX 0x801C
708 #define GLX_WIDTH_SGIX 0x801D
709 #define GLX_HEIGHT_SGIX 0x801E
710 #define GLX_EVENT_MASK_SGIX 0x801F
711 #define GLX_DAMAGED_SGIX 0x8020
712 #define GLX_SAVED_SGIX 0x8021
713 #define GLX_WINDOW_SGIX 0x8022
714 #define GLX_PBUFFER_SGIX 0x8023
715 #define GLX_BUFFER_CLOBBER_MASK_SGIX 0x08000000
716
717 typedef XID GLXPbufferSGIX;
718 typedef struct { int type; unsigned long serial; Bool send_event; Display *display; GLXDrawable drawable; int event_type; int draw_type; unsigned int mask; int x, y; int width, height; int count; } GLXBufferClobberEventSGIX;
719
720 typedef GLXPbuffer ( * PFNGLXCREATEGLXPBUFFERSGIXPROC) (Display* dpy, GLXFBConfig config, unsigned int width, unsigned int height, int *attrib_list);
721 typedef void ( * PFNGLXDESTROYGLXPBUFFERSGIXPROC) (Display* dpy, GLXPbuffer pbuf);
722 typedef void ( * PFNGLXGETSELECTEDEVENTSGIXPROC) (Display* dpy, GLXDrawable drawable, unsigned long *mask);
723 typedef void ( * PFNGLXQUERYGLXPBUFFERSGIXPROC) (Display* dpy, GLXPbuffer pbuf, int attribute, unsigned int *value);
724 typedef void ( * PFNGLXSELECTEVENTSGIXPROC) (Display* dpy, GLXDrawable drawable, unsigned long mask);
725
726 #define glXCreateGLXPbufferSGIX GLXEW_GET_FUN(__glewXCreateGLXPbufferSGIX)
727 #define glXDestroyGLXPbufferSGIX GLXEW_GET_FUN(__glewXDestroyGLXPbufferSGIX)
728 #define glXGetSelectedEventSGIX GLXEW_GET_FUN(__glewXGetSelectedEventSGIX)
729 #define glXQueryGLXPbufferSGIX GLXEW_GET_FUN(__glewXQueryGLXPbufferSGIX)
730 #define glXSelectEventSGIX GLXEW_GET_FUN(__glewXSelectEventSGIX)
731
732 #define GLXEW_SGIX_pbuffer GLXEW_GET_VAR(__GLXEW_SGIX_pbuffer)
733
734 #endif /* GLX_SGIX_pbuffer */
735
736 /* ------------------------- GLX_SGIX_swap_barrier ------------------------- */
737
738 #ifndef GLX_SGIX_swap_barrier
739 #define GLX_SGIX_swap_barrier 1
740
741 typedef void ( * PFNGLXBINDSWAPBARRIERSGIXPROC) (Display *dpy, GLXDrawable drawable, int barrier);
742 typedef Bool ( * PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC) (Display *dpy, int screen, int *max);
743
744 #define glXBindSwapBarrierSGIX GLXEW_GET_FUN(__glewXBindSwapBarrierSGIX)
745 #define glXQueryMaxSwapBarriersSGIX GLXEW_GET_FUN(__glewXQueryMaxSwapBarriersSGIX)
746
747 #define GLXEW_SGIX_swap_barrier GLXEW_GET_VAR(__GLXEW_SGIX_swap_barrier)
748
749 #endif /* GLX_SGIX_swap_barrier */
750
751 /* -------------------------- GLX_SGIX_swap_group -------------------------- */
752
753 #ifndef GLX_SGIX_swap_group
754 #define GLX_SGIX_swap_group 1
755
756 typedef void ( * PFNGLXJOINSWAPGROUPSGIXPROC) (Display *dpy, GLXDrawable drawable, GLXDrawable member);
757
758 #define glXJoinSwapGroupSGIX GLXEW_GET_FUN(__glewXJoinSwapGroupSGIX)
759
760 #define GLXEW_SGIX_swap_group GLXEW_GET_VAR(__GLXEW_SGIX_swap_group)
761
762 #endif /* GLX_SGIX_swap_group */
763
764 /* ------------------------- GLX_SGIX_video_resize ------------------------- */
765
766 #ifndef GLX_SGIX_video_resize
767 #define GLX_SGIX_video_resize 1
768
769 #define GLX_SYNC_FRAME_SGIX 0x00000000
770 #define GLX_SYNC_SWAP_SGIX 0x00000001
771
772 typedef int ( * PFNGLXBINDCHANNELTOWINDOWSGIXPROC) (Display* display, int screen, int channel, Window window);
773 typedef int ( * PFNGLXCHANNELRECTSGIXPROC) (Display* display, int screen, int channel, int x, int y, int w, int h);
774 typedef int ( * PFNGLXCHANNELRECTSYNCSGIXPROC) (Display* display, int screen, int channel, GLenum synctype);
775 typedef int ( * PFNGLXQUERYCHANNELDELTASSGIXPROC) (Display* display, int screen, int channel, int *x, int *y, int *w, int *h);
776 typedef int ( * PFNGLXQUERYCHANNELRECTSGIXPROC) (Display* display, int screen, int channel, int *dx, int *dy, int *dw, int *dh);
777
778 #define glXBindChannelToWindowSGIX GLXEW_GET_FUN(__glewXBindChannelToWindowSGIX)
779 #define glXChannelRectSGIX GLXEW_GET_FUN(__glewXChannelRectSGIX)
780 #define glXChannelRectSyncSGIX GLXEW_GET_FUN(__glewXChannelRectSyncSGIX)
781 #define glXQueryChannelDeltasSGIX GLXEW_GET_FUN(__glewXQueryChannelDeltasSGIX)
782 #define glXQueryChannelRectSGIX GLXEW_GET_FUN(__glewXQueryChannelRectSGIX)
783
784 #define GLXEW_SGIX_video_resize GLXEW_GET_VAR(__GLXEW_SGIX_video_resize)
785
786 #endif /* GLX_SGIX_video_resize */
787
788 /* ---------------------- GLX_SGIX_visual_select_group --------------------- */
789
790 #ifndef GLX_SGIX_visual_select_group
791 #define GLX_SGIX_visual_select_group 1
792
793 #define GLX_VISUAL_SELECT_GROUP_SGIX 0x8028
794
795 #define GLXEW_SGIX_visual_select_group GLXEW_GET_VAR(__GLXEW_SGIX_visual_select_group)
796
797 #endif /* GLX_SGIX_visual_select_group */
798
799 /* ---------------------------- GLX_SGI_cushion ---------------------------- */
800
801 #ifndef GLX_SGI_cushion
802 #define GLX_SGI_cushion 1
803
804 typedef void ( * PFNGLXCUSHIONSGIPROC) (Display* dpy, Window window, float cushion);
805
806 #define glXCushionSGI GLXEW_GET_FUN(__glewXCushionSGI)
807
808 #define GLXEW_SGI_cushion GLXEW_GET_VAR(__GLXEW_SGI_cushion)
809
810 #endif /* GLX_SGI_cushion */
811
812 /* ----------------------- GLX_SGI_make_current_read ----------------------- */
813
814 #ifndef GLX_SGI_make_current_read
815 #define GLX_SGI_make_current_read 1
816
817 typedef GLXDrawable ( * PFNGLXGETCURRENTREADDRAWABLESGIPROC) (void);
818 typedef Bool ( * PFNGLXMAKECURRENTREADSGIPROC) (Display* dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx);
819
820 #define glXGetCurrentReadDrawableSGI GLXEW_GET_FUN(__glewXGetCurrentReadDrawableSGI)
821 #define glXMakeCurrentReadSGI GLXEW_GET_FUN(__glewXMakeCurrentReadSGI)
822
823 #define GLXEW_SGI_make_current_read GLXEW_GET_VAR(__GLXEW_SGI_make_current_read)
824
825 #endif /* GLX_SGI_make_current_read */
826
827 /* -------------------------- GLX_SGI_swap_control ------------------------- */
828
829 #ifndef GLX_SGI_swap_control
830 #define GLX_SGI_swap_control 1
831
832 typedef int ( * PFNGLXSWAPINTERVALSGIPROC) (int interval);
833
834 #define glXSwapIntervalSGI GLXEW_GET_FUN(__glewXSwapIntervalSGI)
835
836 #define GLXEW_SGI_swap_control GLXEW_GET_VAR(__GLXEW_SGI_swap_control)
837
838 #endif /* GLX_SGI_swap_control */
839
840 /* --------------------------- GLX_SGI_video_sync -------------------------- */
841
842 #ifndef GLX_SGI_video_sync
843 #define GLX_SGI_video_sync 1
844
845 typedef int ( * PFNGLXGETVIDEOSYNCSGIPROC) (uint* count);
846 typedef int ( * PFNGLXWAITVIDEOSYNCSGIPROC) (int divisor, int remainder, unsigned int* count);
847
848 #define glXGetVideoSyncSGI GLXEW_GET_FUN(__glewXGetVideoSyncSGI)
849 #define glXWaitVideoSyncSGI GLXEW_GET_FUN(__glewXWaitVideoSyncSGI)
850
851 #define GLXEW_SGI_video_sync GLXEW_GET_VAR(__GLXEW_SGI_video_sync)
852
853 #endif /* GLX_SGI_video_sync */
854
855 /* --------------------- GLX_SUN_get_transparent_index --------------------- */
856
857 #ifndef GLX_SUN_get_transparent_index
858 #define GLX_SUN_get_transparent_index 1
859
860 typedef Status ( * PFNGLXGETTRANSPARENTINDEXSUNPROC) (Display* dpy, Window overlay, Window underlay, unsigned long *pTransparentIndex);
861
862 #define glXGetTransparentIndexSUN GLXEW_GET_FUN(__glewXGetTransparentIndexSUN)
863
864 #define GLXEW_SUN_get_transparent_index GLXEW_GET_VAR(__GLXEW_SUN_get_transparent_index)
865
866 #endif /* GLX_SUN_get_transparent_index */
867
868 /* -------------------------- GLX_SUN_video_resize ------------------------- */
869
870 #ifndef GLX_SUN_video_resize
871 #define GLX_SUN_video_resize 1
872
873 #define GLX_VIDEO_RESIZE_SUN 0x8171
874 #define GL_VIDEO_RESIZE_COMPENSATION_SUN 0x85CD
875
876 typedef int ( * PFNGLXGETVIDEORESIZESUNPROC) (Display* display, GLXDrawable window, float* factor);
877 typedef int ( * PFNGLXVIDEORESIZESUNPROC) (Display* display, GLXDrawable window, float factor);
878
879 #define glXGetVideoResizeSUN GLXEW_GET_FUN(__glewXGetVideoResizeSUN)
880 #define glXVideoResizeSUN GLXEW_GET_FUN(__glewXVideoResizeSUN)
881
882 #define GLXEW_SUN_video_resize GLXEW_GET_VAR(__GLXEW_SUN_video_resize)
883
884 #endif /* GLX_SUN_video_resize */
885
886 /* ------------------------------------------------------------------------- */
887
888 #ifdef GLEW_MX
889 #define GLXEW_EXPORT
890 #else
891 #define GLXEW_EXPORT extern
892 #endif /* GLEW_MX */
893
894 extern PFNGLXGETCURRENTDISPLAYPROC __glewXGetCurrentDisplay;
895
896 extern PFNGLXCHOOSEFBCONFIGPROC __glewXChooseFBConfig;
897 extern PFNGLXCREATENEWCONTEXTPROC __glewXCreateNewContext;
898 extern PFNGLXCREATEPBUFFERPROC __glewXCreatePbuffer;
899 extern PFNGLXCREATEPIXMAPPROC __glewXCreatePixmap;
900 extern PFNGLXCREATEWINDOWPROC __glewXCreateWindow;
901 extern PFNGLXDESTROYPBUFFERPROC __glewXDestroyPbuffer;
902 extern PFNGLXDESTROYPIXMAPPROC __glewXDestroyPixmap;
903 extern PFNGLXDESTROYWINDOWPROC __glewXDestroyWindow;
904 extern PFNGLXGETCURRENTREADDRAWABLEPROC __glewXGetCurrentReadDrawable;
905 extern PFNGLXGETFBCONFIGATTRIBPROC __glewXGetFBConfigAttrib;
906 extern PFNGLXGETFBCONFIGSPROC __glewXGetFBConfigs;
907 extern PFNGLXGETSELECTEDEVENTPROC __glewXGetSelectedEvent;
908 extern PFNGLXGETVISUALFROMFBCONFIGPROC __glewXGetVisualFromFBConfig;
909 extern PFNGLXMAKECONTEXTCURRENTPROC __glewXMakeContextCurrent;
910 extern PFNGLXQUERYCONTEXTPROC __glewXQueryContext;
911 extern PFNGLXQUERYDRAWABLEPROC __glewXQueryDrawable;
912 extern PFNGLXSELECTEVENTPROC __glewXSelectEvent;
913
914 extern PFNGLXBINDTEXIMAGEATIPROC __glewXBindTexImageATI;
915 extern PFNGLXDRAWABLEATTRIBATIPROC __glewXDrawableAttribATI;
916 extern PFNGLXRELEASETEXIMAGEATIPROC __glewXReleaseTexImageATI;
917
918 extern PFNGLXFREECONTEXTEXTPROC __glewXFreeContextEXT;
919 extern PFNGLXGETCONTEXTIDEXTPROC __glewXGetContextIDEXT;
920 extern PFNGLXIMPORTCONTEXTEXTPROC __glewXImportContextEXT;
921 extern PFNGLXQUERYCONTEXTINFOEXTPROC __glewXQueryContextInfoEXT;
922
923 extern PFNGLXGETAGPOFFSETMESAPROC __glewXGetAGPOffsetMESA;
924
925 extern PFNGLXCOPYSUBBUFFERMESAPROC __glewXCopySubBufferMESA;
926
927 extern PFNGLXCREATEGLXPIXMAPMESAPROC __glewXCreateGLXPixmapMESA;
928
929 extern PFNGLXRELEASEBUFFERSMESAPROC __glewXReleaseBuffersMESA;
930
931 extern PFNGLXSET3DFXMODEMESAPROC __glewXSet3DfxModeMESA;
932
933 extern PFNGLXALLOCATEMEMORYNVPROC __glewXAllocateMemoryNV;
934 extern PFNGLXFREEMEMORYNVPROC __glewXFreeMemoryNV;
935
936 #ifdef GLX_OML_sync_control
937 extern PFNGLXGETMSCRATEOMLPROC __glewXGetMscRateOML;
938 extern PFNGLXGETSYNCVALUESOMLPROC __glewXGetSyncValuesOML;
939 extern PFNGLXSWAPBUFFERSMSCOMLPROC __glewXSwapBuffersMscOML;
940 extern PFNGLXWAITFORMSCOMLPROC __glewXWaitForMscOML;
941 extern PFNGLXWAITFORSBCOMLPROC __glewXWaitForSbcOML;
942 #endif
943
944 extern PFNGLXCHOOSEFBCONFIGSGIXPROC __glewXChooseFBConfigSGIX;
945 extern PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC __glewXCreateContextWithConfigSGIX;
946 extern PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC __glewXCreateGLXPixmapWithConfigSGIX;
947 extern PFNGLXGETFBCONFIGATTRIBSGIXPROC __glewXGetFBConfigAttribSGIX;
948 extern PFNGLXGETFBCONFIGFROMVISUALSGIXPROC __glewXGetFBConfigFromVisualSGIX;
949 extern PFNGLXGETVISUALFROMFBCONFIGSGIXPROC __glewXGetVisualFromFBConfigSGIX;
950
951 extern PFNGLXCREATEGLXPBUFFERSGIXPROC __glewXCreateGLXPbufferSGIX;
952 extern PFNGLXDESTROYGLXPBUFFERSGIXPROC __glewXDestroyGLXPbufferSGIX;
953 extern PFNGLXGETSELECTEDEVENTSGIXPROC __glewXGetSelectedEventSGIX;
954 extern PFNGLXQUERYGLXPBUFFERSGIXPROC __glewXQueryGLXPbufferSGIX;
955 extern PFNGLXSELECTEVENTSGIXPROC __glewXSelectEventSGIX;
956
957 extern PFNGLXBINDSWAPBARRIERSGIXPROC __glewXBindSwapBarrierSGIX;
958 extern PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC __glewXQueryMaxSwapBarriersSGIX;
959
960 extern PFNGLXJOINSWAPGROUPSGIXPROC __glewXJoinSwapGroupSGIX;
961
962 extern PFNGLXBINDCHANNELTOWINDOWSGIXPROC __glewXBindChannelToWindowSGIX;
963 extern PFNGLXCHANNELRECTSGIXPROC __glewXChannelRectSGIX;
964 extern PFNGLXCHANNELRECTSYNCSGIXPROC __glewXChannelRectSyncSGIX;
965 extern PFNGLXQUERYCHANNELDELTASSGIXPROC __glewXQueryChannelDeltasSGIX;
966 extern PFNGLXQUERYCHANNELRECTSGIXPROC __glewXQueryChannelRectSGIX;
967
968 extern PFNGLXCUSHIONSGIPROC __glewXCushionSGI;
969
970 extern PFNGLXGETCURRENTREADDRAWABLESGIPROC __glewXGetCurrentReadDrawableSGI;
971 extern PFNGLXMAKECURRENTREADSGIPROC __glewXMakeCurrentReadSGI;
972
973 extern PFNGLXSWAPINTERVALSGIPROC __glewXSwapIntervalSGI;
974
975 extern PFNGLXGETVIDEOSYNCSGIPROC __glewXGetVideoSyncSGI;
976 extern PFNGLXWAITVIDEOSYNCSGIPROC __glewXWaitVideoSyncSGI;
977
978 extern PFNGLXGETTRANSPARENTINDEXSUNPROC __glewXGetTransparentIndexSUN;
979
980 extern PFNGLXGETVIDEORESIZESUNPROC __glewXGetVideoResizeSUN;
981 extern PFNGLXVIDEORESIZESUNPROC __glewXVideoResizeSUN;
982
983 #if defined(GLEW_MX)
984 struct GLXEWContextStruct
985 {
986 #endif /* GLEW_MX */
987
988 GLXEW_EXPORT GLboolean __GLXEW_VERSION_1_0;
989 GLXEW_EXPORT GLboolean __GLXEW_VERSION_1_1;
990 GLXEW_EXPORT GLboolean __GLXEW_VERSION_1_2;
991 GLXEW_EXPORT GLboolean __GLXEW_VERSION_1_3;
992 GLXEW_EXPORT GLboolean __GLXEW_VERSION_1_4;
993 GLXEW_EXPORT GLboolean __GLXEW_3DFX_multisample;
994 GLXEW_EXPORT GLboolean __GLXEW_ARB_fbconfig_float;
995 GLXEW_EXPORT GLboolean __GLXEW_ARB_get_proc_address;
996 GLXEW_EXPORT GLboolean __GLXEW_ARB_multisample;
997 GLXEW_EXPORT GLboolean __GLXEW_ATI_pixel_format_float;
998 GLXEW_EXPORT GLboolean __GLXEW_ATI_render_texture;
999 GLXEW_EXPORT GLboolean __GLXEW_EXT_import_context;
1000 GLXEW_EXPORT GLboolean __GLXEW_EXT_scene_marker;
1001 GLXEW_EXPORT GLboolean __GLXEW_EXT_visual_info;
1002 GLXEW_EXPORT GLboolean __GLXEW_EXT_visual_rating;
1003 GLXEW_EXPORT GLboolean __GLXEW_MESA_agp_offset;
1004 GLXEW_EXPORT GLboolean __GLXEW_MESA_copy_sub_buffer;
1005 GLXEW_EXPORT GLboolean __GLXEW_MESA_pixmap_colormap;
1006 GLXEW_EXPORT GLboolean __GLXEW_MESA_release_buffers;
1007 GLXEW_EXPORT GLboolean __GLXEW_MESA_set_3dfx_mode;
1008 GLXEW_EXPORT GLboolean __GLXEW_NV_float_buffer;
1009 GLXEW_EXPORT GLboolean __GLXEW_NV_vertex_array_range;
1010 GLXEW_EXPORT GLboolean __GLXEW_OML_swap_method;
1011 GLXEW_EXPORT GLboolean __GLXEW_OML_sync_control;
1012 GLXEW_EXPORT GLboolean __GLXEW_SGIS_blended_overlay;
1013 GLXEW_EXPORT GLboolean __GLXEW_SGIS_color_range;
1014 GLXEW_EXPORT GLboolean __GLXEW_SGIS_multisample;
1015 GLXEW_EXPORT GLboolean __GLXEW_SGIS_shared_multisample;
1016 GLXEW_EXPORT GLboolean __GLXEW_SGIX_fbconfig;
1017 GLXEW_EXPORT GLboolean __GLXEW_SGIX_pbuffer;
1018 GLXEW_EXPORT GLboolean __GLXEW_SGIX_swap_barrier;
1019 GLXEW_EXPORT GLboolean __GLXEW_SGIX_swap_group;
1020 GLXEW_EXPORT GLboolean __GLXEW_SGIX_video_resize;
1021 GLXEW_EXPORT GLboolean __GLXEW_SGIX_visual_select_group;
1022 GLXEW_EXPORT GLboolean __GLXEW_SGI_cushion;
1023 GLXEW_EXPORT GLboolean __GLXEW_SGI_make_current_read;
1024 GLXEW_EXPORT GLboolean __GLXEW_SGI_swap_control;
1025 GLXEW_EXPORT GLboolean __GLXEW_SGI_video_sync;
1026 GLXEW_EXPORT GLboolean __GLXEW_SUN_get_transparent_index;
1027 GLXEW_EXPORT GLboolean __GLXEW_SUN_video_resize;
1028
1029 #ifdef GLEW_MX
1030 }; /* GLXEWContextStruct */
1031 #endif /* GLEW_MX */
1032
1033 /* ------------------------------------------------------------------------ */
1034
1035 #ifdef GLEW_MX
1036
1037 typedef struct GLXEWContextStruct GLXEWContext;
1038 extern GLenum glxewContextInit (GLXEWContext* ctx);
1039 extern GLboolean glxewContextIsSupported (GLXEWContext* ctx, const char* name);
1040
1041 #define glxewInit() glxewContextInit(glxewGetContext())
1042 #define glxewIsSupported(x) glxewContextIsSupported(glxewGetContext(), x)
1043
1044 #define GLXEW_GET_VAR(x) glxewGetContext()->x
1045 #define GLXEW_GET_FUN(x) x
1046
1047 #else /* GLEW_MX */
1048
1049 #define GLXEW_GET_VAR(x) x
1050 #define GLXEW_GET_FUN(x) x
1051
1052 extern GLboolean glxewIsSupported (const char* name);
1053
1054 #endif /* GLEW_MX */
1055
1056 extern GLboolean glxewGetExtension (const char* name);
1057
1058 #ifdef __cplusplus
1059 }
1060 #endif
1061
1062 #endif /* __glxew_h__ */