2 ** The OpenGL Extension Wrangler Library
3 ** Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
4 ** Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
5 ** Copyright (C) 2002, Lev Povalahev
6 ** All rights reserved.
8 ** Redistribution and use in source and binary forms, with or without
9 ** modification, are permitted provided that the following conditions are met:
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.
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.
33 * Mesa 3-D graphics library
36 * Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
38 * Permission is hereby granted, free of charge, to any person obtaining a
39 * copy of this software and associated documentation files (the "Software"),
40 * to deal in the Software without restriction, including without limitation
41 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
42 * and/or sell copies of the Software, and to permit persons to whom the
43 * Software is furnished to do so, subject to the following conditions:
45 * The above copyright notice and this permission notice shall be included
46 * in all copies or substantial portions of the Software.
48 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
49 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
50 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
51 * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
52 * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
53 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
57 ** Copyright (c) 2007 The Khronos Group Inc.
59 ** Permission is hereby granted, free of charge, to any person obtaining a
60 ** copy of this software and/or associated documentation files (the
61 ** "Materials"), to deal in the Materials without restriction, including
62 ** without limitation the rights to use, copy, modify, merge, publish,
63 ** distribute, sublicense, and/or sell copies of the Materials, and to
64 ** permit persons to whom the Materials are furnished to do so, subject to
65 ** the following conditions:
67 ** The above copyright notice and this permission notice shall be included
68 ** in all copies or substantial portions of the Materials.
70 ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
71 ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
72 ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
73 ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
74 ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
75 ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
76 ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
84 #error glxext.h included before glxew.h
87 #if defined(GLX_H) || defined(__GLX_glx_h__) || defined(__glx_h__)
88 #error glx.h included before glxew.h
98 #include <X11/Xutil.h>
105 /* ---------------------------- GLX_VERSION_1_0 --------------------------- */
107 #ifndef GLX_VERSION_1_0
108 #define GLX_VERSION_1_0 1
111 #define GLX_BUFFER_SIZE 2
114 #define GLX_DOUBLEBUFFER 5
116 #define GLX_AUX_BUFFERS 7
117 #define GLX_RED_SIZE 8
118 #define GLX_GREEN_SIZE 9
119 #define GLX_BLUE_SIZE 10
120 #define GLX_ALPHA_SIZE 11
121 #define GLX_DEPTH_SIZE 12
122 #define GLX_STENCIL_SIZE 13
123 #define GLX_ACCUM_RED_SIZE 14
124 #define GLX_ACCUM_GREEN_SIZE 15
125 #define GLX_ACCUM_BLUE_SIZE 16
126 #define GLX_ACCUM_ALPHA_SIZE 17
127 #define GLX_BAD_SCREEN 1
128 #define GLX_BAD_ATTRIBUTE 2
129 #define GLX_NO_EXTENSION 3
130 #define GLX_BAD_VISUAL 4
131 #define GLX_BAD_CONTEXT 5
132 #define GLX_BAD_VALUE 6
133 #define GLX_BAD_ENUM 7
135 typedef XID GLXDrawable
;
136 typedef XID GLXPixmap
;
138 typedef struct __glXContextRec
*GLXContext
;
140 typedef struct __GLXcontextRec
*GLXContext
;
143 typedef unsigned int GLXVideoDeviceNV
;
145 extern Bool
glXQueryExtension (Display
*dpy
, int *errorBase
, int *eventBase
);
146 extern Bool
glXQueryVersion (Display
*dpy
, int *major
, int *minor
);
147 extern int glXGetConfig (Display
*dpy
, XVisualInfo
*vis
, int attrib
, int *value
);
148 extern XVisualInfo
* glXChooseVisual (Display
*dpy
, int screen
, int *attribList
);
149 extern GLXPixmap
glXCreateGLXPixmap (Display
*dpy
, XVisualInfo
*vis
, Pixmap pixmap
);
150 extern void glXDestroyGLXPixmap (Display
*dpy
, GLXPixmap pix
);
151 extern GLXContext
glXCreateContext (Display
*dpy
, XVisualInfo
*vis
, GLXContext shareList
, Bool direct
);
152 extern void glXDestroyContext (Display
*dpy
, GLXContext ctx
);
153 extern Bool
glXIsDirect (Display
*dpy
, GLXContext ctx
);
154 extern void glXCopyContext (Display
*dpy
, GLXContext src
, GLXContext dst
, GLulong mask
);
155 extern Bool
glXMakeCurrent (Display
*dpy
, GLXDrawable drawable
, GLXContext ctx
);
156 extern GLXContext
glXGetCurrentContext (void);
157 extern GLXDrawable
glXGetCurrentDrawable (void);
158 extern void glXWaitGL (void);
159 extern void glXWaitX (void);
160 extern void glXSwapBuffers (Display
*dpy
, GLXDrawable drawable
);
161 extern void glXUseXFont (Font font
, int first
, int count
, int listBase
);
163 #define GLXEW_VERSION_1_0 GLXEW_GET_VAR(__GLXEW_VERSION_1_0)
165 #endif /* GLX_VERSION_1_0 */
167 /* ---------------------------- GLX_VERSION_1_1 --------------------------- */
169 #ifndef GLX_VERSION_1_1
170 #define GLX_VERSION_1_1
172 #define GLX_VENDOR 0x1
173 #define GLX_VERSION 0x2
174 #define GLX_EXTENSIONS 0x3
176 extern const char* glXQueryExtensionsString (Display
*dpy
, int screen
);
177 extern const char* glXGetClientString (Display
*dpy
, int name
);
178 extern const char* glXQueryServerString (Display
*dpy
, int screen
, int name
);
180 #define GLXEW_VERSION_1_1 GLXEW_GET_VAR(__GLXEW_VERSION_1_1)
182 #endif /* GLX_VERSION_1_1 */
184 /* ---------------------------- GLX_VERSION_1_2 ---------------------------- */
186 #ifndef GLX_VERSION_1_2
187 #define GLX_VERSION_1_2 1
189 typedef Display
* ( * PFNGLXGETCURRENTDISPLAYPROC
) (void);
191 #define glXGetCurrentDisplay GLXEW_GET_FUN(__glewXGetCurrentDisplay)
193 #define GLXEW_VERSION_1_2 GLXEW_GET_VAR(__GLXEW_VERSION_1_2)
195 #endif /* GLX_VERSION_1_2 */
197 /* ---------------------------- GLX_VERSION_1_3 ---------------------------- */
199 #ifndef GLX_VERSION_1_3
200 #define GLX_VERSION_1_3 1
202 #define GLX_RGBA_BIT 0x00000001
203 #define GLX_FRONT_LEFT_BUFFER_BIT 0x00000001
204 #define GLX_WINDOW_BIT 0x00000001
205 #define GLX_COLOR_INDEX_BIT 0x00000002
206 #define GLX_PIXMAP_BIT 0x00000002
207 #define GLX_FRONT_RIGHT_BUFFER_BIT 0x00000002
208 #define GLX_BACK_LEFT_BUFFER_BIT 0x00000004
209 #define GLX_PBUFFER_BIT 0x00000004
210 #define GLX_BACK_RIGHT_BUFFER_BIT 0x00000008
211 #define GLX_AUX_BUFFERS_BIT 0x00000010
212 #define GLX_CONFIG_CAVEAT 0x20
213 #define GLX_DEPTH_BUFFER_BIT 0x00000020
214 #define GLX_X_VISUAL_TYPE 0x22
215 #define GLX_TRANSPARENT_TYPE 0x23
216 #define GLX_TRANSPARENT_INDEX_VALUE 0x24
217 #define GLX_TRANSPARENT_RED_VALUE 0x25
218 #define GLX_TRANSPARENT_GREEN_VALUE 0x26
219 #define GLX_TRANSPARENT_BLUE_VALUE 0x27
220 #define GLX_TRANSPARENT_ALPHA_VALUE 0x28
221 #define GLX_STENCIL_BUFFER_BIT 0x00000040
222 #define GLX_ACCUM_BUFFER_BIT 0x00000080
223 #define GLX_NONE 0x8000
224 #define GLX_SLOW_CONFIG 0x8001
225 #define GLX_TRUE_COLOR 0x8002
226 #define GLX_DIRECT_COLOR 0x8003
227 #define GLX_PSEUDO_COLOR 0x8004
228 #define GLX_STATIC_COLOR 0x8005
229 #define GLX_GRAY_SCALE 0x8006
230 #define GLX_STATIC_GRAY 0x8007
231 #define GLX_TRANSPARENT_RGB 0x8008
232 #define GLX_TRANSPARENT_INDEX 0x8009
233 #define GLX_VISUAL_ID 0x800B
234 #define GLX_SCREEN 0x800C
235 #define GLX_NON_CONFORMANT_CONFIG 0x800D
236 #define GLX_DRAWABLE_TYPE 0x8010
237 #define GLX_RENDER_TYPE 0x8011
238 #define GLX_X_RENDERABLE 0x8012
239 #define GLX_FBCONFIG_ID 0x8013
240 #define GLX_RGBA_TYPE 0x8014
241 #define GLX_COLOR_INDEX_TYPE 0x8015
242 #define GLX_MAX_PBUFFER_WIDTH 0x8016
243 #define GLX_MAX_PBUFFER_HEIGHT 0x8017
244 #define GLX_MAX_PBUFFER_PIXELS 0x8018
245 #define GLX_PRESERVED_CONTENTS 0x801B
246 #define GLX_LARGEST_PBUFFER 0x801C
247 #define GLX_WIDTH 0x801D
248 #define GLX_HEIGHT 0x801E
249 #define GLX_EVENT_MASK 0x801F
250 #define GLX_DAMAGED 0x8020
251 #define GLX_SAVED 0x8021
252 #define GLX_WINDOW 0x8022
253 #define GLX_PBUFFER 0x8023
254 #define GLX_PBUFFER_HEIGHT 0x8040
255 #define GLX_PBUFFER_WIDTH 0x8041
256 #define GLX_PBUFFER_CLOBBER_MASK 0x08000000
257 #define GLX_DONT_CARE 0xFFFFFFFF
259 typedef XID GLXFBConfigID
;
260 typedef XID GLXPbuffer
;
261 typedef XID GLXWindow
;
262 typedef struct __GLXFBConfigRec
*GLXFBConfig
;
267 unsigned long serial
;
270 GLXDrawable drawable
;
271 unsigned int buffer_mask
;
272 unsigned int aux_buffer
;
276 } GLXPbufferClobberEvent
;
277 typedef union __GLXEvent
{
278 GLXPbufferClobberEvent glxpbufferclobber
;
282 typedef GLXFBConfig
* ( * PFNGLXCHOOSEFBCONFIGPROC
) (Display
*dpy
, int screen
, const int *attrib_list
, int *nelements
);
283 typedef GLXContext ( * PFNGLXCREATENEWCONTEXTPROC
) (Display
*dpy
, GLXFBConfig config
, int render_type
, GLXContext share_list
, Bool direct
);
284 typedef GLXPbuffer ( * PFNGLXCREATEPBUFFERPROC
) (Display
*dpy
, GLXFBConfig config
, const int *attrib_list
);
285 typedef GLXPixmap ( * PFNGLXCREATEPIXMAPPROC
) (Display
*dpy
, GLXFBConfig config
, Pixmap pixmap
, const int *attrib_list
);
286 typedef GLXWindow ( * PFNGLXCREATEWINDOWPROC
) (Display
*dpy
, GLXFBConfig config
, Window win
, const int *attrib_list
);
287 typedef void ( * PFNGLXDESTROYPBUFFERPROC
) (Display
*dpy
, GLXPbuffer pbuf
);
288 typedef void ( * PFNGLXDESTROYPIXMAPPROC
) (Display
*dpy
, GLXPixmap pixmap
);
289 typedef void ( * PFNGLXDESTROYWINDOWPROC
) (Display
*dpy
, GLXWindow win
);
290 typedef GLXDrawable ( * PFNGLXGETCURRENTREADDRAWABLEPROC
) (void);
291 typedef int ( * PFNGLXGETFBCONFIGATTRIBPROC
) (Display
*dpy
, GLXFBConfig config
, int attribute
, int *value
);
292 typedef GLXFBConfig
* ( * PFNGLXGETFBCONFIGSPROC
) (Display
*dpy
, int screen
, int *nelements
);
293 typedef void ( * PFNGLXGETSELECTEDEVENTPROC
) (Display
*dpy
, GLXDrawable draw
, unsigned long *event_mask
);
294 typedef XVisualInfo
* ( * PFNGLXGETVISUALFROMFBCONFIGPROC
) (Display
*dpy
, GLXFBConfig config
);
295 typedef Bool ( * PFNGLXMAKECONTEXTCURRENTPROC
) (Display
*display
, GLXDrawable draw
, GLXDrawable read
, GLXContext ctx
);
296 typedef int ( * PFNGLXQUERYCONTEXTPROC
) (Display
*dpy
, GLXContext ctx
, int attribute
, int *value
);
297 typedef void ( * PFNGLXQUERYDRAWABLEPROC
) (Display
*dpy
, GLXDrawable draw
, int attribute
, unsigned int *value
);
298 typedef void ( * PFNGLXSELECTEVENTPROC
) (Display
*dpy
, GLXDrawable draw
, unsigned long event_mask
);
300 #define glXChooseFBConfig GLXEW_GET_FUN(__glewXChooseFBConfig)
301 #define glXCreateNewContext GLXEW_GET_FUN(__glewXCreateNewContext)
302 #define glXCreatePbuffer GLXEW_GET_FUN(__glewXCreatePbuffer)
303 #define glXCreatePixmap GLXEW_GET_FUN(__glewXCreatePixmap)
304 #define glXCreateWindow GLXEW_GET_FUN(__glewXCreateWindow)
305 #define glXDestroyPbuffer GLXEW_GET_FUN(__glewXDestroyPbuffer)
306 #define glXDestroyPixmap GLXEW_GET_FUN(__glewXDestroyPixmap)
307 #define glXDestroyWindow GLXEW_GET_FUN(__glewXDestroyWindow)
308 #define glXGetCurrentReadDrawable GLXEW_GET_FUN(__glewXGetCurrentReadDrawable)
309 #define glXGetFBConfigAttrib GLXEW_GET_FUN(__glewXGetFBConfigAttrib)
310 #define glXGetFBConfigs GLXEW_GET_FUN(__glewXGetFBConfigs)
311 #define glXGetSelectedEvent GLXEW_GET_FUN(__glewXGetSelectedEvent)
312 #define glXGetVisualFromFBConfig GLXEW_GET_FUN(__glewXGetVisualFromFBConfig)
313 #define glXMakeContextCurrent GLXEW_GET_FUN(__glewXMakeContextCurrent)
314 #define glXQueryContext GLXEW_GET_FUN(__glewXQueryContext)
315 #define glXQueryDrawable GLXEW_GET_FUN(__glewXQueryDrawable)
316 #define glXSelectEvent GLXEW_GET_FUN(__glewXSelectEvent)
318 #define GLXEW_VERSION_1_3 GLXEW_GET_VAR(__GLXEW_VERSION_1_3)
320 #endif /* GLX_VERSION_1_3 */
322 /* ---------------------------- GLX_VERSION_1_4 ---------------------------- */
324 #ifndef GLX_VERSION_1_4
325 #define GLX_VERSION_1_4 1
327 #define GLX_SAMPLE_BUFFERS 100000
328 #define GLX_SAMPLES 100001
330 extern void ( * glXGetProcAddress (const GLubyte
*procName
)) (void);
332 #define GLXEW_VERSION_1_4 GLXEW_GET_VAR(__GLXEW_VERSION_1_4)
334 #endif /* GLX_VERSION_1_4 */
336 /* -------------------------- GLX_3DFX_multisample ------------------------- */
338 #ifndef GLX_3DFX_multisample
339 #define GLX_3DFX_multisample 1
341 #define GLX_SAMPLE_BUFFERS_3DFX 0x8050
342 #define GLX_SAMPLES_3DFX 0x8051
344 #define GLXEW_3DFX_multisample GLXEW_GET_VAR(__GLXEW_3DFX_multisample)
346 #endif /* GLX_3DFX_multisample */
348 /* ------------------------ GLX_AMD_gpu_association ------------------------ */
350 #ifndef GLX_AMD_gpu_association
351 #define GLX_AMD_gpu_association 1
353 #define GLX_GPU_VENDOR_AMD 0x1F00
354 #define GLX_GPU_RENDERER_STRING_AMD 0x1F01
355 #define GLX_GPU_OPENGL_VERSION_STRING_AMD 0x1F02
356 #define GLX_GPU_FASTEST_TARGET_GPUS_AMD 0x21A2
357 #define GLX_GPU_RAM_AMD 0x21A3
358 #define GLX_GPU_CLOCK_AMD 0x21A4
359 #define GLX_GPU_NUM_PIPES_AMD 0x21A5
360 #define GLX_GPU_NUM_SIMD_AMD 0x21A6
361 #define GLX_GPU_NUM_RB_AMD 0x21A7
362 #define GLX_GPU_NUM_SPI_AMD 0x21A8
364 #define GLXEW_AMD_gpu_association GLXEW_GET_VAR(__GLXEW_AMD_gpu_association)
366 #endif /* GLX_AMD_gpu_association */
368 /* ------------------------- GLX_ARB_create_context ------------------------ */
370 #ifndef GLX_ARB_create_context
371 #define GLX_ARB_create_context 1
373 #define GLX_CONTEXT_DEBUG_BIT_ARB 0x0001
374 #define GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x0002
375 #define GLX_CONTEXT_MAJOR_VERSION_ARB 0x2091
376 #define GLX_CONTEXT_MINOR_VERSION_ARB 0x2092
377 #define GLX_CONTEXT_FLAGS_ARB 0x2094
379 typedef GLXContext ( * PFNGLXCREATECONTEXTATTRIBSARBPROC
) (Display
* dpy
, GLXFBConfig config
, GLXContext share_context
, Bool direct
, const int *attrib_list
);
381 #define glXCreateContextAttribsARB GLXEW_GET_FUN(__glewXCreateContextAttribsARB)
383 #define GLXEW_ARB_create_context GLXEW_GET_VAR(__GLXEW_ARB_create_context)
385 #endif /* GLX_ARB_create_context */
387 /* --------------------- GLX_ARB_create_context_profile -------------------- */
389 #ifndef GLX_ARB_create_context_profile
390 #define GLX_ARB_create_context_profile 1
392 #define GLX_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001
393 #define GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002
394 #define GLX_CONTEXT_PROFILE_MASK_ARB 0x9126
396 #define GLXEW_ARB_create_context_profile GLXEW_GET_VAR(__GLXEW_ARB_create_context_profile)
398 #endif /* GLX_ARB_create_context_profile */
400 /* ------------------- GLX_ARB_create_context_robustness ------------------- */
402 #ifndef GLX_ARB_create_context_robustness
403 #define GLX_ARB_create_context_robustness 1
405 #define GLX_CONTEXT_ROBUST_ACCESS_BIT_ARB 0x00000004
406 #define GLX_LOSE_CONTEXT_ON_RESET_ARB 0x8252
407 #define GLX_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256
408 #define GLX_NO_RESET_NOTIFICATION_ARB 0x8261
410 #define GLXEW_ARB_create_context_robustness GLXEW_GET_VAR(__GLXEW_ARB_create_context_robustness)
412 #endif /* GLX_ARB_create_context_robustness */
414 /* ------------------------- GLX_ARB_fbconfig_float ------------------------ */
416 #ifndef GLX_ARB_fbconfig_float
417 #define GLX_ARB_fbconfig_float 1
419 #define GLX_RGBA_FLOAT_BIT 0x00000004
420 #define GLX_RGBA_FLOAT_TYPE 0x20B9
422 #define GLXEW_ARB_fbconfig_float GLXEW_GET_VAR(__GLXEW_ARB_fbconfig_float)
424 #endif /* GLX_ARB_fbconfig_float */
426 /* ------------------------ GLX_ARB_framebuffer_sRGB ----------------------- */
428 #ifndef GLX_ARB_framebuffer_sRGB
429 #define GLX_ARB_framebuffer_sRGB 1
431 #define GLX_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20B2
433 #define GLXEW_ARB_framebuffer_sRGB GLXEW_GET_VAR(__GLXEW_ARB_framebuffer_sRGB)
435 #endif /* GLX_ARB_framebuffer_sRGB */
437 /* ------------------------ GLX_ARB_get_proc_address ----------------------- */
439 #ifndef GLX_ARB_get_proc_address
440 #define GLX_ARB_get_proc_address 1
442 extern void ( * glXGetProcAddressARB (const GLubyte
*procName
)) (void);
444 #define GLXEW_ARB_get_proc_address GLXEW_GET_VAR(__GLXEW_ARB_get_proc_address)
446 #endif /* GLX_ARB_get_proc_address */
448 /* -------------------------- GLX_ARB_multisample -------------------------- */
450 #ifndef GLX_ARB_multisample
451 #define GLX_ARB_multisample 1
453 #define GLX_SAMPLE_BUFFERS_ARB 100000
454 #define GLX_SAMPLES_ARB 100001
456 #define GLXEW_ARB_multisample GLXEW_GET_VAR(__GLXEW_ARB_multisample)
458 #endif /* GLX_ARB_multisample */
460 /* ---------------------- GLX_ARB_vertex_buffer_object --------------------- */
462 #ifndef GLX_ARB_vertex_buffer_object
463 #define GLX_ARB_vertex_buffer_object 1
465 #define GLX_CONTEXT_ALLOW_BUFFER_BYTE_ORDER_MISMATCH_ARB 0x2095
467 #define GLXEW_ARB_vertex_buffer_object GLXEW_GET_VAR(__GLXEW_ARB_vertex_buffer_object)
469 #endif /* GLX_ARB_vertex_buffer_object */
471 /* ----------------------- GLX_ATI_pixel_format_float ---------------------- */
473 #ifndef GLX_ATI_pixel_format_float
474 #define GLX_ATI_pixel_format_float 1
476 #define GLX_RGBA_FLOAT_ATI_BIT 0x00000100
478 #define GLXEW_ATI_pixel_format_float GLXEW_GET_VAR(__GLXEW_ATI_pixel_format_float)
480 #endif /* GLX_ATI_pixel_format_float */
482 /* ------------------------- GLX_ATI_render_texture ------------------------ */
484 #ifndef GLX_ATI_render_texture
485 #define GLX_ATI_render_texture 1
487 #define GLX_BIND_TO_TEXTURE_RGB_ATI 0x9800
488 #define GLX_BIND_TO_TEXTURE_RGBA_ATI 0x9801
489 #define GLX_TEXTURE_FORMAT_ATI 0x9802
490 #define GLX_TEXTURE_TARGET_ATI 0x9803
491 #define GLX_MIPMAP_TEXTURE_ATI 0x9804
492 #define GLX_TEXTURE_RGB_ATI 0x9805
493 #define GLX_TEXTURE_RGBA_ATI 0x9806
494 #define GLX_NO_TEXTURE_ATI 0x9807
495 #define GLX_TEXTURE_CUBE_MAP_ATI 0x9808
496 #define GLX_TEXTURE_1D_ATI 0x9809
497 #define GLX_TEXTURE_2D_ATI 0x980A
498 #define GLX_MIPMAP_LEVEL_ATI 0x980B
499 #define GLX_CUBE_MAP_FACE_ATI 0x980C
500 #define GLX_TEXTURE_CUBE_MAP_POSITIVE_X_ATI 0x980D
501 #define GLX_TEXTURE_CUBE_MAP_NEGATIVE_X_ATI 0x980E
502 #define GLX_TEXTURE_CUBE_MAP_POSITIVE_Y_ATI 0x980F
503 #define GLX_TEXTURE_CUBE_MAP_NEGATIVE_Y_ATI 0x9810
504 #define GLX_TEXTURE_CUBE_MAP_POSITIVE_Z_ATI 0x9811
505 #define GLX_TEXTURE_CUBE_MAP_NEGATIVE_Z_ATI 0x9812
506 #define GLX_FRONT_LEFT_ATI 0x9813
507 #define GLX_FRONT_RIGHT_ATI 0x9814
508 #define GLX_BACK_LEFT_ATI 0x9815
509 #define GLX_BACK_RIGHT_ATI 0x9816
510 #define GLX_AUX0_ATI 0x9817
511 #define GLX_AUX1_ATI 0x9818
512 #define GLX_AUX2_ATI 0x9819
513 #define GLX_AUX3_ATI 0x981A
514 #define GLX_AUX4_ATI 0x981B
515 #define GLX_AUX5_ATI 0x981C
516 #define GLX_AUX6_ATI 0x981D
517 #define GLX_AUX7_ATI 0x981E
518 #define GLX_AUX8_ATI 0x981F
519 #define GLX_AUX9_ATI 0x9820
520 #define GLX_BIND_TO_TEXTURE_LUMINANCE_ATI 0x9821
521 #define GLX_BIND_TO_TEXTURE_INTENSITY_ATI 0x9822
523 typedef void ( * PFNGLXBINDTEXIMAGEATIPROC
) (Display
*dpy
, GLXPbuffer pbuf
, int buffer
);
524 typedef void ( * PFNGLXDRAWABLEATTRIBATIPROC
) (Display
*dpy
, GLXDrawable draw
, const int *attrib_list
);
525 typedef void ( * PFNGLXRELEASETEXIMAGEATIPROC
) (Display
*dpy
, GLXPbuffer pbuf
, int buffer
);
527 #define glXBindTexImageATI GLXEW_GET_FUN(__glewXBindTexImageATI)
528 #define glXDrawableAttribATI GLXEW_GET_FUN(__glewXDrawableAttribATI)
529 #define glXReleaseTexImageATI GLXEW_GET_FUN(__glewXReleaseTexImageATI)
531 #define GLXEW_ATI_render_texture GLXEW_GET_VAR(__GLXEW_ATI_render_texture)
533 #endif /* GLX_ATI_render_texture */
535 /* ------------------- GLX_EXT_create_context_es2_profile ------------------ */
537 #ifndef GLX_EXT_create_context_es2_profile
538 #define GLX_EXT_create_context_es2_profile 1
540 #define GLX_CONTEXT_ES2_PROFILE_BIT_EXT 0x00000004
542 #define GLXEW_EXT_create_context_es2_profile GLXEW_GET_VAR(__GLXEW_EXT_create_context_es2_profile)
544 #endif /* GLX_EXT_create_context_es2_profile */
546 /* --------------------- GLX_EXT_fbconfig_packed_float --------------------- */
548 #ifndef GLX_EXT_fbconfig_packed_float
549 #define GLX_EXT_fbconfig_packed_float 1
551 #define GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT 0x00000008
552 #define GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT 0x20B1
554 #define GLXEW_EXT_fbconfig_packed_float GLXEW_GET_VAR(__GLXEW_EXT_fbconfig_packed_float)
556 #endif /* GLX_EXT_fbconfig_packed_float */
558 /* ------------------------ GLX_EXT_framebuffer_sRGB ----------------------- */
560 #ifndef GLX_EXT_framebuffer_sRGB
561 #define GLX_EXT_framebuffer_sRGB 1
563 #define GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20B2
565 #define GLXEW_EXT_framebuffer_sRGB GLXEW_GET_VAR(__GLXEW_EXT_framebuffer_sRGB)
567 #endif /* GLX_EXT_framebuffer_sRGB */
569 /* ------------------------- GLX_EXT_import_context ------------------------ */
571 #ifndef GLX_EXT_import_context
572 #define GLX_EXT_import_context 1
574 #define GLX_SHARE_CONTEXT_EXT 0x800A
575 #define GLX_VISUAL_ID_EXT 0x800B
576 #define GLX_SCREEN_EXT 0x800C
578 typedef XID GLXContextID
;
580 typedef void ( * PFNGLXFREECONTEXTEXTPROC
) (Display
* dpy
, GLXContext context
);
581 typedef GLXContextID ( * PFNGLXGETCONTEXTIDEXTPROC
) (const GLXContext context
);
582 typedef GLXContext ( * PFNGLXIMPORTCONTEXTEXTPROC
) (Display
* dpy
, GLXContextID contextID
);
583 typedef int ( * PFNGLXQUERYCONTEXTINFOEXTPROC
) (Display
* dpy
, GLXContext context
, int attribute
,int *value
);
585 #define glXFreeContextEXT GLXEW_GET_FUN(__glewXFreeContextEXT)
586 #define glXGetContextIDEXT GLXEW_GET_FUN(__glewXGetContextIDEXT)
587 #define glXImportContextEXT GLXEW_GET_FUN(__glewXImportContextEXT)
588 #define glXQueryContextInfoEXT GLXEW_GET_FUN(__glewXQueryContextInfoEXT)
590 #define GLXEW_EXT_import_context GLXEW_GET_VAR(__GLXEW_EXT_import_context)
592 #endif /* GLX_EXT_import_context */
594 /* -------------------------- GLX_EXT_scene_marker ------------------------- */
596 #ifndef GLX_EXT_scene_marker
597 #define GLX_EXT_scene_marker 1
599 #define GLXEW_EXT_scene_marker GLXEW_GET_VAR(__GLXEW_EXT_scene_marker)
601 #endif /* GLX_EXT_scene_marker */
603 /* -------------------------- GLX_EXT_swap_control ------------------------- */
605 #ifndef GLX_EXT_swap_control
606 #define GLX_EXT_swap_control 1
608 #define GLX_SWAP_INTERVAL_EXT 0x20F1
609 #define GLX_MAX_SWAP_INTERVAL_EXT 0x20F2
611 typedef void ( * PFNGLXSWAPINTERVALEXTPROC
) (Display
* dpy
, GLXDrawable drawable
, int interval
);
613 #define glXSwapIntervalEXT GLXEW_GET_FUN(__glewXSwapIntervalEXT)
615 #define GLXEW_EXT_swap_control GLXEW_GET_VAR(__GLXEW_EXT_swap_control)
617 #endif /* GLX_EXT_swap_control */
619 /* ---------------------- GLX_EXT_texture_from_pixmap ---------------------- */
621 #ifndef GLX_EXT_texture_from_pixmap
622 #define GLX_EXT_texture_from_pixmap 1
624 #define GLX_TEXTURE_1D_BIT_EXT 0x00000001
625 #define GLX_TEXTURE_2D_BIT_EXT 0x00000002
626 #define GLX_TEXTURE_RECTANGLE_BIT_EXT 0x00000004
627 #define GLX_BIND_TO_TEXTURE_RGB_EXT 0x20D0
628 #define GLX_BIND_TO_TEXTURE_RGBA_EXT 0x20D1
629 #define GLX_BIND_TO_MIPMAP_TEXTURE_EXT 0x20D2
630 #define GLX_BIND_TO_TEXTURE_TARGETS_EXT 0x20D3
631 #define GLX_Y_INVERTED_EXT 0x20D4
632 #define GLX_TEXTURE_FORMAT_EXT 0x20D5
633 #define GLX_TEXTURE_TARGET_EXT 0x20D6
634 #define GLX_MIPMAP_TEXTURE_EXT 0x20D7
635 #define GLX_TEXTURE_FORMAT_NONE_EXT 0x20D8
636 #define GLX_TEXTURE_FORMAT_RGB_EXT 0x20D9
637 #define GLX_TEXTURE_FORMAT_RGBA_EXT 0x20DA
638 #define GLX_TEXTURE_1D_EXT 0x20DB
639 #define GLX_TEXTURE_2D_EXT 0x20DC
640 #define GLX_TEXTURE_RECTANGLE_EXT 0x20DD
641 #define GLX_FRONT_LEFT_EXT 0x20DE
642 #define GLX_FRONT_RIGHT_EXT 0x20DF
643 #define GLX_BACK_LEFT_EXT 0x20E0
644 #define GLX_BACK_RIGHT_EXT 0x20E1
645 #define GLX_AUX0_EXT 0x20E2
646 #define GLX_AUX1_EXT 0x20E3
647 #define GLX_AUX2_EXT 0x20E4
648 #define GLX_AUX3_EXT 0x20E5
649 #define GLX_AUX4_EXT 0x20E6
650 #define GLX_AUX5_EXT 0x20E7
651 #define GLX_AUX6_EXT 0x20E8
652 #define GLX_AUX7_EXT 0x20E9
653 #define GLX_AUX8_EXT 0x20EA
654 #define GLX_AUX9_EXT 0x20EB
656 typedef void ( * PFNGLXBINDTEXIMAGEEXTPROC
) (Display
* display
, GLXDrawable drawable
, int buffer
, const int *attrib_list
);
657 typedef void ( * PFNGLXRELEASETEXIMAGEEXTPROC
) (Display
* display
, GLXDrawable drawable
, int buffer
);
659 #define glXBindTexImageEXT GLXEW_GET_FUN(__glewXBindTexImageEXT)
660 #define glXReleaseTexImageEXT GLXEW_GET_FUN(__glewXReleaseTexImageEXT)
662 #define GLXEW_EXT_texture_from_pixmap GLXEW_GET_VAR(__GLXEW_EXT_texture_from_pixmap)
664 #endif /* GLX_EXT_texture_from_pixmap */
666 /* -------------------------- GLX_EXT_visual_info -------------------------- */
668 #ifndef GLX_EXT_visual_info
669 #define GLX_EXT_visual_info 1
671 #define GLX_X_VISUAL_TYPE_EXT 0x22
672 #define GLX_TRANSPARENT_TYPE_EXT 0x23
673 #define GLX_TRANSPARENT_INDEX_VALUE_EXT 0x24
674 #define GLX_TRANSPARENT_RED_VALUE_EXT 0x25
675 #define GLX_TRANSPARENT_GREEN_VALUE_EXT 0x26
676 #define GLX_TRANSPARENT_BLUE_VALUE_EXT 0x27
677 #define GLX_TRANSPARENT_ALPHA_VALUE_EXT 0x28
678 #define GLX_NONE_EXT 0x8000
679 #define GLX_TRUE_COLOR_EXT 0x8002
680 #define GLX_DIRECT_COLOR_EXT 0x8003
681 #define GLX_PSEUDO_COLOR_EXT 0x8004
682 #define GLX_STATIC_COLOR_EXT 0x8005
683 #define GLX_GRAY_SCALE_EXT 0x8006
684 #define GLX_STATIC_GRAY_EXT 0x8007
685 #define GLX_TRANSPARENT_RGB_EXT 0x8008
686 #define GLX_TRANSPARENT_INDEX_EXT 0x8009
688 #define GLXEW_EXT_visual_info GLXEW_GET_VAR(__GLXEW_EXT_visual_info)
690 #endif /* GLX_EXT_visual_info */
692 /* ------------------------- GLX_EXT_visual_rating ------------------------- */
694 #ifndef GLX_EXT_visual_rating
695 #define GLX_EXT_visual_rating 1
697 #define GLX_VISUAL_CAVEAT_EXT 0x20
698 #define GLX_SLOW_VISUAL_EXT 0x8001
699 #define GLX_NON_CONFORMANT_VISUAL_EXT 0x800D
701 #define GLXEW_EXT_visual_rating GLXEW_GET_VAR(__GLXEW_EXT_visual_rating)
703 #endif /* GLX_EXT_visual_rating */
705 /* -------------------------- GLX_INTEL_swap_event ------------------------- */
707 #ifndef GLX_INTEL_swap_event
708 #define GLX_INTEL_swap_event 1
710 #define GLX_EXCHANGE_COMPLETE_INTEL 0x8180
711 #define GLX_COPY_COMPLETE_INTEL 0x8181
712 #define GLX_FLIP_COMPLETE_INTEL 0x8182
713 #define GLX_BUFFER_SWAP_COMPLETE_INTEL_MASK 0x04000000
715 #define GLXEW_INTEL_swap_event GLXEW_GET_VAR(__GLXEW_INTEL_swap_event)
717 #endif /* GLX_INTEL_swap_event */
719 /* -------------------------- GLX_MESA_agp_offset -------------------------- */
721 #ifndef GLX_MESA_agp_offset
722 #define GLX_MESA_agp_offset 1
724 typedef unsigned int ( * PFNGLXGETAGPOFFSETMESAPROC
) (const void* pointer
);
726 #define glXGetAGPOffsetMESA GLXEW_GET_FUN(__glewXGetAGPOffsetMESA)
728 #define GLXEW_MESA_agp_offset GLXEW_GET_VAR(__GLXEW_MESA_agp_offset)
730 #endif /* GLX_MESA_agp_offset */
732 /* ------------------------ GLX_MESA_copy_sub_buffer ----------------------- */
734 #ifndef GLX_MESA_copy_sub_buffer
735 #define GLX_MESA_copy_sub_buffer 1
737 typedef void ( * PFNGLXCOPYSUBBUFFERMESAPROC
) (Display
* dpy
, GLXDrawable drawable
, int x
, int y
, int width
, int height
);
739 #define glXCopySubBufferMESA GLXEW_GET_FUN(__glewXCopySubBufferMESA)
741 #define GLXEW_MESA_copy_sub_buffer GLXEW_GET_VAR(__GLXEW_MESA_copy_sub_buffer)
743 #endif /* GLX_MESA_copy_sub_buffer */
745 /* ------------------------ GLX_MESA_pixmap_colormap ----------------------- */
747 #ifndef GLX_MESA_pixmap_colormap
748 #define GLX_MESA_pixmap_colormap 1
750 typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPMESAPROC
) (Display
* dpy
, XVisualInfo
*visual
, Pixmap pixmap
, Colormap cmap
);
752 #define glXCreateGLXPixmapMESA GLXEW_GET_FUN(__glewXCreateGLXPixmapMESA)
754 #define GLXEW_MESA_pixmap_colormap GLXEW_GET_VAR(__GLXEW_MESA_pixmap_colormap)
756 #endif /* GLX_MESA_pixmap_colormap */
758 /* ------------------------ GLX_MESA_release_buffers ----------------------- */
760 #ifndef GLX_MESA_release_buffers
761 #define GLX_MESA_release_buffers 1
763 typedef Bool ( * PFNGLXRELEASEBUFFERSMESAPROC
) (Display
* dpy
, GLXDrawable d
);
765 #define glXReleaseBuffersMESA GLXEW_GET_FUN(__glewXReleaseBuffersMESA)
767 #define GLXEW_MESA_release_buffers GLXEW_GET_VAR(__GLXEW_MESA_release_buffers)
769 #endif /* GLX_MESA_release_buffers */
771 /* ------------------------- GLX_MESA_set_3dfx_mode ------------------------ */
773 #ifndef GLX_MESA_set_3dfx_mode
774 #define GLX_MESA_set_3dfx_mode 1
776 #define GLX_3DFX_WINDOW_MODE_MESA 0x1
777 #define GLX_3DFX_FULLSCREEN_MODE_MESA 0x2
779 typedef GLboolean ( * PFNGLXSET3DFXMODEMESAPROC
) (GLint mode
);
781 #define glXSet3DfxModeMESA GLXEW_GET_FUN(__glewXSet3DfxModeMESA)
783 #define GLXEW_MESA_set_3dfx_mode GLXEW_GET_VAR(__GLXEW_MESA_set_3dfx_mode)
785 #endif /* GLX_MESA_set_3dfx_mode */
787 /* ------------------------- GLX_MESA_swap_control ------------------------- */
789 #ifndef GLX_MESA_swap_control
790 #define GLX_MESA_swap_control 1
792 typedef int ( * PFNGLXGETSWAPINTERVALMESAPROC
) (void);
793 typedef int ( * PFNGLXSWAPINTERVALMESAPROC
) (unsigned int interval
);
795 #define glXGetSwapIntervalMESA GLXEW_GET_FUN(__glewXGetSwapIntervalMESA)
796 #define glXSwapIntervalMESA GLXEW_GET_FUN(__glewXSwapIntervalMESA)
798 #define GLXEW_MESA_swap_control GLXEW_GET_VAR(__GLXEW_MESA_swap_control)
800 #endif /* GLX_MESA_swap_control */
802 /* --------------------------- GLX_NV_copy_image --------------------------- */
804 #ifndef GLX_NV_copy_image
805 #define GLX_NV_copy_image 1
807 typedef void ( * PFNGLXCOPYIMAGESUBDATANVPROC
) (Display
*dpy
, GLXContext srcCtx
, GLuint srcName
, GLenum srcTarget
, GLint srcLevel
, GLint srcX
, GLint srcY
, GLint srcZ
, GLXContext dstCtx
, GLuint dstName
, GLenum dstTarget
, GLint dstLevel
, GLint dstX
, GLint dstY
, GLint dstZ
, GLsizei width
, GLsizei height
, GLsizei depth
);
809 #define glXCopyImageSubDataNV GLXEW_GET_FUN(__glewXCopyImageSubDataNV)
811 #define GLXEW_NV_copy_image GLXEW_GET_VAR(__GLXEW_NV_copy_image)
813 #endif /* GLX_NV_copy_image */
815 /* -------------------------- GLX_NV_float_buffer -------------------------- */
817 #ifndef GLX_NV_float_buffer
818 #define GLX_NV_float_buffer 1
820 #define GLX_FLOAT_COMPONENTS_NV 0x20B0
822 #define GLXEW_NV_float_buffer GLXEW_GET_VAR(__GLXEW_NV_float_buffer)
824 #endif /* GLX_NV_float_buffer */
826 /* ---------------------- GLX_NV_multisample_coverage ---------------------- */
828 #ifndef GLX_NV_multisample_coverage
829 #define GLX_NV_multisample_coverage 1
831 #define GLX_COLOR_SAMPLES_NV 0x20B3
832 #define GLX_COVERAGE_SAMPLES_NV 100001
834 #define GLXEW_NV_multisample_coverage GLXEW_GET_VAR(__GLXEW_NV_multisample_coverage)
836 #endif /* GLX_NV_multisample_coverage */
838 /* -------------------------- GLX_NV_present_video ------------------------- */
840 #ifndef GLX_NV_present_video
841 #define GLX_NV_present_video 1
843 #define GLX_NUM_VIDEO_SLOTS_NV 0x20F0
845 typedef int ( * PFNGLXBINDVIDEODEVICENVPROC
) (Display
* dpy
, unsigned int video_slot
, unsigned int video_device
, const int *attrib_list
);
846 typedef unsigned int* ( * PFNGLXENUMERATEVIDEODEVICESNVPROC
) (Display
*dpy
, int screen
, int *nelements
);
848 #define glXBindVideoDeviceNV GLXEW_GET_FUN(__glewXBindVideoDeviceNV)
849 #define glXEnumerateVideoDevicesNV GLXEW_GET_FUN(__glewXEnumerateVideoDevicesNV)
851 #define GLXEW_NV_present_video GLXEW_GET_VAR(__GLXEW_NV_present_video)
853 #endif /* GLX_NV_present_video */
855 /* --------------------------- GLX_NV_swap_group --------------------------- */
857 #ifndef GLX_NV_swap_group
858 #define GLX_NV_swap_group 1
860 typedef Bool ( * PFNGLXBINDSWAPBARRIERNVPROC
) (Display
* dpy
, GLuint group
, GLuint barrier
);
861 typedef Bool ( * PFNGLXJOINSWAPGROUPNVPROC
) (Display
* dpy
, GLXDrawable drawable
, GLuint group
);
862 typedef Bool ( * PFNGLXQUERYFRAMECOUNTNVPROC
) (Display
* dpy
, int screen
, GLuint
*count
);
863 typedef Bool ( * PFNGLXQUERYMAXSWAPGROUPSNVPROC
) (Display
* dpy
, int screen
, GLuint
*maxGroups
, GLuint
*maxBarriers
);
864 typedef Bool ( * PFNGLXQUERYSWAPGROUPNVPROC
) (Display
* dpy
, GLXDrawable drawable
, GLuint
*group
, GLuint
*barrier
);
865 typedef Bool ( * PFNGLXRESETFRAMECOUNTNVPROC
) (Display
* dpy
, int screen
);
867 #define glXBindSwapBarrierNV GLXEW_GET_FUN(__glewXBindSwapBarrierNV)
868 #define glXJoinSwapGroupNV GLXEW_GET_FUN(__glewXJoinSwapGroupNV)
869 #define glXQueryFrameCountNV GLXEW_GET_FUN(__glewXQueryFrameCountNV)
870 #define glXQueryMaxSwapGroupsNV GLXEW_GET_FUN(__glewXQueryMaxSwapGroupsNV)
871 #define glXQuerySwapGroupNV GLXEW_GET_FUN(__glewXQuerySwapGroupNV)
872 #define glXResetFrameCountNV GLXEW_GET_FUN(__glewXResetFrameCountNV)
874 #define GLXEW_NV_swap_group GLXEW_GET_VAR(__GLXEW_NV_swap_group)
876 #endif /* GLX_NV_swap_group */
878 /* ----------------------- GLX_NV_vertex_array_range ----------------------- */
880 #ifndef GLX_NV_vertex_array_range
881 #define GLX_NV_vertex_array_range 1
883 typedef void * ( * PFNGLXALLOCATEMEMORYNVPROC
) (GLsizei size
, GLfloat readFrequency
, GLfloat writeFrequency
, GLfloat priority
);
884 typedef void ( * PFNGLXFREEMEMORYNVPROC
) (void *pointer
);
886 #define glXAllocateMemoryNV GLXEW_GET_FUN(__glewXAllocateMemoryNV)
887 #define glXFreeMemoryNV GLXEW_GET_FUN(__glewXFreeMemoryNV)
889 #define GLXEW_NV_vertex_array_range GLXEW_GET_VAR(__GLXEW_NV_vertex_array_range)
891 #endif /* GLX_NV_vertex_array_range */
893 /* -------------------------- GLX_NV_video_capture ------------------------- */
895 #ifndef GLX_NV_video_capture
896 #define GLX_NV_video_capture 1
898 #define GLX_DEVICE_ID_NV 0x20CD
899 #define GLX_UNIQUE_ID_NV 0x20CE
900 #define GLX_NUM_VIDEO_CAPTURE_SLOTS_NV 0x20CF
902 typedef XID GLXVideoCaptureDeviceNV
;
904 typedef int ( * PFNGLXBINDVIDEOCAPTUREDEVICENVPROC
) (Display
* dpy
, unsigned int video_capture_slot
, GLXVideoCaptureDeviceNV device
);
905 typedef GLXVideoCaptureDeviceNV
* ( * PFNGLXENUMERATEVIDEOCAPTUREDEVICESNVPROC
) (Display
* dpy
, int screen
, int *nelements
);
906 typedef void ( * PFNGLXLOCKVIDEOCAPTUREDEVICENVPROC
) (Display
* dpy
, GLXVideoCaptureDeviceNV device
);
907 typedef int ( * PFNGLXQUERYVIDEOCAPTUREDEVICENVPROC
) (Display
* dpy
, GLXVideoCaptureDeviceNV device
, int attribute
, int *value
);
908 typedef void ( * PFNGLXRELEASEVIDEOCAPTUREDEVICENVPROC
) (Display
* dpy
, GLXVideoCaptureDeviceNV device
);
910 #define glXBindVideoCaptureDeviceNV GLXEW_GET_FUN(__glewXBindVideoCaptureDeviceNV)
911 #define glXEnumerateVideoCaptureDevicesNV GLXEW_GET_FUN(__glewXEnumerateVideoCaptureDevicesNV)
912 #define glXLockVideoCaptureDeviceNV GLXEW_GET_FUN(__glewXLockVideoCaptureDeviceNV)
913 #define glXQueryVideoCaptureDeviceNV GLXEW_GET_FUN(__glewXQueryVideoCaptureDeviceNV)
914 #define glXReleaseVideoCaptureDeviceNV GLXEW_GET_FUN(__glewXReleaseVideoCaptureDeviceNV)
916 #define GLXEW_NV_video_capture GLXEW_GET_VAR(__GLXEW_NV_video_capture)
918 #endif /* GLX_NV_video_capture */
920 /* -------------------------- GLX_NV_video_output -------------------------- */
922 #ifndef GLX_NV_video_output
923 #define GLX_NV_video_output 1
925 #define GLX_VIDEO_OUT_COLOR_NV 0x20C3
926 #define GLX_VIDEO_OUT_ALPHA_NV 0x20C4
927 #define GLX_VIDEO_OUT_DEPTH_NV 0x20C5
928 #define GLX_VIDEO_OUT_COLOR_AND_ALPHA_NV 0x20C6
929 #define GLX_VIDEO_OUT_COLOR_AND_DEPTH_NV 0x20C7
930 #define GLX_VIDEO_OUT_FRAME_NV 0x20C8
931 #define GLX_VIDEO_OUT_FIELD_1_NV 0x20C9
932 #define GLX_VIDEO_OUT_FIELD_2_NV 0x20CA
933 #define GLX_VIDEO_OUT_STACKED_FIELDS_1_2_NV 0x20CB
934 #define GLX_VIDEO_OUT_STACKED_FIELDS_2_1_NV 0x20CC
936 typedef int ( * PFNGLXBINDVIDEOIMAGENVPROC
) (Display
* dpy
, GLXVideoDeviceNV VideoDevice
, GLXPbuffer pbuf
, int iVideoBuffer
);
937 typedef int ( * PFNGLXGETVIDEODEVICENVPROC
) (Display
* dpy
, int screen
, int numVideoDevices
, GLXVideoDeviceNV
*pVideoDevice
);
938 typedef int ( * PFNGLXGETVIDEOINFONVPROC
) (Display
* dpy
, int screen
, GLXVideoDeviceNV VideoDevice
, unsigned long *pulCounterOutputPbuffer
, unsigned long *pulCounterOutputVideo
);
939 typedef int ( * PFNGLXRELEASEVIDEODEVICENVPROC
) (Display
* dpy
, int screen
, GLXVideoDeviceNV VideoDevice
);
940 typedef int ( * PFNGLXRELEASEVIDEOIMAGENVPROC
) (Display
* dpy
, GLXPbuffer pbuf
);
941 typedef int ( * PFNGLXSENDPBUFFERTOVIDEONVPROC
) (Display
* dpy
, GLXPbuffer pbuf
, int iBufferType
, unsigned long *pulCounterPbuffer
, GLboolean bBlock
);
943 #define glXBindVideoImageNV GLXEW_GET_FUN(__glewXBindVideoImageNV)
944 #define glXGetVideoDeviceNV GLXEW_GET_FUN(__glewXGetVideoDeviceNV)
945 #define glXGetVideoInfoNV GLXEW_GET_FUN(__glewXGetVideoInfoNV)
946 #define glXReleaseVideoDeviceNV GLXEW_GET_FUN(__glewXReleaseVideoDeviceNV)
947 #define glXReleaseVideoImageNV GLXEW_GET_FUN(__glewXReleaseVideoImageNV)
948 #define glXSendPbufferToVideoNV GLXEW_GET_FUN(__glewXSendPbufferToVideoNV)
950 #define GLXEW_NV_video_output GLXEW_GET_VAR(__GLXEW_NV_video_output)
952 #endif /* GLX_NV_video_output */
954 /* -------------------------- GLX_OML_swap_method -------------------------- */
956 #ifndef GLX_OML_swap_method
957 #define GLX_OML_swap_method 1
959 #define GLX_SWAP_METHOD_OML 0x8060
960 #define GLX_SWAP_EXCHANGE_OML 0x8061
961 #define GLX_SWAP_COPY_OML 0x8062
962 #define GLX_SWAP_UNDEFINED_OML 0x8063
964 #define GLXEW_OML_swap_method GLXEW_GET_VAR(__GLXEW_OML_swap_method)
966 #endif /* GLX_OML_swap_method */
968 /* -------------------------- GLX_OML_sync_control ------------------------- */
970 #ifndef GLX_OML_sync_control
971 #define GLX_OML_sync_control 1
973 typedef Bool ( * PFNGLXGETMSCRATEOMLPROC
) (Display
* dpy
, GLXDrawable drawable
, int32_t* numerator
, int32_t* denominator
);
974 typedef Bool ( * PFNGLXGETSYNCVALUESOMLPROC
) (Display
* dpy
, GLXDrawable drawable
, int64_t* ust
, int64_t* msc
, int64_t* sbc
);
975 typedef int64_t ( * PFNGLXSWAPBUFFERSMSCOMLPROC
) (Display
* dpy
, GLXDrawable drawable
, int64_t target_msc
, int64_t divisor
, int64_t remainder
);
976 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
);
977 typedef Bool ( * PFNGLXWAITFORSBCOMLPROC
) (Display
* dpy
, GLXDrawable drawable
, int64_t target_sbc
, int64_t* ust
, int64_t* msc
, int64_t* sbc
);
979 #define glXGetMscRateOML GLXEW_GET_FUN(__glewXGetMscRateOML)
980 #define glXGetSyncValuesOML GLXEW_GET_FUN(__glewXGetSyncValuesOML)
981 #define glXSwapBuffersMscOML GLXEW_GET_FUN(__glewXSwapBuffersMscOML)
982 #define glXWaitForMscOML GLXEW_GET_FUN(__glewXWaitForMscOML)
983 #define glXWaitForSbcOML GLXEW_GET_FUN(__glewXWaitForSbcOML)
985 #define GLXEW_OML_sync_control GLXEW_GET_VAR(__GLXEW_OML_sync_control)
987 #endif /* GLX_OML_sync_control */
989 /* ------------------------ GLX_SGIS_blended_overlay ----------------------- */
991 #ifndef GLX_SGIS_blended_overlay
992 #define GLX_SGIS_blended_overlay 1
994 #define GLX_BLENDED_RGBA_SGIS 0x8025
996 #define GLXEW_SGIS_blended_overlay GLXEW_GET_VAR(__GLXEW_SGIS_blended_overlay)
998 #endif /* GLX_SGIS_blended_overlay */
1000 /* -------------------------- GLX_SGIS_color_range ------------------------- */
1002 #ifndef GLX_SGIS_color_range
1003 #define GLX_SGIS_color_range 1
1005 #define GLX_MIN_RED_SGIS 0
1006 #define GLX_MAX_GREEN_SGIS 0
1007 #define GLX_MIN_BLUE_SGIS 0
1008 #define GLX_MAX_ALPHA_SGIS 0
1009 #define GLX_MIN_GREEN_SGIS 0
1010 #define GLX_MIN_ALPHA_SGIS 0
1011 #define GLX_MAX_RED_SGIS 0
1012 #define GLX_EXTENDED_RANGE_SGIS 0
1013 #define GLX_MAX_BLUE_SGIS 0
1015 #define GLXEW_SGIS_color_range GLXEW_GET_VAR(__GLXEW_SGIS_color_range)
1017 #endif /* GLX_SGIS_color_range */
1019 /* -------------------------- GLX_SGIS_multisample ------------------------- */
1021 #ifndef GLX_SGIS_multisample
1022 #define GLX_SGIS_multisample 1
1024 #define GLX_SAMPLE_BUFFERS_SGIS 100000
1025 #define GLX_SAMPLES_SGIS 100001
1027 #define GLXEW_SGIS_multisample GLXEW_GET_VAR(__GLXEW_SGIS_multisample)
1029 #endif /* GLX_SGIS_multisample */
1031 /* ---------------------- GLX_SGIS_shared_multisample ---------------------- */
1033 #ifndef GLX_SGIS_shared_multisample
1034 #define GLX_SGIS_shared_multisample 1
1036 #define GLX_MULTISAMPLE_SUB_RECT_WIDTH_SGIS 0x8026
1037 #define GLX_MULTISAMPLE_SUB_RECT_HEIGHT_SGIS 0x8027
1039 #define GLXEW_SGIS_shared_multisample GLXEW_GET_VAR(__GLXEW_SGIS_shared_multisample)
1041 #endif /* GLX_SGIS_shared_multisample */
1043 /* --------------------------- GLX_SGIX_fbconfig --------------------------- */
1045 #ifndef GLX_SGIX_fbconfig
1046 #define GLX_SGIX_fbconfig 1
1048 #define GLX_WINDOW_BIT_SGIX 0x00000001
1049 #define GLX_RGBA_BIT_SGIX 0x00000001
1050 #define GLX_PIXMAP_BIT_SGIX 0x00000002
1051 #define GLX_COLOR_INDEX_BIT_SGIX 0x00000002
1052 #define GLX_SCREEN_EXT 0x800C
1053 #define GLX_DRAWABLE_TYPE_SGIX 0x8010
1054 #define GLX_RENDER_TYPE_SGIX 0x8011
1055 #define GLX_X_RENDERABLE_SGIX 0x8012
1056 #define GLX_FBCONFIG_ID_SGIX 0x8013
1057 #define GLX_RGBA_TYPE_SGIX 0x8014
1058 #define GLX_COLOR_INDEX_TYPE_SGIX 0x8015
1060 typedef XID GLXFBConfigIDSGIX
;
1061 typedef struct __GLXFBConfigRec
*GLXFBConfigSGIX
;
1063 typedef GLXFBConfigSGIX
* ( * PFNGLXCHOOSEFBCONFIGSGIXPROC
) (Display
*dpy
, int screen
, const int *attrib_list
, int *nelements
);
1064 typedef GLXContext ( * PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC
) (Display
* dpy
, GLXFBConfig config
, int render_type
, GLXContext share_list
, Bool direct
);
1065 typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC
) (Display
* dpy
, GLXFBConfig config
, Pixmap pixmap
);
1066 typedef int ( * PFNGLXGETFBCONFIGATTRIBSGIXPROC
) (Display
* dpy
, GLXFBConfigSGIX config
, int attribute
, int *value
);
1067 typedef GLXFBConfigSGIX ( * PFNGLXGETFBCONFIGFROMVISUALSGIXPROC
) (Display
* dpy
, XVisualInfo
*vis
);
1068 typedef XVisualInfo
* ( * PFNGLXGETVISUALFROMFBCONFIGSGIXPROC
) (Display
*dpy
, GLXFBConfig config
);
1070 #define glXChooseFBConfigSGIX GLXEW_GET_FUN(__glewXChooseFBConfigSGIX)
1071 #define glXCreateContextWithConfigSGIX GLXEW_GET_FUN(__glewXCreateContextWithConfigSGIX)
1072 #define glXCreateGLXPixmapWithConfigSGIX GLXEW_GET_FUN(__glewXCreateGLXPixmapWithConfigSGIX)
1073 #define glXGetFBConfigAttribSGIX GLXEW_GET_FUN(__glewXGetFBConfigAttribSGIX)
1074 #define glXGetFBConfigFromVisualSGIX GLXEW_GET_FUN(__glewXGetFBConfigFromVisualSGIX)
1075 #define glXGetVisualFromFBConfigSGIX GLXEW_GET_FUN(__glewXGetVisualFromFBConfigSGIX)
1077 #define GLXEW_SGIX_fbconfig GLXEW_GET_VAR(__GLXEW_SGIX_fbconfig)
1079 #endif /* GLX_SGIX_fbconfig */
1081 /* --------------------------- GLX_SGIX_hyperpipe -------------------------- */
1083 #ifndef GLX_SGIX_hyperpipe
1084 #define GLX_SGIX_hyperpipe 1
1086 #define GLX_HYPERPIPE_DISPLAY_PIPE_SGIX 0x00000001
1087 #define GLX_PIPE_RECT_SGIX 0x00000001
1088 #define GLX_PIPE_RECT_LIMITS_SGIX 0x00000002
1089 #define GLX_HYPERPIPE_RENDER_PIPE_SGIX 0x00000002
1090 #define GLX_HYPERPIPE_STEREO_SGIX 0x00000003
1091 #define GLX_HYPERPIPE_PIXEL_AVERAGE_SGIX 0x00000004
1092 #define GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX 80
1093 #define GLX_BAD_HYPERPIPE_CONFIG_SGIX 91
1094 #define GLX_BAD_HYPERPIPE_SGIX 92
1095 #define GLX_HYPERPIPE_ID_SGIX 0x8030
1098 char pipeName
[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX
];
1100 } GLXHyperpipeNetworkSGIX
;
1102 char pipeName
[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX
];
1107 } GLXPipeRectLimits
;
1109 char pipeName
[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX
];
1111 unsigned int participationType
;
1113 } GLXHyperpipeConfigSGIX
;
1115 char pipeName
[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX
];
1126 typedef int ( * PFNGLXBINDHYPERPIPESGIXPROC
) (Display
*dpy
, int hpId
);
1127 typedef int ( * PFNGLXDESTROYHYPERPIPECONFIGSGIXPROC
) (Display
*dpy
, int hpId
);
1128 typedef int ( * PFNGLXHYPERPIPEATTRIBSGIXPROC
) (Display
*dpy
, int timeSlice
, int attrib
, int size
, void *attribList
);
1129 typedef int ( * PFNGLXHYPERPIPECONFIGSGIXPROC
) (Display
*dpy
, int networkId
, int npipes
, GLXHyperpipeConfigSGIX
*cfg
, int *hpId
);
1130 typedef int ( * PFNGLXQUERYHYPERPIPEATTRIBSGIXPROC
) (Display
*dpy
, int timeSlice
, int attrib
, int size
, void *returnAttribList
);
1131 typedef int ( * PFNGLXQUERYHYPERPIPEBESTATTRIBSGIXPROC
) (Display
*dpy
, int timeSlice
, int attrib
, int size
, void *attribList
, void *returnAttribList
);
1132 typedef GLXHyperpipeConfigSGIX
* ( * PFNGLXQUERYHYPERPIPECONFIGSGIXPROC
) (Display
*dpy
, int hpId
, int *npipes
);
1133 typedef GLXHyperpipeNetworkSGIX
* ( * PFNGLXQUERYHYPERPIPENETWORKSGIXPROC
) (Display
*dpy
, int *npipes
);
1135 #define glXBindHyperpipeSGIX GLXEW_GET_FUN(__glewXBindHyperpipeSGIX)
1136 #define glXDestroyHyperpipeConfigSGIX GLXEW_GET_FUN(__glewXDestroyHyperpipeConfigSGIX)
1137 #define glXHyperpipeAttribSGIX GLXEW_GET_FUN(__glewXHyperpipeAttribSGIX)
1138 #define glXHyperpipeConfigSGIX GLXEW_GET_FUN(__glewXHyperpipeConfigSGIX)
1139 #define glXQueryHyperpipeAttribSGIX GLXEW_GET_FUN(__glewXQueryHyperpipeAttribSGIX)
1140 #define glXQueryHyperpipeBestAttribSGIX GLXEW_GET_FUN(__glewXQueryHyperpipeBestAttribSGIX)
1141 #define glXQueryHyperpipeConfigSGIX GLXEW_GET_FUN(__glewXQueryHyperpipeConfigSGIX)
1142 #define glXQueryHyperpipeNetworkSGIX GLXEW_GET_FUN(__glewXQueryHyperpipeNetworkSGIX)
1144 #define GLXEW_SGIX_hyperpipe GLXEW_GET_VAR(__GLXEW_SGIX_hyperpipe)
1146 #endif /* GLX_SGIX_hyperpipe */
1148 /* ---------------------------- GLX_SGIX_pbuffer --------------------------- */
1150 #ifndef GLX_SGIX_pbuffer
1151 #define GLX_SGIX_pbuffer 1
1153 #define GLX_FRONT_LEFT_BUFFER_BIT_SGIX 0x00000001
1154 #define GLX_FRONT_RIGHT_BUFFER_BIT_SGIX 0x00000002
1155 #define GLX_PBUFFER_BIT_SGIX 0x00000004
1156 #define GLX_BACK_LEFT_BUFFER_BIT_SGIX 0x00000004
1157 #define GLX_BACK_RIGHT_BUFFER_BIT_SGIX 0x00000008
1158 #define GLX_AUX_BUFFERS_BIT_SGIX 0x00000010
1159 #define GLX_DEPTH_BUFFER_BIT_SGIX 0x00000020
1160 #define GLX_STENCIL_BUFFER_BIT_SGIX 0x00000040
1161 #define GLX_ACCUM_BUFFER_BIT_SGIX 0x00000080
1162 #define GLX_SAMPLE_BUFFERS_BIT_SGIX 0x00000100
1163 #define GLX_MAX_PBUFFER_WIDTH_SGIX 0x8016
1164 #define GLX_MAX_PBUFFER_HEIGHT_SGIX 0x8017
1165 #define GLX_MAX_PBUFFER_PIXELS_SGIX 0x8018
1166 #define GLX_OPTIMAL_PBUFFER_WIDTH_SGIX 0x8019
1167 #define GLX_OPTIMAL_PBUFFER_HEIGHT_SGIX 0x801A
1168 #define GLX_PRESERVED_CONTENTS_SGIX 0x801B
1169 #define GLX_LARGEST_PBUFFER_SGIX 0x801C
1170 #define GLX_WIDTH_SGIX 0x801D
1171 #define GLX_HEIGHT_SGIX 0x801E
1172 #define GLX_EVENT_MASK_SGIX 0x801F
1173 #define GLX_DAMAGED_SGIX 0x8020
1174 #define GLX_SAVED_SGIX 0x8021
1175 #define GLX_WINDOW_SGIX 0x8022
1176 #define GLX_PBUFFER_SGIX 0x8023
1177 #define GLX_BUFFER_CLOBBER_MASK_SGIX 0x08000000
1179 typedef XID GLXPbufferSGIX
;
1180 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
;
1182 typedef GLXPbuffer ( * PFNGLXCREATEGLXPBUFFERSGIXPROC
) (Display
* dpy
, GLXFBConfig config
, unsigned int width
, unsigned int height
, int *attrib_list
);
1183 typedef void ( * PFNGLXDESTROYGLXPBUFFERSGIXPROC
) (Display
* dpy
, GLXPbuffer pbuf
);
1184 typedef void ( * PFNGLXGETSELECTEDEVENTSGIXPROC
) (Display
* dpy
, GLXDrawable drawable
, unsigned long *mask
);
1185 typedef void ( * PFNGLXQUERYGLXPBUFFERSGIXPROC
) (Display
* dpy
, GLXPbuffer pbuf
, int attribute
, unsigned int *value
);
1186 typedef void ( * PFNGLXSELECTEVENTSGIXPROC
) (Display
* dpy
, GLXDrawable drawable
, unsigned long mask
);
1188 #define glXCreateGLXPbufferSGIX GLXEW_GET_FUN(__glewXCreateGLXPbufferSGIX)
1189 #define glXDestroyGLXPbufferSGIX GLXEW_GET_FUN(__glewXDestroyGLXPbufferSGIX)
1190 #define glXGetSelectedEventSGIX GLXEW_GET_FUN(__glewXGetSelectedEventSGIX)
1191 #define glXQueryGLXPbufferSGIX GLXEW_GET_FUN(__glewXQueryGLXPbufferSGIX)
1192 #define glXSelectEventSGIX GLXEW_GET_FUN(__glewXSelectEventSGIX)
1194 #define GLXEW_SGIX_pbuffer GLXEW_GET_VAR(__GLXEW_SGIX_pbuffer)
1196 #endif /* GLX_SGIX_pbuffer */
1198 /* ------------------------- GLX_SGIX_swap_barrier ------------------------- */
1200 #ifndef GLX_SGIX_swap_barrier
1201 #define GLX_SGIX_swap_barrier 1
1203 typedef void ( * PFNGLXBINDSWAPBARRIERSGIXPROC
) (Display
*dpy
, GLXDrawable drawable
, int barrier
);
1204 typedef Bool ( * PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC
) (Display
*dpy
, int screen
, int *max
);
1206 #define glXBindSwapBarrierSGIX GLXEW_GET_FUN(__glewXBindSwapBarrierSGIX)
1207 #define glXQueryMaxSwapBarriersSGIX GLXEW_GET_FUN(__glewXQueryMaxSwapBarriersSGIX)
1209 #define GLXEW_SGIX_swap_barrier GLXEW_GET_VAR(__GLXEW_SGIX_swap_barrier)
1211 #endif /* GLX_SGIX_swap_barrier */
1213 /* -------------------------- GLX_SGIX_swap_group -------------------------- */
1215 #ifndef GLX_SGIX_swap_group
1216 #define GLX_SGIX_swap_group 1
1218 typedef void ( * PFNGLXJOINSWAPGROUPSGIXPROC
) (Display
*dpy
, GLXDrawable drawable
, GLXDrawable member
);
1220 #define glXJoinSwapGroupSGIX GLXEW_GET_FUN(__glewXJoinSwapGroupSGIX)
1222 #define GLXEW_SGIX_swap_group GLXEW_GET_VAR(__GLXEW_SGIX_swap_group)
1224 #endif /* GLX_SGIX_swap_group */
1226 /* ------------------------- GLX_SGIX_video_resize ------------------------- */
1228 #ifndef GLX_SGIX_video_resize
1229 #define GLX_SGIX_video_resize 1
1231 #define GLX_SYNC_FRAME_SGIX 0x00000000
1232 #define GLX_SYNC_SWAP_SGIX 0x00000001
1234 typedef int ( * PFNGLXBINDCHANNELTOWINDOWSGIXPROC
) (Display
* display
, int screen
, int channel
, Window window
);
1235 typedef int ( * PFNGLXCHANNELRECTSGIXPROC
) (Display
* display
, int screen
, int channel
, int x
, int y
, int w
, int h
);
1236 typedef int ( * PFNGLXCHANNELRECTSYNCSGIXPROC
) (Display
* display
, int screen
, int channel
, GLenum synctype
);
1237 typedef int ( * PFNGLXQUERYCHANNELDELTASSGIXPROC
) (Display
* display
, int screen
, int channel
, int *x
, int *y
, int *w
, int *h
);
1238 typedef int ( * PFNGLXQUERYCHANNELRECTSGIXPROC
) (Display
* display
, int screen
, int channel
, int *dx
, int *dy
, int *dw
, int *dh
);
1240 #define glXBindChannelToWindowSGIX GLXEW_GET_FUN(__glewXBindChannelToWindowSGIX)
1241 #define glXChannelRectSGIX GLXEW_GET_FUN(__glewXChannelRectSGIX)
1242 #define glXChannelRectSyncSGIX GLXEW_GET_FUN(__glewXChannelRectSyncSGIX)
1243 #define glXQueryChannelDeltasSGIX GLXEW_GET_FUN(__glewXQueryChannelDeltasSGIX)
1244 #define glXQueryChannelRectSGIX GLXEW_GET_FUN(__glewXQueryChannelRectSGIX)
1246 #define GLXEW_SGIX_video_resize GLXEW_GET_VAR(__GLXEW_SGIX_video_resize)
1248 #endif /* GLX_SGIX_video_resize */
1250 /* ---------------------- GLX_SGIX_visual_select_group --------------------- */
1252 #ifndef GLX_SGIX_visual_select_group
1253 #define GLX_SGIX_visual_select_group 1
1255 #define GLX_VISUAL_SELECT_GROUP_SGIX 0x8028
1257 #define GLXEW_SGIX_visual_select_group GLXEW_GET_VAR(__GLXEW_SGIX_visual_select_group)
1259 #endif /* GLX_SGIX_visual_select_group */
1261 /* ---------------------------- GLX_SGI_cushion ---------------------------- */
1263 #ifndef GLX_SGI_cushion
1264 #define GLX_SGI_cushion 1
1266 typedef void ( * PFNGLXCUSHIONSGIPROC
) (Display
* dpy
, Window window
, float cushion
);
1268 #define glXCushionSGI GLXEW_GET_FUN(__glewXCushionSGI)
1270 #define GLXEW_SGI_cushion GLXEW_GET_VAR(__GLXEW_SGI_cushion)
1272 #endif /* GLX_SGI_cushion */
1274 /* ----------------------- GLX_SGI_make_current_read ----------------------- */
1276 #ifndef GLX_SGI_make_current_read
1277 #define GLX_SGI_make_current_read 1
1279 typedef GLXDrawable ( * PFNGLXGETCURRENTREADDRAWABLESGIPROC
) (void);
1280 typedef Bool ( * PFNGLXMAKECURRENTREADSGIPROC
) (Display
* dpy
, GLXDrawable draw
, GLXDrawable read
, GLXContext ctx
);
1282 #define glXGetCurrentReadDrawableSGI GLXEW_GET_FUN(__glewXGetCurrentReadDrawableSGI)
1283 #define glXMakeCurrentReadSGI GLXEW_GET_FUN(__glewXMakeCurrentReadSGI)
1285 #define GLXEW_SGI_make_current_read GLXEW_GET_VAR(__GLXEW_SGI_make_current_read)
1287 #endif /* GLX_SGI_make_current_read */
1289 /* -------------------------- GLX_SGI_swap_control ------------------------- */
1291 #ifndef GLX_SGI_swap_control
1292 #define GLX_SGI_swap_control 1
1294 typedef int ( * PFNGLXSWAPINTERVALSGIPROC
) (int interval
);
1296 #define glXSwapIntervalSGI GLXEW_GET_FUN(__glewXSwapIntervalSGI)
1298 #define GLXEW_SGI_swap_control GLXEW_GET_VAR(__GLXEW_SGI_swap_control)
1300 #endif /* GLX_SGI_swap_control */
1302 /* --------------------------- GLX_SGI_video_sync -------------------------- */
1304 #ifndef GLX_SGI_video_sync
1305 #define GLX_SGI_video_sync 1
1307 typedef int ( * PFNGLXGETVIDEOSYNCSGIPROC
) (unsigned int* count
);
1308 typedef int ( * PFNGLXWAITVIDEOSYNCSGIPROC
) (int divisor
, int remainder
, unsigned int* count
);
1310 #define glXGetVideoSyncSGI GLXEW_GET_FUN(__glewXGetVideoSyncSGI)
1311 #define glXWaitVideoSyncSGI GLXEW_GET_FUN(__glewXWaitVideoSyncSGI)
1313 #define GLXEW_SGI_video_sync GLXEW_GET_VAR(__GLXEW_SGI_video_sync)
1315 #endif /* GLX_SGI_video_sync */
1317 /* --------------------- GLX_SUN_get_transparent_index --------------------- */
1319 #ifndef GLX_SUN_get_transparent_index
1320 #define GLX_SUN_get_transparent_index 1
1322 typedef Status ( * PFNGLXGETTRANSPARENTINDEXSUNPROC
) (Display
* dpy
, Window overlay
, Window underlay
, unsigned long *pTransparentIndex
);
1324 #define glXGetTransparentIndexSUN GLXEW_GET_FUN(__glewXGetTransparentIndexSUN)
1326 #define GLXEW_SUN_get_transparent_index GLXEW_GET_VAR(__GLXEW_SUN_get_transparent_index)
1328 #endif /* GLX_SUN_get_transparent_index */
1330 /* -------------------------- GLX_SUN_video_resize ------------------------- */
1332 #ifndef GLX_SUN_video_resize
1333 #define GLX_SUN_video_resize 1
1335 #define GLX_VIDEO_RESIZE_SUN 0x8171
1336 #define GL_VIDEO_RESIZE_COMPENSATION_SUN 0x85CD
1338 typedef int ( * PFNGLXGETVIDEORESIZESUNPROC
) (Display
* display
, GLXDrawable window
, float* factor
);
1339 typedef int ( * PFNGLXVIDEORESIZESUNPROC
) (Display
* display
, GLXDrawable window
, float factor
);
1341 #define glXGetVideoResizeSUN GLXEW_GET_FUN(__glewXGetVideoResizeSUN)
1342 #define glXVideoResizeSUN GLXEW_GET_FUN(__glewXVideoResizeSUN)
1344 #define GLXEW_SUN_video_resize GLXEW_GET_VAR(__GLXEW_SUN_video_resize)
1346 #endif /* GLX_SUN_video_resize */
1348 /* ------------------------------------------------------------------------- */
1351 #define GLXEW_EXPORT
1353 #define GLXEW_EXPORT extern
1354 #endif /* GLEW_MX */
1356 extern PFNGLXGETCURRENTDISPLAYPROC __glewXGetCurrentDisplay
;
1358 extern PFNGLXCHOOSEFBCONFIGPROC __glewXChooseFBConfig
;
1359 extern PFNGLXCREATENEWCONTEXTPROC __glewXCreateNewContext
;
1360 extern PFNGLXCREATEPBUFFERPROC __glewXCreatePbuffer
;
1361 extern PFNGLXCREATEPIXMAPPROC __glewXCreatePixmap
;
1362 extern PFNGLXCREATEWINDOWPROC __glewXCreateWindow
;
1363 extern PFNGLXDESTROYPBUFFERPROC __glewXDestroyPbuffer
;
1364 extern PFNGLXDESTROYPIXMAPPROC __glewXDestroyPixmap
;
1365 extern PFNGLXDESTROYWINDOWPROC __glewXDestroyWindow
;
1366 extern PFNGLXGETCURRENTREADDRAWABLEPROC __glewXGetCurrentReadDrawable
;
1367 extern PFNGLXGETFBCONFIGATTRIBPROC __glewXGetFBConfigAttrib
;
1368 extern PFNGLXGETFBCONFIGSPROC __glewXGetFBConfigs
;
1369 extern PFNGLXGETSELECTEDEVENTPROC __glewXGetSelectedEvent
;
1370 extern PFNGLXGETVISUALFROMFBCONFIGPROC __glewXGetVisualFromFBConfig
;
1371 extern PFNGLXMAKECONTEXTCURRENTPROC __glewXMakeContextCurrent
;
1372 extern PFNGLXQUERYCONTEXTPROC __glewXQueryContext
;
1373 extern PFNGLXQUERYDRAWABLEPROC __glewXQueryDrawable
;
1374 extern PFNGLXSELECTEVENTPROC __glewXSelectEvent
;
1376 extern PFNGLXCREATECONTEXTATTRIBSARBPROC __glewXCreateContextAttribsARB
;
1378 extern PFNGLXBINDTEXIMAGEATIPROC __glewXBindTexImageATI
;
1379 extern PFNGLXDRAWABLEATTRIBATIPROC __glewXDrawableAttribATI
;
1380 extern PFNGLXRELEASETEXIMAGEATIPROC __glewXReleaseTexImageATI
;
1382 extern PFNGLXFREECONTEXTEXTPROC __glewXFreeContextEXT
;
1383 extern PFNGLXGETCONTEXTIDEXTPROC __glewXGetContextIDEXT
;
1384 extern PFNGLXIMPORTCONTEXTEXTPROC __glewXImportContextEXT
;
1385 extern PFNGLXQUERYCONTEXTINFOEXTPROC __glewXQueryContextInfoEXT
;
1387 extern PFNGLXSWAPINTERVALEXTPROC __glewXSwapIntervalEXT
;
1389 extern PFNGLXBINDTEXIMAGEEXTPROC __glewXBindTexImageEXT
;
1390 extern PFNGLXRELEASETEXIMAGEEXTPROC __glewXReleaseTexImageEXT
;
1392 extern PFNGLXGETAGPOFFSETMESAPROC __glewXGetAGPOffsetMESA
;
1394 extern PFNGLXCOPYSUBBUFFERMESAPROC __glewXCopySubBufferMESA
;
1396 extern PFNGLXCREATEGLXPIXMAPMESAPROC __glewXCreateGLXPixmapMESA
;
1398 extern PFNGLXRELEASEBUFFERSMESAPROC __glewXReleaseBuffersMESA
;
1400 extern PFNGLXSET3DFXMODEMESAPROC __glewXSet3DfxModeMESA
;
1402 extern PFNGLXGETSWAPINTERVALMESAPROC __glewXGetSwapIntervalMESA
;
1403 extern PFNGLXSWAPINTERVALMESAPROC __glewXSwapIntervalMESA
;
1405 extern PFNGLXCOPYIMAGESUBDATANVPROC __glewXCopyImageSubDataNV
;
1407 extern PFNGLXBINDVIDEODEVICENVPROC __glewXBindVideoDeviceNV
;
1408 extern PFNGLXENUMERATEVIDEODEVICESNVPROC __glewXEnumerateVideoDevicesNV
;
1410 extern PFNGLXBINDSWAPBARRIERNVPROC __glewXBindSwapBarrierNV
;
1411 extern PFNGLXJOINSWAPGROUPNVPROC __glewXJoinSwapGroupNV
;
1412 extern PFNGLXQUERYFRAMECOUNTNVPROC __glewXQueryFrameCountNV
;
1413 extern PFNGLXQUERYMAXSWAPGROUPSNVPROC __glewXQueryMaxSwapGroupsNV
;
1414 extern PFNGLXQUERYSWAPGROUPNVPROC __glewXQuerySwapGroupNV
;
1415 extern PFNGLXRESETFRAMECOUNTNVPROC __glewXResetFrameCountNV
;
1417 extern PFNGLXALLOCATEMEMORYNVPROC __glewXAllocateMemoryNV
;
1418 extern PFNGLXFREEMEMORYNVPROC __glewXFreeMemoryNV
;
1420 extern PFNGLXBINDVIDEOCAPTUREDEVICENVPROC __glewXBindVideoCaptureDeviceNV
;
1421 extern PFNGLXENUMERATEVIDEOCAPTUREDEVICESNVPROC __glewXEnumerateVideoCaptureDevicesNV
;
1422 extern PFNGLXLOCKVIDEOCAPTUREDEVICENVPROC __glewXLockVideoCaptureDeviceNV
;
1423 extern PFNGLXQUERYVIDEOCAPTUREDEVICENVPROC __glewXQueryVideoCaptureDeviceNV
;
1424 extern PFNGLXRELEASEVIDEOCAPTUREDEVICENVPROC __glewXReleaseVideoCaptureDeviceNV
;
1426 extern PFNGLXBINDVIDEOIMAGENVPROC __glewXBindVideoImageNV
;
1427 extern PFNGLXGETVIDEODEVICENVPROC __glewXGetVideoDeviceNV
;
1428 extern PFNGLXGETVIDEOINFONVPROC __glewXGetVideoInfoNV
;
1429 extern PFNGLXRELEASEVIDEODEVICENVPROC __glewXReleaseVideoDeviceNV
;
1430 extern PFNGLXRELEASEVIDEOIMAGENVPROC __glewXReleaseVideoImageNV
;
1431 extern PFNGLXSENDPBUFFERTOVIDEONVPROC __glewXSendPbufferToVideoNV
;
1433 extern PFNGLXGETMSCRATEOMLPROC __glewXGetMscRateOML
;
1434 extern PFNGLXGETSYNCVALUESOMLPROC __glewXGetSyncValuesOML
;
1435 extern PFNGLXSWAPBUFFERSMSCOMLPROC __glewXSwapBuffersMscOML
;
1436 extern PFNGLXWAITFORMSCOMLPROC __glewXWaitForMscOML
;
1437 extern PFNGLXWAITFORSBCOMLPROC __glewXWaitForSbcOML
;
1439 extern PFNGLXCHOOSEFBCONFIGSGIXPROC __glewXChooseFBConfigSGIX
;
1440 extern PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC __glewXCreateContextWithConfigSGIX
;
1441 extern PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC __glewXCreateGLXPixmapWithConfigSGIX
;
1442 extern PFNGLXGETFBCONFIGATTRIBSGIXPROC __glewXGetFBConfigAttribSGIX
;
1443 extern PFNGLXGETFBCONFIGFROMVISUALSGIXPROC __glewXGetFBConfigFromVisualSGIX
;
1444 extern PFNGLXGETVISUALFROMFBCONFIGSGIXPROC __glewXGetVisualFromFBConfigSGIX
;
1446 extern PFNGLXBINDHYPERPIPESGIXPROC __glewXBindHyperpipeSGIX
;
1447 extern PFNGLXDESTROYHYPERPIPECONFIGSGIXPROC __glewXDestroyHyperpipeConfigSGIX
;
1448 extern PFNGLXHYPERPIPEATTRIBSGIXPROC __glewXHyperpipeAttribSGIX
;
1449 extern PFNGLXHYPERPIPECONFIGSGIXPROC __glewXHyperpipeConfigSGIX
;
1450 extern PFNGLXQUERYHYPERPIPEATTRIBSGIXPROC __glewXQueryHyperpipeAttribSGIX
;
1451 extern PFNGLXQUERYHYPERPIPEBESTATTRIBSGIXPROC __glewXQueryHyperpipeBestAttribSGIX
;
1452 extern PFNGLXQUERYHYPERPIPECONFIGSGIXPROC __glewXQueryHyperpipeConfigSGIX
;
1453 extern PFNGLXQUERYHYPERPIPENETWORKSGIXPROC __glewXQueryHyperpipeNetworkSGIX
;
1455 extern PFNGLXCREATEGLXPBUFFERSGIXPROC __glewXCreateGLXPbufferSGIX
;
1456 extern PFNGLXDESTROYGLXPBUFFERSGIXPROC __glewXDestroyGLXPbufferSGIX
;
1457 extern PFNGLXGETSELECTEDEVENTSGIXPROC __glewXGetSelectedEventSGIX
;
1458 extern PFNGLXQUERYGLXPBUFFERSGIXPROC __glewXQueryGLXPbufferSGIX
;
1459 extern PFNGLXSELECTEVENTSGIXPROC __glewXSelectEventSGIX
;
1461 extern PFNGLXBINDSWAPBARRIERSGIXPROC __glewXBindSwapBarrierSGIX
;
1462 extern PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC __glewXQueryMaxSwapBarriersSGIX
;
1464 extern PFNGLXJOINSWAPGROUPSGIXPROC __glewXJoinSwapGroupSGIX
;
1466 extern PFNGLXBINDCHANNELTOWINDOWSGIXPROC __glewXBindChannelToWindowSGIX
;
1467 extern PFNGLXCHANNELRECTSGIXPROC __glewXChannelRectSGIX
;
1468 extern PFNGLXCHANNELRECTSYNCSGIXPROC __glewXChannelRectSyncSGIX
;
1469 extern PFNGLXQUERYCHANNELDELTASSGIXPROC __glewXQueryChannelDeltasSGIX
;
1470 extern PFNGLXQUERYCHANNELRECTSGIXPROC __glewXQueryChannelRectSGIX
;
1472 extern PFNGLXCUSHIONSGIPROC __glewXCushionSGI
;
1474 extern PFNGLXGETCURRENTREADDRAWABLESGIPROC __glewXGetCurrentReadDrawableSGI
;
1475 extern PFNGLXMAKECURRENTREADSGIPROC __glewXMakeCurrentReadSGI
;
1477 extern PFNGLXSWAPINTERVALSGIPROC __glewXSwapIntervalSGI
;
1479 extern PFNGLXGETVIDEOSYNCSGIPROC __glewXGetVideoSyncSGI
;
1480 extern PFNGLXWAITVIDEOSYNCSGIPROC __glewXWaitVideoSyncSGI
;
1482 extern PFNGLXGETTRANSPARENTINDEXSUNPROC __glewXGetTransparentIndexSUN
;
1484 extern PFNGLXGETVIDEORESIZESUNPROC __glewXGetVideoResizeSUN
;
1485 extern PFNGLXVIDEORESIZESUNPROC __glewXVideoResizeSUN
;
1487 #if defined(GLEW_MX)
1488 struct GLXEWContextStruct
1490 #endif /* GLEW_MX */
1492 GLXEW_EXPORT GLboolean __GLXEW_VERSION_1_0
;
1493 GLXEW_EXPORT GLboolean __GLXEW_VERSION_1_1
;
1494 GLXEW_EXPORT GLboolean __GLXEW_VERSION_1_2
;
1495 GLXEW_EXPORT GLboolean __GLXEW_VERSION_1_3
;
1496 GLXEW_EXPORT GLboolean __GLXEW_VERSION_1_4
;
1497 GLXEW_EXPORT GLboolean __GLXEW_3DFX_multisample
;
1498 GLXEW_EXPORT GLboolean __GLXEW_AMD_gpu_association
;
1499 GLXEW_EXPORT GLboolean __GLXEW_ARB_create_context
;
1500 GLXEW_EXPORT GLboolean __GLXEW_ARB_create_context_profile
;
1501 GLXEW_EXPORT GLboolean __GLXEW_ARB_create_context_robustness
;
1502 GLXEW_EXPORT GLboolean __GLXEW_ARB_fbconfig_float
;
1503 GLXEW_EXPORT GLboolean __GLXEW_ARB_framebuffer_sRGB
;
1504 GLXEW_EXPORT GLboolean __GLXEW_ARB_get_proc_address
;
1505 GLXEW_EXPORT GLboolean __GLXEW_ARB_multisample
;
1506 GLXEW_EXPORT GLboolean __GLXEW_ARB_vertex_buffer_object
;
1507 GLXEW_EXPORT GLboolean __GLXEW_ATI_pixel_format_float
;
1508 GLXEW_EXPORT GLboolean __GLXEW_ATI_render_texture
;
1509 GLXEW_EXPORT GLboolean __GLXEW_EXT_create_context_es2_profile
;
1510 GLXEW_EXPORT GLboolean __GLXEW_EXT_fbconfig_packed_float
;
1511 GLXEW_EXPORT GLboolean __GLXEW_EXT_framebuffer_sRGB
;
1512 GLXEW_EXPORT GLboolean __GLXEW_EXT_import_context
;
1513 GLXEW_EXPORT GLboolean __GLXEW_EXT_scene_marker
;
1514 GLXEW_EXPORT GLboolean __GLXEW_EXT_swap_control
;
1515 GLXEW_EXPORT GLboolean __GLXEW_EXT_texture_from_pixmap
;
1516 GLXEW_EXPORT GLboolean __GLXEW_EXT_visual_info
;
1517 GLXEW_EXPORT GLboolean __GLXEW_EXT_visual_rating
;
1518 GLXEW_EXPORT GLboolean __GLXEW_INTEL_swap_event
;
1519 GLXEW_EXPORT GLboolean __GLXEW_MESA_agp_offset
;
1520 GLXEW_EXPORT GLboolean __GLXEW_MESA_copy_sub_buffer
;
1521 GLXEW_EXPORT GLboolean __GLXEW_MESA_pixmap_colormap
;
1522 GLXEW_EXPORT GLboolean __GLXEW_MESA_release_buffers
;
1523 GLXEW_EXPORT GLboolean __GLXEW_MESA_set_3dfx_mode
;
1524 GLXEW_EXPORT GLboolean __GLXEW_MESA_swap_control
;
1525 GLXEW_EXPORT GLboolean __GLXEW_NV_copy_image
;
1526 GLXEW_EXPORT GLboolean __GLXEW_NV_float_buffer
;
1527 GLXEW_EXPORT GLboolean __GLXEW_NV_multisample_coverage
;
1528 GLXEW_EXPORT GLboolean __GLXEW_NV_present_video
;
1529 GLXEW_EXPORT GLboolean __GLXEW_NV_swap_group
;
1530 GLXEW_EXPORT GLboolean __GLXEW_NV_vertex_array_range
;
1531 GLXEW_EXPORT GLboolean __GLXEW_NV_video_capture
;
1532 GLXEW_EXPORT GLboolean __GLXEW_NV_video_output
;
1533 GLXEW_EXPORT GLboolean __GLXEW_OML_swap_method
;
1534 GLXEW_EXPORT GLboolean __GLXEW_OML_sync_control
;
1535 GLXEW_EXPORT GLboolean __GLXEW_SGIS_blended_overlay
;
1536 GLXEW_EXPORT GLboolean __GLXEW_SGIS_color_range
;
1537 GLXEW_EXPORT GLboolean __GLXEW_SGIS_multisample
;
1538 GLXEW_EXPORT GLboolean __GLXEW_SGIS_shared_multisample
;
1539 GLXEW_EXPORT GLboolean __GLXEW_SGIX_fbconfig
;
1540 GLXEW_EXPORT GLboolean __GLXEW_SGIX_hyperpipe
;
1541 GLXEW_EXPORT GLboolean __GLXEW_SGIX_pbuffer
;
1542 GLXEW_EXPORT GLboolean __GLXEW_SGIX_swap_barrier
;
1543 GLXEW_EXPORT GLboolean __GLXEW_SGIX_swap_group
;
1544 GLXEW_EXPORT GLboolean __GLXEW_SGIX_video_resize
;
1545 GLXEW_EXPORT GLboolean __GLXEW_SGIX_visual_select_group
;
1546 GLXEW_EXPORT GLboolean __GLXEW_SGI_cushion
;
1547 GLXEW_EXPORT GLboolean __GLXEW_SGI_make_current_read
;
1548 GLXEW_EXPORT GLboolean __GLXEW_SGI_swap_control
;
1549 GLXEW_EXPORT GLboolean __GLXEW_SGI_video_sync
;
1550 GLXEW_EXPORT GLboolean __GLXEW_SUN_get_transparent_index
;
1551 GLXEW_EXPORT GLboolean __GLXEW_SUN_video_resize
;
1554 }; /* GLXEWContextStruct */
1555 #endif /* GLEW_MX */
1557 /* ------------------------------------------------------------------------ */
1561 typedef struct GLXEWContextStruct GLXEWContext
;
1562 extern GLenum
glxewContextInit (GLXEWContext
* ctx
);
1563 extern GLboolean
glxewContextIsSupported (const GLXEWContext
* ctx
, const char* name
);
1565 #define glxewInit() glxewContextInit(glxewGetContext())
1566 #define glxewIsSupported(x) glxewContextIsSupported(glxewGetContext(), x)
1568 #define GLXEW_GET_VAR(x) (*(const GLboolean*)&(glxewGetContext()->x))
1569 #define GLXEW_GET_FUN(x) x
1573 #define GLXEW_GET_VAR(x) (*(const GLboolean*)&x)
1574 #define GLXEW_GET_FUN(x) x
1576 extern GLboolean
glxewIsSupported (const char* name
);
1578 #endif /* GLEW_MX */
1580 extern GLboolean
glxewGetExtension (const char* name
);
1586 #endif /* __glxew_h__ */