fixed: auto_ptr -> unique_ptr
[opensg.git] / Source / External / OpenGL / GL3 / glxext3.h
blobec1743115ce5fe748dbd80def2d9abd7d68581dc
1 #ifndef __glxext_h_
2 #define __glxext_h_
4 #ifdef __cplusplus
5 extern "C" {
6 #endif
8 /*
9 ** License Applicability. Except to the extent portions of this file are
10 ** made subject to an alternative license as permitted in the SGI Free
11 ** Software License B, Version 1.1 (the "License"), the contents of this
12 ** file are subject only to the provisions of the License. You may not use
13 ** this file except in compliance with the License. You may obtain a copy
14 ** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600
15 ** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at:
16 **
17 ** http://oss.sgi.com/projects/FreeB
18 **
19 ** Note that, as provided in the License, the Software is distributed on an
20 ** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS
21 ** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND
22 ** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A
23 ** PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
24 **
25 ** Original Code. The Original Code is: OpenGL Sample Implementation,
26 ** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics,
27 ** Inc. The Original Code is Copyright (c) 1991-2004 Silicon Graphics, Inc.
28 ** Copyright in any portions created by third parties is as indicated
29 ** elsewhere herein. All Rights Reserved.
30 **
31 ** Additional Notice Provisions: This software was created using the
32 ** OpenGL(R) version 1.2.1 Sample Implementation published by SGI, but has
33 ** not been independently verified as being compliant with the OpenGL(R)
34 ** version 1.2.1 Specification.
37 #if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__)
38 #define WIN32_LEAN_AND_MEAN 1
39 #include <windows.h>
40 #endif
42 #ifndef APIENTRY
43 #define APIENTRY
44 #endif
45 #ifndef APIENTRYP
46 #define APIENTRYP APIENTRY *
47 #endif
48 #ifndef GLAPI
49 #define GLAPI extern
50 #endif
52 /*************************************************************/
54 /* Header file version number, required by OpenGL ABI for Linux */
55 /* glxext.h last updated 2009/01/08 */
56 /* Current version at http://www.opengl.org/registry/ */
57 #define GLX_GLXEXT_VERSION 21
59 #ifndef GLX_ARB_get_proc_address
60 #endif
62 #ifndef GLX_ARB_multisample
63 #define GLX_SAMPLE_BUFFERS_ARB 100000
64 #define GLX_SAMPLES_ARB 100001
65 #endif
67 #ifndef GLX_ARB_fbconfig_float
68 #define GLX_RGBA_FLOAT_TYPE_ARB 0x20B9
69 #define GLX_RGBA_FLOAT_BIT_ARB 0x00000004
70 #endif
72 #ifndef GLX_ARB_create_context
73 #define GLX_CONTEXT_DEBUG_BIT_ARB 0x00000001
74 #define GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x00000002
75 #define GLX_CONTEXT_MAJOR_VERSION_ARB 0x2091
76 #define GLX_CONTEXT_MINOR_VERSION_ARB 0x2092
77 #define GLX_CONTEXT_FLAGS_ARB 0x2094
78 #endif
80 #ifndef GLX_SGIS_multisample
81 #define GLX_SAMPLE_BUFFERS_SGIS 100000
82 #define GLX_SAMPLES_SGIS 100001
83 #endif
85 #ifndef GLX_EXT_visual_info
86 #define GLX_X_VISUAL_TYPE_EXT 0x22
87 #define GLX_TRANSPARENT_TYPE_EXT 0x23
88 #define GLX_TRANSPARENT_INDEX_VALUE_EXT 0x24
89 #define GLX_TRANSPARENT_RED_VALUE_EXT 0x25
90 #define GLX_TRANSPARENT_GREEN_VALUE_EXT 0x26
91 #define GLX_TRANSPARENT_BLUE_VALUE_EXT 0x27
92 #define GLX_TRANSPARENT_ALPHA_VALUE_EXT 0x28
93 #define GLX_NONE_EXT 0x8000
94 #define GLX_TRUE_COLOR_EXT 0x8002
95 #define GLX_DIRECT_COLOR_EXT 0x8003
96 #define GLX_PSEUDO_COLOR_EXT 0x8004
97 #define GLX_STATIC_COLOR_EXT 0x8005
98 #define GLX_GRAY_SCALE_EXT 0x8006
99 #define GLX_STATIC_GRAY_EXT 0x8007
100 #define GLX_TRANSPARENT_RGB_EXT 0x8008
101 #define GLX_TRANSPARENT_INDEX_EXT 0x8009
102 #endif
104 #ifndef GLX_SGI_swap_control
105 #endif
107 #ifndef GLX_SGI_video_sync
108 #endif
110 #ifndef GLX_SGI_make_current_read
111 #endif
113 #ifndef GLX_SGIX_video_source
114 #endif
116 #ifndef GLX_EXT_visual_rating
117 #define GLX_VISUAL_CAVEAT_EXT 0x20
118 #define GLX_SLOW_VISUAL_EXT 0x8001
119 #define GLX_NON_CONFORMANT_VISUAL_EXT 0x800D
120 /* reuse GLX_NONE_EXT */
121 #endif
123 #ifndef GLX_EXT_import_context
124 #define GLX_SHARE_CONTEXT_EXT 0x800A
125 #define GLX_VISUAL_ID_EXT 0x800B
126 #define GLX_SCREEN_EXT 0x800C
127 #endif
129 #ifndef GLX_SGIX_fbconfig
130 #define GLX_WINDOW_BIT_SGIX 0x00000001
131 #define GLX_PIXMAP_BIT_SGIX 0x00000002
132 #define GLX_RGBA_BIT_SGIX 0x00000001
133 #define GLX_COLOR_INDEX_BIT_SGIX 0x00000002
134 #define GLX_DRAWABLE_TYPE_SGIX 0x8010
135 #define GLX_RENDER_TYPE_SGIX 0x8011
136 #define GLX_X_RENDERABLE_SGIX 0x8012
137 #define GLX_FBCONFIG_ID_SGIX 0x8013
138 #define GLX_RGBA_TYPE_SGIX 0x8014
139 #define GLX_COLOR_INDEX_TYPE_SGIX 0x8015
140 /* reuse GLX_SCREEN_EXT */
141 #endif
143 #ifndef GLX_SGIX_pbuffer
144 #define GLX_PBUFFER_BIT_SGIX 0x00000004
145 #define GLX_BUFFER_CLOBBER_MASK_SGIX 0x08000000
146 #define GLX_FRONT_LEFT_BUFFER_BIT_SGIX 0x00000001
147 #define GLX_FRONT_RIGHT_BUFFER_BIT_SGIX 0x00000002
148 #define GLX_BACK_LEFT_BUFFER_BIT_SGIX 0x00000004
149 #define GLX_BACK_RIGHT_BUFFER_BIT_SGIX 0x00000008
150 #define GLX_AUX_BUFFERS_BIT_SGIX 0x00000010
151 #define GLX_DEPTH_BUFFER_BIT_SGIX 0x00000020
152 #define GLX_STENCIL_BUFFER_BIT_SGIX 0x00000040
153 #define GLX_ACCUM_BUFFER_BIT_SGIX 0x00000080
154 #define GLX_SAMPLE_BUFFERS_BIT_SGIX 0x00000100
155 #define GLX_MAX_PBUFFER_WIDTH_SGIX 0x8016
156 #define GLX_MAX_PBUFFER_HEIGHT_SGIX 0x8017
157 #define GLX_MAX_PBUFFER_PIXELS_SGIX 0x8018
158 #define GLX_OPTIMAL_PBUFFER_WIDTH_SGIX 0x8019
159 #define GLX_OPTIMAL_PBUFFER_HEIGHT_SGIX 0x801A
160 #define GLX_PRESERVED_CONTENTS_SGIX 0x801B
161 #define GLX_LARGEST_PBUFFER_SGIX 0x801C
162 #define GLX_WIDTH_SGIX 0x801D
163 #define GLX_HEIGHT_SGIX 0x801E
164 #define GLX_EVENT_MASK_SGIX 0x801F
165 #define GLX_DAMAGED_SGIX 0x8020
166 #define GLX_SAVED_SGIX 0x8021
167 #define GLX_WINDOW_SGIX 0x8022
168 #define GLX_PBUFFER_SGIX 0x8023
169 #endif
171 #ifndef GLX_SGI_cushion
172 #endif
174 #ifndef GLX_SGIX_video_resize
175 #define GLX_SYNC_FRAME_SGIX 0x00000000
176 #define GLX_SYNC_SWAP_SGIX 0x00000001
177 #endif
179 #ifndef GLX_SGIX_dmbuffer
180 #define GLX_DIGITAL_MEDIA_PBUFFER_SGIX 0x8024
181 #endif
183 #ifndef GLX_SGIX_swap_group
184 #endif
186 #ifndef GLX_SGIX_swap_barrier
187 #endif
189 #ifndef GLX_SGIS_blended_overlay
190 #define GLX_BLENDED_RGBA_SGIS 0x8025
191 #endif
193 #ifndef GLX_SGIS_shared_multisample
194 #define GLX_MULTISAMPLE_SUB_RECT_WIDTH_SGIS 0x8026
195 #define GLX_MULTISAMPLE_SUB_RECT_HEIGHT_SGIS 0x8027
196 #endif
198 #ifndef GLX_SUN_get_transparent_index
199 #endif
201 #ifndef GLX_3DFX_multisample
202 #define GLX_SAMPLE_BUFFERS_3DFX 0x8050
203 #define GLX_SAMPLES_3DFX 0x8051
204 #endif
206 #ifndef GLX_MESA_copy_sub_buffer
207 #endif
209 #ifndef GLX_MESA_pixmap_colormap
210 #endif
212 #ifndef GLX_MESA_release_buffers
213 #endif
215 #ifndef GLX_MESA_set_3dfx_mode
216 #define GLX_3DFX_WINDOW_MODE_MESA 0x1
217 #define GLX_3DFX_FULLSCREEN_MODE_MESA 0x2
218 #endif
220 #ifndef GLX_SGIX_visual_select_group
221 #define GLX_VISUAL_SELECT_GROUP_SGIX 0x8028
222 #endif
224 #ifndef GLX_OML_swap_method
225 #define GLX_SWAP_METHOD_OML 0x8060
226 #define GLX_SWAP_EXCHANGE_OML 0x8061
227 #define GLX_SWAP_COPY_OML 0x8062
228 #define GLX_SWAP_UNDEFINED_OML 0x8063
229 #endif
231 #ifndef GLX_OML_sync_control
232 #endif
234 #ifndef GLX_NV_float_buffer
235 #define GLX_FLOAT_COMPONENTS_NV 0x20B0
236 #endif
238 #ifndef GLX_SGIX_hyperpipe
239 #define GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX 80
240 #define GLX_BAD_HYPERPIPE_CONFIG_SGIX 91
241 #define GLX_BAD_HYPERPIPE_SGIX 92
242 #define GLX_HYPERPIPE_DISPLAY_PIPE_SGIX 0x00000001
243 #define GLX_HYPERPIPE_RENDER_PIPE_SGIX 0x00000002
244 #define GLX_PIPE_RECT_SGIX 0x00000001
245 #define GLX_PIPE_RECT_LIMITS_SGIX 0x00000002
246 #define GLX_HYPERPIPE_STEREO_SGIX 0x00000003
247 #define GLX_HYPERPIPE_PIXEL_AVERAGE_SGIX 0x00000004
248 #define GLX_HYPERPIPE_ID_SGIX 0x8030
249 #endif
251 #ifndef GLX_MESA_agp_offset
252 #endif
255 /*************************************************************/
257 #ifndef GLX_ARB_get_proc_address
259 * Linux OpenGL ABI specifies glXGetProcAddressARB should be
260 * in glx.h moving related defines there as well.
262 #endif
264 #ifndef GLX_SGIX_video_source
265 typedef XID GLXVideoSourceSGIX;
266 #endif
268 #ifndef GLX_SGIX_fbconfig
269 typedef XID GLXFBConfigIDSGIX;
270 typedef struct __GLXFBConfigRec *GLXFBConfigSGIX;
271 #endif
273 #ifndef GLX_SGIX_pbuffer
274 typedef XID GLXPbufferSGIX;
275 typedef struct {
276 int type;
277 unsigned long serial; /* # of last request processed by server */
278 Bool send_event; /* true if this came for SendEvent request */
279 Display *display; /* display the event was read from */
280 GLXDrawable drawable; /* i.d. of Drawable */
281 int event_type; /* GLX_DAMAGED_SGIX or GLX_SAVED_SGIX */
282 int draw_type; /* GLX_WINDOW_SGIX or GLX_PBUFFER_SGIX */
283 unsigned int mask; /* mask indicating which buffers are affected*/
284 int x, y;
285 int width, height;
286 int count; /* if nonzero, at least this many more */
287 } GLXBufferClobberEventSGIX;
288 #endif
290 #ifndef GLX_NV_swap_group
291 #endif
293 #ifndef GLX_NV_video_out
295 * GLXVideoDeviceNV is an opaque handle to a video device (part of the
296 * GLX_NV_video_out extension).
298 typedef unsigned int GLXVideoDeviceNV;
300 /* glXBindVideoImageNV iVideoBuffer values (NV_video_out) */
301 #define GLX_VIDEO_OUT_COLOR_NV 0x20C3
302 #define GLX_VIDEO_OUT_ALPHA_NV 0x20C4
303 #define GLX_VIDEO_OUT_DEPTH_NV 0x20C5
304 #define GLX_VIDEO_OUT_COLOR_AND_ALPHA_NV 0x20C6
305 #define GLX_VIDEO_OUT_COLOR_AND_DEPTH_NV 0x20C7
307 /* glXSendPbufferToVideoNV iBufferType values (NV_video_out) */
308 #define GLX_VIDEO_OUT_FRAME_NV 0x20C8
309 #define GLX_VIDEO_OUT_FIELD_1_NV 0x20C9
310 #define GLX_VIDEO_OUT_FIELD_2_NV 0x20CA
311 #define GLX_VIDEO_OUT_STACKED_FIELDS_1_2_NV 0x20CB
312 #define GLX_VIDEO_OUT_STACKED_FIELDS_2_1_NV 0x20CC
313 #endif
315 #ifndef GLX_EXT_fbconfig_packed_float
316 #define GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT 0x20B1
317 #define GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT 0x00000008
318 #endif
320 #ifndef GLX_EXT_framebuffer_sRGB
321 #define GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20B2
322 #endif
324 #ifndef GLX_EXT_texture_from_pixmap
325 /* New glXGetFBConfigAttrib <attrib_list> tokens */
326 #define GLX_BIND_TO_TEXTURE_RGB_EXT 0x20D0
327 #define GLX_BIND_TO_TEXTURE_RGBA_EXT 0x20D1
328 #define GLX_BIND_TO_MIPMAP_TEXTURE_EXT 0x20D2
329 #define GLX_BIND_TO_TEXTURE_TARGETS_EXT 0x20D3
330 #define GLX_Y_INVERTED_EXT 0x20D4
332 /* New glXCreatePixmap attributes and glXQueryDrawable attributes */
333 #define GLX_TEXTURE_FORMAT_EXT 0x20D5
334 #define GLX_TEXTURE_TARGET_EXT 0x20D6
335 #define GLX_MIPMAP_TEXTURE_EXT 0x20D7
337 /* Values for GLX_TEXTURE_FORMAT_EXT */
338 #define GLX_TEXTURE_FORMAT_NONE_EXT 0x20D8
339 #define GLX_TEXTURE_FORMAT_RGB_EXT 0x20D9
340 #define GLX_TEXTURE_FORMAT_RGBA_EXT 0x20DA
342 /* Bits for GLX_BIND_TO_TEXTURE_TARGETS_EXT mask */
343 #define GLX_TEXTURE_1D_BIT_EXT 0x00000001
344 #define GLX_TEXTURE_2D_BIT_EXT 0x00000002
345 #define GLX_TEXTURE_RECTANGLE_BIT_EXT 0x00000004
347 /* Values for GLX_TEXTURE_TARGET_EXT */
348 #define GLX_TEXTURE_1D_EXT 0x20DB
349 #define GLX_TEXTURE_2D_EXT 0x20DC
350 #define GLX_TEXTURE_RECTANGLE_EXT 0x20DD
353 * Values for the buffer parameter of glXBindTexImageEXT and
354 * glXReleaseTexImageEXT
356 #define GLX_FRONT_LEFT_EXT 0x20DE
357 #define GLX_FRONT_RIGHT_EXT 0x20DF
358 #define GLX_BACK_LEFT_EXT 0x20E0
359 #define GLX_BACK_RIGHT_EXT 0x20E1
360 #define GLX_FRONT_EXT GLX_FRONT_LEFT_EXT
361 #define GLX_BACK_EXT GLX_BACK_LEFT_EXT
362 #define GLX_AUX0_EXT 0x20E2
363 #define GLX_AUX1_EXT 0x20E3
364 #define GLX_AUX2_EXT 0x20E4
365 #define GLX_AUX3_EXT 0x20E5
366 #define GLX_AUX4_EXT 0x20E6
367 #define GLX_AUX5_EXT 0x20E7
368 #define GLX_AUX6_EXT 0x20E8
369 #define GLX_AUX7_EXT 0x20E9
370 #define GLX_AUX8_EXT 0x20EA
371 #define GLX_AUX9_EXT 0x20EB
373 #endif
375 #ifndef GLX_NV_multisample_coverage
376 #define GLX_COVERAGE_SAMPLES_NV GLX_SAMPLES_ARB
377 #define GLX_COLOR_SAMPLES_NV 0x20B3
378 #endif
380 #ifndef GLX_NV_present_video
381 #define GLX_NUM_VIDEO_SLOTS_NV 0x20F0
382 #endif
384 #ifndef GLX_NV_video_capture
386 typedef XID GLXVideoCaptureDeviceNV;
388 #define GLX_DEVICE_ID_NV 0x20CD
389 #define GLX_UNIQUE_ID_NV 0x20CE
390 #define GLX_NUM_VIDEO_CAPTURE_SLOTS_NV 0x20CF
391 #endif
393 #ifndef GLX_EXT_swap_control
394 #define GLX_SWAP_INTERVAL_EXT 0x20F1
395 #define GLX_MAX_SWAP_INTERVAL_EXT 0x20F2
396 #endif
398 /* Define int32_t and int64_t types for UST/MSC */
399 /* (as used in the GLX_OML_sync_control extension). */
400 #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
401 #include <inttypes.h>
402 #elif defined( __VMS ) || defined(__FreeBSD__)
403 #include <inttypes.h>
404 #elif (defined(__sun__) && defined(__svr4__)) || (defined(__sun) && defined(__SVR4))
405 #include <inttypes.h>
406 #elif defined(__SCO__) || defined(__USLC__) || defined(__linux__)
407 #include <stdint.h>
408 #elif defined(__UNIXOS2__) || defined(__SOL64__)
409 typedef long int int32_t;
410 typedef long long int int64_t;
411 #else
412 #error "int32_t and int64_t are undefined!"
413 #endif
415 #ifndef GLX_ARB_get_proc_address
416 /* Moved to glx.h */
417 #endif
419 #ifndef GLX_ARB_multisample
420 #define GLX_ARB_multisample 1
421 #endif
423 #ifndef GLX_ARB_fbconfig_float
424 #define GLX_ARB_fbconfig_float 1
425 #endif
427 #ifndef GLX_ARB_create_context
428 #define GLX_ARB_create_context 1
429 #ifdef GLX_GLXEXT_PROTOTYPES
430 extern GLXContext glXCreateContextAttribsARB (Display *, GLXFBConfig, GLXContext, Bool, const int *);
431 #endif /* GLX_GLXEXT_PROTOTYPES */
432 typedef GLXContext ( * PFNGLXCREATECONTEXTATTRIBSARBPROC) (Display *dpy, GLXFBConfig config, GLXContext share_context, Bool direct, const int *attrib_list);
433 #endif
435 #ifndef GLX_SGIS_multisample
436 #define GLX_SGIS_multisample 1
437 #endif
439 #ifndef GLX_EXT_visual_info
440 #define GLX_EXT_visual_info 1
441 #endif
443 #ifndef GLX_SGI_swap_control
444 #define GLX_SGI_swap_control 1
445 #ifdef GLX_GLXEXT_PROTOTYPES
446 extern int glXSwapIntervalSGI (int);
447 #endif /* GLX_GLXEXT_PROTOTYPES */
448 typedef int ( * PFNGLXSWAPINTERVALSGIPROC) (int interval);
449 #endif
451 #ifndef GLX_SGI_video_sync
452 #define GLX_SGI_video_sync 1
453 #ifdef GLX_GLXEXT_PROTOTYPES
454 extern int glXGetVideoSyncSGI (unsigned int *);
455 extern int glXWaitVideoSyncSGI (int, int, unsigned int *);
456 extern int glXGetRefreshRateSGI(unsigned int *);
457 #endif /* GLX_GLXEXT_PROTOTYPES */
458 typedef int ( * PFNGLXGETVIDEOSYNCSGIPROC) (unsigned int *count);
459 typedef int ( * PFNGLXWAITVIDEOSYNCSGIPROC) (int divisor, int remainder, unsigned int *count);
460 typedef int ( * PFNGLXGETREFRESHRATESGIPROC) (unsigned int *);
461 #endif
463 #ifndef GLX_SGI_make_current_read
464 #define GLX_SGI_make_current_read 1
465 #ifdef GLX_GLXEXT_PROTOTYPES
466 extern Bool glXMakeCurrentReadSGI (Display *, GLXDrawable, GLXDrawable, GLXContext);
467 extern GLXDrawable glXGetCurrentReadDrawableSGI (void);
468 #endif /* GLX_GLXEXT_PROTOTYPES */
469 typedef Bool ( * PFNGLXMAKECURRENTREADSGIPROC) (Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx);
470 typedef GLXDrawable ( * PFNGLXGETCURRENTREADDRAWABLESGIPROC) (void);
471 #endif
473 #ifndef GLX_SGIX_video_source
474 #define GLX_SGIX_video_source 1
475 #ifdef _VL_H
476 #ifdef GLX_GLXEXT_PROTOTYPES
477 extern GLXVideoSourceSGIX glXCreateGLXVideoSourceSGIX (Display *, int, VLServer, VLPath, int, VLNode);
478 extern void glXDestroyGLXVideoSourceSGIX (Display *, GLXVideoSourceSGIX);
479 #endif /* GLX_GLXEXT_PROTOTYPES */
480 typedef GLXVideoSourceSGIX ( * PFNGLXCREATEGLXVIDEOSOURCESGIXPROC) (Display *display, int screen, VLServer server, VLPath path, int nodeClass, VLNode drainNode);
481 typedef void ( * PFNGLXDESTROYGLXVIDEOSOURCESGIXPROC) (Display *dpy, GLXVideoSourceSGIX glxvideosource);
482 #endif /* _VL_H */
483 #endif
485 #ifndef GLX_EXT_visual_rating
486 #define GLX_EXT_visual_rating 1
487 #endif
489 #ifndef GLX_EXT_import_context
490 #define GLX_EXT_import_context 1
491 #ifdef GLX_GLXEXT_PROTOTYPES
492 extern Display * glXGetCurrentDisplayEXT (void);
493 extern int glXQueryContextInfoEXT (Display *, GLXContext, int, int *);
494 extern GLXContextID glXGetContextIDEXT (const GLXContext);
495 extern GLXContext glXImportContextEXT (Display *, GLXContextID);
496 extern void glXFreeContextEXT (Display *, GLXContext);
497 #endif /* GLX_GLXEXT_PROTOTYPES */
498 typedef Display * ( * PFNGLXGETCURRENTDISPLAYEXTPROC) (void);
499 typedef int ( * PFNGLXQUERYCONTEXTINFOEXTPROC) (Display *dpy, GLXContext context, int attribute, int *value);
500 typedef GLXContextID ( * PFNGLXGETCONTEXTIDEXTPROC) (const GLXContext context);
501 typedef GLXContext ( * PFNGLXIMPORTCONTEXTEXTPROC) (Display *dpy, GLXContextID contextID);
502 typedef void ( * PFNGLXFREECONTEXTEXTPROC) (Display *dpy, GLXContext context);
503 #endif
505 #ifndef GLX_SGIX_fbconfig
506 #define GLX_SGIX_fbconfig 1
507 #ifdef GLX_GLXEXT_PROTOTYPES
508 extern int glXGetFBConfigAttribSGIX (Display *, GLXFBConfigSGIX, int, int *);
509 extern GLXFBConfigSGIX * glXChooseFBConfigSGIX (Display *, int, int *, int *);
510 extern GLXPixmap glXCreateGLXPixmapWithConfigSGIX (Display *, GLXFBConfigSGIX, Pixmap);
511 extern GLXContext glXCreateContextWithConfigSGIX (Display *, GLXFBConfigSGIX, int, GLXContext, Bool);
512 extern XVisualInfo * glXGetVisualFromFBConfigSGIX (Display *, GLXFBConfigSGIX);
513 extern GLXFBConfigSGIX glXGetFBConfigFromVisualSGIX (Display *, XVisualInfo *);
514 #endif /* GLX_GLXEXT_PROTOTYPES */
515 typedef int ( * PFNGLXGETFBCONFIGATTRIBSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, int attribute, int *value);
516 typedef GLXFBConfigSGIX * ( * PFNGLXCHOOSEFBCONFIGSGIXPROC) (Display *dpy, int screen, int *attrib_list, int *nelements);
517 typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, Pixmap pixmap);
518 typedef GLXContext ( * PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, int render_type, GLXContext share_list, Bool direct);
519 typedef XVisualInfo * ( * PFNGLXGETVISUALFROMFBCONFIGSGIXPROC) (Display *dpy, GLXFBConfigSGIX config);
520 typedef GLXFBConfigSGIX ( * PFNGLXGETFBCONFIGFROMVISUALSGIXPROC) (Display *dpy, XVisualInfo *vis);
521 #endif
523 #ifndef GLX_SGIX_pbuffer
524 #define GLX_SGIX_pbuffer 1
525 #ifdef GLX_GLXEXT_PROTOTYPES
526 extern GLXPbufferSGIX glXCreateGLXPbufferSGIX (Display *, GLXFBConfigSGIX, unsigned int, unsigned int, int *);
527 extern void glXDestroyGLXPbufferSGIX (Display *, GLXPbufferSGIX);
528 extern int glXQueryGLXPbufferSGIX (Display *, GLXPbufferSGIX, int, unsigned int *);
529 extern void glXSelectEventSGIX (Display *, GLXDrawable, unsigned long);
530 extern void glXGetSelectedEventSGIX (Display *, GLXDrawable, unsigned long *);
531 #endif /* GLX_GLXEXT_PROTOTYPES */
532 typedef GLXPbufferSGIX ( * PFNGLXCREATEGLXPBUFFERSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, unsigned int width, unsigned int height, int *attrib_list);
533 typedef void ( * PFNGLXDESTROYGLXPBUFFERSGIXPROC) (Display *dpy, GLXPbufferSGIX pbuf);
534 typedef int ( * PFNGLXQUERYGLXPBUFFERSGIXPROC) (Display *dpy, GLXPbufferSGIX pbuf, int attribute, unsigned int *value);
535 typedef void ( * PFNGLXSELECTEVENTSGIXPROC) (Display *dpy, GLXDrawable drawable, unsigned long mask);
536 typedef void ( * PFNGLXGETSELECTEDEVENTSGIXPROC) (Display *dpy, GLXDrawable drawable, unsigned long *mask);
537 #endif
539 #ifndef GLX_SGI_cushion
540 #define GLX_SGI_cushion 1
541 #ifdef GLX_GLXEXT_PROTOTYPES
542 extern void glXCushionSGI (Display *, Window, float);
543 #endif /* GLX_GLXEXT_PROTOTYPES */
544 typedef void ( * PFNGLXCUSHIONSGIPROC) (Display *dpy, Window window, float cushion);
545 #endif
547 #ifndef GLX_SGIX_video_resize
548 #define GLX_SGIX_video_resize 1
549 #ifdef GLX_GLXEXT_PROTOTYPES
550 extern int glXBindChannelToWindowSGIX (Display *, int, int, Window);
551 extern int glXChannelRectSGIX (Display *, int, int, int, int, int, int);
552 extern int glXQueryChannelRectSGIX (Display *, int, int, int *, int *, int *, int *);
553 extern int glXQueryChannelDeltasSGIX (Display *, int, int, int *, int *, int *, int *);
554 extern int glXChannelRectSyncSGIX (Display *, int, int, GLenum);
555 #endif /* GLX_GLXEXT_PROTOTYPES */
556 typedef int ( * PFNGLXBINDCHANNELTOWINDOWSGIXPROC) (Display *display, int screen, int channel, Window window);
557 typedef int ( * PFNGLXCHANNELRECTSGIXPROC) (Display *display, int screen, int channel, int x, int y, int w, int h);
558 typedef int ( * PFNGLXQUERYCHANNELRECTSGIXPROC) (Display *display, int screen, int channel, int *dx, int *dy, int *dw, int *dh);
559 typedef int ( * PFNGLXQUERYCHANNELDELTASSGIXPROC) (Display *display, int screen, int channel, int *x, int *y, int *w, int *h);
560 typedef int ( * PFNGLXCHANNELRECTSYNCSGIXPROC) (Display *display, int screen, int channel, GLenum synctype);
561 #endif
563 #ifndef GLX_SGIX_dmbuffer
564 #define GLX_SGIX_dmbuffer 1
565 #ifdef _DM_BUFFER_H_
566 #ifdef GLX_GLXEXT_PROTOTYPES
567 extern Bool glXAssociateDMPbufferSGIX (Display *, GLXPbufferSGIX, DMparams *, DMbuffer);
568 #endif /* GLX_GLXEXT_PROTOTYPES */
569 typedef Bool ( * PFNGLXASSOCIATEDMPBUFFERSGIXPROC) (Display *dpy, GLXPbufferSGIX pbuffer, DMparams *params, DMbuffer dmbuffer);
570 #endif /* _DM_BUFFER_H_ */
571 #endif
573 #ifndef GLX_SGIX_swap_group
574 #define GLX_SGIX_swap_group 1
575 #ifdef GLX_GLXEXT_PROTOTYPES
576 extern void glXJoinSwapGroupSGIX (Display *, GLXDrawable, GLXDrawable);
577 #endif /* GLX_GLXEXT_PROTOTYPES */
578 typedef void ( * PFNGLXJOINSWAPGROUPSGIXPROC) (Display *dpy, GLXDrawable drawable, GLXDrawable member);
579 #endif
581 #ifndef GLX_SGIX_swap_barrier
582 #define GLX_SGIX_swap_barrier 1
583 #ifdef GLX_GLXEXT_PROTOTYPES
584 extern void glXBindSwapBarrierSGIX (Display *, GLXDrawable, int);
585 extern Bool glXQueryMaxSwapBarriersSGIX (Display *, int, int *);
586 #endif /* GLX_GLXEXT_PROTOTYPES */
587 typedef void ( * PFNGLXBINDSWAPBARRIERSGIXPROC) (Display *dpy, GLXDrawable drawable, int barrier);
588 typedef Bool ( * PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC) (Display *dpy, int screen, int *max);
589 #endif
591 #ifndef GLX_SUN_get_transparent_index
592 #define GLX_SUN_get_transparent_index 1
593 #ifdef GLX_GLXEXT_PROTOTYPES
594 extern Status glXGetTransparentIndexSUN (Display *, Window, Window, long *);
595 #endif /* GLX_GLXEXT_PROTOTYPES */
596 typedef Status ( * PFNGLXGETTRANSPARENTINDEXSUNPROC) (Display *dpy, Window overlay, Window underlay, long *pTransparentIndex);
597 #endif
599 #ifndef GLX_MESA_copy_sub_buffer
600 #define GLX_MESA_copy_sub_buffer 1
601 #ifdef GLX_GLXEXT_PROTOTYPES
602 extern void glXCopySubBufferMESA (Display *, GLXDrawable, int, int, int, int);
603 #endif /* GLX_GLXEXT_PROTOTYPES */
604 typedef void ( * PFNGLXCOPYSUBBUFFERMESAPROC) (Display *dpy, GLXDrawable drawable, int x, int y, int width, int height);
605 #endif
607 #ifndef GLX_MESA_pixmap_colormap
608 #define GLX_MESA_pixmap_colormap 1
609 #ifdef GLX_GLXEXT_PROTOTYPES
610 extern GLXPixmap glXCreateGLXPixmapMESA (Display *, XVisualInfo *, Pixmap, Colormap);
611 #endif /* GLX_GLXEXT_PROTOTYPES */
612 typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPMESAPROC) (Display *dpy, XVisualInfo *visual, Pixmap pixmap, Colormap cmap);
613 #endif
615 #ifndef GLX_MESA_release_buffers
616 #define GLX_MESA_release_buffers 1
617 #ifdef GLX_GLXEXT_PROTOTYPES
618 extern Bool glXReleaseBuffersMESA (Display *, GLXDrawable);
619 #endif /* GLX_GLXEXT_PROTOTYPES */
620 typedef Bool ( * PFNGLXRELEASEBUFFERSMESAPROC) (Display *dpy, GLXDrawable drawable);
621 #endif
623 #ifndef GLX_MESA_set_3dfx_mode
624 #define GLX_MESA_set_3dfx_mode 1
625 #ifdef GLX_GLXEXT_PROTOTYPES
626 extern Bool glXSet3DfxModeMESA (int);
627 #endif /* GLX_GLXEXT_PROTOTYPES */
628 typedef Bool ( * PFNGLXSET3DFXMODEMESAPROC) (int mode);
629 #endif
631 #ifndef GLX_SGIX_visual_select_group
632 #define GLX_SGIX_visual_select_group 1
633 #endif
635 #ifndef GLX_OML_swap_method
636 #define GLX_OML_swap_method 1
637 #endif
639 #ifndef GLX_OML_sync_control
640 #define GLX_OML_sync_control 1
641 #ifdef GLX_GLXEXT_PROTOTYPES
642 extern Bool glXGetSyncValuesOML (Display *, GLXDrawable, int64_t *, int64_t *, int64_t *);
643 extern Bool glXGetMscRateOML (Display *, GLXDrawable, int32_t *, int32_t *);
644 extern int64_t glXSwapBuffersMscOML (Display *, GLXDrawable, int64_t, int64_t, int64_t);
645 extern Bool glXWaitForMscOML (Display *, GLXDrawable, int64_t, int64_t, int64_t, int64_t *, int64_t *, int64_t *);
646 extern Bool glXWaitForSbcOML (Display *, GLXDrawable, int64_t, int64_t *, int64_t *, int64_t *);
647 #endif /* GLX_GLXEXT_PROTOTYPES */
648 typedef Bool ( * PFNGLXGETSYNCVALUESOMLPROC) (Display *dpy, GLXDrawable drawable, int64_t *ust, int64_t *msc, int64_t *sbc);
649 typedef Bool ( * PFNGLXGETMSCRATEOMLPROC) (Display *dpy, GLXDrawable drawable, int32_t *numerator, int32_t *denominator);
650 typedef int64_t ( * PFNGLXSWAPBUFFERSMSCOMLPROC) (Display *dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder);
651 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);
652 typedef Bool ( * PFNGLXWAITFORSBCOMLPROC) (Display *dpy, GLXDrawable drawable, int64_t target_sbc, int64_t *ust, int64_t *msc, int64_t *sbc);
653 #endif
655 #ifndef GLX_NV_float_buffer
656 #define GLX_NV_float_buffer 1
657 #endif
659 #ifndef GLX_SGIX_hyperpipe
660 #define GLX_SGIX_hyperpipe 1
662 typedef struct {
663 char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX];
664 int networkId;
665 } GLXHyperpipeNetworkSGIX;
667 typedef struct {
668 char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX];
669 int channel;
670 unsigned int
671 participationType;
672 int timeSlice;
673 } GLXHyperpipeConfigSGIX;
675 typedef struct {
676 char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX];
677 int srcXOrigin, srcYOrigin, srcWidth, srcHeight;
678 int destXOrigin, destYOrigin, destWidth, destHeight;
679 } GLXPipeRect;
681 typedef struct {
682 char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX];
683 int XOrigin, YOrigin, maxHeight, maxWidth;
684 } GLXPipeRectLimits;
686 #ifdef GLX_GLXEXT_PROTOTYPES
687 extern GLXHyperpipeNetworkSGIX * glXQueryHyperpipeNetworkSGIX (Display *, int *);
688 extern int glXHyperpipeConfigSGIX (Display *, int, int, GLXHyperpipeConfigSGIX *, int *);
689 extern GLXHyperpipeConfigSGIX * glXQueryHyperpipeConfigSGIX (Display *, int, int *);
690 extern int glXDestroyHyperpipeConfigSGIX (Display *, int);
691 extern int glXBindHyperpipeSGIX (Display *, int);
692 extern int glXQueryHyperpipeBestAttribSGIX (Display *, int, int, int, void *, void *);
693 extern int glXHyperpipeAttribSGIX (Display *, int, int, int, void *);
694 extern int glXQueryHyperpipeAttribSGIX (Display *, int, int, int, void *);
695 #endif /* GLX_GLXEXT_PROTOTYPES */
696 typedef GLXHyperpipeNetworkSGIX * ( * PFNGLXQUERYHYPERPIPENETWORKSGIXPROC) (Display *dpy, int *npipes);
697 typedef int ( * PFNGLXHYPERPIPECONFIGSGIXPROC) (Display *dpy, int networkId, int npipes, GLXHyperpipeConfigSGIX *cfg, int *hpId);
698 typedef GLXHyperpipeConfigSGIX * ( * PFNGLXQUERYHYPERPIPECONFIGSGIXPROC) (Display *dpy, int hpId, int *npipes);
699 typedef int ( * PFNGLXDESTROYHYPERPIPECONFIGSGIXPROC) (Display *dpy, int hpId);
700 typedef int ( * PFNGLXBINDHYPERPIPESGIXPROC) (Display *dpy, int hpId);
701 typedef int ( * PFNGLXQUERYHYPERPIPEBESTATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *attribList, void *returnAttribList);
702 typedef int ( * PFNGLXHYPERPIPEATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *attribList);
703 typedef int ( * PFNGLXQUERYHYPERPIPEATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *returnAttribList);
704 #endif
706 #ifndef GLX_MESA_agp_offset
707 #define GLX_MESA_agp_offset 1
708 #ifdef GLX_GLXEXT_PROTOTYPES
709 extern unsigned int glXGetAGPOffsetMESA (const void *);
710 #endif /* GLX_GLXEXT_PROTOTYPES */
711 typedef unsigned int ( * PFNGLXGETAGPOFFSETMESAPROC) (const void *pointer);
712 #endif
715 * GLX_NV_vertex_array_range is not a real extension name...
717 #ifndef GLX_NV_vertex_array_range
718 #define GLX_NV_vertex_array_range 1
719 #ifdef GLX_GLXEXT_PROTOTYPES
720 extern void *glXAllocateMemoryNV(GLsizei size, GLfloat readfreq,
721 GLfloat writefreq, GLfloat priority);
723 extern void glXFreeMemoryNV(GLvoid *pointer);
724 #endif
725 typedef void * ( * PFNGLXALLOCATEMEMORYNVPROC) (GLsizei size,
726 GLfloat readfreq,
727 GLfloat writefreq,
728 GLfloat priority);
730 typedef void ( * PFNGLXFREEMEMORYNVPROC) (GLvoid *pointer);
731 #endif
733 #ifndef GLX_NV_swap_group
734 #define GLX_NV_swap_group 1
735 #ifdef GLX_GLXEXT_PROTOTYPES
736 extern Bool glXJoinSwapGroupNV(Display *dpy, GLXDrawable drawable,
737 GLuint group);
739 extern Bool glXBindSwapBarrierNV(Display *dpy, GLuint group, GLuint barrier);
741 extern Bool glXQuerySwapGroupNV(Display *dpy, GLXDrawable drawable,
742 GLuint *group, GLuint *barrier);
744 extern Bool glXQueryMaxSwapGroupsNV(Display *dpy, int screen,
745 GLuint *maxGroups, GLuint *maxBarriers);
747 extern Bool glXQueryFrameCountNV(Display *dpy, int screen, GLuint *count);
749 extern Bool glXResetFrameCountNV(Display *dpy, int screen);
750 #endif
751 typedef Bool ( * PFNGLXJOINSWAPGROUPNVPROC) (Display *dpy,
752 GLXDrawable drawable,
753 GLuint group);
755 typedef Bool ( * PFNGLXBINDSWAPBARRIERNVPROC) (Display *dpy,
756 GLuint group,
757 GLuint barrier);
759 typedef Bool ( * PFNGLXQUERYSWAPGROUPNVPROC) (Display *dpy,
760 GLXDrawable drawable,
761 GLuint *group,
762 GLuint *barrier);
764 typedef Bool ( * PFNGLXQUERYMAXSWAPGROUPSNVPROC) (Display *dpy,
765 int screen,
766 GLuint *maxGroups,
767 GLuint *maxBarriers);
769 typedef Bool ( * PFNGLXQUERYFRAMECOUNTNVPROC) (Display *dpy,
770 int screen,
771 GLuint *count);
773 typedef Bool ( * PFNGLXRESETFRAMECOUNTNVPROC) (Display *dpy, int screen);
774 #endif
776 #ifndef GLX_NV_video_out
777 #define GLX_NV_video_out 1
778 #ifdef GLX_GLXEXT_PROTOTYPES
779 extern int glXGetVideoDeviceNV(Display *dpy, int screen, int numVideoDevices,
780 GLXVideoDeviceNV *pVideoDevice);
782 extern int glXReleaseVideoDeviceNV(Display *dpy, int screen,
783 GLXVideoDeviceNV VideoDevice);
785 extern int glXBindVideoImageNV(Display *dpy, GLXVideoDeviceNV VideoDevice,
786 GLXPbuffer pbuf, int iVideoBuffer);
788 extern int glXReleaseVideoImageNV(Display *dpy, GLXPbuffer pbuf);
790 extern int glXSendPbufferToVideoNV(Display *dpy, GLXPbuffer pbuf,
791 int iBufferType,
792 unsigned long *pulCounterPbuffer,
793 GLboolean bBlock);
795 extern int glXGetVideoInfoNV(Display *dpy, int screen,
796 GLXVideoDeviceNV VideoDevice,
797 unsigned long *pulCounterOutputPbuffer,
798 unsigned long *pulCounterOutputVideo);
799 #endif
800 typedef int ( * PFNGLXGETVIDEODEVICENVPROC) (Display *dpy,
801 int screen,
802 int numVideoDevices,
803 GLXVideoDeviceNV *pVideoDevice);
805 typedef int ( * PFNGLXRELEASEVIDEODEVICENVPROC) (Display *dpy,
806 int screen,
807 GLXVideoDeviceNV VideoDevice);
809 typedef int ( * PFNGLXBINDVIDEOIMAGENVPROC) (Display *dpy,
810 GLXVideoDeviceNV VideoDevice,
811 GLXPbuffer pbuf,
812 int iVideoBuffer);
814 typedef int ( * PFNGLXRELEASEVIDEOIMAGENVPROC) (Display *dpy,
815 GLXPbuffer pbuf);
817 typedef int ( * PFNGLXSENDPBUFFERTOVIDEONVPROC) (Display *dpy,
818 GLXPbuffer pbuf,
819 int iBufferType,
820 unsigned long *pulCounterPbuffer,
821 GLboolean bBlock);
823 typedef int ( * PFNGLXGETVIDEOINFONVPROC) (Display *dpy, int screen,
824 GLXVideoDeviceNV VideoDevice,
825 unsigned long *pulCounterOutputPbuffer,
826 unsigned long *pulCounterOutputVideo);
827 #endif
829 #ifndef GLX_EXT_fbconfig_packed_float
830 #define GLX_EXT_fbconfig_packed_float 1
831 #endif
833 #ifndef GLX_EXT_framebuffer_sRGB
834 #define GLX_EXT_framebuffer_sRGB 1
835 #endif
837 #ifndef GLX_EXT_texture_from_pixmap
838 #define GLX_EXT_texture_from_pixmap
839 #ifdef GLX_GLXEXT_PROTOTYPES
840 extern void glXBindTexImageEXT(Display *dpy, GLXDrawable drawable,
841 int buffer, const int *attrib_list);
842 extern void glXReleaseTexImageEXT(Display *dpy, GLXDrawable drawable,
843 int buffer);
844 #endif
845 typedef void ( * PFNGLXBINDTEXIMAGEEXTPROC) (Display *dpy,
846 GLXDrawable drawable,
847 int buffer,
848 const int *attrib_list);
849 typedef void ( * PFNGLXRELEASETEXIMAGEEXTPROC) (Display *dpy,
850 GLXDrawable drawable,
851 int buffer);
852 #endif
854 #ifndef GLX_NV_present_video
855 #define GLX_NV_present_video
856 #ifdef GLX_GLXEXT_PROTOTYPES
857 extern unsigned int *glXEnumerateVideoDevicesNV(Display *dpy,
858 int screen,
859 int *nelements);
860 extern int glXBindVideoDeviceNV(Display *dpy,
861 unsigned int video_slot,
862 unsigned int video_device,
863 const int *attrib_list);
864 #endif
865 typedef unsigned int* ( * PFNGLXENUMERATEVIDEODEVICESNVPROC) (Display *dpy,
866 int screen,
867 int *nelements);
868 typedef int ( * PFNGLXBINDVIDEODEVICENVPROC) (Display *dpy,
869 unsigned int video_slot,
870 unsigned int video_device,
871 const int *attrib_list);
872 #endif
874 #ifndef GLX_NV_multisample_coverage
875 #define GLX_NV_multisample_coverage 1
876 #endif
878 #ifndef GLX_NV_video_capture
879 #define GLX_NV_video_capture 1
880 #ifdef GLX_GLXEXT_PROTOTYPES
881 extern int glXBindVideoCaptureDeviceNV(Display *dpy,
882 unsigned int video_capture_slot,
883 GLXVideoCaptureDeviceNV device);
885 extern GLXVideoCaptureDeviceNV *
886 glXEnumerateVideoCaptureDevicesNV(Display *dpy,
887 int screen,
888 int *nelements);
890 extern void glXLockVideoCaptureDeviceNV(Display *dpy,
891 GLXVideoCaptureDeviceNV device);
893 extern int glXQueryVideoCaptureDeviceNV(Display *dpy,
894 GLXVideoCaptureDeviceNV device,
895 int attribute, int *value);
897 extern void glXReleaseVideoCaptureDeviceNV(Display *dpy,
898 GLXVideoCaptureDeviceNV device);
899 #endif /* GLX_GLXEXT_PROTOTYPES */
900 typedef int ( * PFNGLXBINDVIDEOCAPTUREDEVICENVPROC) (Display *dpy, unsigned int video_capture_slot, GLXVideoCaptureDeviceNV device);
901 typedef GLXVideoCaptureDeviceNV * ( * PFNGLXENUMERATEVIDEOCAPTUREDEVICESNVPROC) (Display *dpy, int screen, int *nelements);
902 typedef void ( * PFNGLXLOCKVIDEOCAPTUREDEVICENVPROC) (Display *dpy, GLXVideoCaptureDeviceNV device);
903 typedef int ( * PFNGLXQUERYVIDEOCAPTUREDEVICENVPROC) (Display *dpy, GLXVideoCaptureDeviceNV device, int attribute, int *value);
904 typedef void ( * PFNGLXRELEASEVIDEOCAPTUREDEVICENVPROC) (Display *dpy, GLXVideoCaptureDeviceNV device);
905 #endif
907 #ifndef GLX_EXT_swap_control
908 #define GLX_EXT_swap_control 1
909 #ifdef GLX_GLXEXT_PROTOTYPES
910 extern void glXSwapIntervalEXT(Display *dpy,
911 GLXDrawable drawable,
912 int interval);
913 #endif
914 typedef void ( * PFNGLXSWAPINTERVALEXTPROC) (Display *dpy,
915 GLXDrawable drawable,
916 int interval);
917 #endif
919 #ifdef __cplusplus
921 #endif
923 #endif